» electronică » Arduino »Robot pe Arduino!

Robot pe Arduino!


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:

Asta s-a întâmplat!

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!
7
6.7
5.7

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...