Acest proiect este destinat în principal pentru hamsteri începători și permite utilizarea microcontrolerului arduino, a instrumentului de generare a codurilor MATLAB și a componentelor mecanice, precum și a unui număr mic de elemente electronice. Robotul are un braț mecanic cu 2 grade de libertate și un mâner de manipulator. Proiectul utilizează o aplicație cinematică inversă și un mijloc eficient de detectare a contururilor imaginii.
Pasul 1: Componente, instrumente și software folosite
1. Componente mecanice
2. Componente electronice
- Modulul Arduino uno
- Plăci PCB sau prototipuri
- Sursă de alimentare (adaptor 5V și curent 2A)
- Cablu USB
5. Software
- Arduino IDE Development Environment
- Matlab (împreună cu Arduino IO)
Toate componentele de mai sus sunt ușor de găsit la magazinul local de componente radio.
Pentru proiect este necesară utilizarea servomotoarelor cu un cuplu de 7 kg / cm. În cazul folosirii prototipului, nu avem nevoie de un fier de lipit și de lipit.
Pasul 2: Construcția mecanică
Figura de mai sus arată proiectarea aproximativă a acestui robot și etapele de asamblare a acestuia. Este ca și cum ai fi jucat cu un designer când aveai 5-6 ani. Acum, să aruncăm o privire mai atentă la instrucțiunile pas cu pas pentru asamblarea robotului.
- Se taie două găuri în fiecare spălătoare plană astfel încât distanța dintre aceste găuri să fie aceeași pentru toate șaibele, așa cum se arată în figura de mai sus.
- Acum trebuie să facem un sprijin rigid pentru un scop. Strângeți patru găuri la distanța potrivită pentru șuruburile servomotorului și atașați servomotorul la postul pătrat. Folosim acest design pentru a crea un suport rigid, care este necesar în timpul procesului de instalare.
- Conectați două plăci de aluminiu de la proiectant la două șaibe, așa cum se arată în figură, astfel încât distanța dintre cele două șaibe este de aproximativ 20 cm.
- Acum atașați un servomotor cu un suport rigid și celălalt servomotorului. Mai mult, înainte ca șaibe de fixare finală calibra servomotoarele în unghiul de rotație de 90 de grade, astfel încât servomotoarelor cu suportul rigid este paralelă cu plăcile și capătul liber al servomotoarelor situate perpendicular pe aceasta.
- Acum, luați cele mai lungi plăci (de 15 cm lungime) de la proiectant și le atașați la capătul inferior al capătului liber al servomotorului paralel cu acesta.
- Apoi atașați roțile la partea inferioară a brațului mecanic cu mânerul pe care l-am creat la Pasul 5 pentru a crea un echilibru și suport fiabil.
- Ultimul servomotor trebuie atașat la punctul final al etapei 5 cu lipici feviquick sau pistol de lipire pentru a crea o structură rigidă.
- La placa de lungime corespunzătoare și un știft atașați mânerul motorului de cuplu, astfel încât distanța de la spălătorul plat capăt liber și vârful stilou a fost de aproximativ 20 cm.
La proiectarea robotului, trebuie luată în considerare distanța de 20 cm deasupra și corectitudinea calibrării. Restul designului depinde de disponibilitatea altor componente și de dorința dumneavoastră. De exemplu, în locul plăcilor de aluminiu de la designer, puteți utiliza rigle pentru a crea un braț mecanic etc.
Pasul 3: Componente electronice
Fotografia de mai sus prezintă diagrama de conectare a componentelor utilizate, care pot fi conectate ca un sild pentru arduino sau pentru a le folosi pentru a le conecta.
Pasul 4: Codul programului
Aceasta este cea mai interesantă și importantă parte a acestui proiect.
Pentru început, avem nevoie de o imagine în care trebuie să definim contururile folosind un instrument eficient de detectare a conturului imaginii. În continuare vom desena această imagine. Desenarea unei imagini constă din două etape.
Pasul 1: De la început, vom găsi un pixel desemnat ca unitate logică, din moment ce este acum imaginea noastră este formată din cele logice și zero, iar apoi verificați pixelii săi locali din jur, dacă oricare dintre ele ca o unitate logică. Apoi, mânerul atinge acest pixel, iar unitatea logică anterioară este ștearsă. Funcția se repetă recursiv și creează linii netede.
Etapa 2: În cea de-a doua etapă, se utilizează kinematică inversă pentru a atinge pixelul specific necesar. Trebuie să cunoaștem coordonatele pixelului și să calculăm unghiurile corespunzătoare pentru axele de rotație; Formulele de calcul sunt prezentate în figura de mai sus.
Explicația de mai sus nu este utilizată pentru a executa codul de program, ci servește pentru o înțelegere generală.
Acum trebuie să configurați Matlab și arduino pentru a executa codul de program.
Mai întâi, instalați pachetul arduino IO pentru matlab (toate instrucțiunile sunt listate împreună cu pachetul software).
Apoi, înlocuiți fișierul arduino.m cu fișierul descărcat cu același nume.
Descărcați și salvați finaldraw.m și draw.m în directorul matlab.
Descărcați fișierul adioes.ino care a fost încărcat anterior în modulul arduino.
Uitați-vă la portul arduinului dvs. conectat, apoi mergeți la finaldraw.m și schimbați COM3 în portul dvs.
De exemplu, imaginea lui Emma Watson a fost descărcată, astfel încât să o puteți folosi în procesul de testare. De asemenea, puteți schimba parametrii funcției de detectare a conturului imaginii în funcție de cerințele dvs.
Acum conectați arduino la PC-ul dvs., porniți sursa de alimentare și introduceți finaldraw pe linia de comandă MATLAB. Bucurați-vă de procesul de desenare a unei imagini.
Dacă întâmpinați probleme, faceți cunoștință cu pasul 5.
Pasul 5: Descrierea codului programului
Algoritmul pentru desenarea unei imagini este descris mai jos.
Principiul algoritmului este după cum urmează: începe inițial verificarea pixeli imaginea convertită, iar când acesta este unul (1), care este menționată ca un pixel alb din imaginea de mai sus, vârful pen-ul ajunge la acest punct (procesul de a ajunge la acest punct în scris înainte) și cade în jos, apoi 8 vecine verificate pixeli, iar în cazul în care este detectat unitatea, pen-ul ajunge la acest punct, fără a ridica vârful în sus și elimină pixel precedent pentru a evita repetițiile. Acest proces continuă până când nu mai este înconjurat de unitatea logică detectată (aceasta este o funcție recursivă), astfel încât creion trage o linie netedă, și elimină „componenta logică“ simultan. Apoi, desenați alte ramuri de linii care apar din linia trasată, deoarece fiecare pixel vecin este verificat. Acest algoritm creează o imagine completă.