» elettronica » Arduino »Robot su Arduino!

Robot su Arduino!


Buona giornata a tutti! Questo articolo sarà dedicato agli amanti dell'elettronica, della robotica, nonché alle persone con uno sguardo non standard alle cose circostanti!

Quindi ora proverò a descrivere il processo di creazione, assemblaggio nel modo più chiaro possibile il robot con elettronico ripieno, vale a dire, su Arduino! Andiamo!

Di cosa abbiamo bisogno:
Anello a tre fili (3 pezzi). Si consiglia di prendere più autentico.

Fili ordinari

potenziometri

resistenze (220 ohm)

pulsante

Vano batteria

scheda di prototipazione

Beh, certo, me stesso arduinka

E anche una scheda di espansione - qualcosa del genere MultiservoShieldper controllare un gran numero di servi

E ancora progettista, che sarà la base del nostro robot, quindi è consigliabile scegliere "forte"

Dagli strumenti avrai bisogno di:
Un set di cacciaviti, chiavi, ecc.

Così come un saldatore, saldatura e flusso


Bene, cominciamo!
Passaggio n. 1 Fabbricazione del telaio principale
Per iniziare, raccogli le "due lettere H" Sembra così:

Quindi qualche costruzione su cui il nostro il robot rimarrà. Non è affatto necessario come nella foto - a tua discrezione .. È risultato così:

Installiamo la nostra "N" sul supporto

Dal basso stringiamo i bulloni

Sull'altro "H" ripariamo il primo servo, che è responsabile di girare le teste del nostro futuro robot






Si scopre qualcosa di simile al seguente:

Quasi la cornice è pronta! Resta da fissare queste due strutture con piastre metalliche e dare altezza al robot!





Passaggio 2: creare un telaio per le orecchie dei robot futuri
Per fare questo, dobbiamo assemblare due strutture simili e fissare i servi su di esse, come mostrato nella figura:



Quindi, usando bulloni e dadi, collegare al telaio principale. Risulterà quanto segue:




Vista dall'alto:


Bene, un certo prototipo del robot è quasi pronto! Vai avanti ..
Passaggio n. 3. Rendere gli occhi e l'intera testa del nostro robot!
Per questo, ho usato il vecchio ricevitore dell'interfono. Personalmente, mi ricorda una faccia! Vedi di più ..

Facciamo due fori e fissiamo il bilanciere per il servo al tubo


Incolliamo immediatamente i LED sui lati e saldiamo i fili ad essi


Ho usato quelli sottili:

Questo è quello che è successo!

Step # 4 Fare orecchie
Useremo tappi ordinari da piccole scatole
Fissare anche le sedie a dondolo per il servizio




Ora ripariamo coraggiosamente le parti del corpo del robot sui server
In questo modo:


Vista dall'alto:



posteriori:


In linea di principio, ora puoi goderti il ​​robot, ma compliceremo il compito .. Gireremo gli occhi e le orecchie del robot usando i potenziometri e il nostro arduinka
Step # 5 Elettronica
Combinando l'arduino con lo scudo multiservizio, inseriamo un anello a tre fili da ciascun servo ai pin 9, 10, 11 (Orecchio sinistro, Orecchio destro, Cent, se metti il ​​robot di fronte a noi)
Quindi sulla breadboard installiamo un potenziometro, un pulsante, resistenze .. Apparirà così, brutto ovviamente, ma la cosa principale funziona)







Maggiori dettagli!
Come installare il pulsante:


Dove il filo bianco è alimentato, il rosso è l'ingresso digitale del microcontrollore n. 6 e la resistenza va a terra (filo giallo)

Come installare un potenziometro:


Cavo rosso - alimentazione, giallo - terra, bianco - ingresso analogico del microcontrollore n. 0 (colleghiamo un altro potenziometro allo stesso modo, solo ingresso analogico del controller n. 1)

Installiamo anche resistori per LED sulla scheda:

la corrente verrà fornita da 3 e 5 pin dell'arduino e passerà attraverso i fili giallo e nero e attraverso i resistori andrà a terra (controller GND)

Bene, praticamente tutto, abbiamo finito con l'elettronica! Resta solo da scaricare il prossimo abbozzo e gioca con il robot !!

#include
#include
Multiservo myservo1;
Multiservo myservo2;
Multiservo myservo3;
int b, k1, p1, p2;
int A = 0;
int i = 0;
unsigned long m2 = 0;
unsigned long m1 = 0;
int r1 = 70;
int r2 = 110;
int r3 = 70;
 int h1 = 0;
 int h = 0;
void setup ()
{
  myservo1.attach (9); // orecchio sinistro
  myservo2.attach (10); // orecchio destro
  myservo3.attach (11); // occhi
      pinMode (6, INPUT); // pulsante
      pinMode (3, OUTPUT); // occhi luminosi PWM
      pinMode (5, OUTPUT);
}
 void loop ()
{
   
    while (A == 0) // loop di controllo manuale del robot
    {
        b = digitalRead (6);
        if (! b) k1 = 1;
        if (b == 1 && k1 == 1)
        {
              ritardo (10);
              b = digitalRead (6);
              if (b == 1 && k1 == 1)
                {
                 A è 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 ();
        se (i> 250) h1 = 1;
      }
     
        if (millis ()> = m1 + 70 && h1 == 1)
      {
        i = i-4;
        m1 = millis ();
        if (i == 0) h1 = 0;
      }
    }
  while (A == 1) // ciclo di lavoro autonomo del robot
   {
       digitalWrite (13.0);
       b = digitalRead (6);
        if (! b) k1 = 1;
        if (b == 1 && k1 == 1)
        {
            ritardo (10);
            b = digitalRead (6);
            if (b == 1 && k1 == 1)
            {
                A è 0;
                k1 = 0;
            }
        }
      analogWrite (3, i);
      analogWrite (5, i);
      if (millis ()> = m1 + 70 && h1 == 0)
      {
        i = i + 4;
        m1 = millis ();
        se (i> 250) h1 = 1;
      }
      if (millis ()> = m1 + 70 && h1 == 1)
      {
        i = i-4;
        m1 = millis ();
        if (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;
    if (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;
    if (r1 == 70) h = 0;
    m2 = millis ();
   }
   }
}


Il codice è piuttosto grande, ma credimi ne vale la pena!
In breve, cosa fa questo programma:
Abbiamo un pulsante che è responsabile di 2 stati del sistema: o controlliamo il robot manualmente o esegue i movimenti già registrati in anticipo. Quando viene premuto un pulsante, gli stati cambiano per noi e nel codice cambiano tra loro 2 cicli, in cui sono registrati i comandi corrispondenti. Gli occhi del nostro robot si illuminano gradualmente, diventano sempre più luminosi e poi svaniscono. ecco perché abbiamo doppiato i LED sui pin che supportano PWM - modulazione della larghezza degli impulsi.

Foto del robot:




piccolo registrazione video, come e cosa alla fine si trasforma:

In conclusione, voglio dire che, naturalmente, questo robot può essere ricordato per molto tempo, ma questo è il gusto di ogni persona. Fallo! Invent! Grow! Buona fortuna a tutti!
7
6.7
5.7

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino

Ti consigliamo di leggere:

Passalo per lo smartphone ...