Egy robot egyszerű távirányítója számítógépről. Arduino alapú autonóm robot távirányítóval Távirányított robotok

A robot irányítása kihívást jelentő feladat. Az általunk választott definíció megköveteli, hogy az eszköz tisztában legyen a környezetével. Ezután hozzon döntést, és tegye meg a megfelelő lépéseket. A robotok lehetnek autonómok vagy félautonómok.

  1. Egy autonóm robot egy adott algoritmus szerint működik a szenzoroktól kapott adatok alapján.
  2. Egy félig autonóm robotnak olyan feladatai vannak, amelyeket ember irányít. És ezen kívül vannak más feladatok is, amelyeket önállóan hajt végre...

Félig autonóm robotok

A félig autonóm robot jó példája egy komplex víz alatti robot. Az ember irányítja a robot alapvető mozgásait. És ebben az időben a fedélzeti processzor méri és reagál a víz alatti áramlatokra. Ez lehetővé teszi, hogy a robotot ugyanabban a helyzetben tartsa anélkül, hogy elsodródna. A robot fedélzetén lévő kamera visszaküldi a videót az embernek. Ezenkívül a fedélzeti érzékelők képesek figyelni a víz hőmérsékletét, nyomását stb.

Ha a robot elveszíti kapcsolatát a felszínnel, akkor az autonóm program bekapcsol, és a víz alatti robotot a felszínre emeli. Annak érdekében, hogy irányítani tudja a robotját, meg kell határoznia az autonómia szintjét. Talán azt szeretné, hogy a robot kábellel vezérelhető legyen, legyen vezeték nélküli vagy teljesen autonóm.

Kábelkezelés

A robotot legegyszerűbben úgy irányíthatjuk, ha a kézi vezérlőt egy kábellel fizikailag csatlakoztatjuk hozzá. A vezérlőn található kapcsolók, gombok, karok, joystickok és gombok lehetővé teszik a felhasználó számára a robot vezérlését anélkül, hogy bonyolult elektronikát kellene bekapcsolnia.

Ebben a helyzetben a motorok és a tápegység közvetlenül csatlakoztatható a kapcsolóhoz. Ezért az előre/hátra forgása szabályozható. Általában járművekben használják.

Nincs intelligenciájuk, és inkább "távirányítós gépeknek" tekintik őket, mint "robotoknak".


  • Ennek a kapcsolatnak a fő előnye, hogy a robot működési ideje nem korlátozza. Mivel közvetlenül csatlakoztatható a hálózathoz. Nem kell aggódnia a jel elvesztése miatt. A robot általában minimális elektronikával rendelkezik, és nem túl bonyolult. Maga a robot lehet könnyű vagy extra hasznos teherrel. A robotot fizikailag is vissza lehet hozni a kábelre erősített hevederrel, ha valami baj van. Ez különösen igaz a víz alatti robotokra.
  • A fő hátrányok, hogy a kábel összegabalyodhat, beleakadhat valamibe, vagy eltörhet. A robot küldhető távolságát a kötél hossza korlátozza. A hosszú heveder húzása növeli a súrlódást, és lelassíthatja vagy akár le is állíthatja a robot mozgását.

Robotvezérlés kábelen és beépített mikrokontrolleren keresztül

A következő lépés a mikrokontroller telepítése a robotra, de továbbra is használja a kábelt. Ha a mikrokontrollert számítógépe egyik I/O-portjához (például USB-porthoz) csatlakoztatja, akkor irányíthatja a műveleteit. A vezérlés a billentyűzet, joystick vagy más periféria segítségével történik. Mikrokontroller hozzáadásához egy projekthez szükség lehet arra is, hogy a robotot bemeneti jelekkel programozza be.


  • A fő előnyök ugyanazok, mint a közvetlen kábelvezérlésnél. A robotok bonyolultabb viselkedése és reakciói az egyes gombokra vagy parancsokra programozhatók. Vezérlővezérlők (egér, billentyűzet, joystick stb.) széles választéka áll rendelkezésre. A hozzáadott mikrokontroller beépített algoritmusokkal rendelkezik. Ez azt jelenti, hogy kölcsönhatásba léphet az érzékelőkkel, és önállóan hozhat bizonyos döntéseket.
  • A hátrányok közé tartozik a magasabb költség a további elektronika jelenléte miatt. További hátrányai ugyanazok, mint a robot kábellel történő közvetlen vezérlésénél.

Ethernet vezérlés

használt csatlakozó Ethernet RJ45. A vezérléshez Ethernet kapcsolat szükséges. A robot fizikailag kapcsolódik a routerhez. Ezért az interneten keresztül vezérelhető. Ez is lehetséges (bár nem túl praktikus) mobil robotoknál.

Az interneten keresztül kommunikáló robot beállítása meglehetősen bonyolult lehet. Először is előnyben részesítjük a WiFi (vezeték nélküli internet) kapcsolatot. Vezetékes és vezeték nélküli kombináció is egy lehetőség, ahol van adó-vevő (adás és vétel). Az adó-vevő fizikailag kapcsolódik az internethez, majd az interneten keresztül kapott adatokat vezeték nélkül továbbítják a robotnak.


  • Előnye, hogy a robot a világ bármely pontjáról vezérelhető az interneten keresztül. A robotnak nincs időkorlátja, mivel képes a Power over Ethernet használatára. PoE. Ez egy olyan technológia, amely lehetővé teszi az elektromos energia és az adatok átvitelét egy távoli eszközre szabványos csavart érpárú kábelen keresztül Ethernet hálózaton keresztül. Az Internet Protokoll (IP) használata egyszerűsítheti és javíthatja a kommunikációs sémát. Az előnyök ugyanazok, mint a közvetlen vezetékes számítógépes vezérlésnél.
  • Hátránya a bonyolultabb programozás és ugyanazok a hátrányok, mint a kábelvezérlésnél.

IR távirányító

Az infravörös adók és vevők megszüntetik a robotot a kezelővel összekötő kábelt. Ezt általában a kezdők használják. Az infravörös vezérlés működéséhez „rálátás” szükséges. A vevőnek képesnek kell lennie bármikor "látnia" az adót ahhoz, hogy adatokat fogadhasson.

Az infravörös távirányítók (például a televíziók univerzális távirányítói) arra szolgálnak, hogy parancsokat küldjenek a mikrokontrollerhez csatlakoztatott infravörös vevőnek. Ezután értelmezi ezeket a jeleket, és vezérli a robot tevékenységét.


  • Előnye az alacsony költség. Egyszerű TV távirányítókkal lehet irányítani a robotot.
  • Hátránya, hogy irányításához rálátás szükséges.

rádióvezérlés

A rádiófrekvenciás vezérléshez kis mikrokontrollerekkel ellátott adó és vevő szükséges a rádiófrekvenciás (RF) adatok küldéséhez, fogadásához és értelmezéséhez. A vevődobozban van egy nyomtatott áramköri kártya (PCB), amely tartalmazza a vevőegységet és egy kis szervomotor-vezérlőt. A rádiókommunikációhoz a vevőhöz illesztett/párosított adó szükséges. Lehetőség van olyan adó-vevő használatára, amely képes adatokat küldeni és fogadni két fizikailag különböző kommunikációs rendszerkörnyezet között.

A rádióvezérlés nem igényel közvetlen rálátást, és nagy távolságokra is végrehajtható. A szabványos rádiófrekvenciás eszközök akár több kilométeres távolságra is képesek adatokat továbbítani az eszközök között. Míg a professzionálisabb RF eszközök szinte bármilyen távolságból biztosíthatják a robot irányítását.


Sok robottervező inkább félautonóm rádióvezérlésű robotokat épít. Ez lehetővé teszi, hogy a robot a lehető legnagyobb mértékben autonóm legyen, és visszajelzést adjon a felhasználónak. És szükség esetén bizonyos funkciókat adhat a felhasználónak.

  • Előnye, hogy a robotot jelentős távolságra is lehet irányítani, könnyen konfigurálható. A kommunikáció mindenirányú, de előfordulhat, hogy falak vagy akadályok nem akadályozzák meg teljesen.
  • Hátránya a nagyon alacsony adatátviteli sebesség (csak egyszerű parancsok). Ezenkívül figyelni kell a frekvenciákra.

Bluetooth vezérlés

A Bluetooth egy rádiójel (RF), amelyet bizonyos protokollokon keresztül továbbítanak adatok küldésére és fogadására. A normál Bluetooth hatótávolsága gyakran 10 m körül van korlátozva, bár megvan az az előnye, hogy lehetővé teszi a felhasználók számára, hogy Bluetooth-kompatibilis eszközökön keresztül irányítsák robotjukat. Ezek elsősorban mobiltelefonok, PDA-k és laptopok (bár egyéni programozásra lehet szükség az interfész létrehozásához). A rádióvezérléshez hasonlóan a Bluetooth is kétirányú kommunikációt kínál.


  • Előnyök: Bármilyen Bluetooth-kompatibilis eszközről felügyelhető. De általában további programozásra van szükség. Ezek okostelefonok, laptopok stb. A nagyobb adatátviteli sebesség mindenirányú lehet. Ezért nincs szükség rálátásra, és a jel egy kicsit áthaladhat a falakon.
  • Hibák. Párban kell dolgozni. A távolság általában körülbelül 10 m (akadályok nélkül).

WiFi vezérlés

A WiFi vezérlés gyakran opcionális extra a robotok számára. A robotok interneten keresztüli vezeték nélküli vezérlésének lehetősége jelentős előnyöket (és néhány hátrányt) jelent a vezeték nélküli vezérlésnek. A robot Wi-Fi vezérlésének beállításához szükség van az internethez csatlakoztatott vezeték nélküli routerre és magán a roboton egy WiFi egységre. A robothoz olyan eszközt használhat, amely támogatja a TCP / IP protokollt.


  • Előnye, hogy a világ bármely pontjáról irányítható a robot. Ehhez a vezeték nélküli útválasztó hatókörén belül kell lennie. Nagy adatátviteli sebesség lehetséges.
  • Hátránya, hogy programozásra van szükség. A maximális távolságot általában a vezeték nélküli útválasztó kiválasztása határozza meg.

Mobiltelefon vezérlés

Egy másik vezeték nélküli technológiát, amelyet eredetileg az emberek közötti kommunikációra fejlesztettek ki, a mobiltelefont, ma már robotok irányítására használják. Mivel a mobiltelefonok frekvenciája állítható, a cellamodul engedélyezése a roboton általában további programozást igényel. Ehhez nem szükséges megérteni a mobilhálózati rendszert és a szabályokat.


  • Előnyök: a robot bárhol irányítható, ahol van cellás jel. Műholdas kommunikáció lehetséges.
  • Hibák; A cellavezérlés beállítása bonyolult lehet – nem kezdőknek. Minden mobilhálózatnak megvannak a maga követelményei és korlátai. Az online szolgáltatás nem ingyenes. Általában minél több adatot visz át, annál több pénzt kell fizetnie. A rendszert még nem konfigurálták a robotikában való használatra.

A következő lépés a mikrokontroller teljes kihasználása a robotban. És mindenekelőtt az érzékelők adatainak bevitelére szolgáló algoritmus programozása. Az autonóm irányítás többféle formában is megvalósítható:

  1. előre programozható a környezet visszajelzése nélkül
  2. korlátozott visszajelzéssel az érzékelőktől
  3. komplex érzékelő visszacsatolással

Az igazi autonóm vezérlés számos érzékelőt és algoritmust tartalmaz. Lehetővé teszik a robot számára, hogy önállóan határozza meg a legjobb akciót bármely adott helyzetben. Az autonóm robotokon jelenleg alkalmazott legkifinomultabb vezérlési módszerek a vizuális és hallható parancsok. A vizuális vezérléshez a robot egy személyre vagy tárgyra néz, hogy megkapja a parancsait.


Sokkal nehezebb irányítani egy robotot, hogy balra forduljon úgy, hogy leolvas egy balra mutató nyilat egy papírlapról, mint azt gondolnánk. Az olyan szervizparancsok, mint például a "fordulj balra", szintén sok programozást igényelnek. Sok bonyolult parancs programozása, mint például a „Hozd el nekem a papucsot” már nem képzelet. Bár ez nagyon magas szintű programozást és sok időt igényel.

  • Az előnyök az „igazi” robotikában rejlenek. A feladatok olyan egyszerűek lehetnek, mint egy lámpa villogtatása egyetlen érzékelő leolvasása alapján, vagy egy űrhajó leszállása egy távoli bolygóra.
  • A hátrányok csak a programozón múlnak. Ha a robot olyasmit csinál, amit nem akarsz, akkor csak egy lehetőséged van. Ez a kód ellenőrzése, módosítása és a változtatások feltöltése a robotba.

Gyakorlati rész

Projektünk célja egy autonóm platform létrehozása, amely képes a szenzoroktól érkező külső jelek alapján döntéseket hozni. Lego EV3 mikrokontrollert fogunk használni. Lehetővé teszi számunkra, hogy teljesen autonóm platformmá tegyük. Tehát félig autonóm, Bluetooth-on vagy infravörös távirányítóval vezérelhető.


LEGO EV3 programozható kocka

Ma senkit sem lep meg rádióvezérléssel házi. De el kell ismernie, hogy valahogy „a régimódi módon” megnyomja a vezérlőgombokat... Sokkal érdekesebb kezelni iparművészet ecsetvonásokkal, ugye? Ez a cikk egy példát mutat be arra, hogyan állíthatja be a távirányítót Arduino kártya és több hajlításérzékelő használatával. A PHIRO Pro tesz kísérleti alanyként

1. lépés: Amire szüksége van

  • Hajlítási érzékelők;
  • Arduino UNO;

  • Bluetooth modul HC-05;

  • Kesztyű;

  • Jumperek;

  • 9B akkumulátor;

  • Pocket Code alkalmazás.

2. lépés: A Firmata Standard betöltése az Arduino-ra

Fel kell tölteni a firmata szabványt az Arduino kártyára, hogy összekapcsolhassuk a Pocket Code-dal. Ebben a projektben Arduino UNO-t használunk, de bármilyen Arduino tábla használható.

  • Csatlakoztatjuk az Arduino kártyát a számítógéphez / laptophoz.
  • Az Arduino ID-ben válassza a COM-portot. Eszközök -> Soros port -> Megfelelő COM-port
  • Ezután válassza ki a tábla típusát. Eszközök -> Tábla -> Az Ön Arduino tábla
  • Ezután a Firmata szabványt választjuk. Példák -> Firmata -> Standard Firmata
  • Kattintson a "Feltöltés" gombra, és töltse fel a kódot a táblára.

3. lépés: Csatlakoztassa az érzékelőket a táblához, és rögzítse őket a kesztyűhöz

A flexibilis érzékelők rezisztív eszközök, amelyek hajlítás vagy dőlés érzékelésére használhatók. Az alábbiakban az Arduino érzékelőinek kapcsolási rajza látható. Hajlított tűzőtartókat használtam, hogy biztonságosan rögzítsem az érzékelőket a kesztyűhöz, de használhatsz műanyag cipzárakat is, ha szeretnéd.

4. lépés: A HC-05 Bluetooth modul csatlakoztatása az Arduino-hoz

A bluetooth modul és az Arduino kártya kimeneteit az alábbiak szerint csatlakoztatjuk:

  • HC05 Tx - Arduino Rx
  • HC05 Rx - Arduino Tx
  • Vcc - 5V
  • GND-GND

5. lépés: Az Arduino csatlakoztatása az akkumulátorhoz

9 V-os elemet használunk az Arduino kártya táplálására a Bluetooth modullal. Az ilyen típusú elrendezést a csuklóra/karkötőre való könnyű rögzítés lehetősége magyarázza. Minél kompaktabb, annál jobb.

6. lépés: Pocket Code program

Az alábbiakban példák találhatók a program használatára. Először is győződjön meg arról, hogy a PHIRO Pro 3. módban van (Bluetooth mód). Nyomja meg a Mode gombot a PHIRO-n, mielőtt a felső kijelző melletti kék LED bekapcsolna.

A programnak általában 7 üzemmódja van.

  • A mutatóujj kinyújtva. A fényszórók vörösen világítanak. A program a STOP feliratot mutatja.
  • A mutató és a középső ujj kinyújtott. A fényszórók zölden világítanak. A program a STOP feliratot mutatja.
  • A mutató, a középső és a gyűrűsujj kiegyenesedett. A fényszórók kéken világítanak. A program a STOP feliratot mutatja.
  • A tenyér nyitva van. A PHIRO halad előre. A fényszórók fehéren világítanak. A program a FORWARD (előre) feliratot mutatja.
  • A tenyér ökölbe szorul. A PHIRO megáll. A fényszórók ki vannak kapcsolva. A program a STOP feliratot mutatja.
  • A tenyeret ökölbe szorítjuk és balra döntjük (a telefont balra döntjük). PHIRO balra fordul. A bal oldali fényszóró sárgán világít. A program balra (balra) mutatja.
  • A tenyeret ökölbe szorítjuk és jobbra döntjük (a telefont jobbra döntjük). PHIRO jobbra fordul. A jobb oldali fényszóró sárgán világít. A program a JOBBRA (jobbra) feliratot mutatja.

7. lépés: Elvégezzük a végső telepítést

Ha a telefont a karjára szeretné rögzíteni, használhat csuklópántot, vagy tegyen úgy, ahogy én tettem.

Vettem egy olcsó fedelet a mobilomnak, lyukakat vágtam és kifeszítettem a tépőzárat. A telefonnal ellátott karszalag készen áll.

Ennyi!) Köszönöm a figyelmet)

Azért hozták létre ezt a projektet, hogy tapasztalatokat szerezzenek az Arduino táblával való munkavégzés során, úgymond tanulási tapasztalatként és csak szórakozásból. A projekt célja egy olyan autó létrehozása volt, amely önállóan képes megkerülni a különféle akadályokat anélkül, hogy ütközne velük.

1. lépés: A projekt összetevőinek listája és költsége

1. Játékautó rádióvezérléssel (rádióvezérlésű).

Ez a dolog körülbelül 20 dollárba kerül, ha van lehetőséged többet költeni, akkor jobban is használhatod.

2. Arduino Uno mikrokontroller - 25 dollár

3. Motorpajzs az elektromos motorok vezérléséhez - 20 dollár

4. GPS a navigációhoz. Adafruit Ultimate GPS Shield - 50 dollár

5. Magnetométer, mint iránytű a navigációhoz. Adafruit HMC5883 magnetométer - 10 dollár

6. Ultrahangos távolságérzékelő az akadályok elkerülésére. HC-SR04 - 6 dollár

7. LCD kijelző a jármű állapotának és információinak megjelenítéséhez. LCD kijelző kék 1602 IIC, I2C TWI - 6 USD (használhat másikat is)

8. Infravörös érzékelő és távirányító.

9. Arduino vázlat (C++ program).

10. Vékony falemez, mint szerelőlap.

11. Kenyértáblák. Az egyik hosszú és keskeny, a másik kicsi, hogy a magnetométert a többi elemtől elkülönítve helyezzék el rá.

12. Jumperek.

13. Ultrahangos érzékelő szerelőkészlet - 12 dollár

14. Forrasztópáka és forrasztóanyag.

Összességében tehát körülbelül 150 dollárba került, és feltételezzük, hogy megvásárolja az összes összetevőt, mert lehet, hogy már rendelkezik belőlük.

2. lépés: Az alváz és a platform felszerelése

A rádióvezérlőt eltávolították egy nem kívánt játékról, amely 15 dollárba került.

Ennek az autónak két motorja van. Az egyik motor segítségével a távirányító szabályozza a robot sebességét, a másik segítségével pedig a kormányzást.

Rögzítési felületként vékony táblát használtak, amelyre kenyértáblákat, Arduino-t, LCD-t stb. Az akkumulátorokat a tábla alá helyezik, és a vezetékeket a fúrt lyukakon vezetik át.

3. lépés: Program

Az Arduino vezérlése C++ programmal történik.

Forrás

RC_Car_Test_2014_07_20_001.ino

4. lépés: LCD kijelző

Működés közben a képernyőn a következő információk jelennek meg:

1. sor:

1. TH - Cél, irány az aktuális fordulóponthoz

2. CH - A robot aktuális iránya

2. sor:

3. Err – Iránytű iránya, megmutatja, hogy a robot melyik irányba mozog (balra vagy jobbra)

4. Távolság – fókusztávolság (méterben) az aktuális fordulóponthoz

3. sor:

5. SNR – A szonár távolsága, vagyis a robot előtti objektumok távolsága

6. Spd - Robot sebessége

4. sor:

7. Mem - Memória (byte-ban). Az Arduino memória 2 KB

8. WPT n OF x – Megmutatja, hol van a robot az útpontok listájában

5. lépés: Kerülje el a tárgyakkal való ütközést

Annak érdekében, hogy a robot elkerülje az akadályokat, itt ultrahangos "Ping" szenzort használtak. Úgy döntöttek, hogy kombinálják az Arduino NewPing könyvtárral, mivel jobb, mint az egyszerű Ping könyvtár.

A könyvtárat innen vettük: https://github.com/fmbfla/Arduino/tree/master/NewPing

Az érzékelőt a robot lökhárítójára szerelték fel.

Távirányító, ver. 0.1.1

(a robot távvezérlése Wi-Fi-n keresztül táblagépről kézi módban)

többcélú program a mod OpenComputers számára

A program lehetővé teszi, hogy teljes irányítást szerezzen a robot felett, sok műveletet hajtson végre távolról, miközben magát a robotot és annak paramétereit látja.

Például be lehet juttatni egy robotot nehezen elérhető helyekre, kirakni uránt a reaktorból anélkül, hogy besugároznák, egyszerű szerkezetet építeni, ahová még nem tud eljutni, vagy fordítva, hozni valamit. A robot teljes irányítása alatt áll.

A program vicces alkalmazása a játékosok megtámadása. A konfigurációs beállítások szerint a robotok más privátban is végrehajthatnak objektumok használatával, gombok, karok és mechanizmusok, eszközök be- és kikapcsolásával kapcsolatos műveleteket, bár a privátot nem semmisítik meg. Lehetőség van támadásra és lerombolni a játékos összes lepárlóját, gázolaját és szélmalmát, ha nincs játékban, és nem rejtett el mindent a tetőről, vagy nem állított fel őröket és nem érzékelte a támadókat.

A reaktorkamrát rácsavarhatod az áldozat falára, oda lehet tolni egy 4-uránrudat, bekapcsolni a vöröskövet a roboton és több tömbben felrobbantani a falat, ha az óvatlan játékos-áldozat bezárta a tyutelka házát. a tyutelkában a fal szélén, ahogy a játékosok szokták =).

Az IT-n lévő reaktor a beállításokban blokkokat semmisít meg 2-4 blokk körzetében. Fennáll annak esélye, hogy besurransz az áldozat házába, miközben fedezékben vagy, és semmilyen módon nem lehet látni.

Programkód (legújabb):

TABLETTA:(pastebin get b8nz3PrH tabletRC.lua)

ROBOT:(pastebin get 7V2fvm7L robotRC.lua)

Régi verziók (régi):

A robot és a táblagép konfigurációjának követelményei ( a linkelt térkép alapján, szükséges, a készletvezérlő is kell a robotban, a többi opcionális. Kidobhatja a táblákat, megtömheti a vödörvezérlőt, hozzáadhat egy kis zsinórt, húzhatja a folyadékot és így tovább. ChL még nem használt a programban. A nyakhoz nagyon kívánatos egy piros tábla, egy mágnes, egy nagy készlet):

Tablet (azonnali kemény vétel a telepített operációs rendszerrel):

Robot (egyelőre visszautasíthatod a CL-t és betolhatod a táblák vezérlő-bővítőjét. Utána menet közben is tolhatod a robotot, ha kell WF kártya vagy INET kártya):

Szia Habrahabr! Június 11-én este ültem, és filmet néztem. Magam számára váratlanul azt tapasztaltam, hogy egy olyan nő, akit korábban nem ismertem, írt nekem azzal a javaslattal, hogy készítsek robotot az új küldetésükhöz. A lényeg az, hogy rejtvényeket kell megoldani, gyorsítótárakat kell feltárni, helyesen alkalmazni a tippeket, használni a rendelkezésre álló dolgokat, és végül kulcsokat kell szerezni és ajtókat kell nyitni... Egy számítógépről külön programmal vezérelt robotot kellett készítenem. Kétségeim voltak bizonyos problémákkal kapcsolatban, például: lesz-e időm és pontosan hogyan kell vezeték nélküli adatátvitelt végrehajtani (korábban csak NXT-n foglalkoztam vezeték nélküli adatátvitellel)? Az előnyök és hátrányok mérlegelése után beleegyeztem. Ezek után kezdtem el gondolkodni az adatátvitelen. Mivel gyorsan kellett elkészíteni a robotot, nem volt idő emlékezni és elsajátítani például a Delphit, így felmerült az ötlet, hogy készítsünk egy modult, ami parancsokat küldene. A számítógépnek egyszerűen adatokat kell küldenie a COM-portra. Ez a módszer furcsa, de a leggyorsabb. Itt szeretném leírni. Mellékelek 3 programot is, amivel rádióvezérlésű autót készíthetsz.
Az adó és program összeszerelése.
A DFrobot FTDI Basic Breakout 5 / 3.3V-ból készítettem egy modult számítógéphez, egy meglehetősen elterjedt ATMEGA 328P-PU mikrokontroller, Arduino bootloaderrel és nRF24L01 chipre épülő rádiómodullal. Valójában ez csak egy Arduino Uno rádiómodullal. Az, ami. A rádiós modulnak van egy olyan tulajdonsága, amit nem azonnal vettem észre: a bemeneti feszültségnek 3 és 3,6 volt között kell lennie (bár 5 voltot rákapcsolva nem öli meg, de nem működik), a felső határ a logikai egysége 5V. Ez azt jelenti, hogy a rádió modul mega csatlakoztatásához nem kell 3,3V és 5V közötti szintátalakító, hanem 3,3V-os stabilizátort kell beépíteni. Az FTDI-ben van beépített stabilizátor, ebből tápláltam a rádió modult.

Így néz ki maga a modul (belül és az összeállításban):

A program inicializálásból, indítási üzenetből és a vezérlőprogramból érkező parancsok feldolgozásából áll. Így volt ez az én esetemben is. A Mirf könyvtár fő parancsai:

#beleértve
#beleértve
#beleértve
#beleértve
#beleértve
Ezek a könyvtárak a rádiómodul működéséhez szükségesek

Mirf.csnPin = 4 - beállítja a rádiómodul és az MK "kommunikációs engedélyéért" felelős láb számát
Mirf.cePin = 6 - beállítja a rádiómodul (vevő / adó) működési módjáért felelős érintkező számát
Mirf.spi = &MirfHardwareSpi – beállítja az SPI sort
Mirf.init() - inicializálja a rádiómodult
Mirf.payload = 1 – mérete egy üzenet bájtjában (alapértelmezett 16, maximum 32)
Mirf.channel = 19 - beállítja a csatornát (0 - 127, alapértelmezett 0)
Mirf.config() - beállítja az átviteli paramétereket


Mirf.setTADDR((byte *)"serv1") - átkapcsolja a rádiómodult adó módba
Mirf.setRADDR((byte *)"serv1") - átkapcsolja a rádiómodult vevő módba

Mirf.send(data) – byte típusú tömböt küld
Mirf.dataReady() - jelenti a kapott adatok feldolgozásának végét
Mirf.getData(data) - írja be a kapott adatokat az adattömbbe

Csatolom az adó kódját.

adó program

#beleértve
#beleértve
#beleértve
#beleértve
#beleértve

Char aktív;
bájtadatok;

Érvénytelen beállítás()
{
Serial.begin(19200);

Mirf.csnPin = 4;
Mirf.cePin = 6;

Mirf.init();
Mirf.payload = 1;
Mirf.csatorna = 19;
Mirf.config();

Mirf.setTADDR((byte *)"serv1");

//jel üzenet a munka megkezdéséről
adat=7;
Mirf.send(data);
késleltetés(200);
}

Void loop()
{
if (Serial.available()) //Ha az adatok készen állnak a beolvasásra
{
active=Serial.read(); // Adatok írása változóba
}

Ha (aktív=="2")
{
adat=2;
}

Ha (aktív=="3")
{
adat=3;
}

Ha (aktív=="4")
{
adat=4;
}

Ha (aktív=="5")
{
adat=5;
}

Ha (aktív=="6")
{
adat=6;
}

Mirf.send(data); // Adatok küldése
while(Mirf.isSending()); // Várja meg az adatok elküldését
}

Irányító program.

Van egy érdekes dolog - Feldolgozás. A szintaxis ugyanaz, mint az Arduino-ban, csak a void loop () helyett van void draw (). De még érdekesebbé vált a helyzetem a feldolgozó soros könyvtárral, amely lehetővé teszi a soros porttal való munkát. Miután elolvastam a leckéket a Spurkfun weboldalon, eljátszottam a LED-ek villogásával a számítógéphez csatlakoztatott arduinón az egérkattintással. Ezek után írtam egy programot, amivel a billentyűzetről vezérelhető a robot. A vezérlőkódot a nyilak segítségével csatolom. Elvileg nincs benne semmi szokatlan.

Gépvezérlő program

import feldolgozás.soros.*;
import cc.arduino.*;

Soros myPort;
PFont f=createFont("LetterGothicStd-32.vlw", 24);

Érvénytelen beállítás()
{
méret (360, 160);
stroke(255);
háttér(0);
textFont(f);

String portName = "XXXX"; // Ide kell beírnod ​​a portod nevét
myPort = new Serial(this, portName, 19200);
}

Érvénytelen húzás() (
if(keyPressed==false)
{
egyértelmű();
myPort.write("6");
println("6");
}
}

Void key Pressed()
{
// 10 - belép
// 32 - szóköz
// 37/38/39/40 - billentyűk
egyértelmű();

kitölt(255);
textAlign(CENTER);
//szöveg(kulcsKód, 180, 80);

Kapcsoló (kulcskód)
{
37. eset:
text("Edem vlevo", 180, 80);
myPort.write("1");
szünet;

38. eset:
szöveg("Edem pryamo", 180, 80);
myPort.write("2");
szünet;

39-es ügy:
text("Edem vpravo", 180, 80);
myPort.write("3");
szünet;

40. eset:
text("Edem nazad", 180, 80);
myPort.write("4");
szünet;

alapértelmezett:
text("Takoy kommandi net", 180, 80);
myPort.write("6");
szünet;
}
}

vevő program.

Ennek a programnak az inicializálása csak egy sorban különbözik az adó program inicializálásától. A végtelen ciklus kulcsparancsa a Mirf.getData(data). Ezenkívül a kapott parancsot összehasonlítja a robot bármely tevékenységének megfelelő számokkal. Nos, akkor a robot pontosan a parancsokra cselekszik. Csatolom a gépi vevő programkódját.

Gépi programok

#beleértve
#beleértve
#beleértve
#beleértve
#beleértve

Érvénytelen beállítás()
{
Serial.begin(9600);

PinMode(13, OUTPUT); //VEZETTE

Mirf.csnPin = 10;
Mirf.cePin = 9;
Mirf.spi=
Mirf.init();
Mirf.payload = 1;
Mirf.csatorna = 19;
Mirf.config();
Mirf.setRADDR((byte *)"serv1");
}

Void loop()
{
bájtadatok;

If(!Mirf.isSending() && Mirf.dataReady())
{
Mirf.getData(data);
Soros println(adatok);
}

Kapcsoló (adat)
{
1. eset:
motorok (-100, 100); // forduljon balra
szünet;

2. eset:
motorok (100, 100); // egyenesen megy
szünet;

3. eset:
motorok (100, -100); // jobbra
szünet;

4. eset:
motorok (-100, -100); // menjen vissza
szünet;

alapértelmezett:
motorok(0, 0); // állva
szünet;
}

késleltetés(50);
}

Következtetés.

Mi sült ki az egészből:

Ezt a robotot klausztrofóbiára készítettem. A valóságban különböző városokban hajtanak végre küldetéseket, és csak az egyik küldetéshez a szervezőknek szükségük volt egy rádióvezérlésű sapper robotra. Tetszik. Ez persze káros, mert a laptopba épített kommunikációs eszközökkel történő vezérlés hátterében, viszont ez nagyon gyorsan és problémamentesen megtörtént. Remélem, ez a cikk segít valami hasonló, és talán még nehezebb megtételében. Tessék, aki akarja.

Címkék: Címkék hozzáadása