Din cauza numeroaselor solicitări, am decis să descriu procesul de creare a unui astfel de robot cu o cameră pe un șasiu pe șenile și control prin bluetooth folosind un joystick.
Întotdeauna am visat să creez un robot care să poată fi controlat de un computer și să-i urmăresc mișcările de la persoana întâi.
Am împărțit condiționat întregul proces în trei părți:
1. Asamblarea robotului
2. Programarea microcontrolerului la bord
3. Programare control PC
Cred că acest subiect va fi cel mai interesant pentru cei care ar dori să construiască un astfel de robot, dar le lipsesc cunoștințele în anumite puncte. (Pentru cei care sunt bine versați în robotică, electronică și programare, nu voi descoperi nimic nou). Prin urmare, vă voi spune cât mai detaliat și cât mai simplu.
În general, un robot poate fi cumpărat gata făcut, dar
- în primul rând, nu este atât de interesant - chiar procesul de a crea un robot cu propriile mâini este o mare plăcere
- în al doilea rând, atunci când cumpărați un robot gata făcut, este adesea destul de dificil, dacă nu imposibil, să îl refaceți pentru a se potrivi intereselor dvs.
- și în sfârșit, cu abordarea corectă, poate fi mai ieftin să faci un robot pe cont propriu.
Vom folosi cele mai ieftine, dar ansambluri gata făcute, pentru că nu toată lumea este interesată să monteze de la zero, este mai complicată și riscă să ne plictisim de un proces care a durat luni de zile :).
Dacă vrei nu doar să aduci un robot cu care să te joci, ci să o faci singur, atunci hai să mergem!
Robotul nu ia decizii singur, adică este un șasiu controlat de PC care execută comenzi și transmite un semnal video. Cu toate acestea, nu este dificil să îl modificați într-un robot independent - trebuie doar să adăugați senzori și să adăugați logică Computer de bord... Platforma este concepută pentru asta.
Avem nevoie:
Pentru șasiu pe șenile
1. Cutie de viteze cu motor dublu - Cutie de viteze cu motor dublu Tamiya (TAM70097)
2. Senile și rolele cu axe - Set de șenile și roți Tamiya (TAM70100)
3. Platforme și elemente de fixare - Set de plăci universale Tamiya (2) (TAM70157)
Dintre acestea, doar articolul 2 este deficit în Rusia.
Restul îl puteți cumpăra în Terraelectronics (70097 - 520 ruble, 70157 - 385 ruble)
Sau la Magazinul Oficial Tamiya. Dacă cumperi în el, atunci ia șasiu pe șenile(630r) și o cutie (390r). Vei avea o cutie cu un motor de rezerva.
Cert este că avem nevoie de o cutie cu două motoare, astfel încât robotul să poată merge nu numai drept, ci și să se întoarcă, controlând șinele separat.
Deoarece nu a fost posibil să cumpăr totul într-un singur loc în Moscova și nu am vrut să alerg și să caut, am comandat toate acestea pe ebay de la singurul vânzător care livrează în Rusia la un preț normal. Kitul a costat aproximativ 37,5 USD cu livrare.
Puteți găsi aceste piese și pe pololu.com. Există mai scumpe și nu întotdeauna disponibile.
În loc de o platformă cu găuri, este foarte posibil să folosiți o bucată de placaj și pentru elemente de fixare constructor metalic, care se vinde în lumea copiilor cu aproximativ 200-400 de ruble (există mai multe seturi).
În general, cel mai important lucru sunt șenile și motoarele.
Electronica de bord
1. Arduino Duemillanove / Freeduino 2009 - creierul robotului nostru -
pe ebay de la 17,60 USD.
L-am luat pe freeduino.ru, cu destul de mult timp în urmă și pentru 950r.
Pentru un robot, este destul de bazat pe Atmega168 (mai ieftin decât Atmega328P), dacă nu veți scrie o logică robotică foarte elegantă sau nu veți folosi Arduino ca mine pentru alte experimente, pentru care 16 kB de memorie flash ar putea să nu fie de ajuns.
2. Modul de putere Scut motor V2 sau V3 pentru controlul motorului
Pe ebay de la 10,5 USD, versiune vecheși fără piepteni pentru instalarea următorului etaj de scuturi.
pe Freeduino.ru de la 600 de ruble sub formă de constructor la 900 de ruble în formă asamblată. Recomand v3 - este mai flexibil.
3. Scutul senzorului V4 este un modul convenabil pentru conectarea senzorilor și a servomotorizării. Dacă nu ești intimidat de un mănunchi de fire, atunci nu ai nevoie de el nafig. L-am cumpărat pentru experimentare, așa că l-am înfipt pentru comoditate.
aproximativ 8 dolari pe ebay
4. Modul SmartBluetooth. Va fi necesar pentru a comunica cu un PC sau laptop.
pe ebay de la 9,9 USD. Am luat mult timp și m-a costat până la 23 de dolari
5. Dongle Bluetooth - dacă îl controlați de pe un computer și nu există interfață Bluetooth în el, atunci trebuie să îl cumpărați.
preț - 2,7 USD
În total, 40,7 dolari dacă nu aveți scut senzor, dar cu dongle bluetooth pentru computer.
Vom avea nevoie și de energie pentru Arduino și motoare. Puteți folosi baterii AA obișnuite în acest compartiment cumpărându-le de pe piață sau de la ChipIDip, dacă este foarte urgent.
« »
sau baterie de 9V „Krona”.
Prefer bateriile LiPoly mai mici și mai convenabile:
sau 2 celule LiIon 18650 conectate în serie.
Acest kit este suficient pentru a face un robot cu funcționalitate de bază, așa că aș sugera să faceți o pauză în acest loc, să alegeți unde și ce veți comanda, să plasați comenzi sau să mergeți la cumpărături și, în timp ce comanda este livrată, să preluați subsistemul video.
Când comandați în principal din China, veți primi toate componentele în aproximativ 2-3 săptămâni și totul va costa 80-100 USD, în funcție de vânzătorul ales sau de dorința dvs. de a negocia și de a economisi, poate fi mai ieftin. Dacă cumpărați mai multe produse de la un singur vânzător, cereți să combinați transportul, puteți economisi pe aceasta. Așa-zisul " transport gratuit„(Livrare gratuită) este doar inclusă și este bună dacă cumpărați un articol.
Colectăm șasiul
Setul Tamiya 70100 vine cu instrucțiuni detaliate... Tăiați cu grijă cu tăietori de sârmă sau cu un cuțit de birou senile de cauciuc iar rolele, care le separă de coloane, sunt asamblate și fixate cu șuruburi M3x10 pe platforma din placaj, sau dacă ați cumpărat un set de plăci universale Tamiya, apoi cu pene complete, sunt reutilizabile, așa că e în regulă dacă mai întâi lipiți ceva în locul greșit.
Apoi asamblam o cutie de motoare cu cutii de viteze TAM70097. Ea are 2 variante rapoarte de transmisie... 58: 1 conduce foarte, foarte repede, dar motoarele nu trag la turații mici și geme plângător, iar după ce încărcăm platforma, abia se pot răsuci deloc. Recomand asamblarea in varianta 201: 1, astfel incat „tancul” nostru sa nu scape din vedere si se va misca mai lin. Adevărat, zgomotul de la angrenajele care se rotesc furios va fi mai mult. Punem angrenajele de antrenare ale șasiului pe axele hexagonale ale cutiei.
Pentru a verifica performanța, este suficient să furnizați energie de la 2 baterii către motoare prin simpla atingere a cablurilor contactelor motorului. Acum trebuie să lipiți câteva fire de motoare. 10-15 centimetri vor fi de ajuns.
Apoi, folosind piese de la proiectant, am asigurat a doua platformă pentru atașarea electronicelor. În principiu, este posibil să o faci pe un singur etaj, doar că nu este suficient spațiu și nu este foarte convenabil să lucrezi, dar este destul de posibil.
Fixăm Arduino / Freeduino la etajul doi cu șuruburi M3x10 (nu prea coincide în găuri și devine ușor în diagonală). Introduceți MotorShield la etajul doi. Trecem firele de la motoare prin orificiile din site și atașăm firele la porturile M3 și M4 - șuruburi extreme, cel din mijloc rămâne nefolosit (este pt. motoare pas cu pas). Polaritatea conexiunii motoarelor nu contează încă, aceasta poate fi apoi schimbată sau setată programatic, așa că nu vă fie teamă să o amestecați.
Deocamdată, trebuie doar să descoperiți unde să conectați modulul Bluetooth sau să-l atașați la ultimul etaj cu o bandă de cauciuc. Nici nu l-am despachetat - ii va servi ambalajul din spuma protectie mecanicași, în același timp, nu vă va permite să închideți contactele accidental.
Primești ceva ca acest sandviș:
« »
Deschideți imaginea la dimensiune completă pentru a vedea mai bine ce și cum este conectat dacă aveți dificultăți cu asamblarea și conectarea. Atașați Arduino cu un port USB la marginea platformei, astfel încât să fie mai ușor să conectați cablul mai târziu și să programați fără a-l scoate din robot.
Funcționează doar câteva ore dacă este făcut lent.
Subsistemul video
Pentru a călători cu o imagine la persoana întâi, avem nevoie de o cameră video în miniatură, un transmițător radio (emițător) și un receptor (receptor).
Există o mulțime de opțiuni. Inclusiv mersul pe jos la piață și cumpărarea unei camere radio chinezești într-un magazin de gadgeturi de spionaj sau echipamente de supraveghere video. Cel mai probabil va costa 2-4 tyr împreună cu receptorul.
Dar este mult mai ieftin să comandați din China.
Recomand să luați la 1,2 GHz, nu la 2,4 GHz, pentru a evita interferențele cu modulul bluetooth și WiFi care funcționează la 2,4 GHz
De exemplu, iată un astfel de kit:
va costa puțin mai mult de 30 USD. Există și altele mai ieftine, în funcție de camera inclusă.
Pe ebay, poti cumpara exact la fel sau cu o camera in carcasa metalica ca in poza din cutie.
Calitatea imaginii tuturor acestor camere CMOS este destul de așa-așa (380TVL și acelea sunt destul de săpunoase și cu o gamă dinamică scăzută și zgomot ridicat la lumină scăzută). Prin urmare, am comandat o cameră pe o matrice Sony CCD cu o rezoluție de 420TVL și o sensibilitate mai bună pe hobbyking.com, care permite chiar și sub o masă fără iluminare suplimentară vezi ce se intampla.
Și, de asemenea, o montură pentru el cu o rotire și înclinare:
După cum spune inscripția de pe imagine - servo nu sunt incluse în kit, așa că comandăm servo 9g ieftine. Vom avea nevoie de 2 bucăți, a 3-a va rămâne în rezervă dacă o rupem.
Camera mea nu vrea să funcționeze de la 9V, așa că trebuie să o alimentez de la o baterie separată de 11,1V.
Receptorul și transmițătorul utilizate din trusa ieftină prezentată mai sus. (Am incercat un transmitator mai puternic - la 800mW, dar se incalzeste decent, voluminos la calorifer si puterea este de asa natura incat provoaca interferente la servo-urile camerei).
Puteți conecta receptorul la un televizor, dar îl controlați de la un computer, iar vizionarea la televizor nu este foarte convenabilă (cu excepția cazului în care cumpărați unul portabil). Prin urmare, avem nevoie de un dispozitiv de captură video.
Binecuvântarea merită
În viața rurală, tractorul este agregat important... Este necesar mai ales în agricultură. Fără el, ca și fără mâini. Saci de cereale, fân recoltat, culturi de cartofi sau doar Materiale de construcție- toate acestea trebuie transportate într-un fel. Este foarte dificil să muți manual astfel de sarcini, iar un mic asistent mecanic se poate descurca destul de ușor. Astăzi, cumpărați o astfel de unitate pentru gospodărie pentru mulți plăcere scumpă... Va fi mult mai ușor și mai ieftin să asamblați un astfel de tractor mic pe șenile cu propriile mâini acasă. Mai mult, este posibil ca detaliile pentru el să fi fost uitate de mult în curtea gospodăriei și să aștepte în aripi.
Cadru
Structura principală, pe care cade întreaga sarcină, a oricărei unități mecanice este cadrul. După cum puteți vedea din videoclip, crearea unei baze metalice solide pentru un mini tractor omida este un pas important. Este ușor să o faceți singur dacă efectuați corect calculele și luați în considerare sarcinile.
După cum se arată în videoclip, va fi necesară o mașină de sudură pentru a realiza cadrul. Rigiditate întărită structura de bază a unității pe șenile este creată de lămpi din material rezistent. De obicei sunt realizate cu propriile mâini în 3 etape - cele exterioare sunt realizate dintr-un canal durabil, iar cele interioare sunt dintr-o țeavă pătrată de fier, de rigiditate sporită.
Merită să ne amintim că traversa frontală trebuie proiectată mai scurt decât omologul din spate. Videoclipul arată că dacă traversarea frontală este făcută de pe canalul 12, atunci partea din spate cadrele trebuie să fie realizate dintr-un canal cu 16 canale.Unitate de putere
Al doilea etapa importantaîn crearea unui asistent acasă pe un șasiu pe șenile este alegerea motorului. După cum puteți vedea din videoclipul pentru mini-tractorul creat, orice motor se va desprinde dacă este potrivit ca putere și corespunde cuplului. Aici varianta ideala va fi instalat motor diesel putere de 12 CP, cu patru cilindri si racire cu apa.
Nu încă varianta proastaîn decizie această problemă va fi un motor de la tractorul cu mers pe jos Sadko. Pentru a reduce viteza într-un astfel de motor, va trebui să instalați scripete suplimentare cu propriile mâini. Aceste construcții realizate singur reduc viteza de rotație. arbore cotit mini tractor de 3,5 ori.
Pod
Instalarea unui pod este de obicei simplă. Pentru a face acest lucru, nu trebuie să faceți modificări suplimentare la construcțiile din cadrul unității. Un pod îndepărtat de pe orice model de mașină domestică este ideal aici.
De exemplu, pentru un mini tractor, puteți aplica puntea spate din GAZ - 21 „Volga”. Trebuie doar sa il scurtezi cu mainile tale la o latime de 800 mm si sa tai niturile de pe ciorapii de fixare indepartati astfel incat sa poata fi amplasate toate elementele mecanice.
Omida
Șasiul unității de casă este destul de ușor de făcut acasă. Pentru a face acest lucru, aveți nevoie de un set de roți, de exemplu dintr-un cărucior și anvelopă veche afară din roată mașină mare... Dimensiunile acestor elemente pentru șasiul unui mini tractor trebuie selectate în funcție de dimensiuni, mașina care este creată. Omizi de casă sunt făcute simplu. Este necesar să tăiați anvelopa pregătită pe laterale și să o puneți pe roțile montate. Este important aici să nu te înșeli în dimensiune.
Alte mecanisme
Fiecare mecanic înțelege că o unitate pe șenile proiectată nu se poate mișca independent fără ambreiaj și cutie de viteze. Ca ultim element, puteți utiliza un dispozitiv de comutare scos dintr-un camion GAZ-53. Ambreiajul luat dintr-o mașină GAZ-52 se va potrivi ideal în designul viitorului asistent acasă.
Procesul de construire
Principiul de funcționare
Agregatele create de sine se adună de obicei într-un anumit algoritm. Este important să urmați acest lucru, deoarece unele părți vor trebui personalizate pentru alte părți. Fără o ordine stabilită de adunare, acest lucru va fi dificil de realizat.
Accesorii pentru minitratoctoa
Pinion gol
Pinionii de conducere sunt gata
Ansamblu cadru de șenile
Vedere de jos - șine de montare
Vedere laterală
Vedere din față
Secvența de construcție în practică este următoarea:
- Colectarea elementelor de cadru într-o construcție dintr-o singură piesă. Instalarea roților motrice și a roților de drum pe el.
- Instalarea motorului și conectarea acestuia la cutia de viteze.
- Amplasarea unităților de frână și a elementului diferențial. Conexiune mecanică articolele specificate cu cutia de viteze.
- Proiectarea unității de comandă și echiparea scaunului șoferului.
- Asamblarea și instalarea șinelor, precum și a elementelor auxiliare suplimentare.
- Verificarea stării de funcționare a unităților și sistemelor unității. Dacă este necesar, revizuirea lor.
- Alergând în tractor.
Dacă luăm în considerare principiul de funcționare al unui mecanism de casă, atunci puteți stabili cu ușurință că acesta nu diferă mult de omologii săi. producție în serie... Pe scurt, toate funcțiile de bază sunt îndeplinite ca la tractoarele pe șenile convenționale. Singura diferență este sistemul de implementare simplificat.
Principiul de funcționare al unui mecanism de casă arată astfel:
- Motorul transmite cuplul cutiei de viteze.
- Cuplul este alimentat la sistemul diferenţial, unde este distribuit pe arborele osiei.
- Roțile încep procesul de propulsie, care este transmis la șenile. Tractorul începe să se miște în direcția stabilită.
- Funcția de întoarcere este că un arbore de osie este frânat, iar tot cuplul cade pe celălalt arbore de osie. Datorită frânării, o pistă începe să se miște în jurul celuilalt șasiu frânat. Așa se întoarce unitatea.
- Înainte de a continua cu asamblarea unității pe șenile, este necesar în primul rând să creați desene ale ansamblurilor principale și suplimentare care să conțină calcule precise.
- Înainte de a începe lucrul, trebuie să vă faceți griji cu privire la disponibilitatea mașinii de sudură, a unui burghiu electric cu toate duzele și a unei râșnițe.
- Asamblarea trebuie făcută cu mare grijă. Toate șuruburile și piulițele trebuie strânse cu sensibilitate sigură. Fiecare sudură trebuie curățată cu atenție.
La asamblare, trebuie amintit că tractorul creat va deveni fiabil și asistent de neînlocuitîn rezolvarea multor probleme ale gospodăriei.
Roboții și sistemele robotizate sunt adesea proiectate pentru utilizare în condiții extreme, unde este necesar să se faciliteze sau să se protejeze munca umană Foarte des se folosesc roboți mobili în situatii extreme, de exemplu, la stingerea incendiilor, la localizarea deșeurilor radioactive etc. și, de regulă, la lucru pe teren dificil.
Soluția unor astfel de sarcini este încredințată roboților mobili urmăriți care au trafic mareși capacitatea de încărcare. Important calitate distinctivă roboții mobili urmăriți constă în manevrabilitatea lor. Cu o unitate independentă pentru fiecare șenile separat, robotul mobil își poate schimba cu ușurință direcția propriei mișcări.
Datorită faptului că viteza fiecărei piste este reglată separat, este destul de ușor să controlezi mișcarea robotului mobil. Pentru a seta orice direcție de mișcare, trebuie să o schimbați viteza relativa unități.
Tabelul de mai sus arată relația dintre vitezele și direcțiile de rotație ale unităților șasiului pe șenile. Este important să se acorde atenție poziției unității, deoarece, în funcție de orientarea în spațiul transmisiei, depinde direcția de rotație a arborelui său de ieșire și, în consecință, direcția de mișcare a legăturilor de cale. De exemplu, pentru ca robotul să se deplaseze înainte, este necesar ca unitatea sa din stânga să se rotească „în sens invers acelor de ceasornic”, iar cea dreaptă - „în sensul acelor de ceasornic”.
- Pentru a conduce drept, transmisiile din dreapta și din stânga trebuie să se rotească cu aceeași viteză în direcția înainte.
- Pentru a vira la stânga, este necesar ca viteza unității din dreapta să fie mai mare decât viteza celui stâng. Cu cât diferența de viteză este mai mare, cu atât raza de viraj este mai mică când conduceți.
- Pentru a vira la dreapta, este necesar ca viteza unității din dreapta să fie mai mică decât viteza celui din stânga. Cu cât diferența de viteză este mai mare, cu atât raza de viraj este mai mică când conduceți.
- Pentru a vira la stânga pe loc, este necesar ca unitatea din dreapta să se rotească „drept înainte”, iar cea din stânga „înapoi” cu aceeași viteză.
- Pentru a vira la dreapta pe loc, este necesar ca unitatea din stânga să se rotească „dreaptă”, iar cea din dreapta „înapoi” cu aceeași viteză.
- Pentru a deplasa înapoi, este necesar ca transmisiile din dreapta și din stânga să se rotească cu aceeași viteză în direcția „înapoi”.
Pe lângă manevrabilitate ridicată, șasiurile pe șenile au abilitate crescută de cross-country... Datorită bunei aderențe a șenilelor pe suprafața pe care se efectuează mișcarea, roboții urmăriți pot depăși diverse nereguli și obstacole ale suprafeței.
În funcție de scopul robotului urmărit și de gradul capacității sale de traversare a țării, se poate distinge diverse modeleșasiu pe șenile.
Urmărit în mod tradițional vehicule au un unghi special de înclinare în față pentru a intra în obstacole în sensul de mers. Cu cât este mai mare accesibilitatea unui robot sau vehicul pe șenile, cu atât este mai mare panta, de regulă.
Uneori, pentru rezolvarea problemelor de specialitate, se folosesc vehicule pe șenile, formate din șenile mobile unele față de altele. Prin ajustarea unghiului de ridicare al șenilelor din față, astfel de roboți pot depăși obstacole de diferite dificultati.
Acest laborator examinează modul de control al unui șasiu mobil pe șenile. Modelul de robot dezvoltat în cadrul acestei lucrări are o capacitate transversală suficient de mare pentru propriile dimensiuni generale.
Designul șasiului robotului constă din șenile de omidă situate la un unghi suficient de mare față de direcția de mers, astfel încât robotul să poată depăși obstacole cu o înălțime nu mai mică decât înălțimea de ridicare a șenilelor.
Pentru a preveni blocarea robotului în cursul mișcării sale, depășind un obstacol, șasiul său este echipat cu un senzor IR care detectează prezența obiectelor în cale. Dacă senzorul detectează un obiect, înseamnă că înălțimea obiectului este proporțională cu înălțimea robotului și există riscul ca robotul să nu poată depăși acest traseu. În acest caz, robotul trebuie să întreprindă o altă acțiune, de exemplu, să ocolească un obstacol din lateral etc.
Această lecție este dedicată studiului fundamentelor mișcării roboților mobili urmăriți, studiului modalităților de manevrare a acestora și de trecere a diferitelor obstacole.
Efectuarea celor mai simple manevre.
În această parte munca de laborator sunt considerate mișcare dreaptă robot urmărit și procesul de găsire a obstacolelor în calea lui.
Dacă se găsește un obstacol în calea robotului, aceasta înseamnă că acesta are dimensiuni pe care robotul nu le poate deplasa. În acest caz, sistemul de control al robotului trebuie să ia unele măsuri pentru a efectua manevre pentru a evita o coliziune.
Conform algoritmului propus, robotul urmărit conduce drept, depășind toate obstacolele din calea sa. Dacă pe calea robotului este găsit un obiect care nu dispare din calea robotului timp de 3 secunde, robotul se oprește și manevrează în jurul obstacolului.
La începutul programului, sunt setate variabilele de bază care determină valoarea prag pentru obiect, viteza de rotație a acționărilor robotului și timpul de așteptare în fața obiectului detectat (3 sec). Aceste valori sunt folosite pentru a determina viteza de manevră a roboților și distanța la care robotul nu ajunge la obiectul detectat.
Programul este o buclă nesfârșită în care sunt analizate citirile senzorului conectat la PORT. Variabilele obstacol_threshold și bstacle_judging_time sunt setate valorile maxime distanța până la obiect și timpul de detectare a obiectului. Dacă obiectul nu este vizibil, robotul continuă să se miște sub controlul funcției înainte.
Dacă robotul detectează un obiect pe drum, se apelează pe rând funcțiile reverse, stop, pivot_left, cu ajutorul cărora robotul efectuează manevra specificată pentru a evita obstacolul. Funcțiile sunt intercalate prin apelarea unui cronometru care limitează timpul de rulare al fiecăruia dintre ele.
Temporizatoarele sunt foarte des folosite pentru a seta timpul de funcționare a unui dispozitiv sau a unei părți dintr-un program de control. Să luăm în considerare funcționarea temporizatorului folosind exemplul funcției de inițializare numită chiar la începutul programului.
Această funcție începe redarea melodiei pentru timpul specificat de variabila prepare_time. Această variabilă inițializează un cronometru care rulează pentru timpul specificat.
În timpul numărătorii inverse, există o întârziere în timpul căreia este efectuată ultima operație, cum ar fi redarea unei melodii. Întârzierea se face folosind funcția timer_standby, care folosește instrucțiunea WAIT WHILE pentru a aștepta până când numărătoarea inversă se termină. Astfel, puteți genera orice întârziere necesară pentru ca programul să funcționeze.
Un important trăsătură distinctivă Acest program este diferența dintre funcția de verificare a corectitudinii ansamblului față de funcțiile avute în vedere în lucrările anterioare. În această lucrare, înainte de a începe programul principal, se stabilește la care dintre porturile de control este conectat senzorul IR.
Pentru a face acest lucru, toate porturile sunt interogate automat, iar dacă citirile de la un senzor IR sunt detectate pe unul dintre ele, LED-ul clipește de numărul de ori corespunzător numărului portului.
În cazul PORT, când este detectat un semnal de la senzorul IR, este apelată funcția LED_port_num, care clipește LED-ul sistemului.
Dacă semnalul de la senzorul IR este detectat pe alt port al controlerului CM-530, funcția LED_port_num este apelată folosind operatorul LOOP FOR, care este executat de un număr specificat de ori.
Depășirea obstacolelor de pe drum.
Robotul mobil urmărit dezvoltat în cadrul acestei lucrări poate fi clasificat ca o clasă ultrauşoară de astfel de roboţi. Astfel de roboți, de regulă, sunt utilizați pentru recunoașterea terenului și lucrează pe teren accidentat, printre ruine și moloz.
Astfel de roboți mobili se mișcă suficient de repede printre dărâmături, depășesc înclinații și coborâri, dar, datorită masei lor reduse, adesea se răstoarnă și se răstoarnă. În ciuda acestui fapt, roboții trebuie să îndeplinească sarcina atribuită, ceea ce înseamnă, cel puțin, să continue să se miște.
Pentru ca robotul să continue să se miște după întoarcere, structura sa este făcută absolut simetrică.
Pentru ca robotul să se miște într-o stare inversă, este necesar să se schimbe direcția de rotație a unităților sale. Deoarece astfel de roboți se mișcă autonom sau adesea utilizatorul nu le poate observa mișcarea, schimbarea direcției de rotație ar trebui să fie efectuată automat, în funcție de orientarea în spațiul robotului.
Pentru a determina poziția robotului este instalat un senzor IR, îndreptat spre podea. În consecință, într-una dintre pozițiile robotului funcționează, iar în poziția inversată, nu și invers, în funcție de metoda de instalare a senzorului.
Programul de control al robotului este identic cu cel avut în vedere în partea anterioară, cu excepția părții legate de determinarea poziției robotului.
Programul robotului este format din două ramuri simetrice, fiecare dintre acestea fiind executată în funcție de poziția robotului. Spre deosebire de programul din secțiunea anterioară, acesta se ocupă de o singură condiție suplimentară.
Trecerea de la o ramură a programului la alta se realizează folosind un senzor IR conectat la PORT, care determină orientarea robotului în spațiu.
De asemenea, spre deosebire de programul din partea 1, analogii slow_forward și slow_reverse sunt implementați pentru funcțiile înainte și înapoi, care asigură mișcarea lentă a robotului în timpul manevrelor.
Aceste funcții operează pe valorile l_wheel_low_speed și r_wheel_low_speed descrise la începutul programului.
Concluzie.
Pentru consolidarea materialului din această lecție se propune efectuarea mai multor teste experimentale.
Simulați o situație în care un robot transportă o încărcătură în afara liniei negre. Pentru a face acest lucru, echipați șasiul pe șenile cu doi senzori IR: în față pentru a detecta obiecte și în partea de jos pentru a detecta linia neagră.
Explorați permența roboților cu șenile pe teren accidentat, simulând gropi sau râpe pe calea robotului. Direcționați robotul să depășească un obstacol intermitent și vedeți singur cum lățimea obstacolului care trebuie depășit depinde de dimensiunea robotului.
Amintiți-vă că nimic nu limitează imaginația dezvoltatorilor în rezolvarea sarcinilor atribuite. Și dacă permeabilitatea robotului tău nu este suficientă pentru a depăși obstacolele din calea lui, acesta nu este un motiv de disperare, ci noroc gândiți-vă și îmbunătățiți designul.
O platformă care îndeplinește o serie de cerințe: circulație liberă, posibilitate de instalare echipament adiționalși împuternicire, precum și costuri rezonabile. Acesta este genul de platformă de robot sau, pur și simplu, un șasiu pe șenile, pe care o voi face. Instrucțiunile, desigur, sunt stabilite pentru judecata dumneavoastră.
Avem nevoie:
Reductor dublu Tamiya 70168 (poate fi schimbat cu 70097)
- Set de role și șenile Tamiya 70100
- Platforma Tamiya 70157 pentru montarea cutiei de viteze (poate fi inlocuita cu o bucata de placaj de 4 mm)
- Bucăți mici de tablă zincată
- Placaj 10 mm (piesa mica)
- Arduino Nano
- DRV 8833
- LM 317 (stabilizator de tensiune)
- 2 LED-uri (rosu si verde)
- Rezistoare 240 Ohm, 2x 150 Ohm, 1,1 kOhm
- Condensator 10v 1000uF
- 2 matrițe cu un singur rând PLS-40
- 2 conectori PBS-20
- Inductor 68μH
- 6 baterii NI-Mn 1.2v 1000mA
- Conector mascul-femă cu doi pini la fir
- Fire de diferite culori
- Lipire
- Colofoniu
- Ciocan de lipit
- Șuruburi 3x40, 3x20, piulițe și șaibe pentru ele
- Șuruburi 5x20, piulițe și piulițe armate pentru ele
- Burghiu
- Burghie pentru metal de 3 mm si 6 mm
Pasul 1 tăiem metalul.
În primul rând, trebuie să tăiem din tablă (de preferință galvanizată) și să tăiem patru părți. Două părți pe pistă. Tăiați două părți conform acestei scanări:
Punctele indică locurile în care este necesar să găuriți, diametrul găurii este indicat lângă el. Sunt necesare găuri de 3 mm pentru agățarea cu rolă, 6 mm pentru trecerea firelor prin ele. După tăiere și găurire, trebuie să treceți prin toate marginile cu o pilă fără a lăsa colțuri ascuțite. Îndoiți 90 de grade de-a lungul liniilor punctate. Ai grija! Îndoim prima parte în orice direcție, iar a doua îndoim reversul... Ele ar trebui să fie îndoite simetric. Mai există o nuanță: este necesar să forăm găuri pentru șuruburile autofiletante care fixează plăcile noastre de bază. Acest lucru ar trebui făcut când baza este gata. Aplicăm piesa de prelucrat pe bază și marchem locurile de găurire, astfel încât șuruburile să cadă în centrul plăcii PAL. Mai facem două detalii la a doua scanare:
Pasul 2 pregătirea bazei.
Asamblam cutia de viteze conform instructiunilor atasate. Îl fixăm pe site. Dacă nu există platformă, tăiați un dreptunghi de 53x80 mm din placaj de 4 mm și atașați-i o cutie de viteze. Luam placaj 10 mm. Tăiați două dreptunghiuri de 90x53 mm și 40x53 mm. Tăiați un alt dreptunghi în interiorul dreptunghiului mic, astfel încât să obținem un cadru cu o grosime de perete de 8 mm.
Răsucim totul așa cum se arată în fotografie:
În colțurile platformei, am găurit găuri de 6 mm și am introdus șuruburile noastre de 5x20 în ele și am strâns piulițele întărite de sus. Sunt necesare pentru fixarea ulterioară a diferitelor mecanisme sau plăci. Pentru comoditate, lipim imediat LED-urile:
Pasul 3 electrician.
Vom folosi Arduino Nano pentru control. Driver motor DVR 883. Pe placa de circuite asamblam totul conform schemei.
L1 este inductorul și C1 este folosit pentru a stabiliza tensiunea Arduino. Rezistoarele R1 și R2 din fața motoarelor sunt limitatoare de curent, valoarea lor trebuie selectată pentru anumite motoare. La mine funcționează bine la 3 ohmi. LM317 este necesar pentru a încărca bateriile. Intrarea poate fi alimentata cu tensiune de la 9,5 V la 25 V. R3 - 1,1 kOhm R4 - 240 Ohm. „Pionii” din stânga sunt folosiți pentru conectarea ulterioară a diferitelor tipuri de dispozitive (Bluetooth, modul de comunicare 433 MHz, IR, Servo etc.). Pentru alimentare, vom folosi 6 baterii Ni-Mn 1.2v 1000mA lipite in serie si infasurate cu banda electrica.
Pasul 4 adunarea bazei.
Ne luăm baza, lipim placa pe ea pe bandă cu două fețe. Părțile metalice de la prima scanare trebuie înșurubate pe șuruburi mici autofiletante la bază pe laterale, cu părțile îndoite spre exterior. Aveți grijă să îl înșurubați astfel încât orificiul extrem de 6 mm să fie pus pe axa de ieșire a cutiei de viteze, partea inferioară a piesei trebuie să fie paralelă cu baza și simetrică în raport cu cea de-a doua parte a acesteia. Ca urmare, ar trebui să obțineți:
Pentru a oferi produsului nostru de casă un aspect estetic, să adăugăm câteva detalii. Nu este obligatoriu. Tăiați un dreptunghi de 110x55 mm din plastic alb și îndoiți așa cum se arată în fotografie. Coada de cal este, de asemenea, opțională, dar mi-a plăcut cum arată și se mișcă la mișcare:
Acest capac acoperă cutia de viteze, astfel încât murdăria să nu intre în ea și, de asemenea, face mai puțin zgomot. Apoi, decupăm și un dreptunghi de 52x41 mm din plastic alb. Facem găuri pentru conectarea Arduino și butonul de închidere ca în fotografie:
Lipim totul pe bandă cu două fețe:
Autocolant de frumusețe.
Aceste două părți pot fi făcute din aproape orice material la îndemână. Poate fi carton gros (care poate fi apoi vopsit), plăci de fibre, placaj subțire sau o bucată de plastic de orice culoare. Să nu uităm de baterii. Să le lipim de banda cu două fețe de pe partea dreaptă din metal a bazei:
Pasul 5 omizi.
Aici avem nevoie de spațiile goale pentru a doua scanare. Introduceți șuruburi cu un cap semicilindric de 3x20 în găurile de 3 mm. Punem șaibe și strângem piulițele:
Șaibele trebuie purtate în fața rolelor. Nu am fost prea leneș și am comandat șaibe de plastic. Puteți folosi cele metalice obișnuite, dar apoi piesele noastre sunt foarte zgomotoase. După role, strângem piulițele fără a strânge, dar astfel încât rolele să se rotească liber.
Punem șenile de cauciuc pe role. Punem placa împreună cu rolele pe bază, asigurându-ne că șuruburile cad în găuri. Și strângeți piulițele. Obținem un șasiu pe șenile aproape terminat:
Pasul 6 firmware.
În opinia mea, cel mai convenabil este să scrieți firmware-ul în Arduino IDE. Șasiul pe care l-am asamblat este versatil și este necesar firmware-ul în funcție de scopul specific. Puteți conecta un modul Bluetooth și puteți utiliza telefonul sau computerul pentru control. De asemenea, este posibil să conectați un senzor IR și să utilizați telecomanda IR pentru control. O altă opțiune de control este utilizarea unui modul de 433 MHz pentru comunicarea cu telecomanda. Pe baza șasiului, este posibil să se realizeze următorul robot de-a lungul liniei sau oricare altul autonom. Postez firmware-uri pentru Bluetooth, 433 MHz și IR.
Acum doi ani, când am început să fac multicoptere, a trebuit să fac unul mic. Întrucât quadcopterul a fost conceput pentru a fi pur autonom, tot ceea ce a fost necesar de la această telecomandă era operarea dronei în timpul testării și reglajului.
În principiu, telecomanda a făcut față cu succes tuturor sarcinilor care i-au fost atribuite ... Dar au existat și dezavantaje serioase.
- Bateriile nu intrau în carcasă, așa că trebuiau legate de carcasă cu bandă electrică :)
- Setarea parametrilor a fost efectuată pe patru potențiometre, care s-au dovedit a fi foarte sensibile la temperatură. În cameră, ai stabilit niște valori, ieși în stradă - și sunt deja diferite, au plutit.
- Arduino Nano pe care l-am folosit la telecomandă are un total de 8 intrări analogice. Patru erau ocupați cu potențiometrele de reglare. Un potențiometru a servit drept gaz. Două intrări au fost conectate la un joystick. O singură ieșire a rămas liberă și există mult mai mulți parametri pentru personalizare.
- Singurul joystick nu era deloc pilot. Controlul potențiometrului de accelerație a fost, de asemenea, destul de deprimant.
- De asemenea, telecomanda nu scotea niciun sunet, ceea ce uneori este extrem de util.
Pentru a elimina toate aceste neajunsuri, am decis să reproiectez radical telecomanda. Atât partea de călcat, cât și software-ul. Iată ce am vrut să fac:
- Faceți o carcasă mare, astfel încât să puteți umple tot ce doriți acum (inclusiv bateriile) și ceea ce doriți mai târziu.
- Pentru a rezolva cumva problema cu setările, nu prin creșterea numărului de potențiometre. În plus, adăugați posibilitatea de a salva parametrii în telecomandă.
- Faceți două joystick-uri ca pe consolele pilot normale. Ei bine, joystick-urile în sine sunt ortodoxe.
Cladire nouă
Ideea este extrem de simplă și de eficientă. Tăiem două plăci din plexiglas sau alt material subțire și le conectăm cu suporturi. Întregul conținut al carcasei este atașat fie de placa superioară, fie de jos.
Controale și meniuri
Pentru a controla o mulțime de parametri, trebuie fie să plasați o mulțime de potențiometre pe telecomandă și să adăugați un ADC, fie să faceți toate setările prin meniu. După cum am spus, reglarea cu potențiometre nu este întotdeauna bună idee, dar nici tu nu ar trebui să renunți la el. Așadar, s-a decis să se lase patru potențiometre în telecomandă și să se adauge un meniu cu drepturi depline.
Pentru a vă deplasa prin meniu și a modifica parametrii, se folosesc de obicei butoanele. Stânga, dreapta, sus, jos. Dar am vrut să folosesc un encoder în loc de butoane. Am primit această idee de la un controler de imprimantă 3D.
Desigur, din cauza adăugării meniului, codul telecomenzii s-a umflat de mai multe ori. Pentru început, am adăugat doar trei elemente de meniu: „Telemetrie”, „Parametri” și „Store parametri”. Prima fereastră afișează până la opt indicatori diferiți. Până acum folosesc doar trei: baterie, busolă și altitudine.
În a doua fereastră, sunt disponibili șase parametri: coeficienții controlerului PID pentru axele X / Y, Z și unghiurile de corecție ale accelerometrului.
Al treilea punct vă permite să salvați parametrii în EEPROM.
Joystick-uri
Nu m-am gândit mult timp la alegerea joystick-urilor pilot. S-a întâmplat că am primit primul joystick Turnigy 9XR de la un coleg din afacerea cu quadrocopter - Alexander Vasiliev, proprietarul cunoscutului site alex-exe.ru. Pe al doilea l-am comandat direct de la Hobbyking.
Primul joystick a fost încărcat cu arc în ambele coordonate - pentru controlul viciului și înclinării. Pe cel de-al doilea l-am luat la fel, apoi l-am refacut într-un joystick pentru a controla împingerea și rotația.
Nutriție
În vechea consolă, am folosit un regulator de tensiune simplu LM7805, care era alimentat cu o grămadă de 8 baterii AA. O opțiune teribil de ineficientă, în care s-au cheltuit 7 volți pentru încălzirea regulatorului. 8 baterii – pentru că doar un astfel de compartiment era la îndemână, iar LM7805 – pentru că la acea vreme această opțiune mi se părea cea mai simplă, și cel mai important, cea mai rapidă.
Acum am decis să fac mai înțelept și să pun un regulator suficient de eficient pe LM2596S. Și în loc de 8 baterii AA am instalat un compartiment pentru două baterii LiIon 18650.
Rezultat
Punând totul împreună, am obținut un astfel de dispozitiv. Vedere din interior.
Dar cu capacul închis.
Capacul unui potențiometru și capacele joystick-urilor lipsesc.
În sfârșit, un videoclip despre cum să configurați parametrii prin meniu.
Rezultat
Fizic, consola este asamblată. Acum lucrez la modificarea codului telecomenzii și al quadcopterului pentru a le readuce la fosta lor prietenie puternică.
În timpul instalării telecomenzii, au fost identificate deficiențe. In primul rand, colțurile de jos Telecomanda se sprijină pe mâini: (Probabil că voi reproiecta puțin plăcile, voi netezi colțurile. În al doilea rând, nici un afișaj 16x4 nu este suficient pentru un afișaj de telemetrie frumos - trebuie să scurtez numele parametrilor la două litere. În următoarea versiune a dispozitivului voi instala un afișaj cu puncte, sau doar o matrice TFT.