- Tarvittava materiaali
- HC-06 Bluetooth-moduuli
- Piirikaavio
- Roboremo-sovelluksen määrittäminen servon hallintaa varten:
- Koodi ja selitys
- Servomoottorin ohjauksen toiminta Bluetoothin avulla:
Servomoottorin käyttö on yleistä robotiikassa tarkkaa hallintaa varten. Tässä tässä opetusohjelmassa näytämme sinulle, kuinka Servo-moottoria käytetään langattomasti Arduino UNO: n ja Android-laitteen kanssa Bluetooth-yhteyden kautta. Hallitsimme jo servoa Arduinon kanssa, tällä kertaa ohjaamme servomoottoria Arduinolla ja Bluetoothilla.
Tarvittava materiaali
- Arduino UNO
- HC-05 tai HC-06 Bluetooth-moduuli
- Servo moottori
- Roboremo-sovellus Playstoresta
- Leipälauta
- Liitäntäjohto
HC-06 Bluetooth-moduuli
Bluetooth voi toimia seuraavissa kahdessa tilassa:
- Komentotila
- Käyttötila
Vuonna Komentomuoto pystymme määrittää Bluetooth ominaisuuksia kuten nimi Bluetooth-signaalin, salasanaa, toiminta tiedonsiirtonopeus jne Toimintatapa on sellainen, jossa voimme lähettää ja vastaanottaa dataa PIC-mikro ja Bluetooth-moduuli. Siksi tässä opetusohjelmassa leikittelemme vain käyttötilan kanssa. Komentotila jätetään oletusasetuksiin. Laitteen nimi on HC-05 (käytän HC-06) ja salasana on 0000 tai 1234, ja mikä tärkeintä, kaikkien Bluetooth-moduulien oletussiirtonopeus on 9600.
Moduuli toimii 5 V: n jännitteellä ja signaalinastat toimivat 3,3 V: lla, joten 3,3 V: n säädin on itse moduulissa. Siksi meidän ei tarvitse huolehtia siitä. Kuudesta nastasta vain neljää käytetään käyttötilassa. Tappiliitäntätaulukko on esitetty alla
S. ei | Kiinnitä HC-05 / HC-06 | Kiinnitä nimi MCU: han | PIN-numero PIC: ssä |
1 | Vcc | Vdd | 31 st pin |
2 | Vcc | Gnd | 32 toinen tappi |
3 | Tx | RC6 / Tx / CK | 25 th pin |
4 | Rx | RC7 / Rx / DT | 26 th pin |
5 | Osavaltio | NC | NC |
6 | FI (Ota käyttöön) | NC | NC |
Tutustu muihin projekteihimme saadaksesi lisätietoja Bluetooth-moduulista HC-05 muiden mikrokontrollerien kanssa:
- Bluetooth-ohjattu leluauto Arduinoa käyttämällä
- Bluetooth-ohjattu kotiautomaatiojärjestelmä, joka käyttää 8051: tä
- Ääniohjatut valot vadelmalla Pi
- Älypuhelimen ohjaama FM-radio Arduinoa ja prosessointia käyttäen
- Bluetooth-moduulin HC-06 ja PIC-mikrokontrollerin liitäntä
Tarkista myös kaikki Bluetoothiin liittyvät projektit täältä.
Piirikaavio
Tämän Arduino Bluetooth Servo Motor Control -projektin kytkentäkaavio on annettu alla:
Roboremo-sovelluksen määrittäminen servon hallintaa varten:
Vaihe 1: - Lataa Roboremo-sovellus Android Play Kaupasta ja asenna se älypuhelimeesi. Asennuksen jälkeen näet sovellusikkunan kuvan 1 mukaisesti ja napsauttamalla Valikko- painiketta näet alla olevan kuvan 2 ikkunan:
Vaihe 2: - Napsauta sitten Yhdistä- painiketta ja näet alla olevassa kuvassa 3 esitetyn ikkunan, sinun on valittava ' Bluetooth RFCOMM' ja voit sitten yhdistää HC-06-bluetooth-moduulisi Android-sovellukseen 'Roboremo'.
Vaihe 3: - Kun olet muodostanut yhteyden HC-06-bluetooth-moduuliin, palaa kuva2-ikkunaan ja napsauta sitten " muokkaa käyttöliittymää ", kun haluat luoda käyttöliittymän tarpeidesi mukaan.
Kun napsautat 'muokkaa käyttöliittymää', näet jälleen kuvassa 1 näytetyn ikkunan ja napsautat sitten mitä tahansa kohtaa näytöllä, jolloin näet sovellusikkunan, kuten kuva4, ja valitse ' Button ' saadaksesi painikkeen rakenteen.
Vaihe 4: - Kun olet valinnut painikkeen, näyttöön tulee painikkeen rakenne muokattavaksi. Voit muuttaa rakenteen kokoa ja siirtää sitä missä tahansa ruudulla. Nyt voit asettaa Bluetooth-yhteyden kautta napsautettavaksi lähetettävän arvon asettamalla painotoiminnon (kuten kuvassa 6 on esitetty) ja kirjoittamalla haluamasi arvon kyseisestä painikkeesta. Samoin lähetämme arvon 1 servon pyörittämiseksi painamalla Käynnistä-painiketta Roboremo android -sovelluksessa.
Voit tarkistaa kaikki arvot, jotka lähetetään napsauttamalla eri painikkeita, seuraavassa osassa olevassa taulukossa.
Vaihe 5: - Lopuksi meillä on käyttöliittymä ohjaamaan servomoottoria älypuhelimella.
Koodi ja selitys
Arduino Control Servo -moottorin täydellinen koodi Bluetoothin kautta annetaan lopussa.
Arduinolla on kirjasto Servo Motorsille ja se käsittelee kaikki PWM: ään liittyvät asiat servon kääntämiseksi, sinun tarvitsee vain syöttää kulma, johon haluat kiertää, ja siellä on toiminto servo1.write (kulma); joka kääntää servon haluttuun kulmaan.
Joten tässä aloitetaan määrittelemällä kirjasto Servo-moottorille ja ohjelmistosarjakirjastoa käytetään määrittämään Rx- ja Tx-nastat.
#sisältää
Seuraavassa koodissa alustamme Arduino-nastat Rx: lle ja Tx: lle, määrittelemällä muuttujat servolle ja muille asioille .
Servo myServo; int TxD = 11; int RxD = 10; int servoposition; int servopos; int uusi1; SoftwareSerial bluetooth (TxD, RxD);
Määritä nyt kaikki muuttujat ja komponentit alkuvaiheeseen. Täällä pidämme servo 9 : nnen pin Arduino ja teki alkuasennossa servo 0 astetta. Sarja- ja Bluetooth-tiedonsiirtonopeudeksi on myös asetettu 9600.
void setup () { int pos = 0; myServo.attach (9); myServo.write (0); Sarjan alku (9600); // aloita sarjaliikenne nopeudella 9600 bps bluetooth.begin (9600); }
In void loop -toiminto, Arduino tulee tarkistaa tulevan arvot koko ajan ja kierrä servo mukaan vastaanotetun arvon Smart puhelin. Kaikki arvot vastaanotetaan sarjaliikenteen avulla.
Jos arvo on 0, servo kiertää 0 astetta. Vastaavasti, jos lähetämme 45, 90, 135 ja 180 Bluetooth-sovelluksesta, servo kiertää 45, 90, 135 ja 180 asteen kulmaan.
void loop () { if (bluetooth.available ()) { Merkkijonoarvo = bluetooth.readString (); servoposition = arvo.toInt (); if (arvo.toInt () == 0) { Sarja.println (servopositio); myServo.write (0); } if (arvo.toInt () == 45) { Sarja.println (servopositio); myServo.write (45); } if (arvo.toInt () == 90) { Sarja.println (servopositio); myServo.write (90); } if (arvo.toInt () == 135) { Sarja.println (servopositio); myServo.write (135); } if (arvo.toInt () == 180) { Sarja.println (servopositio); myServo.write (180); }
Jos lähetämme arvon '1' painamalla Käynnistä- painiketta, servo pyörii jatkuvasti, kunnes pysäytyspainiketta painetaan. Annamme nyt '2' on painamalla seis painike, jota lukevat Arduino ja se rikkoo samalla silmukka ja servo lopetetaan.
while (arvo.toInt () == 1) {if (bluetooth.available ()) {arvo = bluetooth.readString (); Serial.println (arvo); if (arvo.toInt () == 2) {Sarja.println ("VVV"); tauko; }} servopos ++; viive (30); Serial.println (servopos); myServo.write (servopot); if (servopos == 180) {servopos = 0; tauko;}}}}
Servomoottorin ohjauksen toiminta Bluetoothin avulla:
Tässä projektissa ohjaamme servomoottoria Android-sovelluksella “Roboremo”. Tämän sovelluksen käyttöliittymässä olemme luoneet 5 painiketta servomoottorin ohjaamiseksi, kuten aiemmin on selitetty. Jokaisen painikkeen toiminta on esitetty alla olevassa taulukossa:
S.No. |
Painikkeen nimi |
Lähetetään arvoa |
Kuvaus |
1. |
alkaa |
1 |
Tätä painiketta käytetään servon kääntämiseen välillä 0⁰ - 180⁰. |
2. |
Lopettaa |
2 |
Tätä painiketta käytetään servon pysäyttämiseen missä tahansa vaiheessa. |
3. |
0⁰ |
0 |
Tällä painikkeella servo käännetään asentoon 0⁰. |
4. |
90⁰ |
90 |
Tätä painiketta käytetään servon kääntämiseen 90 °: een. |
5. |
180⁰ |
180 |
Tätä painiketta käytetään servon kääntämiseen 180⁰: een. |
Joten painamalla näitä Android-sovelluksen Roboremo- painikkeita tiedot lähetetään älypuhelimen Bluetooth-yhteyden kautta HC-06 Bluetooth-moduuliin. Tästä HC-06-moduulista Arduino vastaanottaa tietoja ja Arduino kiertää Servoa kulmalle, joka on määritetty kyseiselle painikkeelle. Olemme myös koodanneet kulmat 45 ja 135, mutta Roboremo-sovelluksen rajoitusten vuoksi voit luoda vain 5 painiketta, joten ohitimme kaksi painiketta.
Joten näin voit lähettää tietoja älypuhelimesta Arduinoon Bluetoothin avulla ohjaamaan servoa langattomasti. Tätä voidaan käyttää monissa sovelluksissa, kuten leluautoissa, roboteissa jne.