- Nepieciešamās sastāvdaļas:
- Ķēdes shēma:
- 8051 mikrokontrolleris:
- HC-05 Bluetooth modulis:
- L293D motora draivera IC:
- Android tālruņa kontrolēta robota darbība:
- Koda skaidrojums:
Šajā projektā mēs izveidosim Android Phone vadāmu robotu, izmantojot 8051 mikrokontrollerus un Bluetooth moduli. Robots ir veidots, izmantojot līdzstrāvas motorus, un līdzstrāvas motoru virzienu kontrolēs komandas, kas saņemtas no android lietojumprogrammas. Robota statuss tiek nosūtīts atpakaļ uz Android lietotni. Šis projekts palīdzēs arī HC-05 Bluetooth moduļa saskarnei ar 8051 mikrokontrolleriem. Mēs jau izmantojām Bluetooth moduli, lai kontrolētu sadzīves tehniku ar 8051.
Nepieciešamās sastāvdaļas:
- 8051 mikrokontrolleris (AT89S52)
- HC-05 Bluetooth modulis
- L293D motora draiveris
- Robotu šasija
- Līdzstrāvas motori (2)
- Riteņi (2)
- Riteņa ritenis
- Džemperu vadi
- Bluetooth termināļa android lietotne
Ķēdes shēma:
8051 mikrokontrolleris:
8051 mikrokontrolleris ir 8 bitu mikrokontrolleris, kuram ir 128 baiti mikroshēmas RAM, 4K baiti mikroshēmas ROM, divi taimeri, viens sērijas ports un četri 8 bitu porti. 8052 mikrokontrolleris ir 8051 mikrokontrollera paplašinājums. Šajā projektā mēs izmantojam mikrokontrolleru AT89S52. Zemāk esošajā tabulā parādīts 8051 ģimenes locekļa salīdzinājums.
Funkcija |
8051 |
8052 |
ROM (baitos) |
4K |
8 TŪKSTOŠI |
Operatīvā atmiņa (baiti) |
128. |
256. lpp |
Taimeri |
2 |
3 |
I / O tapas |
32 |
32 |
Seriālā osta |
1 |
1 |
Pārtraukt avotus |
6 |
8 |
HC-05 Bluetooth modulis:
HC-05 ir sērijveida Bluetooth modulis. To var konfigurēt, izmantojot AT komandas. Tas var darboties trīs dažādās konfigurācijās (Master, Slave, Loop back). Savā projektā mēs to izmantosim kā vergu. HC-05 moduļa funkcijas ietver,
- Tipiska -80dBm jutība.
- Noklusējuma datu pārraides ātrums: 9600 bps, 8 datu biti, 1 stop bits, bez paritātes.
- Automātiski savienot pin kodu: noklusējuma PIN kods “1234”
- Tam ir 6 tapas.
- HC-05 barošanai tiek izmantotas Vcc un Gnd tapas.
- Tx un Rx tapas tiek izmantotas saziņai ar mikrokontrolleru.
- Iespējojiet tapu, lai aktivizētu HC-05 moduli. kad tas ir zems, modulis tiek atspējots
- Valsts tapa darbojas statusa indikators. Ja tas nav savienots pārī / nav savienots ar kādu citu Bluetooth ierīci, gaismas diode nepārtraukti mirgo. Kad tas ir savienots / savienots pārī ar jebkuru citu Bluetooth ierīci, gaismas diode mirgo ar pastāvīgu kavēšanos 2 sekundes.
L293D motora draivera IC:
L293D ir divējāds H tilta motora draiveris IC. Tas darbojas kā strāvas pastiprinātājs, L293D izeja virza līdzstrāvas motorus. Tas satur divas iebūvētas H tilta ķēdes. Parastā darbības režīmā tas var vienlaikus vadīt divus līdzstrāvas motorus abos virzienos. Zemāk esošajā tabulā parādīts L293D IC tapas apraksts. Šeit ir daži projekti, izmantojot L293D motora draiveri.
Piespraudes apraksts
PIN Nr. |
Nosaukums |
Funkcija |
1 |
Iespējot 1,2 |
Iespējot tapu 1. motoram |
2 |
1. ievade |
1. ieeja 1. motoram |
3 |
1. izeja |
1. izeja 1. motoram |
4 |
Gnd |
Zeme (0V) |
5 |
Gnd |
Zeme (0V) |
6 |
2. izeja |
Motora 1 izeja 2 |
7 |
2. ievade |
2. ieeja 1. motoram |
8 |
Vcc 2 |
Barošanas spriegums motoriem (5V) |
9 |
Iespējot 3,4 |
Iespējot tapu 1. motoram |
10 |
3. ievade |
1. ieeja 2. motoram |
11 |
4. izeja |
Motora 2 izeja 1 |
12 |
Gnd |
Zeme (0V) |
13 |
Gnd |
Zeme (0V) |
14 |
4. izeja |
2. izeja 2. motoram |
15 |
4. ievade |
2. ieeja 2. motoram |
16 |
Vcc 1 |
Barošanas spriegums (5V) |
Android tālruņa kontrolēta robota darbība:
Šajā viedtālruņa kontrolētajā robotā android lietotnes lietotājs nosūta datus uz 8051 mikrokontrolleru, izmantojot HC-05 moduli. Saņemtie dati tiek salīdzināti 8051 mikrokontrollerī, un lēmums tiek pieņemts atbilstoši. Zemāk esošajā tabulā parādīts motoru virziens un robota statuss dažādām saņemtajām rakstzīmēm.
Saņemts raksturs |
Motors 1 |
2. motors |
Robota statuss |
f |
Uz priekšu |
Uz priekšu |
Virzās uz priekšu |
b |
Atpakaļ |
Atpakaļ |
Pārvietojas atpakaļ |
r |
Uz priekšu |
Atpakaļ |
Pārvietojas pa labi |
l |
Atpakaļ |
Uz priekšu |
Pārvietojas pa kreisi |
s |
Izslēgts |
Izslēgts |
Apturēts |
Bluetooth termināls app ļauj sacensties Bluetooth termināli. Šī lietotne atbalsta divvirzienu saziņu, un šī lietotne ir saderīga ar lielāko daļu ierīču.
Tālāk norādītās darbības parāda, kā instalēt un izmantot šo lietotni.
1. Lejupielādējiet un instalējiet Bluetooth termināļa lietotni savā Android tālrunī. Lietotni var lejupielādēt no šīs saites.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Pēc lietotnes instalēšanas atveriet lietotni un ieslēdziet Bluetooth.
3. Atlasiet ierīci un noklikšķiniet uz opcijas Savienot. Pēc veiksmīga savienojuma izveidošanas mēs varam sākt sūtīt datus uz HC-05 moduli.
Pārbaudiet zemāk esošo koda skaidrojumu, lai redzētu, kā rakstzīmi sūta un saņem 8051 mikrokontrolleris, lai pagrieztu nepieciešamos motorus.
Koda skaidrojums:
Pilna C programma un šī projekta demonstrācijas video ir doti šī projekta beigās. Kods ir sadalīts mazos nozīmīgos gabalos un paskaidrots tālāk.
Par L293D sasaistei ar 8051 mikrokontrolleri, mums ir jādefinē adatas, uz kura L293D ir saistīti ar 8051 mikrokontrolleru. Motora 1 In1 tapa ir savienota ar P2.0, In2 1. motora tapa ir pievienota P2.1, Motora 2 In1 tapa ir savienota ar P2.2, Motora 2 In2 tapa ir savienota ar P2.3
sbit m1f = P2 ^ 0; // motora1 tapa1 sbit m1b = P2 ^ 1; // motora1 tapa2 sbit m22 = P2 ^ 2; // motora1 tapa 1 sbit m2b = P2 ^ 3; // motora2 tapā2
Tālāk mums jānosaka dažas funkcijas, kuras tiek izmantotas programmā. Kavēšanās funkcija tiek izmantota, lai izveidotu noteiktu laika aizkavi. Txdata funkcija tiek izmantota datu pārsūtīšanai caur seriālo portu. Rxdata funkciju izmanto, lai saņemtu datus no seriālā porta.
void delay (neparakstīts int); // funkcija aizkaves izveidošanai char rxdata (void); // funkcija rakstzīmes saņemšanai, izmantojot 8051 sērijas portu void txdata (neparakstīta char); // funkcija rakstzīmes nosūtīšanai caur 8051 sērijas portu
Šajā koda daļā mēs konfigurēsim 8051 mikrokontrolleru seriālai saziņai. TMOD reģistrā ir taimeris 1, 2. režīms (automātiskā atkārtota ielāde) ar 0x20. SCON reģistrā ir ielādēts 0x50 8 datu bitiem, 1 stop bits un iespējota saņemšana. TH1 reģistrs tiek ielādēts ar 0xfd, ja datu pārraides ātrums ir 9600 biti sekundē. TR1 = 1 tiek izmantots taimera palaišanai.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; Šajā koda daļā funkcijas rxdata atgrieztais raksturs tiek saglabāts mainīgajā “s” turpmākai lietošanai.
s = rxdata (); // saņemt sērijas datus no hc-05 bluetooth moduļa
Šajā koda daļā mums jāsalīdzina saņemtais raksturs ar iepriekš piešķirtajām rakstzīmēm dažādiem virzieniem. Ja saņemtais raksturs ir “f”, robotam ir jāvirzās uz priekšu. Tas tiek panākts, padarot m1f, m2f tapas augstas un m1b, m2b tapas zemas. Kad tas ir izdarīts, nākamais mums jānosūta robota statuss uz Android lietotni. Tas tiek darīts ar txdata funkcijas palīdzību. Tas pats process tiek atkārtots attiecībā uz dažādām saņemtajām rakstzīmēm, un attiecīgi tiek pieņemts lēmums. 1. tabulā redzamas dažādas m1f, m1b, m2f, m2b vērtības dažādiem robota kustības virzieniem.
ja (s == 'f') // abus motorus pārvieto uz priekšu {m1f = 1; kavēšanās (1); m1b = 0; kavēšanās (1); m2f = 1; kavēšanās (1); m2b = 0; kavēšanās (1); for (i = 0; msg1! = '\ 0'; i ++) // nosūtīt robota statusu android lietotnei, izmantojot Bluetooth {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
1. motora rotācija |
2. motora rotācija |
Robota statuss |
1 |
0 |
1 |
0 |
uz priekšu |
uz priekšu |
Virzīties uz priekšu |
0 |
1 |
0 |
1 |
reverss |
reverss |
Virzīšanās atpakaļ |
1 |
0 |
0 |
1 |
uz priekšu |
reverss |
Kustība pa labi |
0 |
1 |
1 |
0 |
reverss |
uz priekšu |
Kustība pa kreisi |
0 |
0 |
0 |
0 |
apstājās |
apstājās |
apstājās |
Tas ir, jūs varat pagriezt robotu automašīnu jebkurā virzienā, vadot četrus motorus, izmantojot mikrokontrolleru 8051. Šo robotu var vadīt arī, izmantojot DTMF ar 8051, ja jums nav android tālruņa.
Šeit pārbaudiet arī visus robotikas projektus.