- Komponen yang Diperlukan:
- Rajah Litar:
- 8051 Pengawal Mikro:
- Modul Bluetooth HC-05:
- IC Pemandu Motor L293D:
- Mengendalikan Robot Dikawal Telefon Android:
- Penjelasan kod:
Dalam projek ini kita akan membina robot yang dikendalikan oleh Telefon Android menggunakan 8051 mikrokontroler dan modul Bluetooth. Robot ini dirancang menggunakan motor DC dan arah motor DC akan dikendalikan oleh arahan yang diterima dari aplikasi android. Status robot dihantar kembali ke aplikasi Android. Projek ini juga akan membantu menghubungkan antara modul Bluetooth HC-05 dengan 8051 mikrokontroler. Kami sudah menggunakan modul Bluetooth untuk mengawal perkakas rumah dengan 8051.
Komponen yang Diperlukan:
- 8051 mikrokontroler (AT89S52)
- Modul Bluetooth HC-05
- Pemandu Motor L293D
- Casis robot
- Motor DC (2)
- Roda (2)
- Roda Kastor
- Wayar pelompat
- Aplikasi android terminal Bluetooth
Rajah Litar:
8051 Pengawal Mikro:
8051 mikrokontroler adalah mikrokontroler 8-bit yang mempunyai 128 bita pada cip RAM, bait 4K pada cip ROM, dua pemasa, satu port bersiri dan empat port 8bit. 8052 mikrokontroler adalah lanjutan dari 8051 mikrokontroler. Dalam projek ini kami menggunakan mikrokontroler AT89S52. Jadual di bawah menunjukkan perbandingan 8051 ahli keluarga.
Ciri |
8051 |
8052 |
ROM (dalam bait) |
4K |
8 RIBU |
RAM (bait) |
128 |
256 |
Pemasa |
2 |
3 |
Pin I / O |
32 |
32 |
Pelabuhan bersiri |
1 |
1 |
Mengganggu sumber |
6 |
8 |
Modul Bluetooth HC-05:
HC-05 adalah modul Bluetooth bersiri. Ia dapat dikonfigurasi menggunakan perintah AT. Ia boleh berfungsi dalam tiga konfigurasi yang berbeza (Master, Slave, Loop back). Dalam projek kami, kami akan menggunakannya sebagai hamba. Ciri-ciri modul HC-05 merangkumi,
- Kepekaan -80dBm khas.
- Kadar baud lalai: 9600bps, 8 bit data, 1 bit berhenti, tanpa pariti.
- Kod pin berpasangan automatik: kod pin lalai "1234"
- Ia mempunyai 6 pin.
- Pin Vcc dan Gnd digunakan untuk menghidupkan HC-05.
- Pin Tx dan Rx digunakan untuk berkomunikasi dengan mikrokontroler.
- Aktifkan pin untuk mengaktifkan modul HC-05. apabila rendah, modul dilumpuhkan
- Pin keadaan bertindak penunjuk status. Apabila tidak dipasangkan / disambungkan dengan peranti Bluetooth lain, LED berkedip secara berterusan. Apabila ia disambungkan / dipasangkan dengan peranti Bluetooth lain, maka LED berkelip dengan kelewatan berterusan 2 saat.
IC Pemandu Motor L293D:
L293D adalah IC pemacu motor dual-jambatan. Ini bertindak sebagai penguat semasa, keluaran L293D menggerakkan DC Motor. Ia mengandungi dua litar H-bridge terbina dalam. Dalam mod operasi biasa, ia dapat menggerakkan dua motor dc secara serentak di kedua arah. Jadual di bawah menunjukkan penerangan pin L293D IC. Berikut adalah beberapa projek yang menggunakan Pemacu Motor L293D.
Huraian Pin
Pin No. |
Nama |
Fungsi |
1 |
Aktifkan 1,2 |
Dayakan pin untuk motor 1 |
2 |
Input 1 |
Input 1 untuk motor 1 |
3 |
Keluaran 1 |
Keluaran 1 untuk motor 1 |
4 |
Gnd |
Tanah (0V) |
5 |
Gnd |
Tanah (0V) |
6 |
Keluaran 2 |
Keluaran 2 untuk motor 1 |
7 |
Input 2 |
Input 2 untuk motor 1 |
8 |
Vcc 2 |
Voltan bekalan untuk motor (5V) |
9 |
Aktifkan 3,4 |
Dayakan pin untuk motor 1 |
10 |
Input 3 |
Input 1 untuk motor 2 |
11 |
Keluaran 4 |
Keluaran 1 untuk motor 2 |
12 |
Gnd |
Tanah (0V) |
13 |
Gnd |
Tanah (0V) |
14 |
Keluaran 4 |
Keluaran 2 untuk motor 2 |
15 |
Input 4 |
Input 2 untuk motor 2 |
16 |
Vcc 1 |
Voltan bekalan (5V) |
Mengendalikan Robot Dikawal Telefon Android:
Dalam Robot terkawal Telefon Pintar ini, pengguna aplikasi android menghantar data ke mikrokontroler 8051 melalui modul HC-05. Data yang diterima dibandingkan dalam mikrokontroler 8051 dan keputusan dibuat dengan sewajarnya. Jadual di bawah menunjukkan arah motor dan status robot untuk watak yang berbeza.
Perwatakan yang diterima |
Motor 1 |
Motor 2 |
Status robot |
f |
Ke hadapan |
Ke hadapan |
Melangkah ke hadapan |
b |
Ke belakang |
Ke belakang |
Bergerak ke belakang |
r |
Ke hadapan |
Ke belakang |
Bergerak Ke Kanan |
l |
Ke belakang |
Ke hadapan |
Bergerak ke kiri |
s |
Mati |
Mati |
Dihentikan |
The terminal Bluetooth app membolehkan kita untuk mencontohi terminal Bluetooth. Aplikasi ini menyokong komunikasi dua arah dan aplikasi ini serasi dengan kebanyakan peranti.
Langkah di bawah menunjukkan cara memasang dan menggunakan aplikasi ini.
1. Muat turun dan pasang aplikasi terminal Bluetooth pada telefon android anda. Aplikasi ini boleh dimuat turun dari pautan di bawah.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Setelah memasang aplikasi, buka aplikasi dan hidupkan Bluetooth.
3. Pilih peranti dan klik pada pilihan sambung. Setelah berjaya membuat sambungan, kita dapat mula mengirim data ke modul HC-05.
Periksa Penjelasan Kod di bawah untuk melihat bagaimana watak itu dihantar dan diterima oleh 8051 Mikrokontroler untuk memutar motor yang diperlukan.
Penjelasan kod:
Video program dan demonstrasi C yang lengkap untuk projek ini diberikan pada akhir projek ini. Kod ini dibahagikan kepada potongan kecil yang bermakna dan dijelaskan di bawah.
Untuk penghubung L293D dengan 8051 mikrokontroler, kita harus menentukan pin di mana L293D disambungkan ke 8051 mikrokontroler. In1 pin motor 1 disambungkan ke P2.0, In2 pin motor 1 disambungkan ke P2.1, In1 pin motor 2 disambungkan ke P2.2, In2 pin motor 2 disambungkan ke P2.3
sbit m1f = P2 ^ 0; // in1 pin motor1 sbit m1b = P2 ^ 1; // in2 pin motor1 sbit m2f = P2 ^ 2; // in1 pin motor2 sbit m2b = P2 ^ 3; // in2 pin motor2
Seterusnya kita harus menentukan beberapa fungsi yang digunakan dalam program ini. Fungsi kelewatan digunakan untuk membuat kelewatan masa yang ditentukan. Fungsi Txdata digunakan untuk mengirimkan data melalui port bersiri. Fungsi Rxdata digunakan untuk menerima data dari port bersiri.
kelewatan tidak sah (int tidak ditandatangani); // fungsi untuk membuat penangguhan char rxdata (tidak sah); // fungsi untuk menerima watak melalui port bersiri 8051 txdata void (char tidak ditandatangani); // fungsi untuk menghantar watak melalui port bersiri 8051
Di bahagian kod ini, kita akan mengkonfigurasi mikrokontroler 8051 untuk komunikasi bersiri. Daftar TMOD dimuat dengan 0x20 untuk pemasa 1, mod 2 (tambah nilai automatik). Daftar SCON dimuat dengan 0x50 untuk 8 bit data, 1 bit berhenti dan terima diaktifkan. Daftar TH1 dimuat dengan 0xfd untuk kadar baud 9600 bit sesaat. TR1 = 1 digunakan untuk memulakan pemasa.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; Di bahagian kod ini, watak fungsi rxdata yang dikembalikan disimpan dalam pemboleh ubah untuk penggunaan selanjutnya.
s = rxdata (); // terima data bersiri dari modul bluetooth hc-05
Di bahagian kod ini, kita harus membandingkan watak yang diterima dengan watak yang ditugaskan untuk arah yang berbeza. Sekiranya watak yang diterima adalah 'f', maka robot harus bergerak ke arah ke depan. Ini dicapai dengan menjadikan pin m1f, m2f tinggi dan pin m1b, m2b rendah. Setelah ini selesai, seterusnya kita harus menghantar status robot ke aplikasi android. Ini dilakukan dengan bantuan fungsi txdata . Proses yang sama diulang untuk watak yang diterima dan keputusan diambil dengan sewajarnya. Jadual 1 menunjukkan nilai m1f, m1b, m2f, m2b yang berbeza untuk arah pergerakan robot yang berbeza.
if (s == 'f') // gerakkan kedua-dua motor ke arah hadapan {m1f = 1; kelewatan (1); m1b = 0; kelewatan (1); m2f = 1; kelewatan (1); m2b = 0; kelewatan (1); untuk (i = 0; msg1! = '\ 0'; i ++) // hantar status robot ke aplikasi android melalui bluetooth {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
Putaran motor 1 |
Putaran motor 2 |
Status robot |
1 |
0 |
1 |
0 |
ke hadapan |
ke hadapan |
Melangkah ke hadapan |
0 |
1 |
0 |
1 |
terbalik |
terbalik |
Bergerak ke belakang |
1 |
0 |
0 |
1 |
ke hadapan |
terbalik |
Bergerak ke kanan |
0 |
1 |
1 |
0 |
terbalik |
ke hadapan |
Bergerak ke kiri |
0 |
0 |
0 |
0 |
berhenti |
berhenti |
berhenti |
Ini adalah anda boleh memutar kereta Robot ke arah mana pun dengan mengawal keempat motor menggunakan mikrokontroler 8051. Robot ini juga dapat dikendalikan menggunakan DTMF dengan 8051, jika anda tidak memiliki telefon android.
Lihat juga semua Projek Robotik di sini.