Kuidas teha isetegemist Arduino ja Bluetoothi ​​juhitavat robotkäsi?

Viimase sajandi jooksul on robootika kõige enam esile kerkinud uurimisvaldkond. Robotid on võtnud kontrolli alla peaaegu kõik, mida inimesed varem tegid. Näeme autonoomseid roboteid, kes täidavad meie ühiskonnas erinevaid ülesandeid. On ka puldiga roboteid, mis aitavad meil erinevaid toiminguid läbi viia. Alates Nano-ahelate valmistamisest insenerivaldkonnas kuni keerukate operatsioonide tegemiseni meditsiinivaldkonnas on robotid usaldusväärsemad kui inimesed.



Robotkäsi

Selles projektis teeme robotkäe, mida juhib Arduino mikrokontroller. Seda juhitakse Bluetoothi ​​kaudu androidi kaugjuhtimispuldi rakenduse abil.



Kuidas kontrollida robotkätt Arduino abil?

Nüüd, kui teame oma projekti abstraktsust. Kogume lisateavet vooluringide kohta ja alustame Bluetoothi ​​juhitava robotkäe ehitamist ning kontrollime seda Bluetoothi ​​kaudu.



1. samm: komponentide kogumine

Parim lähenemine mis tahes projekti alustamiseks on koostada täielik loetelu komponentidest. See pole mitte ainult arukas viis projekti käivitamiseks, vaid säästab meid ka paljude ebamugavuste eest projekti keskel. Selle projekti komponentide loetelu on esitatud allpool:



  • Juhtmevaba Bluetooth-seeriatransiiver HC-05
  • 6V adapter
  • Hüppaja juhtmed
  • Leivaplaat

2. samm: komponentide uurimine

Kuna meil on täielik loetelu kõikidest komponentidest, mida kavatseme kasutada, liigume sammu edasi ja tutvume kõigi komponentide lühikese uurimisega.

Arduino Nano on mikrokontrolleri plaat, mis teeb erinevaid toiminguid erinevates ahelates. See nõuab a C kood mis ütleb juhatusele, milliseid ülesandeid täita ja kuidas. Sellel on 13 digitaalset I / O-tihvti, mis tähendab, et saame juhtida 13 erinevat seadet. Arduino Nano on täpselt sama funktsionaalsusega kui Arduino Uno, kuid üsna väikeses suuruses. Arduino Nano plaadil olev mikrokontroller on ATmega328p. Kui soovite juhtida rohkem kui 13 seadet, kasutage Arduino Mega.

Arduino Nano



Juhtmevaba Bluetooth-seeriatransiiver HC-05 : Selles projektis vajame traadita sidet, seega kasutame Bluetooth-tehnoloogiat ja selle mooduli jaoks, mida kasutatakse, on HC-05. Sellel moodulil on mitu programmeeritavat baudikiirust, kuid vaikimisi on kiirus 9600 bps. Seda saab konfigureerida kas põhi- või alluvaks, samas kui teine ​​moodul HC-06 saab töötada ainult alamrežiimis. Sellel moodulil on neli tihvti. Üks VCC (5V) ja ülejäänud kolm GND, TX ja RX jaoks. Selle mooduli vaikeparool on 1234 või 0000 . Kui tahame suhelda kahe mikrokontrolleri vahel või suhelda mis tahes Bluetooth-funktsiooniga seadmega, näiteks telefon või sülearvuti HC-05, aitab see meil seda teha. Juba on saadaval mitu Androidi rakendust, mis muudab selle protsessi palju lihtsamaks.

HC-05 Bluetoothi ​​moodul

Tüüpiline Robotkäsi koosneb mitmest segmendist ja selles on tavaliselt 6 liigendit. See sisaldab vähemalt 4 samm-mootorit, mida kontrollib arvuti. Astmemootorid erinevad teistest alalisvoolumootoritest. Nad liiguvad täpselt täpsete sammudega. Neid robotkäsi kasutatakse mitmesuguste toimingute tegemiseks. Saame neid käsitsi juhtida kaugjuhtimispuldi kaudu või programmeerida neid autonoomselt töötama.

Robotkäsi.

3. samm: komponentide kokkupanek

Nüüd, kui teame kõigi kasutatud põhikomponentide toimimisest. Alustame nende kokkupanekut ja teeme ringkäigu kaugjuhitava robotkäe ehitamiseks.

  1. .Kinnitage Arduino Nano plaat leivalauale. Arduino toiteallikaks on adapteri positiivne ja negatiivne juhe.
  2. Pange ka Bluetooth-moodul leivalauale. Lülitage Bluetooth-moodul Arduino kaudu sisse. Ühendage Bluetooth-mooduli Tx tihvt Arduino Nan -plaadi Rx-tihvtiga ja ühendage Bluetooth-mooduli Rx-tihvt Arduino Nano-plaadi Tx-tihvtiga.
  3. Kuna teame, et on 4 samm-mootorit. Igal neist on tehniline nimi. Neid nimetatakse Küünarnukk , Õlg , Baas, ja Haarats . Kõigi mootorite Vcc ja Ground on ühised ja ühendatud 6V adapteri positiivsete ja negatiivsete omadustega. Kõigi nelja mootori signaaltapp ühendatakse Arduino Nano pin5, pin6, pin9 ja pin11 külge.
  4. Veenduge, et teie tehtud ühendused vastavad järgmisele skeemile.

    Vooluringi skeem

4. samm: Arduinoga alustamine

Kui te pole Arduino IDE-ga veel tuttav, ärge muretsege, sest Arduino IDE koos mikrokontrolleriplaadiga seadistamise ja kasutamise samm-sammult selgitatakse allpool.

  1. Laadige Arduino IDE uusim versioon alla Arduino.
  2. Ühendage oma Arduino Nano plaat sülearvutiga ja avage juhtpaneel. Seejärel klõpsake nuppu Riistvara ja heli . Nüüd klõpsake nuppu Seadmed ja printerid. Siit leiate porti, millega teie mikrokontrolleri plaat on ühendatud. Minu puhul on see nii KOM14 kuid see on erinevates arvutites erinev.

    Sadama leidmine

  3. Klõpsake menüüd Tööriist ja määrake tahvel väärtusele Arduino Nano rippmenüüst.

    Laua määramine

  4. Määrake samas menüüs Tööriist portiks pordinumber, mida olete enne Seadmed ja printerid .

    Pordi seadistamine

  5. Valige samas menüüs Tööriist protsessor ATmega328P (vana alglaadur).

    Protsessor

  6. Servomootorite käitamiseks koodi kirjutamiseks vajame spetsiaalset raamatukogu, mis aitab meil kirjutada mitu servomootorite funktsiooni. See teek on lisatud koos koodiga alloleval lingil. Teegi kaasamiseks klõpsake nuppu Visand> Kaasa teek> Lisa ZIP. Raamatukogu.

    Kaasa teek

  7. Laadige alla lisatud kood ja kleepige see oma Arduino IDE-sse. Klõpsake nuppu Laadi üles nupp mikrokontrolleri plaadil oleva koodi kirjutamiseks.

    Laadi üles

Koodi allalaadimiseks kliki siia.

5. samm: rakenduse allalaadimine

Kuna oleme nüüd kogu vooluringi kokku pannud ja koodi mikrokontrolleri plaadile üles laadinud. laseb alla laadida mobiilirakenduse, mis töötab robotkäe kaugjuhtimispuldina. Google Play poest on saadaval tasuta rakendus. Rakenduse nimi on Väikese käe robotite juhtimine . Bluetooth-ühenduse loomiseks lülitage oma mobiiltelefon sisse. Avage seaded ja siduge oma mobiil mooduliga HC-05. Pärast selle tegemist vajutage rakenduses Bluetoothi ​​nuppu. Kui see muutub roheliseks, tähendab see, et rakendus on nüüd ühendatud ja robotkäsi kasutamiseks valmis. Seal on liugurid, et robotkäsi vastavalt soovile juhtida.

Rakendus

6. samm: koodeksist aru saamine

Kood on hästi kommenteeritud ja kergesti mõistetav. Bur still, seda selgitatakse lühidalt allpool.

1. Alustuseks on lisatud raamatukogu servomootorite käitamiseks koodi kirjutamiseks. Teine raamatukogu matemaatika.h sisaldub koodis erinevate matemaatiliste toimingute tegemiseks. Nelja servomootori jaoks kasutatakse ka nelja objekti.

#include // arduino teek #include // standardne c teek #define PI 3.141 Servo baseServo; Servo õlgServo; Servo küünarnukkServo; Servo haaratsServo; int käsk;

2. Seejärel deklareeritakse, et struktuur võtab aluse, õla ja küünarnuki servomootorite väärtused.

struct jointAngle {// struktuuri int alandamine; int õlg; int küünarnukk; };

3. Pärast seda initsialiseeritakse mõned muutujad, et salvestada servomootori soovitud haare, viivitus ja asend. kiiruseks on seatud 15 ja objekt pannakse võtma struktuuris oleva nurga väärtus.

int soovitudGrip; int gripperPos; int soovitud viivitus; int servoSpeed ​​= 15; int valmis = 0; struct jointAngle soovitudNurk; // servode soovitud nurgad

Neli. kehtetu seadistamine () on funktsioon, mida kasutatakse Arduino tihvtide seadmiseks sisendiks või väljundiks. Siin selles funktsioonis oleme deklareerinud, et mootorite tihvt ühendatakse Arduino milliste tihvtidega. Samuti on tagatud, et Arduino ei loe seeriasisendit liiga kaua. Selles funktsioonis on seatud ka algpositsioon ja edastuskiirus. Baudi kiirus on kiirus, mille abil mikrokontrolleri plaat suhtleb ühendatud servode ja Bluetooth-mooduliga.

void setup () {Serial.begin (9600); baseServo.attach (9); // kinnitab tihvti 9 põhiservo servoobjekti õlaleServo.attach (10); // kinnitab õla servo tihvti 9 servoobjekti küünarnuki külgeServo.attach (11); // kinnitab tihvti 9 küünarnuki servo servoobjekti haaratsileServo.attach (6); // kinnitab tihvti 9 haardeservo servoobjekti Serial.setTimeout (50) juurde; // tagab, et arduino ei loe jada liiga kaua Serial.println ('alustatud'); baseServo.write (90); // servo õlgade intiaalsed positsioonidServo.write (150); küünarnukkServo.kirjutage (110); valmis = 0; }

5. servoParallelControl () on funktsioon, mida kasutatakse robotkäe praeguse asukoha tuvastamiseks ja selle liigutamiseks vastavalt mobiilirakenduse kaudu antud käsule. Kui praegune asend on tegelikust väiksem, liigub käsi üles ja vastupidi. See funktsioon tagastab praeguse positsiooni väärtuse ja servo kiiruse.

int servoParallelControl (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // loe praegust pos int newPos = startPos; // int theSpeed ​​= kiirus; // määrake käsu suhtes positsioon // kui praegune asukoht on väiksem kui tegelik liikumine ülespoole if (startPos (thePos + 5)) {newPos = newPos - 1; theServo.write (newPos); viivitus (theSpeed); tagastus 0; } else {return 1; }}

6. void loop () on funktsioon, mis töötab korduvalt silmusena. See funktsioon loeb järjestikku tulevad andmed ja salvestab iga servo nurga struktuuris. Esialgu on kõigi servode olek nullitud. Siin funktsioon servoParallelControl () kutsutakse ja selles edastatakse parameetrid. see funktsioon tagastab väärtuse ja see salvestatakse muutuja olekusse.

void loop () {if (Serial.available ()) {valmis = 1; wishAngle.base = Serial.parseInt (); wishAngle.shoulder = Serial.parseInt (); wishAngle.elbow = Serial.parseInt (); soovitud haare = Serial.parseInt (); soovitud viivitus = jada.parseInt (); if (Serial.read () == ' n') {// kui viimane bait on 'd', siis lõpetage lugemine ja käivitage käsk 'd' tähistab 'done' Serial.flush (); // kustuta kõik ülejäänud puhvrisse kuhjatud käsud // saada käsu Serial.print ('d') lõpuleviimine; }} int olek1 = 0; int staatus2 = 0; int staatus3 = 0; int staatus4 = 0; int tehtud = 0; while (valmis == 0 && valmis == 1) {// viige servo soovitud positsiooni olekusse1 = servoParallelControl (wishAngle.base, baseServo, wantedDelay); status2 = servoParallelControl (soovitud nurk.õlg, õlaServo, soovitud viivitus); status3 = servoParallelControl (soovitud nurk.tõmm, küünarnukkServo, soovitud viivitus); status4 = servoParallelControl (soovitud haare, haarajaServo, soovitud viivitus); if (olek1 == 1 & olek2 == 1 & olek3 == 1 & olek4 == 1) {valmis = 1}} // aja lõpp}

See oli kogu robotkäe valmistamise protseduur. Pärast koodi kirjutamist ja rakenduse allalaadimist peaks robot töötama täiesti hästi, kui rakenduse liugureid liigutatakse. Samuti saate programmeerida käe soovitud ülesande täitmiseks iseseisvalt töötama.