This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

2011/05/10

Cara Import dan Transfer Data Blog dari Blogger ke WordPress

Cara Import dan Transfer Data Blog dari Blogger ke WordPress

berikut ini kami akan menjelaskan tata cara bagaimana Import Data Blogger anda ke atau dipindahkan ke Blog WordPress pada WordPress.com atau WordPress Script pada hosting anda dengan mudah. atau dengan katalain memindahkan data dari blogger ke wordpress.  ikuti langkah-langkah berikut:
  • Untuk awal, bukalah blogger { kami menggukankan blogger dalam Bahasa Indonesia } serta wordpress admin anda
  • lalu jika anda sudah masuk dan berada dalam Blogger admin anda silakan masuk pada halaman Pengaturan Blogger.
  • jika sudah masuk pada halaman Pengaturan pada Blogger silakan anda klik atau pilih link Ekspor Blog dan anda akan dibawa ke halaman Ekspor Blog Blogger lalu anda klik Unduh untuk mengUnduh atau download semua data pada blogger anda lalu simpan baik-baik file tersebut.
Halaman Ekspor Blogger
Halaman Ekspor Blogger
Halaman Unduh Blogger
Halaman Unduh Blogger
  • lalu beralih ke ke WordPress, silakan anda masuk kedalam wordpress admin anda, lalu pilih Tools atau Perkakas ( WordPress dalam bahasa Indonesia }.
  • jika sudah masuk silakan anda pilih menu Import, lalu pilih Link Blogger (Impor tulisan, komentar dan pengguna dari sebuah blog Blogger.)
  • pada halaman Impor Blogger pada halaman Import WordPress silakan anda pilih berkas data blogger sebelumnya yang sudah anda unduh untuk di upload, jika sudah silakan anda klik unggah.
  • selesai!! dan selamat semua data Impor tulisan, komentar dan pengguna dari sebuah blog Blogger anda sudah berpindah ke dalam Blog WordPress baru anda.
selamat mencoba :)

Robotic Petani: Prospero






  • 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!)

2011/04/30

WinToFlash

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

Membuat Robot Line Follower Dengan AVR

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 Pencari Api Dengan Mikrokontroler ATMEGA 8535

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);
}
———

Pemrograman Bahasa C untuk AVR

 articles.jpgBahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler. Bahasa ini sudah merupakan high level language, dimana memudahkan programmer menuangkan algoritmanya. Untuk mengetahui dasar bahasa C dapat dipelajari sebagai berikut.
1. Struktur penulisan program
#include < [library1.h] > // Opsional
#include < [library2.h] > // Opsional
#define [nama1] [nilai] ; // Opsional
#define [nama2] [nilai] ; // Opsional
[global variables] // Opsional
[functions] // Opsional
void main(void) // Program Utama
{
[Deklarasi local variable/constant]
[Isi Program Utama]
}

2. Tipe data
  • char : 1 byte ( -128 s/d 127 )
  • unsigned char : 1 byte ( 0 s/d 255 )
  • int : 2 byte ( -32768 s/d 32767 )
  • unsigned int : 2 byte ( 0 s/d 65535 )
  • long : 4 byte ( -2147483648 s/d 2147483647 )
  • unsigned long : 4 byte ( 0 s/d 4294967295 )
  • float : bilangan desimal
  • array : kumpulan data-data yang sama tipenya.

3. Deklarasi variabel & konstanta
  • Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah.
    Penulisan : [tipe data] [nama] = [nilai] ;
  • Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah.
    Penulisan : const [nama] = [nilai] ;
  • Tambahan:
    Global variabel/konstanta yang dapat diakses di seluruh bagian program.
    Local variabel/konstanta yang hanya dapat diakses oleh fungsi tempat dideklarasikannya.
4. Statement
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:
suhu=adc/255*100; //contoh rumus perhitungan suhu
 
5. Function
Function adalah bagian program yang dapat dipanggil oleh program utama.
Penulisan :
[tipe data hasil] [nama function]([tipe data input 1],[tipe data input 2])
{
[statement] ;
}
 
6. Conditional statement dan looping
if else : digunakan untuk penyeleksian kondisi
if ( [persyaratan] ) {
[statement1];
[statement2];
}
else {
[statement3];
[statement4];
}
for : digunakan untuk looping dengan jumlah yang sudah diketahui
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) {
[statement1];
[statement2];
}
while : digunakan untuk looping jika dan salama memenuhi syarat tertentu
while ( [persyaratan] ) {
[statement1];
[statement2];
}
do while : digunakan untuk looping jika dan salama memenuhi syarat tertentu, namun min 1 kali
do {
[statement1];
[statement2];
}
while ( [persyaratan] )
switch case : digunakan untuk seleksi dengan banyak kondisi
switch ( [nama variabel] ) {
case [nilai1]: [statement];
break;
case [nilai2]: [statement];
break;
}

7. Operasi logika dan biner
  • Logika
    AND :&&
    NOT : !
    OR : ||
  • Biner
    AND : &
    OR : |
    XOR : ^
    Shift right: >>
    Shift left : <<
    Komplemen : ~
8. Operasi relasional (perbandingan)
  • Sama dengan : ==
  • Tidak sama dengan : !=
  • Lebih besar : >
  • Lebih besar sama dengan : >=
  • Lebih kecil : <
  • Lebih kecil sama dengan : <=
9. Operasi aritmatika
  • + , - , * , / : tambah,kurang,kali,bagi
  • += , -= , *= , /= : nilai di sebelah kiri operator di tambah/kurang/kali/bagi dengan nilai di sebelah kanan operator
  • % : sisa bagi
  • ++ , -- : tambah satu (increment) , kurang satu (decrement)
  • Contoh :
    a = 5 * 6 + 2 / 2 -1 ; maka nilai a adalah 30
    a *= 5 ; jika nilai awal a adalah 30, maka nilai a = 30x5 = 150.
    a += 3 ; jika nilai awal a adalah 30, maka nilai a = 30+5 = 33.
    a++ ; jika nilai awal a adalah 5 maka nilai a = a+1 = 6.
    a-- ; jika nilai awal a adalah 5 maka nilai a = a-1 = 4.
 
Ditulis oleh: Tim Prasimax

Rangkaian Sistem Minimum AVR 8535

Rangkaian Sistem Minimum AVR 8535 solusi.jpgSistem 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:
  • 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) 
Selain itu tentunya diperlukan power suply yang bisa memberikan tegangan 5V DC.
Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog (fasilitas ADC) di port A. Gambar rangkaiannya adalah sebagai berikut.
 
Active Image
 
 
Ditulis oleh: Tim Prasimax