Hogyan készítsünk barkácsolást Arduino és Bluetooth vezérlésű robotkarral?

Az elmúlt évszázadban a robotika a legfejlettebb kutatási terület. A robotok szinte mindent átvettek, amit az emberek szoktak. Láthatjuk, hogy autonóm robotok különböző feladatokat látnak el társadalmunkban. Van néhány távvezérelt robot is, amelyek segítenek minket a különféle műveletek végrehajtásában. A robotok megbízhatóbbak, mint az emberek, a Nano áramkörök gyártásától a mérnöki tevékenységen át az összetett műtétek kivitelezéséig az orvosi területen.



Robotkar

Ebben a projektben egy robotkarot fogunk készíteni, amelyet egy Arduino mikrovezérlő vezérel majd. Bluetooth-on keresztül vezérelhető egy androidos távirányító alkalmazás segítségével.



Hogyan lehet irányítani a robotkart az Arduino használatával?

Most, amikor ismerjük a projektünk absztraktját. Gyűjtsünk néhány további információt az áramkörről, és kezdjük el építeni a Bluetooth vezérlésű robotkarot, és irányítsuk azt Bluetooth-on keresztül.



1. lépés: Az alkatrészek összegyűjtése

A projekt megkezdésének legjobb módja az, ha elkészíti az összetevők teljes listáját. Ez nemcsak egy projekt indításának intelligens módja, hanem a projekt közepén sok kellemetlenségtől is megment minket. A projekt összetevőinek listája az alábbiakban található:



  • HC-05 vezeték nélküli Bluetooth soros adó-vevő
  • 6V-os adapter
  • Jumper huzalok
  • Kenyérlemez

2. lépés: Az alkatrészek tanulmányozása

Mivel rendelkezésünkre áll az összes összetevő teljes listája, amelyet használni fogunk, lépjünk előre és lépjünk át röviden az összes összetevőről.

Arduino Nano egy mikrokontroller kártya, amely különféle áramkörökben végez különféle műveleteket. Megköveteli a C kód amely megmondja a testületnek, hogy milyen feladatokat és hogyan végezzen. 13 digitális I / O tűvel rendelkezik, ami azt jelenti, hogy 13 különböző eszközt tudunk működtetni. Az Arduino Nano pontosan ugyanolyan funkcionalitással rendelkezik, mint az Arduino Uno, de meglehetősen kicsi. Az Arduino Nano táblán található mikrovezérlő az ATmega328p. Ha több mint 13 eszközt szeretne vezérelni, használja az Arduino Mega alkalmazást.

Arduino Nano



HC-05 vezeték nélküli Bluetooth soros adó-vevő : Vezeték nélküli kommunikációra van szükségünk ebben a projektben, ezért Bluetooth technológiát fogunk használni, és ehhez a modulhoz HC-05 lesz használva. Ennek a modulnak több programozható adatátviteli sebessége van, de az alapértelmezett átviteli sebesség 9600 bps. Konfigurálható masterként vagy slave-ként, míg egy másik HC-06 modul csak slave módban működhet. Ennek a modulnak négy csapja van. Az egyik a VCC-hez (5 V), a maradék három a GND, TX és RX-hez. Ennek a modulnak az alapértelmezett jelszava a 1234 vagy 0000 . Ha két mikrovezérlő között akarunk kommunikálni, vagy bármilyen Bluetooth funkcióval rendelkező eszközzel, például egy telefon vagy a HC-05 laptop segítünk ebben. Számos Android-alkalmazás már elérhető, ami nagyon megkönnyíti ezt a folyamatot.

HC-05 Bluetooth modul

Tipikus Robotkar több szegmensből áll, és általában 6 ízület van benne. Legalább 4 léptetőmotort tartalmaz, amelyeket a számítógép vezérel. A léptető motorok különböznek a többi egyenáramú motortól. Pontos lépésekben mozognak pontosan. Ezeket a robotkarokat különféle műveletek végrehajtására használják. Manuálisan működtethetjük őket távirányítón keresztül, vagy programozhatjuk őket autonóm működésre.

Robotkar.

3. lépés: Az alkatrészek összeszerelése

Most, amikor tudunk az összes használt fő alkatrész működéséről. Kezdjük össze őket, és hozzunk létre egy áramkört egy távvezérelt robotkar felépítéséhez.

  1. .Rögzítse az Arduino Nano táblát a kenyérlapra. Az Arduino tápellátása az adapter pozitív és negatív vezetékén keresztül történik.
  2. Helyezze a Bluetooth modult a kenyérlapra is. Kapcsolja be a Bluetooth modult az Arduino segítségével. Csatlakoztassa a Bluetooth modul Tx tűjét az Arduino Nan kártya Rx tűjéhez, és csatlakoztassa a Bluetooth modul Rx tűjét az Arduino Nano kártya Tx tűjéhez.
  3. Mint tudjuk, hogy 4 léptetőmotor létezik. Mindegyiknek műszaki neve van. Felhívták őket Könyök , Váll , Bázis, és Gripper . Az összes motor Vcc-je és földje közös lesz, és összekapcsolódik a 6V-os adapter pozitív és negatívjával. Mind a négy motor jelfogóját az Arduino Nano 5-ös, 6-os, 9-es és 11-es csatlakozójához kell csatlakoztatni.
  4. Győződjön meg arról, hogy a csatlakoztatott kapcsolatok megfelelnek-e az alábbi kapcsolási rajznak.

    Kördiagramm

4. lépés: Az Arduino használatának megkezdése

Ha még nem ismeri az Arduino IDE-t, ne aggódjon, mert az Arduino IDE mikrokontroller táblával történő beállításának és használatának lépésről lépésre történő leírását az alábbiakban ismertetjük.

  1. Töltse le az Arduino IDE legújabb verzióját innen: Arduino.
  2. Csatlakoztassa Arduino Nano kártyáját a laptophoz, és nyissa meg a kezelőpanelt. Ezután kattintson a gombra Hardver és hang . Most kattintson a gombra Eszközök és nyomtatók. Itt keresse meg azt a portot, amelyhez a mikrokontroller kártya csatlakozik. Az én esetemben az COM14 de a különböző számítógépeken más.

    Port keresése

  3. Kattintson az Eszköz menüre, és állítsa a táblára Arduino Nano a legördülő menüből.

    Tábla beállítása

  4. Ugyanabban az Eszköz menüben állítsa be a portot arra a portszámra, amelyet korábban a Eszközök és nyomtatók .

    Port beállítása

  5. Ugyanebben az Eszköz menüben állítsa a Processort értékre ATmega328P (Old Bootloader).

    Processzor

  6. A szervomotorok működtetéséhez szükséges kód megírásához speciális könyvtárra van szükségünk, amely segít a szervomotorok több funkciójának megírásában. Ez a könyvtár a kóddal együtt az alábbi linken található. A könyvtár felvételéhez kattintson a gombra Vázlat> Könyvtár hozzáadása> ZIP hozzáadása. Könyvtár.

    Könyvtár beillesztése

  7. Töltse le az alább csatolt kódot, és illessze be az Arduino IDE-be. Kattintson a feltölteni gombot a mikrovezérlő-alaplapon lévő kód beírásához.

    Feltöltés

A kód letöltéséhez kattints ide.

5. lépés: Az alkalmazás letöltése

Mivel most összeállítottuk az egész áramkört és feltöltöttük a kódot a mikrokontroller kártyára. lehetővé teszi egy mobilalkalmazás letöltését, amely távirányítóként működik a robotkar számára. Ingyenes alkalmazás elérhető a Google Play áruházban. Az alkalmazás neve a Little Arm Robot Control . Bluetooth-kapcsolat létrehozásához kapcsolja be a Bluetooth-ot a mobilján. Lépjen a beállításokhoz, és párosítsa mobilját a HC-05 modullal. Ezt követően nyomja meg az alkalmazás Bluetooth gombját. Ha zöldre vált, az azt jelenti, hogy az alkalmazás már csatlakozik és készen áll a robotkar működtetésére. Vannak csúszkák, amelyekkel beállíthatja a robotkar kívánt működését.

App

6. lépés: A kód megértése

A kód jól kommentált és könnyen érthető. Bur still, az alábbiakban röviden elmagyarázzuk.

1. Kezdetben egy könyvtár tartalmaz egy kódot a szervomotorok működtetéséhez. Egy másik könyvtár matek.h tartalmazza, hogy különböző matematikai műveleteket hajtsanak végre a kódban. Négy objektumot inicializálnak a négy szervomotorhoz.

#include // arduino library #include // standard c library #define PI 3.141 Servo baseServo; Szervó vállSzervo; Szervó könyökSzervo; Servo markolóServo; int parancs;

2. Ezután kijelentjük, hogy egy szerkezet az alap-, váll- és könyökszervomotorok értékeit veszi fel.

struct jointAngle {// struktúra deklazálása int alap; int váll; int könyök; };

3. Ezt követően néhány változó inicializálódik a szervomotor kívánt fogásának, késleltetésének és helyzetének tárolására. a sebességet 15-re állítják, és egy objektumot készítenek a szerkezet szögének értékére.

int kívánt fogás; int gripperPos; int kívánt késedelem; int servoSpeed ​​= 15; int kész = 0; struct jointAngle kívántAngle; // a szervók kívánt szögei

Négy. void setup () egy olyan függvény, amelyet arra használnak, hogy az Arduino csapjait INPUT vagy OUTPUT-ként állítsák be. Ebben a funkcióban kijelentettük, hogy a motor csapja az Arduino mely csapjaihoz fog kapcsolódni. Az is biztosított, hogy az Arduino ne olvassa túl sokáig a soros bemenetet. A kezdeti pozíció és az átviteli sebesség szintén ebben a funkcióban van beállítva. Az átviteli sebesség az a sebesség, amellyel a mikrovezérlő kártya kommunikálni fog a csatlakoztatott szervókkal és Bluetooth modullal.

void setup () {Soros.kezdés (9600); baseServo.attach (9); // az alapszervót a 9. csapon rögzíti a szervo objektumhoz a vállServo.attach (10); // a vállszervót a 9. csapon rögzíti a szervo objektum könyökéhezServo.attach (11); // a könyökszervót a 9. csapon rögzíti a szervo objektum-megfogóvalServo.attach (6); // a megfogó szervót rögzíti a 9. csapon a Serial.setTimeout (50) szervo objektumhoz; // biztosítja, hogy az arduino ne olvassa túl sokáig a Serial.println ('Start') parancsot; baseServo.write (90); // a szervók vállának belső pozícióiServo.write (150); könyökServo.write (110); kész = 0; }

5. servoParallelControl () olyan funkció, amelyet a robotkar aktuális helyzetének észlelésére és mozgatására használnak a mobilalkalmazáson keresztül adott parancsnak megfelelően. Ha az aktuális helyzet kisebb, mint a tényleges, akkor a kar felfelé és fordítva mozog. Ez a funkció visszaadja az aktuális helyzet értékét és a szervo sebességét.

int servoParallelControl (int thePos, Servo theServo, int aSpeed) {int startPos = theServo.read (); // beolvassa az aktuális pos int newPos = startPos; // int theSpeed ​​= sebesség; // határozza meg, hogy hol van a posz a parancshoz képest // ha az aktuális pozíció kisebb, mint a tényleges felfelé lépés, ha (startPos (thePos + 5)) {newPos = newPos - 1; theServo.write (newPos); késés (theSpeed); visszatér 0; } else {return 1; }}

6. void loop () egy ciklusban ismételten futó funkció. Ez a függvény sorba olvassa az érkező adatokat, és az egyes szervók szögeit a struktúrában tárolja. Kezdetben az összes szervó állapotát nullára állítják. Itt egy függvény servoParallelControl () hívják és paramétereket adnak át benne. ez a függvény visszaadja az értéket, és egy állapotváltozóban lesz tárolva.

void loop () {if (Soros.elérhető ()) {kész = 1; kívántAngle.base = Soros.parseInt (); wishAngle.shoulder = Soros.parseInt (); kívántAngle.elbow = Soros.parseInt (); kívánt fogás = Soros.parseInt (); wishDelay = Soros.parseInt (); if (Serial.read () == ' n') {// ha az utolsó bájt 'd', akkor hagyja abba az olvasást, és hajtsa végre a 'd' parancsot a 'done' Serial.flush () kifejezésre; // törölje az összes többi, a pufferben halmozott parancsot // a Serial.print ('d') parancs befejezésének elküldése; }} int állapot1 = 0; int állapot2 = 0; int állapot3 = 0; int állapot4 = 0; int kész = 0; while (kész == 0 && kész == 1) {// vigye a szervót a kívánt helyzetbe1 = servoParallelControl (kívántAngle.base, baseServo, wantedDelay); status2 = servoParallelControl (kívánt kampó.váll, vállszervo, kívánt késleltetés); status3 = servoParallelControl (kívántAngle.elbow, könyökServo, neededDelay); status4 = servoParallelControl (kívánt fogás, megfogó szerver, kívánt késleltetés); if (állapot1 == 1 & állapot2 == 1 & állapot3 == 1 & állapot4 == 1) {kész = 1}} // idő vége}

Ez volt a robotkar készítésének teljes eljárása. A kód beírása és az alkalmazás letöltése után a robotnak tökéletesen működnie kell, amikor az alkalmazás csúszkáit elmozdítják. Azt is programozhatja, hogy a kar önállóan működjön a kívánt feladat végrehajtása érdekében.