Kuinka tehdä DIY Arduino- ja Bluetooth-ohjattu robottiosa?

Viime vuosisadalla robotiikka on uusin tutkimusalue. Robotit ovat hallinneet melkein kaiken, mitä ihmiset tekivät. Voimme nähdä autonomisten robottien suorittavan erilaisia ​​tehtäviä yhteiskunnassamme. On myös joitain kauko-ohjattavia robotteja, jotka auttavat meitä suorittamaan erilaisia ​​toimintoja. Robotit ovat luotettavampia kuin ihmiset, aina nanopiirien tekemisestä tekniikan alalla monimutkaisten leikkausten tekemiseen lääketieteen alalla.



Robottivarsi

Tässä projektissa aiomme tehdä robottivarren, jota ohjaa Arduino-mikrokontrolleri. Sitä ohjataan Bluetoothin kautta android-kaukosäätösovelluksen avulla.



Kuinka hallita robottikäsiä Arduinolla?

Nyt kun tiedämme tiivistelmän projektistamme. Keräämme lisää tietoa piiristä ja aloitamme Bluetooth-ohjattavan robottivarren rakentamisen ja hallitsemme sitä Bluetoothin kautta.



Vaihe 1: Komponenttien kerääminen

Paras tapa aloittaa mikä tahansa projekti on tehdä täydellinen luettelo komponenteista. Tämä ei ole vain älykäs tapa aloittaa projekti, mutta se myös säästää meitä projektin keskellä olevista monista haitoista. Alla on luettelo tämän projektin komponenteista:



  • HC-05 langaton Bluetooth-sarjavastaanotin
  • 6V-sovitin
  • Neulalangat
  • Leipälauta

Vaihe 2: Komponenttien tutkiminen

Koska meillä on täydellinen luettelo kaikista komponenteista, joita aiomme käyttää, siirrymme eteenpäin ja käymme läpi lyhyen tutkimuksen kaikista komponenteista.

Arduino Nano on mikrokontrollerikortti, joka suorittaa erilaisia ​​toimintoja eri piireissä. Se vaatii a C-koodi joka kertoo hallitukselle tehtävät ja miten. Siinä on 13 digitaalista I / O-nastaa, mikä tarkoittaa, että voimme käyttää 13 erilaista laitetta. Arduino nanolla on täsmälleen sama toiminnallisuus kuin Arduino Unolla, mutta melko pienessä koossa. Arduino Nano -taulun mikrokontrolleri on ATmega328p. Jos haluat hallita yli 13 laitetta, käytä Arduino Megaa.

Arduino Nano



HC-05 langaton Bluetooth-sarjavastaanotin : Tarvitsemme langatonta viestintää tässä projektissa, joten käytämme Bluetooth-tekniikkaa ja käytettävä moduuli on HC-05. Tässä moduulissa on useita ohjelmoitavia baudinopeuksia, mutta oletuksena baudinopeus on 9600 bps. Se voidaan määrittää joko isännäksi tai orjaksi, kun taas toinen moduuli HC-06 voi toimia vain orjatilassa. Tässä moduulissa on neljä nastaa. Yksi VCC: lle (5 V) ja loput kolme GND: lle, TX: lle ja RX: lle. Tämän moduulin oletussalasana on 1234 tai 0000 . Jos haluamme kommunikoida kahden mikro-ohjaimen välillä tai kommunikoida minkä tahansa Bluetooth-toiminnolla varustetun laitteen, kuten puhelimen tai kannettavan tietokoneen HC-05 kanssa, auttaa meitä siinä. Useita Android-sovelluksia on jo saatavilla, mikä tekee prosessista paljon helpompaa.

HC-05 Bluetooth-moduuli

Tyypillinen Robottivarsi koostuu useista segmenteistä ja siinä on yleensä 6 liitosta. Se sisältää vähintään 4 askelmoottoria, joita tietokone ohjaa. Askelmoottorit eroavat muista DC-moottoreista. Ne liikkuvat tarkasti tarkoin. Näitä robotti-aseita käytetään erilaisten toimintojen suorittamiseen. Voimme käyttää niitä manuaalisesti kaukosäätimellä tai voimme ohjelmoida ne toimimaan itsenäisesti.

Robottivarsi.

Vaihe 3: Komponenttien kokoaminen

Nyt kun tiedämme kaikkien käytettyjen pääkomponenttien toiminnasta. Aloitetaan niiden kokoaminen ja muodostetaan piiri kauko-ohjattavan robottivarren rakentamiseksi.

  1. Kiinnitä Arduino Nano -taulu leipälautaan. Arduino saa virtansa sovittimen positiivisen ja negatiivisen johdon kautta.
  2. Aseta myös Bluetooth-moduuli leipälaudalle. Käynnistä Bluetooth-moduuli Arduinon kautta. Liitä Bluetooth-moduulin Tx-nasta Arduino Nan -levyn Rx-nastaan ​​ja liitä Bluetooth-moduulin Rx-nasta Arduino Nano-kortin Tx-nastaan.
  3. Koska tiedämme, että askelmoottoreita on 4. Jokaisella on tekninen nimi. Niitä kutsutaan Kyynärpää , Olkapää , Pohja, ja Tarttuja . Kaikkien moottoreiden Vcc ja Ground ovat yhteisiä ja kytketty 6V-sovittimen positiivisiin ja negatiivisiin. Kaikkien neljän moottorin signaalitappi liitetään Arduino Nanon nastoihin 5, 6, 6 ja 9.
  4. Varmista, että tekemäsi liitännät ovat seuraavan kytkentäkaavion mukaisia.

    Piirikaavio

Vaihe 4: Arduinon käytön aloittaminen

Jos et ole vielä perehtynyt Arduino IDE -ohjelmaan, älä huoli, koska alla on selitetty vaiheittainen menettely Arduino IDE: n asettamiseksi ja käyttämiseksi mikrokontrollerikortin kanssa.

  1. Lataa uusin Arduino IDE -versio osoitteesta Arduino.
  2. Liitä Arduino Nano -kortti kannettavaan tietokoneeseen ja avaa ohjauspaneeli. Napsauta sitten Laitteisto ja ääni . Napsauta nyt Laitteet ja tulostimet. Täältä löydät portin, johon mikrokontrollerikortti on kytketty. Minun tapauksessani se on COM14 mutta se on erilainen eri tietokoneissa.

    Portin löytäminen

  3. Napsauta Työkalut-valikkoa ja aseta taululle Arduino Nano avattavasta valikosta.

    Asennuslauta

  4. Määritä samassa Työkalu-valikossa portiksi sen portin numero, jonka olet havainnut aiemmin Laitteet ja tulostimet .

    Portin asettaminen

  5. Aseta samassa Työkalu-valikossa Suoritin kohtaan ATmega328P (vanha käynnistyslatain).

    Suoritin

  6. Koodin kirjoittamiseen servomoottoreiden käyttämiseen tarvitaan erityinen kirjasto, joka auttaa meitä kirjoittamaan useita toimintoja servomoottoreille. Tämä kirjasto on liitetty koodin mukana alla olevaan linkkiin. Lisää kirjasto napsauttamalla Luonnos> Sisällytä kirjasto> Lisää ZIP. Kirjasto.

    Sisällytä kirjasto

  7. Lataa alla oleva koodi ja liitä se Arduino IDE -laitteeseesi. Klikkaa lataa -painiketta polttaaksesi koodin mikro-ohjainkortillesi.

    Lähetä

Lataa koodi Klikkaa tästä.

Vaihe 5: Sovelluksen lataaminen

Kun olemme nyt kokoaneet koko piirin ja ladanneet koodin mikro-ohjainkortille. antaa ladata mobiilisovelluksen, joka toimii robottivarren kaukosäätimenä. Ilmainen sovellus on saatavana Google Play -kaupasta. Sovelluksen nimi on Pieni käsivarsi -robottiohjaus . Muodosta Bluetooth-yhteys ottamalla Bluetooth käyttöön matkapuhelimessasi. Siirry asetuksiin ja yhdistä matkapuhelin HC-05-moduuliin. Kun olet tehnyt tämän, paina sovelluksen Bluetooth-painiketta. Jos se muuttuu vihreäksi, se tarkoittaa, että sovellus on nyt kytketty ja valmis käyttämään robottiosaa. On liukusäätimiä, joiden avulla robotin käsivarsi toimii halutulla tavalla.

Sovellus

Vaihe 6: Koodin ymmärtäminen

Koodi on hyvin kommentoitu ja helppo ymmärtää. Bur still, se selitetään lyhyesti alla.

1. Alussa mukana on kirjasto, joka kirjoittaa koodin servomoottoreiden käyttämiseksi. Toinen kirjasto matematiikka sisältyy erilaisten matemaattisten operaatioiden suorittamiseen koodissa. Neljä esinettä on myös alustettu käytettäväksi neljässä servomoottorissa.

#include // arduino-kirjasto #include // tavallinen c-kirjasto #define PI 3.141 Servo baseServo; Servo lapa Servo; Servo kyynärpääServo; Servo-tarttujaServo; int-komento;

2. Sitten rakenteen ilmoitetaan ottavan arvot pohja-, olka- ja kyynärpään servomoottoreille.

struct jointAngle {// rakenteen int-pohja; int olkapää; int kyynärpää; };

3. Tämän jälkeen jotkut muuttujat alustetaan tallentamaan servomoottorin haluttu pito, viive ja asento. nopeudeksi on asetettu 15, ja esine tehdään ottamaan kulman arvo rakenteessa.

int haluttu pito; int tarttujaPos; haluttu viive; int servoSpeed ​​= 15; int valmis = 0; struct jointAngle toivottuAngle; // servojen halutut kulmat

Neljä. void setup () on toiminto, jota käytetään asettamaan Arduinon nastat tuloksi tai tuloksi. Tässä toiminnossa olemme ilmoittaneet, että moottorien tappi liitetään Arduinon mihin nastoihin. On myös varmistettu, että Arduino ei lue sarjaporttia liian kauan. Alkuasento ja siirtonopeus asetetaan myös tässä toiminnossa. Siirtonopeus on nopeus, jolla mikro-ohjainkortti kommunikoi liitettyjen servojen ja Bluetooth-moduulin kanssa.

void setup () {Sarja.alku (9600); baseServo.attach (9); // kiinnittää nastan 9 pohjaservon servokohteen lapaServo.attach (10); // kiinnittää olkaservon tapissa 9 servokohteen kyynärpääServo.attach (11); // kiinnittää tapin 9 kyynärservon servokohteen tarttujaan Servo.attach (6); // kiinnittää tarttujan servon tapilla 9 servo-objektiin Serial.setTimeout (50); // varmistaa, että arduino ei lue sarjaa liian kauan Serial.println ('aloitettu'); baseServo.write (90); // servojen olkapään intiaaliasennotServo.write (150); elbowServo.write (110); valmis = 0; }

5. servoParallelControl () on toiminto, jota käytetään robottivarren nykyisen sijainnin havaitsemiseen ja sen siirtämiseen mobiilisovelluksen kautta annetun komennon mukaisesti. Jos nykyinen sijainti on pienempi kuin todellinen, varsi liikkuu ylöspäin ja päinvastoin. Tämä toiminto palauttaa nykyisen sijainnin arvon ja servon nopeuden.

int servoParallelControl (int thePos, Servo theServo, int theSpeed) {int startPos = theServo.read (); // lue nykyinen pos int newPos = startPos; // int theSpeed ​​= nopeus; // määritä posin sijainti komennon suhteen // jos nykyinen sijainti on pienempi kuin varsinainen siirtyminen ylöspäin if (startPos (thePos + 5)) {newPos = newPos - 1; theServo.write (newPos); viive (nopeus); paluu 0; } else {return 1; }}

6. void loop () on toiminto, joka toimii toistuvasti silmukassa. Tämä toiminto lukee sarjaan tulevat tiedot ja tallentaa kunkin servon kulman rakenteeseen. Aluksi kaikkien servojen tila on nolla. Tässä toiminto servoParallelControl () kutsutaan ja parametrit välitetään siihen. tämä toiminto palauttaa arvon ja se tallennetaan tilamuuttujaan.

void loop () {if (Serial.available ()) {valmis = 1; wishAngle.base = Sarja.parseInt (); wishAngle.shoulder = Sarja.parseInt (); wishAngle.elbow = Sarja.parseInt (); haluttu pito = Serial.parseInt (); wishDelay = Sarja.parseInt (); jos (Serial.read () == ' n') {// jos viimeinen tavu on 'd', lopeta lukeminen ja suorita komento 'd' tarkoittaa 'valmis' Serial.flush (); // tyhjennä kaikki muut puskuriin kasatut komennot // lähetä komento Serial.print ('d') loppuun; }} int-tila1 = 0; int-tila2 = 0; int-tila3 = 0; int-tila4 = 0; int tehty = 0; while (valmis == 0 && valmis == 1) {// siirrä servo haluttuun sijaintitilaan1 = servoParallelControl (haluttu kulma.kanta, pohjaServo, haluttu viive); status2 = servoParallelControl (haluttu kulma.olka, olkapääpalvelin, haluttu viive); status3 = servoParallelControl (haluttu kulma.kulma, kyynärpääServo, haluttu viive); status4 = servoParallelControl (haluttu pito, tarttujanServo, haluttu viive); jos (status1 == 1 & status2 == 1 & status3 == 1 & status4 == 1) {valmis = 1}} // ajan loppu}

Nyt tämä oli koko robotin käsivarren valmistusmenettely. Koodin polttamisen ja sovelluksen lataamisen jälkeen robotin pitäisi toimia täydellisesti, kun sovelluksen liukusäätimiä siirretään. Voit myös ohjelmoida käsivarren toimimaan itsenäisesti halutun tehtävän suorittamiseksi.