Acasă - Serviciu
roboți BEAM. Creăm un robot acasă. Robotul dumneavoastră are cerințe speciale?
26.01.2011, 09:18
Sursă:

De obicei, în articole, încerc să prezint materialul în ordinea dezvoltării lui, dar cred că nu este cazul. Prin urmare, să sărim peste etapele de proiectare ale elementului fundamental schema electrica, layout PCB și orice altceva. În figura 1 vedem ce fel de „rușine” am primit.

La prima vedere, pare doar un morman de fier, electronice și fire. Acest lucru se datorează probabil că au fost folosite bucăți din materiale diferite. Să ne dăm seama.

Acum totul este în ordine. Microcontrolerul Attiny2313 primește un semnal de obstacol (unul logic sau zero) de la doi senzori în infraroșu. Apoi, conform firmware-ului, microcontrolerul controlează cipul driverului motorului L293D (curent de control de până la 1 Amperi). Figura 3 prezintă o fotografie a unui robot inversat.

Baza designului unui robot de casă este o bandă de metal îndoită într-un trapez. Unghiul de îndoire este de aproximativ 120°. Este esențial important să se obțină aceeași îndoire pe ambele părți, altfel robotul nu se va mișca în linie dreaptă. Deși, pe de altă parte, ceea ce a făcut prost un mecanic sau un inginer electronic poate fi compensat uneori de un programator, să zicem, folosind PWM pentru a realiza mișcare rectilinie robot

Știm cu toții din cursul școlar de geometrie că un plan este format fie din trei puncte, fie dintr-o dreaptă și un punct în spațiu. Al treilea punct este o roată cu role care se rotește liber.

Receptoarele senzorilor IR și fototranzistoarele sunt amplasate în partea de jos pentru a reduce iluminarea și a minimiza falsele pozitive. Senzorii IR înșiși sunt montați pe balamale mobile, ceea ce vă permite să reglați zona de scanare. Interesantă, apropo, a fost reacția pisicii mele la robotul care se târăște pe coridor? Pisica mea este neagră. Am setat senzorii IR pe tapet gri, așa că robotul s-a întors în fața pisicii aproape în ultimul moment, iar pisica a sărit cu un pas înapoi cu un șuierat puternic.

Următoarea modificare pentru robot a fost senzorii IR de pe burtă, permițându-i robotului să urmeze o linie neagră desenată pe hârtie albă cu un marker. Implementarea a necesitat trei senzori și un comparator pe cipul LM339N pentru a ușura microcontrolerul. Un dezavantaj semnificativ s-a dovedit a fi necesar pre-setare senzori cu rezistențe de reglare în funcție de iluminarea din încăpere.

P.S. Recompensa pentru pierderea timpului cu crearea unui dispozitiv fără rost va fi, probabil, claritatea funcționării microcontrolerului și memoria care va aduna praf pe raft până când copilul cuiva poate fi interesat de el.

Pentru a vă crea propriul robot, nu trebuie să absolviți sau să citiți o tonă. Este suficient de folosit instrucțiuni pas cu pas, care este oferit de maeștrii în robotică pe site-urile lor web. Puteți găsi multe pe internet informatii utile, dedicat dezvoltării sistemelor robotizate autonome.

10 resurse pentru roboticianul aspirant

Informațiile de pe site vă permit să creați independent un robot cu comportament complex. Aici puteți găsi exemple de programe, diagrame, materiale de referință, exemple gata făcute, articole și fotografii.

Există o secțiune separată pe site dedicată începătorilor. Creatorii resursei pun un accent considerabil pe microcontrolere, pe dezvoltarea plăcilor universale pentru robotică și pe lipirea microcircuitelor. Puteți găsi și aici codurile sursă programe și multe articole cu sfaturi practice.

Site-ul web are un curs special „Pas cu pas”, care descrie în detaliu procesul de creare a celor mai simpli roboți BEAM, precum și sisteme automatizate bazat pe microcontrolere AVR.

Un site unde aspiranții creatori de roboți pot găsi toate informațiile teoretice și practice necesare. Aici sunt postate și un număr mare de articole de actualitate utile, știrile sunt actualizate și puteți adresa întrebări robotiștilor cu experiență pe forum.

Această resursă este dedicată unei imersii treptate în lumea creării roboților. Totul începe cu cunoștințele despre Arduino, după care dezvoltatorului începător i se spune despre microcontrolere AVR și analogi ARM mai moderni. Descrieri detaliate iar diagramele explică foarte clar cum și ce să faci.

Un site despre cum să faci un robot BEAM cu propriile mâini. Există o întreagă secțiune dedicată elementelor de bază, de asemenea dată logică, exemple etc.

Această resursă descrie foarte clar cum să creezi singur un robot, de unde să începi, ce trebuie să știi, unde să cauți informații și detaliile necesare. Serviciul conține și o secțiune cu blog, forum și știri.

Un imens forum live dedicat creării de roboți. Subiectele sunt deschise aici pentru începători, sunt discutate proiecte și idei interesante, sunt descrise microcontrolere, module gata făcute, electronică și mecanică. Și cel mai important, puteți pune orice întrebare despre robotică și puteți primi un răspuns detaliat de la profesioniști.

Resursa roboticistului amator este dedicată în primul rând propriului său proiect „Roboți de casă”. Cu toate acestea, aici puteți găsi o mulțime de articole de actualitate utile, link-uri către site-uri interesante, puteți afla despre realizările autorului și puteți discuta despre diverse soluții de design.

Platforma hardware Arduino este cea mai convenabilă pentru dezvoltarea sistemelor robotizate. Informațiile de pe site vă permit să înțelegeți rapid acest mediu, să stăpâniți limbajul de programare și să creați mai multe proiecte simple.

În urmă cu aproximativ 20 de ani, când eram student la ChPT și lucram în practică la Stankomash (aceasta este o poveste epică separată, descrisă colorat pe blogul meu), apoi după-amiaza, așa cum se cuvine unui student respectabil, m-am eschivat de la muncă, m-am încurcat în căutarea bunătăților prin numeroase gropi industriale interioare care erau împrăștiate cu generozitate în apropierea fiecărui atelier abandonat, și chiar în interiorul atelierelor;) Orice ar fi fost acolo, dar practic, tot metal feros. Metale neferoase, inclusiv înfășurările motorului, au fost furate cu mult înaintea mea.

Căutam electronice stricate, uneori erau împrăștiate condensatoare KM, ETO și alte bunătăți din pământuri rare, care au fost cumpărate cu 800 de dolari pe kilogram (salariu atunci era de o sută de dolari și îl plăteau o dată la șase dolari). luni), și pentru muncitorii locali. Erau doar suficientă creier pentru a ridica calorifere de aluminiu și bare de cupru. În general, ceea ce mi-a atras atenția a fost un stand de la o mașină CNC din epoca automatizării și accelerării anilor 80 ai perestroikei.

Era Robotron, un sicriu imens din fier de 2 mm. Mi se pare că ar putea rezista chiar și la o explozie de la o pușcă de asalt Kalashnikov, în ciuda faptului că aceasta trage prin șină. Plăcile au fost zdrobite când au încercat să spargă radiatoarele, dar unitatea de cinci inci a fost intactă, în ciuda șasiului solid din aluminiu. Ceea ce m-a surprins a fost că unitatea pentru clătite nu era de la un motor sincron trifazat, ca pe unitățile de disc ulterioare.

La naiba! Axul era rotit de un motor comutator printr-o curea. Wow, m-am gândit. Dacă un colecționar a fost însărcinat cu o sarcină atât de precisă, atunci trebuie să fie un colecționar cu adevărat minunat.


Un detaliu interesant a căzut în mâinile mele tenace. Accelerometru digital cu trei axe combinat cu un magnetometru digital, sensibilitate de pana la 1,5 Gauss. Apropo, puterea câmpului magnetic al Pământului este de aproximativ 0,4 Gauss. Aproape o treime din gamă, așa că acest lucru ar putea face o busolă electronică destul de bună. Apropo, prețul de emisiune este de doar 350 de ruble per cip. Destul de divin, având în vedere umplutura de la bord și sensibilitatea acestui microcircuit.

Cip LSM303DLH
Burta arată deosebit de interesant - natural PCB. Cu șine și găuri de tranziție. Imediat nu am vrut să fac poteci pe sub el. În caz contrar, niște unghii de pe potecă vor culege lacul de pe burtă și îl vor scurta în direcția greșită.


Ce altceva nu mi-a plăcut a fost că tampoanele de contact nu sunt vizibile de la capete. Poziționarea și verificarea preciziei de etanșare este dificilă. În acest sens, carcasele QFN sunt mai convenabile.


Dimensiunea carcasei este de 5x5 mm. Ca o celulă de notebook. Groază:)

Când construiți diferiți roboți, uneori este necesar să folosiți mai multe servo-uri. Și dacă este un fel de păianjen cu șase picioare, atunci există pur și simplu tone de unități acolo. Cum să le gestionezi? Pe forum, unii chiar s-au plâns că ar fi trebuit să folosească catifea în aceste scopuri. Deși, ce naiba există un FPLI când cel mai obișnuit microcontroler poate gestiona direcția chiar și a trei duzini de servo-uri, necesitând doar un temporizator pentru această sarcină.

Așadar, oricine nu își amintește cum sunt controlate servomotoarele poate face o plimbare și își poate reîmprospăta cunoștințele.

Să luăm, pentru început, 8 servo-uri. Fiecare servo primește următorul semnal:


Fiecare servo ar trebui să aibă următoarea secvență de la piciorul său de controler. Asemănare totală cu PWM pentru 8 canale. Cum se generează acest bug? E la fel de simplu. Principiul aici este simplu. Impulsurile sunt lente - doar 50 Hz, de asemenea, se schimbă rar - servo-ul este un lucru inerțial, așa că nu îl puteți zvâcni nici măcar de o sută de ori pe secundă. Deci avem un vagon și un cărucior mic pentru procesare.

Impulsurile în sine vor fi generate de un temporizator, în fundal. Principiul de generare este simplu: toate impulsurile pornesc simultan, setându-și nivelurile la 1.
Apoi durata primului impuls este introdusă în cronometru, în registrul de comparație. Când comparația este întreruptă, se întâmplă următoarele:

  • Resetați bitul de pe primul port de canal
  • Încărcarea celei de-a doua durate a impulsului în registrul de comparare a temporizatorului

Acesta este un alt constructor robotic - brațul mecanic cu cinci grade de libertate. Braț robotizat Velleman KSR10
Lucrul este destul de rar, pentru că... Am gasit un singur vanzator pe Ebay si aceasta ridiche nu vrea sa fie trimisa in exURSS. Se gaseste in mai multe magazine burgheze si pare sa fi fost in ChiD, dar noi l-am cumparat de acolo :) Pretul cerut este de la 60...100 de dolari.

Unitatea în sine este doar o altă jucărie avansată, dar nu avem nevoie de nimic mai mult pentru răsfăț și elaborarea algoritmilor.

Adesea trebuie să faceți secvențe mari de operațiuni complexe, de exemplu, o misiune de zbor pentru un robot. Da, puteți înghesui toată chestia asta în programul principal, dar dintr-o dată ceva nu merge bine și algoritmul va trebui refăcut - va trebui refăcut întregul program.

Aici mai departe va veni ajutorul mașină virtuală. Concluzia este că principalele proceduri de control al dispozitivului sunt stocate în memoria controlerului, în programul principal. Dacă este un robot, atunci acestea pot fi comenzi simple precum „înainte”, „înapoi”, „întoarce” și așa mai departe.

Apoi avem nevoie de un procesor de script care să ne ia secvența de acțiuni de undeva - un script - și să o transforme în apeluri la bucăți reale de cod - micro-operații.
Managerul de script poate fi aceeași sarcină de dispecer care rulează în fundal. Nu contează de unde ia datele. Ele pot fi descărcate cu ușurință de pe usart sau extrase din memoria EEPROM. Sau poți pune memorie pe IIC și vei primi un cartus înlocuibil :)

Pe lângă constructorii robotici, Inex Global vinde și motoare cu angrenaje cool. Aceiași care stau în și. Le duce periodic la Chelyabinsk. Am cumpărat câteva ca să încerc, am o idee pentru ei, dar mai multe despre asta mai târziu;)

Deocamdată, vă voi spune despre motor în sine. Vin in doua modele IE-BO2-120MŞi IE-BO2-48M, diferă între ele în raportul de transmisie de 1:120 și 1:48.

Îți amintești că am promis un manual în limba rusă pentru? Deci, nu am avut timp și designerul a fost luat de pe rafturi mai repede decât am acceptat să scot cartea pentru scanare. Cu toate acestea Bschepan, unul dintre posesorii mulțumiți ai acestei jucării, a făcut o faptă bună și a postat o scanare în DejaVu.

Când puterea unui tranzistor nu este suficientă pentru a pompa sarcina, atunci utilizați tranzistor compus (tranzistor Darlington). Ideea aici este că un tranzistor deschide altul. Și împreună funcționează ca un singur tranzistor cu un câștig de curent egal cu produsul coeficienților primului și celui de-al doilea tranzistor.

Dacă luăm, de exemplu, un tranzistor MJE3055T are un curent maxim de 10A, iar câștigul este de numai aproximativ 50, pentru ca acesta să se deschidă complet, trebuie să pompeze aproximativ două sute de miliamperi în bază; O ieșire MK obișnuită nu va face față atât de mult, dar dacă conectați un tranzistor mai slab între ele (un fel de BC337) capabil să tragă acești 200mA, atunci este ușor. Dar asta pentru ca el să știe. Ce se întâmplă dacă trebuie să faci un sistem de control din gunoi improvizat - va fi la îndemână.

În practică, gata făcută ansambluri de tranzistori. În exterior, nu este diferit de un tranzistor convențional. Același corp, aceleași trei picioare. Doar că are multă putere, iar curentul de control este microscopic :) În listele de prețuri, de obicei, nu se deranjează și scriu simplu - un tranzistor Darlington sau un tranzistor compozit.

Între timp, în Kazahstan, dezvoltarea unui cyborg cu un design original bazat pe un controler continuă într-un ritm accelerat PIC, despre ce S.W.G. se dezabonează foarte activ în comentariile la postările despre robotul său.

Pe parcurs, mi-a dat o parte din munca lui cu săpun.

SWG:

Pentru orice eventualitate, vă trimit câteva dintre cele mai recente. Nu am terminat încă programele, voi termina schimbul, îl voi depana și apoi le voi trimite pe cele normale.

Sub bare de protecție va fi atașată o placă de 10 milimetri grosime din cauciuc spumă destul de dens sau chiar cauciuc microporos, încă nu m-am hotărât, o voi încerca materiale diferite. Ar trebui să fie moale, dar nu foarte moale. Acesta va ieși cu 10-15 milimetri dincolo de plăci, protejând LED-urile de iluminare de fundal și plăcile în sine. Deocamdată am pus doar plăcile de protecție în cutie pentru a afișa aspectul general.

După ce m-am hotărât asupra amplasării și prinderii plăcilor, voi face cabluri de conectare de la MGTF, lungimea optimă, astfel încât să nu atârne în zadar, dar să nu se întindă prea mult. De asemenea, iau în considerare opțiunile, designul și amplasarea senzorilor de kilometraj și echipamentele care vor fi instalate în viitor, pentru a nu fi nevoit să-l refacă de mai multe ori.

Pe plăcile barei de protecție există blocuri albastre în partea de jos - senzori de podea cu fotorezistoare și LED-uri albe de iluminare din spate. (Am făcut-o din blocuri terminale, găurindu-le ușor pe alocuri). LED-uri transparente deasupra - iluminarea locatorului IR aprinsă TSOP(stă în mijloc, cu susul în jos). Deasupra lor, colțurile vor fi atașate de pereții laterali - perdele cu o zonă albă pe un fundal negru sau o gaură de o anumită formă.

Când plăcile au fost gata, m-am gândit că este posibil să lipim optocuplele nu deasupra, ci pe partea de jos a plăcii și să desenăm figurile necesare chiar în partea de jos a cutiei. De fapt, nu este prea târziu să fac asta acum, încă nu m-am hotărât. Mai mult, le-am adus și în bibliotecă în oglindă, iar la etanșare a trebuit să îndoaie picioarele sub ele pentru o deslipire corectă, iar de jos se potriveau corect. În general, s-au acumulat o grămadă de lucruri mărunte, gândindu-ne la care pierde timpul. („Tirania alternativelor”). Odată cu trimiterea stării senzorilor, totul pare să fie și simplu, dar atunci când începi să adaugi o grămadă de tot felul de protecții de la orice și verifică funcționarea corectă, totul crește ca un bulgăre de zăpadă, trebuie să verifici în mod constant totul pentru a fi posibil. și situații imposibile pentru ca totul să funcționeze normal. Costul căderii, de exemplu, într-o trapă deschisă va fi prea mare, iar închiderea constantă a tuturor găurilor și ușilor nu este, de asemenea, o opțiune... Dar chiar dacă joci în siguranță, s-ar putea să nu te miști niciodată deloc.

DPM-25-N1-7T cu cutii de viteze (27v, dar trag bine deja la 12, va fi nevoie de mai mult - voi face un convertor 12->27 ), și o unitate pivotantă de casă cu o rolă (a treia roată).

Consum de la 12v: 33 mA la oprire. motoare, la max. viteza fără sarcină (roțile nu ating podeaua) = 103 mA înainte, 115 mA înapoi. Cu o roată blocată - 300 mA, cu ambele roți blocate = 500 mA.
L293DN putin cald. Dacă se încălzește, voi lipi caloriferul. Da, frecventa PWM Am luat 500 Hz deocamdată. (perioada 2 ms). Voi măsura rata de creștere a curentului în motoare și voi determina pe cea mai optimă (În cel mai scurt impuls, curentul din motor ar trebui să aibă timp să atingă maximul).
Viteza maximă de mișcare pe podea este acum de 15-20 cm/sec. Nu am nevoie de nimic altceva deocamdată, voi alerga prin cameră prea repede. Diametrul roții = 80 mm („gogoșile” din cauciuc par a fi de la un fel de corpuri sanitare, multe la piață).

Sincer să fiu, am fost foarte surprins când am căutat pe google caracteristicile motorului DPM

Unitate de putere.
Avem o baterie plumb de 12 volți, dar controlerul are nevoie de 5 volți. Așa că l-am zăpăcit blocarea pulsului nutriţie. Era posibil, desigur, să pun câteva LM7805(ca pe placa mea) și eliberați tensiunea de pe ea, dar aceasta este o metodă stupidă. Ideea este că LM7805 va regurgita diferența de tensiune sub formă de căldură. Aşa Eficienţă acest dispozitiv va fi sub 50%și avem puterea bateriei. Deci, există o singură cale de ieșire - conversia DC-DC. Ca controler am luat un test de timp, popular, accesibil și ieftin MC33063A. Nu am inventat nimic și am luat un circuit standard de reducere ( Pas - Jos) din fișa sa de date. Vă voi spune cum funcționează circuitul acestei surse de alimentare puțin mai târziu, într-o postare separată. După publicarea unui articol în Hacker, unde am publicat un articol despre surse de alimentare.

Cu siguranță, după ce ai vizionat suficiente filme despre roboți, ai vrut de multe ori să-ți construiești propriul tovarăș în luptă, dar nu știai de unde să începi. Desigur, nu vei putea construi un Terminator biped, dar nu asta încercăm să realizăm. Colecta robot simplu oricine știe să țină corect un fier de lipit în mâini o poate face și acest lucru nu necesită cunoștințe profunde, deși nu va strica. Robotica amatoare nu este cu mult diferită de proiectarea circuitelor, doar mult mai interesantă, deoarece implică și domenii precum mecanica și programarea. Toate componentele sunt ușor disponibile și nu sunt atât de scumpe. Deci progresul nu stă pe loc și îl vom folosi în avantajul nostru.

Introducere

Aşa. Ce este un robot? În cele mai multe cazuri, acesta este un dispozitiv automat care răspunde oricăror acțiuni de mediu. Roboții pot fi controlați de oameni sau pot efectua acțiuni pre-programate. De obicei, robotul este echipat cu o varietate de senzori (distanță, unghi de rotație, accelerație), camere video și manipulatoare. Partea electronică a robotului constă dintr-un microcontroler (MC) - un microcircuit care conține un procesor, un generator de ceas, diverse periferice, operaționale și memorie permanentă. Există un număr mare de microcontrolere diferite în lume pentru diferite aplicații și, pe baza lor, puteți asambla roboți puternici. Sunt utilizate pe scară largă pentru clădirile de amatori. Microcontrolere AVR. Sunt de departe cele mai accesibile și pe Internet puteți găsi multe exemple bazate pe aceste MK-uri. Pentru a lucra cu microcontrolere, trebuie să fiți capabil să programați în asamblator sau C și să aveți cunoștințe de bază de electronică digitală și analogică. În proiectul nostru vom folosi C. Programarea pentru MK nu este mult diferită de programarea pe un computer, sintaxa limbajului este aceeași, majoritatea funcțiilor nu sunt practic diferite, iar cele noi sunt destul de ușor de învățat și convenabil de utilizat.

De ce avem nevoie

Pentru început, robotul nostru va putea pur și simplu să evite obstacolele, adică să repete comportamentul normal al majorității animalelor din natură. Tot ce avem nevoie pentru a construi un astfel de robot se găsește în magazinele de radio. Să decidem cum se va mișca robotul nostru. Cred că cele mai reușite sunt șenile care sunt folosite în tancuri, aceasta este soluția cea mai convenabilă, deoarece șenilele au o manevrabilitate mai mare decât roțile unui vehicul și sunt mai comod de controlat (pentru a întoarce, este suficient să rotiți șenilele); în direcții diferite). Prin urmare, veți avea nevoie de orice rezervor de jucărie ale cărui șenile se rotesc independent unul de celălalt, puteți cumpăra unul din orice magazin de jucării la un preț rezonabil. Din acest rezervor ai nevoie doar de o platformă cu șenile și motoare cu cutii de viteze, restul le poți deșuruba și arunca în siguranță. Avem nevoie și de un microcontroler, alegerea mea a căzut pe ATmega16 - are suficiente porturi pentru conectarea senzorilor și perifericelor și în general este destul de convenabil. De asemenea, va trebui să achiziționați câteva componente radio, un fier de lipit și un multimetru.

Realizarea unei table cu MK



Diagrama robotului

În cazul nostru, microcontrolerul va îndeplini funcțiile creierului, dar nu vom începe cu el, ci cu alimentarea creierului robotului. Nutriție adecvată este o garanție a sănătății, așa că vom începe cu cum să ne hrănim corect robotul, deoarece aici este locul în care constructorii de roboți începători fac de obicei greșeli. Și pentru ca robotul nostru să funcționeze normal, trebuie să folosim un stabilizator de tensiune. Prefer cipul L7805 - este proiectat să producă o tensiune de ieșire stabilă de 5V, de care are nevoie microcontrolerul nostru. Dar datorită faptului că scăderea de tensiune pe acest microcircuit este de aproximativ 2,5V, trebuie să i se furnizeze minim 7,5V. Împreună cu acest stabilizator, condensatorii electrolitici sunt utilizați pentru a netezi ondulațiile de tensiune și o diodă este inclusă în mod necesar în circuit pentru a proteja împotriva inversării polarității.
Acum putem trece la microcontrolerul nostru. Carcasa MK este DIP (este mai convenabil de lipit) și are patruzeci de pini. La bord există un ADC, PWM, USART și multe altele pe care nu le vom folosi deocamdată. Să ne uităm la câteva noduri importante. Pinul RESET (al 9-lea picior al MK) este tras în sus de rezistența R1 la „plusul” sursei de alimentare - acest lucru trebuie făcut! În caz contrar, MK-ul dvs. s-ar putea reseta neintenționat sau, mai simplu spus, poate avea o eroare. O altă măsură de dorit, dar nu obligatorie, este să conectați RESET prin condensatorul ceramic C1 la masă. În diagramă puteți vedea și un electrolit de 1000 uF, vă scutește de scăderile de tensiune atunci când motoarele sunt în funcțiune, ceea ce va avea un efect benefic și asupra funcționării microcontrolerului. Rezonatorul de cuarț X1 și condensatoarele C2, C3 ar trebui să fie amplasate cât mai aproape de pinii XTAL1 și XTAL2.
Nu voi vorbi despre cum să flash MK, deoarece puteți citi despre asta pe Internet. Vom scrie programul în C. Am ales CodeVisionAVR ca mediu de programare. E frumos mediu confortabilși este util pentru începători, deoarece are un vrăjitor de creare a codului încorporat.


Placa mea de robot

Controlul motorului

Nu mai puțin o componentă importantă Robotul nostru are un driver de motor care ne face mai ușor să-l controlăm. Niciodată și sub nicio formă nu trebuie conectate motoarele direct la MK! În general, încărcăturile puternice nu pot fi controlate direct de la microcontroler, altfel se va arde. Folosiți tranzistori cheie. Pentru cazul nostru, există un cip special - L293D. În astfel de proiecte simple, încercați întotdeauna să utilizați acest cip special cu indicele „D”, deoarece are diode încorporate pentru protecție la suprasarcină. Acest microcircuit este foarte ușor de controlat și este ușor de obținut în magazinele de radio. Este disponibil în două pachete: DIP și SOIC. Vom folosi DIP în pachet datorită ușurinței de montare pe placă. L293D are sursă de alimentare separată pentru motoare și logică. Prin urmare, vom alimenta microcircuitul în sine de la stabilizator (intrare VSS), iar motoarele direct de la baterii (intrare VS). L293D poate rezista la o sarcină de 600 mA pe canal și are două dintre aceste canale, adică două motoare pot fi conectate la un cip. Dar pentru a fi în siguranță, vom combina canalele și apoi vom avea nevoie de câte un micră pentru fiecare motor. Rezultă că L293D va putea rezista la 1,2 A. Pentru a realiza acest lucru, trebuie să combinați picioarele micro, așa cum se arată în diagramă. Microcircuitul funcționează după cum urmează: când se aplică un „0” logic la IN1 și IN2 și se aplică unul logic la IN3 și IN4, motorul se rotește într-o direcție, iar dacă semnalele sunt inversate și se aplică un zero logic, atunci motorul va începe să se rotească în cealaltă direcție. Pinii EN1 și EN2 sunt responsabili pentru pornirea fiecărui canal. Le conectăm și le conectăm la „plusul” sursei de alimentare de la stabilizator. Deoarece microcircuitul se încălzește în timpul funcționării, iar instalarea radiatoarelor pe acest tip de carcasă este problematică, îndepărtarea căldurii este asigurată de picioarele GND - este mai bine să le lipiți pe un suport larg de contact. Acesta este tot ce trebuie să știți despre șoferii de motoare pentru prima dată.

Senzori de obstacole

Pentru ca robotul nostru să poată naviga și să nu se prăbușească în toate, vom instala două senzor infrarosu. Cel mai simplu senzor constă dintr-o diodă IR care emite în spectrul infraroșu și un fototranzistor care va primi semnalul de la dioda IR. Principiul este acesta: atunci când în fața senzorului nu există niciun obstacol, razele IR nu lovesc fototranzistorul și acesta nu se deschide. Dacă există un obstacol în fața senzorului, atunci razele sunt reflectate din acesta și lovesc tranzistorul - se deschide și curentul începe să curgă. Dezavantajul unor astfel de senzori este că pot reacționa diferit la diferite suprafeteși nu sunt protejate de interferențe - senzorul se poate declanșa accidental de la semnale străine de la alte dispozitive. Modularea semnalului vă poate proteja de interferențe, dar nu ne vom deranja cu asta pentru moment. Pentru început, este suficient.


Prima versiune a senzorilor robotului meu

Firmware-ul robotului

Pentru a aduce robotul la viață, trebuie să scrieți firmware pentru acesta, adică un program care să preia citiri de la senzori și să controleze motoarele. Programul meu este cel mai simplu, nu conține structuri complexe și va fi pe înțeles de toată lumea. Următoarele două linii includ fișiere de antet pentru microcontrolerul nostru și comenzi pentru generarea de întârzieri:

#include
#include

Următoarele linii sunt condiționate, deoarece valorile PORTC depind de modul în care ați conectat driverul de motor la microcontroler:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Valoarea 0xFF înseamnă că rezultatul va fi log. „1”, iar 0x00 este log. „0”.

Cu următoarea construcție verificăm dacă există un obstacol în fața robotului și pe ce parte se află:

Dacă (!(PINB & (1< {
...
}

Dacă lumina de la o diodă IR lovește fototranzistorul, atunci este instalat un jurnal pe piciorul microcontrolerului. „0” și robotul începe să se miște înapoi pentru a se îndepărta de obstacol, apoi se întoarce pentru a nu se ciocni din nou de obstacol și apoi înaintează din nou. Deoarece avem doi senzori, verificăm de două ori prezența unui obstacol – în dreapta și în stânga și, prin urmare, putem afla pe ce parte se află obstacolul. Comanda „delay_ms(1000)” indică faptul că va trece o secundă înainte ca următoarea comandă să înceapă să se execute.

Concluzie

Am acoperit majoritatea aspectelor care vă vor ajuta să vă construiți primul robot. Dar robotica nu se termină aici. Dacă asamblați acest robot, veți avea o mulțime de oportunități de a-l extinde. Puteți îmbunătăți algoritmul robotului, cum ar fi ce să faceți dacă obstacolul nu este pe o parte, ci chiar în fața robotului. De asemenea, nu ar strica să instalați un encoder - un dispozitiv simplu care vă va ajuta să poziționați cu precizie și să cunoașteți locația robotului dvs. în spațiu. Pentru claritate, este posibil să instalați un afișaj color sau monocrom care poate afișa informații utile - nivelul de încărcare a bateriei, distanța până la obstacole, diverse informații de depanare. Nu ar strica să îmbunătățim senzorii - instalarea TSOP-urilor (acestea sunt receptoare IR care percep un semnal doar de o anumită frecvență) în loc de fototranzistoare convenționale. Pe lângă senzorii cu infraroșu, există senzori cu ultrasunete, care sunt mai scumpi și au și dezavantajele lor, dar au câștigat recent popularitate în rândul constructorilor de roboți. Pentru ca robotul să răspundă la sunet, ar fi o idee bună să instalați microfoane cu amplificator. Dar ceea ce cred că este cu adevărat interesant este instalarea camerei și programarea viziunii artificiale pe baza ei. Există un set de biblioteci speciale OpenCV cu care poți programa recunoașterea facială, mișcarea în funcție de balize colorate și multe alte lucruri interesante. Totul depinde doar de imaginația și abilitățile tale.
Lista componentelor:
  • ATmega16 în pachet DIP-40>
  • L7805 în pachet TO-220
  • L293D în carcasă DIP-16 x2 buc.
  • rezistențe cu o putere de 0,25 W cu valori nominale: 10 kOhm x 1 buc., 220 Ohm x 4 buc.
  • condensatori ceramici: 0,1 µF, 1 µF, 22 pF
  • condensatori electrolitici: 1000 µF x 16 V, 220 µF x 16 V x 2 buc.
  • dioda 1N4001 sau 1N4004
  • Rezonator de cuarț de 16 MHz
  • Diode IR: oricare două dintre ele vor face.
  • fototranzistoare, de asemenea oricare, dar care răspund doar la lungimea de undă a razelor infraroșii
Cod firmware:
/*****************************************************
Firmware pentru robot

Tip MK: ATmega16
Frecvența ceasului: 16.000000 MHz
Dacă frecvența dvs. de cuarț este diferită, atunci trebuie să specificați acest lucru în setările de mediu:
Proiect -> Configurare -> Fila "C Compiler".
*****************************************************/

#include
#include

Void main(void)
{
//Configurați porturile de intrare
//Prin aceste porturi primim semnale de la senzori
DDRB=0x00;
//Porniți rezistențele de tragere
PORTB=0xFF;

//Configurați porturile de ieșire
//Prin aceste porturi controlăm motoarele
DDRC=0xFF;

//Bucla principală a programului. Aici citim valorile de la senzori
//si controleaza motoarele
în timp ce (1)
{
//Să mergem înainte
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
dacă (!(PINB & (1< {
//Mergeți înapoi cu 1 secundă
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Încheie-l
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
}
dacă (!(PINB & (1< {
//Mergeți înapoi cu 1 secundă
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms(1000);
//Încheie-l
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms(1000);
}
};
}

Despre robotul meu

În acest moment robotul meu este aproape complet.


Este echipat cu o cameră wireless, un senzor de distanță (atât camera, cât și acest senzor sunt instalate pe un turn rotativ), un senzor de obstacol, un encoder, un receptor de semnal de la telecomandă și o interfață RS-232 pentru conectarea la un calculator. Funcționează în două moduri: autonom și manual (primește semnale de control de la telecomandă), camera poate fi pornită/oprită și de la distanță sau de către robotul însuși pentru a economisi bateria. Scriu firmware pentru securitatea apartamentului (transferul imaginilor pe un computer, detectarea mișcărilor, plimbarea prin incintă).

După dorința dumneavoastră, postez un videoclip:

UPD. Am reîncărcat fotografiile și am făcut câteva corecturi minore textului.



 


Citire:



Codurile promoționale Pandao pentru puncte

Codurile promoționale Pandao pentru puncte

Uneori, când încerci să intri în magazinul oficial al gigantului digital, Play Market scrie pentru a activa un cod promoțional. Pentru a obține o cuprinzătoare...

Instalarea RAM suplimentară

Instalarea RAM suplimentară

„Principiile memorării naturale se bazează pe conexiunile nervoase care sunt create în creier”, spune Olga Zimnyakova, neurolog...

Ce trebuie să faceți dacă căștile nu redau sunetul pe un laptop

Ce trebuie să faceți dacă căștile nu redau sunetul pe un laptop

Problemele legate de conectarea și operarea căștilor sunt destul de frecvente. În acest articol ne vom uita la câteva dintre cele mai probabile motive...

Director diode Diode redresoare de mare putere 220V

Director diode Diode redresoare de mare putere 220V

Scopul principal al diodelor redresoare este conversia tensiunii. Dar acesta nu este singurul domeniu de aplicare pentru acești semiconductori...

imagine-alimentare RSS