Bună ziua tuturor! Acest articol va fi dedicat iubitorilor de electronică, robotică, precum și persoanelor cu o privire neuniformă asupra lucrurilor din jur!
Așa că acum voi încerca să descriu procesul de creație, de asamblare cât mai clar robotul cu electronic umplutură, și anume, pe Arduino! Hai să mergem!
De ce avem nevoie:
Bucla cu trei fire (3 bucăți). Este recomandabil să luați mai autentic.
Firuri obișnuite
potențiometre
rezistențe (220 ohm)
buton
Compartimentul bateriei
bord prototipuri
Ei bine, desigur, eu însumi arduinka
Și, de asemenea, o placă de expansiune la ea - ceva de genul MultiservoShieldpentru a controla un număr mare de servos
Și încă ceva proiectant, care va fi baza robotului nostru, de aceea este indicat să alegem „puternic”
Dintre instrumentele de care aveți nevoie:
Un set de șurubelnițe, chei etc.
La fel ca și o fieră de lipit, lipire și flux
Ei bine, hai să începem!
Pasul 1. Fabricarea cadrului principal
Pentru a începe, colectați „cele două litere H” Arată astfel:
Apoi unele construcții pe baza cărora robotul va sta. Nu este deloc necesar ca în imagine - la discreția dvs. .. S-a dovedit astfel:
Instalăm „N” pe suport
De jos strângem șuruburile
Pe cealaltă „H” fixăm primul serviciu, care este responsabil de întoarcerea capetelor viitorului nostru robot
Se dovedește ceva de genul:
Aproape rama este gata! Rămâne să fixați aceste două structuri cu plăci metalice și să dați înălțimii robotului!
Pasul 2: Realizarea unui cadru pentru viitoarele urechi de robot
Pentru a face acest lucru, trebuie să asamblăm două structuri similare și să remediem servosurile lor, așa cum se arată în figură:
Apoi, folosind șuruburi și piulițe, conectați-vă la cadrul principal. Se va dovedi următoarele:
Vedere de sus:
Ei bine, un anumit prototip al robotului este aproape gata! Continuați ..
Pasul # 3. Făcând ochii și întregul cap al robotului nostru!
Pentru aceasta, am folosit telefonul vechi de la interfon. Personal, îmi amintește de un chip! Vezi mai multe ..
Facem două găuri și fixăm balansoarul pentru servo la tub
Lipim imediat LED-urile pe părțile laterale și le lipim firele
Am folosit cele subțiri:
Pasul 4 Crearea urechilor
Vom folosi capace obișnuite din cutii mici
Fixați, de asemenea, balansoarele pentru serv
Acum fixăm cu îndrăzneală părțile corpului robotului pe servere
Astfel:
Vedere de sus:
spate:
În principiu, vă puteți bucura de robot acum, dar vom complica sarcina .. Vom transforma ochii și urechile robotului folosind potențiometre și arduinka
Pasul # 5 Electronică
Combinând arduino cu scutul multiservice, introducem o buclă cu trei fire de la fiecare servo la pinii 9, 10, 11 (Urechea stângă, Urechea dreaptă, Cent, dacă puneți robotul cu fața spre noi)
Apoi, pe placa de pană instalăm un potențiometru, un buton, rezistențe .. Va arăta așa, urât desigur, dar principalul lucru funcționează)
Mai multe detalii!
Cum se instalează butonul:
În cazul în care firul alb este alimentat, Roșu este intrarea digitală a microcontrolerului nr. 6, iar rezistența merge la sol (fir galben)
Cum se instalează un potențiometru:
Fir roșu - putere, Galben - pământ, Alb - intrare analogică a microcontrolerului nr. 0 (conectăm un alt potențiometru în același mod, numai intrarea analogică a controlerului nr. 1)
De asemenea, instalăm rezistențe pentru LED-uri pe placă:
curentul va fi furnizat de la 3 și 5 pini de arduino și va veni prin firele galbene și negre și prin rezistențele vor merge la pământ (controler GND)
Ei bine, practic totul, am terminat cu electronică! Rămâne doar să descărcați următoarea schiță și joacă-te cu robotul !!
#include
#include
Multiservo myservo1;
Multiservo myservo2;
Multiservo myservo3;
int b, k1, p1, p2;
int A = 0;
int i = 0;
nesemnat lung m2 = 0;
nesemnat lung m1 = 0;
int r1 = 70;
int r2 = 110;
int r3 = 70;
int h1 = 0;
int h = 0;
void setup ()
{
myservo1.attach (9); // urechea stanga
myservo2.attach (10); // urechea dreapta
myservo3.attach (11); // ochi
pinMode (6, INPUT); // buton
pinMode (3, OUTPUT); // lumini de ochi PWM
pinMode (5, OUTPUT);
}
nul buclă ()
{
while (A == 0) // bucla de control manuală a robotului
{
b = digitalRead (6);
dacă (! b) k1 = 1;
if (b == 1 && k1 == 1)
{
întârziere (10);
b = digitalRead (6);
if (b == 1 && k1 == 1)
{
A este 1;
k1 = 0;
}
}
p1 = int (analogRead (A0) / 6);
p2 = int (analogRead (A1) / 6);
myservo1.write (p1);
myservo2.write (p1);
myservo3.write (p2);
analogWrite (3, i);
analogWrite (5, i);
if (millis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = millis ();
dacă (i> 250) h1 = 1;
}
if (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
dacă (i == 0) h1 = 0;
}
}
while (A == 1) // ciclul de lucru autonom al robotului
{
digitalWrite (13.0);
b = digitalRead (6);
dacă (! b) k1 = 1;
if (b == 1 && k1 == 1)
{
întârziere (10);
b = digitalRead (6);
if (b == 1 && k1 == 1)
{
A este 0;
k1 = 0;
}
}
analogWrite (3, i);
analogWrite (5, i);
if (millis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = millis ();
dacă (i> 250) h1 = 1;
}
if (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
dacă (i == 0) h1 = 0;
}
if (millis ()> = m2 + 15 && h == 0)
{
myservo1.write (r1);
myservo2.write (r2);
myservo3.write (r3);
r1 = r1 + 1;
r2 = r2-1;
r3 = r3 + 1;
dacă (r1 == 110) h = 1;
m2 = millis ();
}
if (millis ()> = m2 + 15 && h == 1)
{
myservo1.write (r1); // 110
myservo2.write (r2); // 70
myservo3.write (r3); // 110
r1 = r1-1;
r2 = r2 + 1;
r3 = r3-1;
dacă (r1 == 70) h = 0;
m2 = millis ();
}
}
}
Codul este destul de mare, dar crede-mă că merită!
Pe scurt, ce face acest program:
Avem un buton care este responsabil pentru 2 stări ale sistemului: fie controlăm robotul manual, fie efectuează mișcările deja înregistrate în avans. Când este apăsat un buton, stările se schimbă pentru noi, iar în cod, 2 cicluri se schimbă între ele, în care sunt înregistrate comenzile corespunzătoare. Ochii robotului nostru se aprind treptat, devin mai strălucitori și apoi se estompează. de aceea, am apelat la LED-urile la pinii care suportă modulul PWM - modularea lățimii pulsului.
Fotografii ale robotului:
mic înregistrare video, cum și ce se învârte până la urmă:
În concluzie, vreau să spun că, desigur, acest robot poate fi adus în minte mult timp, dar acesta este pe gustul fiecărei persoane. Fă-o! Inventeaza! Crească! Mult noroc tuturor!