- Potrebne komponente:
- Kružni dijagram:
- 8051 Mikrokontroler:
- HC-05 Bluetooth modul:
- L293D IC upravljački program motora:
- Rad robota kojim upravlja Android telefon:
- Objašnjenje koda:
U ovom ćemo projektu izraditi robota kontroliranog Android telefonom pomoću 8051 mikrokontrolera i Bluetooth modula. Robot je dizajniran pomoću istosmjernih motora, a smjer istosmjernih motora kontrolirat će se naredbama primljenim iz android aplikacije. Status robota šalje se natrag u Android aplikaciju. Ovaj projekt također će pomoći u povezivanju HC-05 Bluetooth modula s 8051 mikrokontrolerom. Već smo koristili Bluetooth modul za kontrolu kućanskih aparata s uređajem 8051.
Potrebne komponente:
- 8051 mikrokontroler (AT89S52)
- HC-05 Bluetooth modul
- L293D vozač motora
- Robot šasija
- Istosmjerni motori (2)
- Kotači (2)
- Točkić kotača
- Žice kratkospojnika
- Android terminal za Bluetooth terminal
Kružni dijagram:


8051 Mikrokontroler:
8051 mikrokontroler je 8-bitni mikrokontroler koji ima 128 bajta RAM-a na čipu, 4K bajta na ROM-u čipa, dva tajmera, jedan serijski port i četiri 8-bitna porta. 8052 mikrokontroler je produžetak 8051 mikrokontrolera. U ovom projektu koristimo mikrokontroler AT89S52. Tablica u nastavku prikazuje usporedbu 8051 člana obitelji.
|
Značajka |
8051 |
8052 |
|
ROM (u bajtovima) |
4K |
8K |
|
RAM (bajtovi) |
128 |
256 |
|
Tajmeri |
2 |
3 |
|
I / O igle |
32 |
32 |
|
Serijski priključak |
1 |
1 |
|
Izvori prekida |
6 |
8 |
HC-05 Bluetooth modul:

HC-05 je serijski Bluetooth modul. Može se konfigurirati pomoću AT naredbi. Može raditi u tri različite konfiguracije (Master, Slave, Loop back). U našem projektu koristit ćemo ga kao roba. Značajke HC-05 modula uključuju,
- Tipična osjetljivost od -80dBm.
- Zadana brzina prijenosa: 9600 bps, 8 podatkovnih bitova, 1 zaustavni bit, bez pariteta.
- Automatsko uparivanje pin koda: zadani PIN kod "1234"
- Ima 6 pinova.
- Vcc i Gnd pinovi koriste se za napajanje HC-05.
- Pribadače Tx i Rx koriste se za komunikaciju s mikrokontrolerom.
- Omogućite iglu za aktiviranje HC-05 modula. kada je nizak, modul je onemogućen
- Državna igla djeluje na indikator statusa. Kad nije uparen / povezan s bilo kojim drugim Bluetooth uređajem, LED neprekidno trepće. Kad je povezan / uparen s bilo kojim drugim Bluetooth uređajem, LED trepće s konstantnim kašnjenjem od 2 sekunde.
L293D IC upravljački program motora:
L293D je dvostruka H-pokretačka sklopka motora. To djeluje kao strujno pojačalo, a izlaz L293D pokreće istosmjerne motore. Sadrži dva ugrađena kruga H-mosta. U uobičajenom načinu rada može istovremeno voziti dva istosmjerna motora u oba smjera. Tablica u nastavku prikazuje pin opis L293D IC. Evo nekoliko projekata koji koriste L293D Motor Driver.


Opis pribadače
|
Pin br. |
Ime |
Funkcija |
|
1 |
Omogućite 1,2 |
Omogućite iglu za motor 1 |
|
2 |
Ulaz 1 |
Ulaz 1 za motor 1 |
|
3 |
Izlaz 1 |
Izlaz 1 za motor 1 |
|
4 |
Gnd |
Uzemljenje (0V) |
|
5 |
Gnd |
Uzemljenje (0V) |
|
6 |
Izlaz 2 |
Izlaz 2 za motor 1 |
|
7 |
Ulaz 2 |
Ulaz 2 za motor 1 |
|
8 |
Vcc 2 |
Napon napajanja za motore (5V) |
|
9 |
Omogućite 3,4 |
Omogućite iglu za motor 1 |
|
10 |
Ulaz 3 |
Ulaz 1 za motor 2 |
|
11 |
Izlaz 4 |
Izlaz 1 za motor 2 |
|
12 |
Gnd |
Uzemljenje (0V) |
|
13 |
Gnd |
Uzemljenje (0V) |
|
14 |
Izlaz 4 |
Izlaz 2 za motor 2 |
|
15 |
Ulaz 4 |
Ulaz 2 za motor 2 |
|
16 |
Vcc 1 |
Napon napajanja (5V) |
Rad robota kojim upravlja Android telefon:
U ovom robotu kojim upravlja pametni telefon, korisnik android aplikacije šalje podatke mikrokontroleru 8051 putem HC-05 modula. Primljeni podaci uspoređuju se u mikrokontroleru 8051 i odluka se donosi u skladu s tim. Donja tablica prikazuje smjer motora i status robota za različite primljene znakove.
|
Primljeni lik |
Motor 1 |
Motor 2 |
Status robota |
|
f |
Naprijed |
Naprijed |
Kreće se naprijed |
|
b |
Unazad |
Unazad |
Pomiče se unatrag |
|
r |
Naprijed |
Unazad |
Pomiče se udesno |
|
l |
Unazad |
Naprijed |
Pomiče se lijevo |
|
s |
Isključeno |
Isključeno |
Zaustavio se |

Aplikacija Bluetooth terminala omogućuje nam oponašanje Bluetooth terminala. Ova aplikacija podržava dvosmjernu komunikaciju i kompatibilna je s većinom uređaja.
Sljedeći koraci pokazuju kako instalirati i koristiti ovu aplikaciju.
1. Preuzmite i instalirajte aplikaciju Bluetooth terminala na svoj android telefon. Aplikaciju možete preuzeti s donje poveznice.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Nakon instalacije aplikacije otvorite je i uključite Bluetooth.
3. Odaberite uređaj i kliknite opciju povezivanja. Nakon uspješne veze možemo započeti slanje podataka na HC-05 modul.


Provjerite dolje objašnjenje koda da biste vidjeli kako znak šalje i prima mikrokontroler 8051 za okretanje potrebnih motora.
Objašnjenje koda:
Kompletni C program i demonstracijski video za ovaj projekt dan je na kraju ovog projekta. Kôd je podijeljen na male značajne dijelove i objašnjen u nastavku.
Za L293D povezivanje s 8051 mikrokontrolerom moramo definirati pinove na kojima je L293D povezan s 8051 mikrokontrolerom. In1 pin motora 1 spojen je na P2.0, In2 pin motora 1 spojen je na P2.1, In1 pin motora 2 spojen je na P2.2, In2 pin motora 2 spojen je na P2.3
sbit m1f = P2 ^ 0; // in1 pin motora1 sbit m1b = P2 ^ 1; // in2 pin motora1 sbit m2f = P2 ^ 2; // in1 pin motora2 sbit m2b = P2 ^ 3; // in2 pin motora2
Dalje moramo definirati neke funkcije koje se koriste u programu. Funkcija odgode koristi se za stvaranje određenog vremenskog kašnjenja. Txdata funkcija koristi se za prijenos podataka kroz serijski priključak. Rxdata funkcija koristi se za primanje podataka iz serijskog porta.
odgoda praznine (nepotpisan int); // funkcija za stvaranje kašnjenja char rxdata (void); // funkcija za primanje znaka kroz serijski priključak 8051 void txdata (nepotpisani znak); // funkcija za slanje znaka kroz serijski priključak 8051
U ovom dijelu koda konfigurirat ćemo mikrokontroler 8051 za serijsku komunikaciju. Registar TMOD učitava se s 0x20 za tajmer 1, način 2 (automatsko ponovno učitavanje). Registar SCON učitan je s 0x50 za 8 podatkovnih bitova, 1 zaustavni bit i omogućen prijem. TH1 registar opterećen je 0xfd za brzinu prijenosa od 9600 bitova u sekundi. TR1 = 1 koristi se za pokretanje mjerača vremena.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; U ovom dijelu koda, vraćeni znak funkcije rxdata pohranjuje se u varijablu 's' za daljnju upotrebu.
s = rxdata (); // primanje serijskih podataka s bluetooth modula hc-05
U ovom dijelu koda moramo usporediti primljeni znak s unaprijed dodijeljenim znakovima za različite smjerove. Ako je primljeni znak 'f', tada se robot mora kretati u smjeru naprijed. To se postiže izradom m1f, m2f pinova visokim i m1b, m2b pinova niskim. Jednom kad je to učinjeno, sljedeće moramo poslati status robota u android aplikaciju. To se radi uz pomoć funkcije txdata . Isti se postupak ponavlja za različite primljene likove i odluka se donosi u skladu s tim. Tablica 1. prikazuje različite vrijednosti m1f, m1b, m2f, m2b za različite smjerove kretanja robota.
if (s == 'f') // pomaknite oba motora u smjeru naprijed {m1f = 1; kašnjenje (1); m1b = 0; kašnjenje (1); m2f = 1; kašnjenje (1); m2b = 0; kašnjenje (1); for (i = 0; msg1! = '\ 0'; i ++) // pošalji status robota u android aplikaciju putem bluetooth-a {txdata (msg1); }}
|
m1f |
m1b |
m2f |
m2b |
Zakretanje motora 1 |
Rotacija motora 2 |
Status robota |
|
1 |
0 |
1 |
0 |
naprijed |
naprijed |
Ići naprijed |
|
0 |
1 |
0 |
1 |
obrnuti |
obrnuti |
Kretanje unatrag |
|
1 |
0 |
0 |
1 |
naprijed |
obrnuti |
Krećući se desno |
|
0 |
1 |
1 |
0 |
obrnuti |
naprijed |
Pomičući se lijevo |
|
0 |
0 |
0 |
0 |
zaustavio |
zaustavio |
zaustavio |
To je da možete rotirati automobil Robot u bilo kojem smjeru upravljajući pomoću četiri motora pomoću mikrokontrolera 8051. Ovim robotom se također može upravljati pomoću DTMF-a s 8051, ako nemate android telefon.
Ovdje također provjerite sve projekte robotike.
