
- Judul: Robotic Petani: Prospero
- Author: Author:
- Description: This is just a short video of the hexapod robot, Prospero, planting. Keterangan: Ini hanyalah sebuah video pendek dari robot hexapod, Prospero, tanam. Prospero is an autonomous robotic farmer that would be used as part of a group or swarm of identical robots. Prospero adalah seorang petani robot otonom yang akan digunakan sebagai bagian dari kelompok atau kawanan robot identik. Imagine a hundred of these robots walking across a field, planting and working together like a colony of ants or bees. Bayangkan seratus robot ini berjalan melintasi ladang, menanam dan bekerja sama seperti koloni semut atau lebah. For more a longer video that goes more in depth, search for "vanmunch36" and look for the other Prospero videos. Untuk lebih video lagi yang berlangsung lebih mendalam, cari "vanmunch36" dan mencari video Prospero lainnya. Prospero is the working prototype of an Autonomous Micro Planter (AMP) that uses a combination of swarm and game theory and is the first of four steps. Prospero adalah prototipe kerja yang Otonom Mikro Planter (AMP) yang menggunakan kombinasi teori mengeriap dan permainan dan merupakan yang pertama dari empat langkah. It is meant to be deployed as a group or "swarm". Hal ini dimaksudkan untuk digunakan sebagai kelompok atau "kawanan". The other three steps involve autonomous robots that tend the crops, harvest them, and finally one robot that can plant, tend, and harvest--autonomously transitioning from one phase to another. Tiga lainnya langkah melibatkan robot otonom yang merawat tanaman, panen mereka, dan akhirnya satu robot yang dapat menanam, cenderung, dan panen - mandiri transisi dari satu fase yang lain. Prospero is controlled with a Parallax Propeller chip mounted on a Schmart Board. Prospero dikendalikan dengan Parallax Propeller chip dipasang di Dewan Schmart. Its body is designed by Lynxmotion and the orginal programming allows it to walk autonomously in any direction while avoiding objects with its duel ultrasonic Ping))) without turning it's body. Tubuhnya dirancang oleh Lynxmotion dan pemrograman asli memungkinkan untuk berjalan secara mandiri ke segala arah sambil menghindari benda dengan Ping duel ultrasonik nya))) tanpa membalikkan tubuh itu. An underbody sensor array allows the robot to know if a seed has been planted in the area at the optimal spacing and depth. Sebuah array sensor bagian bawah bodi mobil memungkinkan robot untuk mengetahui apakah benih telah ditanam di daerah tersebut pada jarak optimal dan kedalaman. Prospero can then dig a hole, plant a seed in the hole, cover the seed with soil, and apply any pre-emergence fertilizers and/or herbicides along with the marking agent. Prospero kemudian dapat menggali lubang, menanam benih di dalam lubang, menutupi benih dengan tanah, dan menerapkan pupuk setiap munculnya pra dan / atau herbisida bersama dengan agen menandai. Prospero can then talk to other robots in the immediate proximity that it needs help planting in that area or that this area has been planted and to move on via IR (currently represented with a green and red LED ). Prospero kemudian dapat berbicara dengan robot lainnya di kedekatan lansung yang membutuhkan bantuan tanam di daerah itu atau bahwa daerah ini telah ditanam dan untuk pindah melalui IR (saat ini diwakili dengan LED hijau dan merah). The more seeds it plants, the more the "green" LED lights up, the more it draws other robots nearby (+2). Semakin banyak bibit tanaman itu, semakin banyak "hijau" lampu LED Facebook, semakin ia menarik robot lainnya terdekat (+2). The more it detects planted seeds, the more it repulses other robots with the "red" LED (-1) Why small, autonomous robots? Semakin banyak mendeteksi benih ditanam, semakin merasa jijik robot lain dengan LED "merah" (-1) Mengapa kecil, robot otonom? Robotics in Agriculture Despite its quaint reputation, agriculture has always been an early adapter of technology. Robotika dalam Pertanian meskipun memiliki reputasi kuno, pertanian selalu menjadi adaptor awal teknologi. This is evident from the beginning of mechanization with the cotton gin, McCormick's Reaper, tractors, hybrid seed, to genetically engineered plants that protect themselves and grow in arid environments. Hal ini terbukti dari awal mekanisasi dengan gin kapas, McCormick's Reaper, traktor, benih hibrida, untuk tanaman yang direkayasa secara genetis yang melindungi diri mereka sendiri dan tumbuh di lingkungan gersang. Yields have grown quickly, but demand from developing countries and population growth are growing faster We know that we need to continue to find ways to increase the productivity of land on a per unit basis. Hasil telah tumbuh dengan cepat, namun permintaan dari negara-negara berkembang dan pertumbuhan populasi tumbuh lebih cepat Kita tahu bahwa kita perlu terus menemukan cara untuk meningkatkan produktivitas lahan pada basis per unit. Agriculture has started to add computerization and automation to the current machinery with things like GPS based precision farming systems that can autonomously drive tractors, monitor yield, and apply fertilizer. Pertanian telah mulai menambahkan komputerisasi dan otomasi ke mesin saat ini dengan hal-hal seperti sistem presisi GPS berbasis pertanian yang mandiri dapat mendorong traktor, memonitor hasil, dan menerapkan pupuk. However, these aftermarket add-ons are built around the single most expensive and awkward part of the equipment. Namun, aftermarket add-ons yang dibangun di sekitar bagian yang paling mahal dan canggung peralatan. The person controlling the tractor. Orang yang mengendalikan traktor. Today's agricultural equipment has been designed around a person sitting in a chair. peralatan pertanian hari ini telah dirancang di sekitar orang yang duduk di kursi. It cost a lot to employ a single person so the equipment grew larger in order to maximize the productivity of that one person. Banyak biaya untuk mempekerjakan satu orang sehingga peralatan tumbuh lebih besar dalam rangka memaksimalkan produktivitas dari satu orang. However, this method has its drawbacks. Namun, metode ini memiliki kekurangan. Farming decisions have to be made at the field level. Pertanian keputusan harus dibuat pada tingkat lapangan. Nature is chaotic and dynamic. Alam adalah kacau dan dinamis. Soil nutrients and moisture change from foot to foot. Tanah nutrisi dan perubahan kelembaban dari kaki ke kaki. Having equipment that allows a single person to plant a thousand acres in a day comes at the cost of productivity per acre as a result of treating all those acres as the same. Memiliki peralatan yang memungkinkan satu orang menanam seribu hektar dalam satu hari datang pada biaya produktivitas per hektar sebagai akibat dari memperlakukan semua orang hektar sebagai sama. A swarm of small robots like Prospero would have the ability to farm inch by inch, examining the soil before planting each seed and choosing the best variety for that spot. Sebuah segerombolan robot kecil seperti Prospero akan memiliki kemampuan untuk pertanian inci demi inci, memeriksa tanah sebelum penanaman bibit masing-masing dan memilih varietas terbaik untuk tempat itu. This would maximizing the productivity of each acre, allow less land to be converted to farm land, feed more people, and provide a higher standard of living for those people because they would spend less of their money on food. Hal ini akan memaksimalkan produktivitas setiap hektar, memungkinkan lahan yang kurang untuk dikonversi menjadi lahan pertanian, pakan lebih banyak orang, dan menyediakan standar hidup yang lebih tinggi bagi orang-orang karena mereka akan menghabiskan kurang dari uang mereka pada makanan. Please let me know if you have any questions. Tolong beritahu saya jika Anda memiliki pertanyaan. Thanks! Terima kasih!
- Date: Tanggal:
- Length: 43 Durasi: 43
- Tags: Farming Robot , Robotic Farmer , Parallax , Parallax Propeller , Lynxmotion , Schmart Board , Hexapod , Hexapod robot , corn , robot , farmer , planting , farming , technology , electronics , swarm robot , swarm , ant , ants , game theory , swarm theory , insect behavior , future Tags: Pertanian Robot , Robot Farmer , Parallax , Parallax Propeller , Lynxmotion , Dewan Schmart , Hexapod , Hexapod robot , jagung , robot , petani , penanaman , pertanian , teknologi , elektronik , kawanan robot , kawanan , semut , semut , teori permainan , kawanan teori , perilaku serangga , masa depan
- Downloads: - Last from: Downloads: - Terakhir dari: (Your Blog here!) (Blog Anda di sini!)
Robotic Petani: Prospero
pada kesempatan kali ini saya akan memberi info tantang tools yang di gunakan untuk membuat usb menjadi flashboot,,,,,,,,
adapun nama dari softwere ini adalah WinToFlash,,,,,,,,,,,,,
download di sini
adapun nama dari softwere ini adalah WinToFlash,,,,,,,,,,,,,
download di sini
WinToFlash
Membuat Robot Line Follower Dengan AVR
Robot Line Follower dengan AVR ATMega8535
Membuat robot line follwer memang seru, apalagi bagi teman2 yang suka berexperimen dengan mikrokontroler AVR ATMega. “Robot Line Follower” merupakan robot yang di desain untuk mengikuti jejak (bisa garis bisa garis putus2 atau bahkan titik titik). Membuat Robot Line Follower menggunakan prosesor mikrokontroler AVR ATMega 8535 sangat mungkin dan sangat bisa diandalkan. Karena dalam desain suatu Robot Line Follower perlu kita pikirkan bahwa jejak yang akan di ikuti atau langkah2 yang akan dilakukan Robot Line Follower terhadap track atau lintasan yang di lewati Robot Line Follower tersebut. Dan dari kebutuhan Robot Line Follower tersbut feature2 yang dimiliki oleh mikrokontroler AVR ATMega 8535 sangat mencukupi dan memenuhi kebutuhan dari Robot Line Follower. dalam artikel Robot Line Follower dengan AVR ATMega8535 ini saya membuat coretan sederhana yang harus dimiliki oleh Robot Line Follower.
Blok Diagram Robot Line Follower dengan AVR ATMega8535
Fungsi bagian Blok Diagram Robot Line Follower dengan AVR ATMega 8535
- Sensor pada Robot Line Follower dapat menggunakan foto dioda atau foto transistor, bagian ini berfungsi mendeteksi keberadaan lintasan track.
- Keypad, Bagian ini berupa tombol yang berfungsi untuk start/stop Robot Line Follower dan sebagai pemilih konfigurasi seting Robot Line Follower terhadap medan yang di akan di lalui.
- Display, merupakan bagian yang berfungsi untuk menampilkan pilihan seting dan hasil seting (cukup itu saja yg perlu di tampilan) bagian ini bisa menggunakan LCD atau penampil 7 segmen.
- Driver Motor, bagian ini berupa rangkaian H Bridge driver motor DC. Bagian ini yang mengendalikan putaran motor secara langsun. Bagian ini merupakan interface anatara mikrokontroler AVR ATMega dengan motor DC. Saya suka menggunakan IC keluarga L298 untuk driver motor.
- Mikrokontroler AVR ATMega8535, bagian ini merupakan bagian yang menentukan kemana robot akan di bawa berdasarkan data dari sensor. Bagian ini yang mengatur langkah2 Robot Line Follower dalam menaklukan lintasan.
Sensor, dapat dianalogikan sebagai ‘mata’ sebuah robot yang berfungsi untuk ‘membaca’ garis hitam dari track robot atau sebaliknya. Sehingga robot mampu mengetahui kapan dia akan berbelok ke kanan, kapan dia berbelok ke kiri dan kapan dia berhenti. Sensor yang dipakai biasanya photo reflector,LDR (Light Dependent Resistor), Photo Dioda, dan Photo Transistor – yang dipasang dua atau lebih dibagian depan bawah robot line follower. Ada juga yang menggunakan kamera sebagi sensor (atau image sensor) agar resolusi pembacaan garis lebih tinggi, sehingga menjadikan gerakan robot lebih akurat.
Rangkaian Sensor Robot Line Follower Dengan AVR ATMega
Prinsip kerja dari sensor tersebut sederhana, Ketika transmitter (infrared) memancarkan cahaya ke bidang berwarna putih, cahaya akan dipantulkan kembali ke bagian receiver oleh bidang berwarna putih tersebut dan sebaliknya. Hal ini memberikan perubahan level tegangan pada output bagian receiver, tetapi biasanya perubahan tegangan tersebut belum bisa di terima sebagai level logika TTL. Agar mampu dibaca oleh mikrokontroler, maka tegangan sensor harus disesuaikan dengan level tegangan TTL yaitu 0 – 1 volt untuk logika 0 dan 3 – 5 volt untuk logika 1. Hal ini bisa dilakukan dengan memasang operational amplifier yang difungsikan sebagai komparator seperti terlihat pada gambar diatas.
Op Amp yang digunakan sebagai komparator adalah IC LM324, karena IC tersebut dapat bekerja di range VCC 5 Volt dan terdapat 4 buah Op Amp dalam 1 IC yang sesuai dengan jumlah Sensor yang digunakan. Sensitifitas sensor ini dapat di atur melalui R9 yang berfungsi mengatur titik referensi Komparator.
Membuat Robot Line Follower Dengan AVR
Membuat Robot Pencari Api Dengan Mikrokontroler ATMEGA 8535
Api bisa jadi temen kadang juga bisa jadi musuh, nah kali ini api akan jadi musuh dalam permainan ini. Nama permainannya “PEMUSNAH API”Yuk kita simak bagaimana api dimusnahkan, eitss!!! Terlalu ga pas, maksudnya adalah bagaimana api di padamkan oleh sebuah robot gitu.
Pertaman-tama siapkan komponen utama berikut:
Untuk komponen tambahan, ntr aja karna kita bisa cari di OM GOOGLE kok
Komponen-komponen robot:
1. ATMEGA 8535
2. Sensor UVtron (mendeteksi api)
3. Sensor ultrasonic (mendeteksi dinding)
4. LDR (mendeteksi cahaya api)
5. Motor DC (kanan dan kiri)
6. LCD 16×2
Cara kerjanya:
Ketika tidak ada api maka robot akan diam dan sensor api mendeteksi keadaan disekitarnya. ketika ada api robot akan berputar mencari dimana posisi api, setelah posisi api tepat di depan robot maka robot akan berjalan maju hingga mendekati api dan meniupnya hingga padam. Jika api dipindahkan tiba-tiba atau terlalu jauh maka robot akan kembali mencari posisi api tersebut.
Program:
Berikut ini adalah script untuk robot pencari api, project ini dibuat dalam rangka pembelajaran, jadi mohon maaf kalo masih kurang sempurna.
Pemprograman menggunakan Codevision AVR yang mendukung pemprograman bahasa C.
———————————————————————————————–
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port=0×18 ;PORTB
#endasm
#include <lcd.h>
#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 2
#define ADC_VREF_TYPE 0×60
#define pwm_kiri OCR1A
#define arah_kiri1 PORTD.0
#define arah_kiri2 PORTD.1
#define pwm_kanan OCR1B
#define arah_kanan1 PORTD.2
#define arah_kanan2 PORTD.3
#define ut_kiri PINA.6
#define ut_depan PINA.5
#define ut_kanan PINA.4
#define uvtron PINA.3
#define kipas PORTD.7
unsigned char api,api_old1,api_old2;
unsigned int adc_data[30],count;
unsigned int adc0,adc1,adc2,adc0_old,adc1_old,adc2_old;
unsigned char ratus,puluh,satuan;
unsigned char k,adc_lengkap,buffer[30];
static unsigned char input_index=0;
void cek_adc();
void baca_adc();
void baca_sensor_api();
void mundur();
void maju();
void berhenti();
void belok_kiri();
void belok_kanan();
interrupt [ADC_INT] void adc_isr(void)
{
adc_data[count]=ADCH;
if(++input_index>2) input_index=0;
if (++count > (29))
{
count=0;
input_index=0;
adc_lengkap=1;
return;
}
ADMUX=(FIRST_ADC_INPUT|ADC_VREF_TYPE)+input_index;
ADCSRA|=0×40;
}
void main(void)
{
PORTA=0xFF;
DDRA=0×00;
PORTB=0×00;
DDRB=0×00;
PORTC=0×00;
DDRC=0xFF;
PORTD=0x7F;
DDRD=0xFF;
TCCR0=0×00;
TCNT0=0×00;
OCR0=0×00;
TCCR1A=0xA3;
TCCR1B=0x0D;
TCNT1H=0×00;
TCNT1L=0×00;
ICR1H=0×00;
ICR1L=0×00;
OCR1AH=0×00;
OCR1AL=0×00;
OCR1BH=0×00;
OCR1BL=0×00;
ASSR=0×00;
TCCR2=0×00;
TCNT2=0×00;
OCR2=0×00;
MCUCR=0×00;
MCUCSR=0×00;
TIMSK=0×00;
ACSR=0×80;
SFIOR=0×00;
ADCSRA=0x8F;
SFIOR&=0x0F;
lcd_init(16);
#asm(“sei”)
adc0_old=0;
adc1_old=0;
adc2_old=0;
api_old1=0;
api_old2=0;
while (1)
{
target1: if(ut_kiri==1 && ut_kanan==1 && ut_depan==1)
{
mundur();
}
else if(ut_kiri==1 && ut_kanan==1)
{
mundur();
}
else if(ut_kiri==1 && ut_depan==1)
{
mundur();
delay_ms(1000);
belok_kanan();
delay_ms(1000);
}
else if(ut_kanan==1 && ut_depan==1)
{
mundur();
delay_ms(1000);
belok_kiri();
delay_ms(1000);
}
else if(ut_kiri==1)
{
belok_kanan();
}
else if(ut_depan==1)
{
mundur();
}
else if(ut_kanan==1)
{
belok_kiri();
}
else if((ut_depan==0)&&(ut_kiri==0)&&(ut_kanan==0))
{
berhenti();
goto target2;
}
target2: for(k=1; k<=5;k++)
{
baca_sensor_api();
}
if(api_old1>=1 && api_old2>=1)
{
lcd_gotoxy(0,0);
lcd_putsf(“ADA-API “);
api=0;
goto target3;
}
else if(api_old1<1 && api_old2<1)
{
lcd_gotoxy(0,0);
lcd_putsf(“TIDAK ADA-API “);
goto target1;
}
target3: cek_adc();
if(adc0_old<=adc1_old && adc0_old<=adc2_old)
{
belok_kanan();
goto target2;
}
else if(adc2_old<=adc0_old && adc2_old<=adc1_old)
{
belok_kiri();
goto target2;
}
else if(adc1_old<=adc0_old && adc1_old<=adc2_old)
{
maju();
if(ut_depan==1)
{
for(k=1; k<=5;k++)
{
baca_sensor_api();
}
if((api_old1>=5 && api_old2>=5))
{
lcd_gotoxy(0,0);
lcd_putsf(“ADA-API “);
maju();
delay_ms(500);
berhenti();
kipas=1;
delay_ms(500);
kipas=0;
delay_ms(5000);
api=0;
for(k=1; k<=5;k++)
{
baca_sensor_api();
}
if((api_old1>=5 && api_old2>=5))
{
lcd_gotoxy(0,0);
lcd_putsf(“MASIH ADA-API “);
api=0;
}
else goto target1;
cek_adc();
if(adc1_old<=adc0_old && adc1_old<=adc2_old)
{
goto target4;
}
}
}
}
goto target3;
target4: lcd_gotoxy(0,0);
lcd_putsf(“API JAUH “);
delay_ms(5000);
cek_adc();
if(adc1_old>=adc0_old && adc1_old>=adc2_old)
{
goto target1;
}
};
}
void cek_adc(void)
{
ADMUX=(FIRST_ADC_INPUT|ADC_VREF_TYPE)+input_index;
ADCSRA|=0×40;
puter: if(adc_lengkap!=1) goto puter;
adc_lengkap=0;
baca_adc();
}
void baca_adc(void)
{
adc0=(adc0_old+adc_data[0]+adc_data[3]+adc_data[6]+adc_data[9]+adc_data[12]
+adc_data[15]+adc_data[18]+adc_data[21]+adc_data[24])/10;
adc0_old=adc0;
ratus=adc0/100; adc0%=100;
puluh=adc0/10; adc0%=10;
satuan=adc0%10;
lcd_gotoxy(0,1);
sprintf(buffer, “%d%d%d “,ratus,puluh,satuan);
lcd_puts(buffer);
adc1=(adc1_old+adc_data[1]+adc_data[4]+adc_data[7]+adc_data[10]+adc_data[13]
+adc_data[16]+adc_data[19]+adc_data[22]+adc_data[25])/10;
adc1_old=adc1;
ratus=adc1/100; adc1%=100;
puluh=adc1/10; adc1%=10;
satuan=adc1%10;
lcd_gotoxy(5,1);
sprintf(buffer, “%d%d%d “,ratus,puluh,satuan);
lcd_puts(buffer);
adc2=(adc2_old+adc_data[2]+adc_data[5]+adc_data[8]+adc_data[11]+adc_data[14]
+adc_data[17]+adc_data[20]+adc_data[23]+adc_data[26])/10;
adc2_old=adc2;
ratus=adc2/100; adc2%=100;
puluh=adc2/10; adc2%=10;
satuan=adc2%10;
lcd_gotoxy(10,1);
sprintf(buffer, “%d%d%d “,ratus,puluh,satuan);
lcd_puts(buffer);
}
void baca_sensor_api(void)
{
unsigned char i;
for(i=0;i<10;i++)
{
if(uvtron==0)
{
api++;
}
delay_ms(10);
}
api_old1=api;
api_old2=api_old1;
}
void maju(void)
{
lcd_gotoxy(0,0);
lcd_putsf(“ JALAN MAJU “);
pwm_kiri=0x1FFF;
pwm_kanan=0x1FFF;
arah_kiri1=1;
arah_kanan1=1;
arah_kiri2=0;
arah_kanan2=0;
delay_ms(10);
}
void mundur(void)
{
lcd_gotoxy(0,0);
lcd_putsf(“ JALAN MUNDUR “);
pwm_kiri=0x1FFF;
pwm_kanan=0x1FFF;
arah_kiri2=1;
arah_kanan2=1;
arah_kiri1=0;
arah_kanan1=0;
delay_ms(10);
}
void berhenti(void)
{
pwm_kiri=0;
pwm_kanan=0;
arah_kiri1=0;
arah_kanan1=0;
arah_kiri2=0;
arah_kanan2=0;
delay_ms(10);
}
void belok_kiri(void)
{
lcd_gotoxy(0,0);
lcd_putsf(“ BELOK KIRI “);
pwm_kiri=0x1FFF;
pwm_kanan=0x1FFF;
arah_kiri2=0;
arah_kanan1=0;
arah_kiri1=1;
arah_kanan2=1;
delay_ms(10);
}
void belok_kanan(void)
{
lcd_gotoxy(0,0);
lcd_putsf(“ BELOK KANAN “);
pwm_kiri=0x1FFF;
pwm_kanan=0x1FFF;
arah_kiri1=0;
arah_kanan2=0;
arah_kiri2=1;
arah_kanan1=1;
delay_ms(10);
}
———
Membuat Robot Pencari Api Dengan Mikrokontroler ATMEGA 8535
1. Struktur penulisan program
2. Tipe data
3. Deklarasi variabel & konstanta
Statement adalah setiap operasi dalam pemrograman, harus diakhiri dengan [ ; ] atau [ } ]. Statement tidak akan dieksekusi bila diawali dengan tanda [ // ] untuk satu baris. Lebih dari 1 baris gunakan pasangan [ /* ] dan [ */ ]. Statement yang tidak dieksekusi disebut juga comments / komentar. Contoh:
5. Function Function adalah bagian program yang dapat dipanggil oleh program utama. Penulisan :
6. Conditional statement dan looping if else : digunakan untuk penyeleksian kondisi
7. Operasi logika dan biner
Ditulis oleh: Tim Prasimax | |||||||||
Pemrograman Bahasa C untuk AVR
Rangkaian Sistem Minimum AVR 8535
Sistem minimum (sismin) mikrokontroler adalah rangkaian elektronik minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini kemudian bisa dihubungkan dengan rangkaian lain untuk menjalankan fungsi tertentu. Di keluarga mikrokontroler AVR, seri 8535 adalah salah satu seri yang sangat banyak digunakan.
Untuk membuat rangkaian sismin Atmel AVR 8535 diperlukan beberapa komponen yaitu:
Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog (fasilitas ADC) di port A. Gambar rangkaiannya adalah sebagai berikut.
Ditulis oleh: Tim Prasimax
Untuk membuat rangkaian sismin Atmel AVR 8535 diperlukan beberapa komponen yaitu:
- IC mikrokontroler ATmega8535
- 1 XTAL 4 MHz atau 8 MHz (XTAL1)
- 3 kapasitor kertas yaitu dua 22 pF (C2 dan C3) serta 100 nF (C4)
- 1 kapasitor elektrolit 4.7 uF (C12) 2 resistor yaitu 100 ohm (R1) dan 10 Kohm (R3)
- 1 tombol reset pushbutton (PB1)
Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog (fasilitas ADC) di port A. Gambar rangkaiannya adalah sebagai berikut.
Ditulis oleh: Tim Prasimax
Rangkaian Sistem Minimum AVR 8535
Arsitektur Mikrokontroler AVR
Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta sudah menerapkan single level pipelining. Selain itu mikrokontroler AVR juga mengimplementasikan RISC (Reduced Instruction Set Computing) sehingga eksekusi instruksi dapat berlangsung sangat cepat dan efisien.
Blok sistem mikrokontroler AVR adalah sebagai berikut.
Salah satu seri mikrokontroler AVR yang banyak menjadi andalan saat ini adalah tipe ATtiny2313 dan ATmega8535. Seri ATtiny2313 banyak digunakan untuk sistem yang relatif sederhana dan berukuran kecil. Berikut adalah feature-feature mikrokontroler seri ATtiny2313.
MEMORY MAP MIKROKONTROLER AVR
PENJELASAN FUNGSI PIN MIKROKONTROLER AVR
IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan. Gambar salah satu bentuk IC seri mikrokontroler AVR ATmega8535 dapat dilihat berikut.
Berikut adalah penjelasan fungsi tiap kaki.
A. Port A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D converter.
B. Port B
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
C. Port C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2.
D. Port D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
E. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset.
F. XTAL1
XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit.
G. XTAL2
XTAL2 adalah output dari inverting oscillator amplifier.
H. AVcc
Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.
I. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
J. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah.
Blok sistem mikrokontroler AVR adalah sebagai berikut.
Salah satu seri mikrokontroler AVR yang banyak menjadi andalan saat ini adalah tipe ATtiny2313 dan ATmega8535. Seri ATtiny2313 banyak digunakan untuk sistem yang relatif sederhana dan berukuran kecil. Berikut adalah feature-feature mikrokontroler seri ATtiny2313.
- Kapasitas memori Flash 2 Kbytes untuk program
- Kapasitas memori EEPROM 128 bytes untuk data
- Maksimal 18 pin I/O
- 8 interrupt
- 8-bit timer
- Analog komparator
- On-chip oscillator
- Fasilitas In System Programming (ISP)
- Memori Flash 8 Kbytes untuk program
- Memori EEPROM 512 bytes untuk data
- Memori SRAM 512 bytes untuk data
- Maksimal 32 pin I/O
- 20 interrupt
- Satu 16-bit timer dan dua 8-bit timer
- 8 channel ADC 10 bit
- Komunikasi serial melalui SPI dan USART
- Analog komparator
- 4 I/O PWM
- Fasilitas In System Programming (ISP)
MEMORY MAP MIKROKONTROLER AVR
PENJELASAN FUNGSI PIN MIKROKONTROLER AVR
IC mikrokontroler dikemas (packaging) dalam bentuk yang berbeda. Namun pada dasarnya fungsi kaki yang ada pada IC memiliki persamaan. Gambar salah satu bentuk IC seri mikrokontroler AVR ATmega8535 dapat dilihat berikut.
A. Port A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal analog bagi A/D converter.
B. Port B
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
| Port Pin | Fungsi Khusus |
| PB0 | T0 = timer/counter 0 external counter input |
| PB1 | T1 = timer/counter 0 external counter input |
| PB2 | AIN0 = analog comparator positive input |
| PB3 | AIN1 = analog comparator negative input |
| PB4 | SS = SPI slave select input |
| PB5 | MOSI = SPI bus master output / slave input |
| PB6 | MISO = SPI bus master input / slave output |
| PB7 | SCK = SPI bus serial clock |
C. Port C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif sebagai oscillator untuk timer/counter 2.
D. Port D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input, atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif khusus seperti yang dapat dilihat dalam tabel berikut.
| Port Pin | Fungsi Khusus |
| PD0 | RDX (UART input line) |
| PD1 | TDX (UART output line) |
| PD2 | INT0 ( external interrupt 0 input ) |
| PD3 | INT1 ( external interrupt 1 input ) |
| PD4 | OC1B (Timer/Counter1 output compareB match output) |
| PD5 | OC1A (Timer/Counter1 output compareA match output) |
| PD6 | ICP (Timer/Counter1 input capture pin) |
| PD7 | OC2 (Timer/Counter2 output compare match output) |
E. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine cycle maka system akan di-reset.
F. XTAL1
XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit.
G. XTAL2
XTAL2 adalah output dari inverting oscillator amplifier.
H. AVcc
Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc melalui lowpass filter.
I. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.
J. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog ground yang terpisah.