- Vaaditut komponentit:
- Piirikaavio:
- 8051-mikrokontrolleri:
- HC-05 Bluetooth-moduuli:
- L293D-moottorin ohjaimen IC:
- Android-puhelimen ohjaaman robotin toiminta:
- Koodin selitys:
Tässä projektissa aiomme rakentaa Android Phone -ohjatun robotin, joka käyttää 8051-mikrokontrollereita ja Bluetooth-moduulia. Robotti on suunniteltu DC-moottoreilla ja DC-moottoreiden suuntaa ohjataan android-sovelluksesta vastaanotetuilla komennoilla. Robotin tila lähetetään takaisin Android-sovellukseen. Tämä projekti auttaa myös HC-05 Bluetooth-moduulin liittämisessä 8051-mikrokontrolleriin. Käytimme jo Bluetooth-moduulia kodinkoneiden ohjaamiseen 8051: llä.
Vaaditut komponentit:
- 8051-mikrokontrolleri (AT89S52)
- HC-05 Bluetooth-moduuli
- L293D-moottorin ohjain
- Robottialusta
- DC-moottorit (2)
- Pyörät (2)
- Pyörän pyörä
- Hyppääjän johdot
- Bluetooth-päätelaite android-sovellus
Piirikaavio:
8051-mikrokontrolleri:
8051-mikrokontrolleri on 8-bittinen mikrokontrolleri, jolla on 128 tavua sirumuistia, 4K tavua siru-ROM-levyllä, kaksi ajastinta, yksi sarjaportti ja neljä 8-bittistä porttia. 8052-mikrokontrolleri on 8051-mikrokontrollerin jatke. Tässä projektissa käytämme AT89S52- mikrokontrolleria. Alla olevassa taulukossa esitetään 8051 perheenjäsenen vertailu.
Ominaisuus |
8051 |
8052 |
ROM (tavuina) |
4K |
8K |
RAM (tavua) |
128 |
256 |
Ajastimet |
2 |
3 |
I / O-nastat |
32 |
32 |
Sarjaportti |
1 |
1 |
Keskeytä lähteet |
6 |
8 |
HC-05 Bluetooth-moduuli:
HC-05 on sarjamuotoinen Bluetooth-moduuli. Se voidaan määrittää AT-komennoilla. Se voi toimia kolmessa eri kokoonpanossa (Master, Slave, Loop back). Projektissamme käytämme sitä orjana. HC-05-moduulin ominaisuuksiin kuuluu
- Tyypillinen herkkyys -80 dBm.
- Oletussiirtonopeus: 9600 bps, 8 databittiä, 1 pysäytysbitti, ei pariteettia.
- Automaattinen pariliitoksen PIN-koodi: ”1234” oletus PIN-koodi
- Siinä on 6 nastaa.
- Vcc- ja Gnd-nastoja käytetään HC-05: n virtalähteeseen.
- Tx- ja Rx-nastoja käytetään kommunikointiin mikrokontrollerin kanssa.
- Ota tappi käyttöön HC-05-moduulin aktivoimiseksi. kun se on vähissä, moduuli poistetaan käytöstä
- Tilanasta toimii tilan osoittimena. Kun sitä ei ole pariliitetty / yhdistetty mihinkään muuhun Bluetooth-laitteeseen, LED vilkkuu jatkuvasti. Kun se on kytketty / pariksi jonkin muun Bluetooth-laitteen kanssa, LED vilkkuu jatkuvasti 2 sekunnin viiveellä.
L293D-moottorin ohjaimen IC:
L293D on kaksois-H-sillan moottoriohjain IC. Tämä toimii virranvahvistimena, L293D: n lähtö ajaa tasavirtamoottoreita. Se sisältää kaksi sisäänrakennettua H-siltapiiriä. Tavallisessa toimintatilassa se voi käyttää kahta tasavirtamoottoria samanaikaisesti molempiin suuntiin. Alla olevassa taulukossa on esitetty L293D IC: n tapin kuvaus. Tässä on joitain projekteja, joissa käytetään L293D-moottoriohjainta.
Nastan kuvaus
PIN-numero |
Nimi |
Toiminto |
1 |
Ota käyttöön 1,2 |
Ota tappi käyttöön moottorille 1 |
2 |
Tulo 1 |
Moottorin 1 tulo 1 |
3 |
Lähtö 1 |
Lähtö 1 moottorille 1 |
4 |
Gnd |
Maa (0V) |
5 |
Gnd |
Maa (0V) |
6 |
Lähtö 2 |
Lähtö 2 moottorille 1 |
7 |
Tulo 2 |
Moottorin 1 tulo 2 |
8 |
Vcc 2 |
Syöttöjännite moottoreille (5V) |
9 |
Ota käyttöön 3,4 |
Ota tappi käyttöön moottorille 1 |
10 |
Tulo 3 |
Moottorin 2 tulo 1 |
11 |
Lähtö 4 |
Lähtö 1 moottorille 2 |
12 |
Gnd |
Maa (0V) |
13 |
Gnd |
Maa (0V) |
14 |
Lähtö 4 |
Lähtö 2 moottorille 2 |
15 |
Tulo 4 |
Moottorin 2 tulo 2 |
16 |
Vcc 1 |
Syöttöjännite (5V) |
Android-puhelimen ohjaaman robotin toiminta:
Tässä älypuhelimella ohjatussa robotissa android-sovelluksen käyttäjä lähettää tiedot 8051-mikrokontrollerille HC-05-moduulin kautta. Vastaanotettua dataa verrataan 8051-mikrokontrollerissa ja päätös tehdään sen mukaisesti. Alla olevassa taulukossa on esitetty moottoreiden suunta ja robotin tila eri vastaanotetuille hahmoille.
Vastaanotettu merkki |
Moottori 1 |
Moottori 2 |
Robotin tila |
f |
Eteenpäin |
Eteenpäin |
Siirtyy eteenpäin |
b |
Taaksepäin |
Taaksepäin |
Liikkuu taaksepäin |
r |
Eteenpäin |
Taaksepäin |
Liikkuu oikealle |
l |
Taaksepäin |
Eteenpäin |
Siirtyy vasemmalle |
s |
Vinossa |
Vinossa |
Pysäytetty |
Bluetooth terminaali app avulla voimme jäljitellä Bluetooth-päätelaite. Tämä sovellus tukee kaksisuuntaista viestintää ja tämä sovellus on yhteensopiva useimpien laitteiden kanssa.
Alla olevat vaiheet osoittavat, kuinka tämä sovellus asennetaan ja käytetään.
1. Lataa ja asenna Bluetooth-päätesovellus Android-puhelimeesi. Sovelluksen voi ladata alla olevasta linkistä.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Kun olet asentanut sovelluksen, avaa sovellus ja ota Bluetooth käyttöön.
3. Valitse laite ja napsauta Yhdistä-vaihtoehtoa. Onnistuneen yhteyden muodostamisen jälkeen voimme aloittaa tietojen lähettämisen HC-05-moduuliin.
Tarkista alla olevasta koodiselityksestä, kuinka 8051-mikrokontrolleri lähettää ja vastaanottaa merkin tarvittavien moottoreiden pyörittämiseksi.
Koodin selitys:
Tämän projektin täydellinen C-ohjelma ja esittelyvideo on tämän projektin lopussa. Koodi on jaettu pieniksi merkityksellisiksi paloiksi ja selitetty alla.
Saat L293D rajapinnat 8051 mikro, meidän on määriteltävä nastat joka L293D on liitetty 8051 mikro. Moottorin 1 In1-nasta on kytketty P2.0: een, In2: n moottorin 1 nasta on liitetty P2.1: een, In1: n moottorin 2 nasta on kytketty P2.2: een, In2: n moottorin 2 nasta on kytketty P2.3: een
sbit m1f = P2 ^ 0; // moottorin 1 nastainen sbit m1b = P2 ^ 1; // moottorin1 nastainen 1 sbit m2f = P2 ^ 2; // moottorin2 nastaa 1 sbit m2b = P2 ^ 3; // moottorin2 nastassa2
Seuraavaksi meidän on määriteltävä joitakin toimintoja, joita ohjelmassa käytetään. Viive- toimintoa käytetään määritetyn aikaviiveen luomiseen. Txdata- toimintoa käytetään tietojen siirtämiseen sarjaportin kautta. Rxdata- toimintoa käytetään tietojen vastaanottamiseen sarjaportista.
void delay (allekirjoittamaton int); // funktio viiveen luomiseksi char rxdata (void); // -toiminto merkin vastaanottamiseksi sarjaportin kautta 8051 void txdata (unsigned char); // -toiminto merkin lähettämiseen 8051: n sarjaportin kautta
Tässä koodin osassa aiomme määrittää 8051-mikrokontrollerin sarjaliikennettä varten. TMOD-rekisteriin ladataan 0x20 ajastimelle 1, tila 2 (automaattinen lataus). SCON-rekisteriin ladataan 0x50 8 databittiä, 1 pysäytysbitti ja vastaanotto käytössä. TH1-rekisteriin ladataan 0xfd 9600 bittiä sekunnissa. TR1 = 1 käytetään ajastimen käynnistämiseen.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; Koodin tässä osassa rxdata- funktion palautettu merkki tallennetaan muuttujaan 's' jatkokäyttöä varten.
s = rxdata (); // vastaanottaa sarjatietoja hc-05 bluetooth-moduulista
Tässä koodin osassa joudumme vertailemaan vastaanotettua merkkiä etukäteen määritettyihin merkkeihin eri suuntiin. Jos vastaanotettu merkki on 'f', robotin on siirryttävä eteenpäin. Tämä saavutetaan tekemällä m1f, m2f nastat korkeaksi ja m1b, m2b nastat mataliksi. Kun tämä on tehty, seuraavaksi meidän on lähetettävä robotin tila android-sovellukseen. Tämä tehdään txdata- toiminnon avulla. Sama prosessi toistetaan vastaanotetuille hahmoille ja päätös tehdään vastaavasti. Taulukossa 1 esitetään eri arvot m1f, m1b, m2f, m2b robotin eri liikesuunnille.
jos (s == 'f') // siirretään molempia moottoreita eteenpäin {m1f = 1; viive (1); mlb = 0; viive (1); m2f = 1; viive (1); m2b = 0; viive (1); for (i = 0; msg1! = '\ 0'; i ++) // lähetä robotin tila android-sovellukseen bluetoothin kautta {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
Moottorin 1 kierto |
Moottorin 2 kierto |
Robotin tila |
1 |
0 |
1 |
0 |
eteenpäin |
eteenpäin |
Siirtyä eteenpäin |
0 |
1 |
0 |
1 |
käänteinen |
käänteinen |
Liikkuminen taaksepäin |
1 |
0 |
0 |
1 |
eteenpäin |
käänteinen |
Liikkuminen oikealle |
0 |
1 |
1 |
0 |
käänteinen |
eteenpäin |
Liikkuminen vasemmalle |
0 |
0 |
0 |
0 |
pysähtynyt |
pysähtynyt |
pysähtynyt |
Voit siis kiertää robotti-autoa mihin tahansa suuntaan ohjaamalla neljää moottoria 8051- mikrokontrollerilla. Tätä robottia voidaan ohjata myös DTMF: llä 8051: n kanssa, jos sinulla ei ole Android-puhelinta.
Tarkista myös kaikki robottihankkeet täältä.