» Elektronik » Arduino »Robot pada Arduino!

Robot pada Arduino!


Selamat hari untuk semua! Artikel ini akan dikhaskan untuk pencinta elektronik, robotika, dan juga orang yang tidak standard melihat perkara-perkara sekitarnya!

Jadi sekarang saya akan cuba untuk menerangkan proses penciptaan, pemasangan dengan jelas mungkin robot itu dengan e pemadat, yaitu, pada Arduino! Mari pergi!

Apa yang kita perlukan:
Gelung tiga dawai (3 keping). Adalah dinasihatkan untuk mengambil lebih sahih.

Wayar biasa

Potentiometers

Resistor (220 ohm)

Butang

Kompartmen Bateri

Breadboard

Baiklah, saya sendiri arduinka

Dan juga papan pengembangan kepadanya - sesuatu seperti MultiservoShielduntuk mengawal sebilangan besar servos

Dan lagi pembina, yang akan menjadi asas kepada robot kami, jadi adalah dinasihatkan untuk memilih "kuat"

Dari alatan yang anda perlukan:
Satu set pemutar skru, kunci, dan lain-lain

Serta besi pematerian, solder dan fluks


Nah, mari bermula!
Langkah # 1. Pembuatan bingkai utama
Untuk memulakan, kumpulkan "dua huruf H" Sepertinya ini:

Kemudian beberapa pembinaan di mana kami robot itu akan berdiri. Ia sama sekali tidak perlu seperti dalam gambar - mengikut budi bicara anda .. Ternyata seperti ini:

Kami memasang "N" kami atas sokongan

Dari bawah kita mengetatkan bolt

Pada yang lain "H" kita menetapkan servo pertama, yang bertanggungjawab untuk mengubah kepala robot masa depan kita






Ternyata sesuatu seperti yang berikut:

Hampir bingkai siap! Ia tetap untuk mengikat kedua-dua struktur dengan plat logam dan memberikan ketinggian robot!





Langkah # 2: Membuat bingkai untuk telinga robot masa depan
Untuk melakukan ini, kita perlu memasang dua struktur yang serupa dan membetulkan servos pada mereka, seperti ditunjukkan dalam gambar:



Kemudian, menggunakan baut dan kacang, sambungkan ke bingkai utama. Ia akan mengubah perkara berikut:




Pandangan teratas:


Nah, prototaip robot yang hampir siap! Teruskan ..
Langkah # 3. Membuat mata dan seluruh kepala robot kita!
Untuk ini, saya menggunakan telefon bimbit lama dari interkom. Secara peribadi, dia mengingatkan saya tentang wajah! Lihat lagi ..

Kami membuat dua lubang dan mengikat jumper untuk servo ke tiub


Kami segera melekatkan LED pada bahagian-bahagian dan pateri wayar kepada mereka


Saya menggunakan nipis:

Itulah yang berlaku!

Langkah # 4 Membuat Telinga
Kami akan menggunakan topi biasa dari kotak kecil
Juga pasangkan kerusi goyang untuk serv




Sekarang kita berani membetulkan bahagian-bahagian tubuh robot pada pelayan
Seperti ini:


Pandangan teratas:



Belakang:


Pada prinsipnya, anda boleh menikmati robot sekarang, tetapi kami akan merumitkan tugas. Kami akan menghidupkan mata dan telinga robot menggunakan potensiometer dan arduinka kami
Langkah # 5 Elektronik
Menggabungkan arduino dengan perisai multiservice, kami memasukkan gelung tiga kawat dari setiap servo ke pin 9, 10, 11 (Telinga kiri, telinga kanan, Cent, jika anda meletakkan robot yang menghadap kami)
Kemudian pada papan roti kita memasang potensiometer, butang, perintang .. Ia akan kelihatan seperti ini, hodoh tentu saja, tetapi perkara utama berfungsi)







Maklumat lanjut!
Cara memasang butang:


Di mana wayar putih adalah kuasa, Merah adalah input digital mikrokontroller No. 6, dan perintangnya pergi ke tanah (wayar kuning)

Cara memasang potensiometer:


Kawat merah - kuasa, Kuning - bumi, Putih - input analog mikrokontroller No. 0 (kita menyambungkan potensiometer lain dengan cara yang sama, hanya input analog pengawal No. 1)

Kami juga memasang perintang untuk LED di papan:

semasa akan dibekalkan dari 3 dan 5 pin arduino, dan akan melalui wayar kuning dan hitam dan melalui perintang pergi ke tanah (pengawal GND)

Nah, pada dasarnya semuanya, kita sudah selesai dengan elektronik! Ia hanya untuk memuat turun seterusnya lakaran dan bermain dengan 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 panjang m1 = 0;
int r1 = 70;
int r2 = 110;
int r3 = 70;
 int h1 = 0;
 int h = 0;
batal persediaan ()
{
  myservo1.attach (9); // telinga kiri
  myservo2.attach (10); // telinga kanan
  myservo3.attach (11); // mata
      pinMode (6, INPUT); // butang
      pinMode (3, OUTPUT); // lampu mata PWM
      pinMode (5, OUTPUT);
}
 kekosongan gelung ()
{
   
    manakala (A == 0) // robot kawalan manual robot
    {
        b = digitalRead (6);
        jika (! b) k1 = 1;
        jika (b == 1 && k1 == 1)
        {
              kelewatan (10);
              b = digitalRead (6);
              jika (b == 1 && k1 == 1)
                {
                 A adalah 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);
      jika (millis ()> = m1 + 70 && h1 == 0)
      {
        i = i + 4;
        m1 = millis ();
        jika (i> 250) h1 = 1;
      }
     
        jika (millis ()> = m1 + 70 && h1 == 1)
      {
        i = i-4;
        m1 = millis ();
        jika (i == 0) h1 = 0;
      }
    }
  manakala (A == 1) // robot berfungsi kitaran kerja
   {
       digitalWrite (13.0);
       b = digitalRead (6);
        jika (! b) k1 = 1;
        jika (b == 1 && k1 == 1)
        {
            kelewatan (10);
            b = digitalRead (6);
            jika (b == 1 && k1 == 1)
            {
                A ialah 0;
                k1 = 0;
            }
        }
      analogWrite (3, i);
      analogWrite (5, i);
      jika (millis ()> = m1 + 70 && h1 == 0)
      {
        i = i + 4;
        m1 = millis ();
        jika (i> 250) h1 = 1;
      }
      jika (millis ()> = m1 + 70 && h1 == 1)
      {
        i = i-4;
        m1 = millis ();
        jika (i == 0) h1 = 0;
      }
   jika (millis ()> = m2 + 15 && h == 0)
   {
    myservo1.write (r1);
    myservo2.write (r2);
    myservo3.write (r3);
    r1 = r1 + 1;
    r2 = r2-1;
    r3 = r3 + 1;
    jika (r1 == 110) h = 1;
    m2 = millis ();
   }
   jika (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;
    jika (r1 == 70) h = 0;
    m2 = millis ();
   }
   }
}


Kod ini agak besar, tetapi percayalah, ia berbaloi!
Secara ringkas, apakah yang dilakukan oleh program ini:
Kami mempunyai butang yang bertanggungjawab untuk 2 negeri sistem: sama ada kita mengawal robot secara manual, atau ia menjalankan pergerakan yang sudah terdaftar terlebih dahulu. Apabila butang ditekan, keadaan berubah untuk kita, dan dalam kod, 2 kitaran berubah di antara mereka sendiri, di mana arahan yang sama didaftarkan. Mata robot kita secara beransur-ansur menyala, menjadi lebih cerah dan cerah, dan kemudian memudar. itulah sebabnya kami telah dijuluki LED pada pin yang menyokong modulasi lebar denyut PWM.

Foto robot:




Kecil rakaman video, bagaimana dan apa yang berputar pada akhirnya:

Sebagai kesimpulan, saya ingin mengatakan bahawa, sudah tentu, robot ini boleh diingat untuk masa yang lama, tetapi ini adalah rasa setiap orang. Lakukan! Mencipta! Berubah! Semoga berjaya kepada semua orang!
7
6.7
5.7

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...