Adakah anda ingin belajar membina robot anda sendiri? Terdapat banyak jenis robot yang boleh anda buat sendiri. Sebilangan besar orang ingin melihat robot melakukan tugas mudah bergerak dari titik A ke titik B. Anda boleh membuat robot sepenuhnya dari komponen analog atau membeli alat pemula dari awal! Membina robot anda sendiri adalah kaedah terbaik untuk mengajar diri anda sendiri elektronik dan juga pengaturcaraan komputer.
Langkah-langkah
Bahagian 1 dari 6: Memasang Robot
Langkah 1. Kumpulkan komponen anda
Untuk membina robot asas, anda memerlukan beberapa komponen mudah. Anda boleh menemui sebahagian besar, jika tidak semua, komponen ini di kedai hobi elektronik tempatan anda, atau beberapa peruncit dalam talian. Beberapa kit asas mungkin merangkumi semua komponen ini juga. Robot ini tidak memerlukan pematerian:
- Arduino Uno (atau pengawal mikro lain)
- 2 servo putaran berterusan
- 2 roda yang sesuai dengan servo
- 1 roller kastor
- 1 papan roti solderless kecil (cari papan roti yang mempunyai dua garis positif dan negatif di setiap sisi)
- Sensor jarak 1 (dengan kabel penyambung empat pin)
- 1 suis butang tekan mini
- 1 perintang 10kΩ
- 1 kabel USB A hingga B
- 1 set tajuk pengasingan
- 1 pemegang bateri 6 x AA dengan soket kuasa 9V DC
- 1 pek jumper wayar atau 22-gauge hook-up wire
- Pita dua sisi yang kuat atau gam panas
Langkah 2. Balikkan pek bateri sehingga punggung rata menghadap ke atas
Anda akan membina badan robot menggunakan pek bateri sebagai asas.
Langkah 3. Sejajarkan dua servo di hujung pek bateri
Ini semestinya hujung wayar bateri keluar dari servos harus menyentuh bagian bawah, dan mekanisme berputar masing-masing harus menghadap ke luar sisi bateri. Servo mesti diselaraskan dengan betul supaya roda lurus. Kabel untuk servo mesti keluar dari bahagian belakang pek bateri.
Langkah 4. Lekatkan servo dengan pita atau gam anda
Pastikan ia terpasang dengan kuat pada pek bateri. Bahagian belakang servo harus sejajar dengan bahagian belakang pek bateri.
Servo kini harus menggunakan separuh bateri belakang
Langkah 5. Lekatkan papan roti tegak lurus di ruang terbuka pada pek bateri
Ia harus digantung di bahagian depan pek bateri sedikit dan akan melampaui setiap sisi. Pastikan ia diikat dengan selamat sebelum meneruskan. Baris "A" harus paling dekat dengan servo.
Langkah 6. Pasang mikrokontroler Arduino ke bahagian atas servos
Sekiranya anda memasang servo dengan betul, harus ada ruang rata yang dibuat oleh mereka untuk menyentuh. Pasang papan Arduino ke ruang rata ini sehingga penyambung Arduino USB dan Power menghadap ke belakang (jauh dari papan roti). Bahagian depan Arduino hampir tidak bertindih di atas papan roti.
Langkah 7. Letakkan roda di servo
Tekan roda dengan kuat ke mekanisme putaran servo. Ini mungkin memerlukan kekuatan yang besar, kerana roda dirancang agar sepasang mungkin untuk daya tarikan terbaik.
Langkah 8. Pasangkan kastor ke bahagian bawah papan roti
Sekiranya anda membalikkan casisnya, anda akan melihat sedikit papan roti melampaui pek bateri. Pasang kastor ke bahagian yang diperluas ini, gunakan riser jika perlu. Kastor bertindak sebagai roda depan, membolehkan robot berpusing ke arah mana pun dengan mudah.
Sekiranya anda membeli kit, kastor mungkin disertakan dengan beberapa riser yang boleh anda gunakan untuk memastikan kastor sampai ke tanah. i
Bahagian 2 dari 6: Pendawaian Robot
Langkah 1. Putuskan dua tajuk 3-pin
Anda akan menggunakan ini untuk menyambungkan servo ke papan roti. Tolak pin ke bawah melalui pengepala sehingga pin keluar pada jarak yang sama di kedua sisi.
Langkah 2. Masukkan dua tajuk ke dalam pin 1-3 dan 6-8 pada baris E papan roti
Pastikan ia dimasukkan dengan kuat.
Langkah 3. Sambungkan kabel servo ke tajuk, dengan kabel hitam di sebelah kiri (pin 1 dan 6)
Ini akan menghubungkan servos ke papan roti. Pastikan servo kiri disambungkan ke header kiri dan servo kanan ke header kanan.
Langkah 4. Sambungkan wayar pelompat merah dari pin C2 dan C7 ke pin rel merah (positif)
Pastikan anda menggunakan rel merah di bahagian belakang papan roti (lebih dekat dengan casis yang lain).
Langkah 5. Sambungkan wayar pelompat hitam dari pin B1 dan B6 ke pin rel biru (tanah)
Pastikan bahawa anda menggunakan rel biru di bahagian belakang papan roti. Jangan pasangkannya ke pin rel merah.
Langkah 6. Sambungkan wayar pelompat putih dari pin 12 dan 13 di Arduino ke A3 dan A8
Ini akan membolehkan Arduino mengawal servos dan memutar roda.
Langkah 7. Pasang sensor ke bahagian depan papan roti
Ia tidak disambungkan ke rel kuasa luar di papan roti, melainkan pada baris pertama pin huruf (J). Pastikan anda meletakkannya di tengah yang tepat, dengan jumlah pin yang sama tersedia di setiap sisi.
Langkah 8. Sambungkan wayar pelompat hitam dari pin I14 ke pin rel biru pertama yang tersedia di sebelah kiri sensor
Ini akan menggerakkan sensor.
Langkah 9. Sambungkan wayar pelompat merah dari pin I17 ke pin rel merah pertama yang tersedia di sebelah kanan sensor
Ini akan menghidupkan sensor.
Langkah 10. Sambungkan wayar pelompat putih dari pin I15 hingga pin 9 di Arduino, dan dari I16 hingga pin 8
Ini akan memberi maklumat dari sensor ke mikrokontroler.
Bahagian 3 dari 6: Pendawaian Kuasa
Langkah 1. Balikkan robot di sisinya sehingga anda dapat melihat bateri di dalam pek
Luruskan sehingga kabel pek bateri keluar ke kiri di bahagian bawah.
Langkah 2. Sambungkan wayar merah ke pegas kedua dari kiri di bahagian bawah
Pastikan bahawa pek bateri berorientasikan dengan betul.
Langkah 3. Sambungkan wayar hitam ke musim bunga terakhir di kanan bawah
Kedua-dua kabel ini akan membantu memberikan voltan yang betul ke Arduino.
Langkah 4. Sambungkan wayar merah dan hitam ke pin merah dan biru paling kanan di bahagian belakang papan roti
Kabel hitam harus dipasang ke pin rel biru pada pin 30. Kabel merah harus dipasang ke pin rel merah pada pin 30.
Langkah 5. Sambungkan wayar hitam dari pin GND di Arduino ke rel biru belakang
Sambungkannya pada pin 28 di rel biru.
Langkah 6. Sambungkan wayar hitam dari rel biru belakang ke rel biru depan pada pin 29 untuk masing-masing
Jangan sambungkan rel merah, kerana kemungkinan anda akan merosakkan Arduino.
Langkah 7. Sambungkan wayar merah dari rel merah depan pada pin 30 ke pin 5V di Arduino
Ini akan memberi kekuatan kepada Arduino.
Langkah 8. Masukkan suis butang tekan di jurang antara baris pada pin 24-26
Suis ini akan membolehkan anda mematikan robot tanpa perlu mencabut kuasa.
Langkah 9. Sambungkan wayar merah dari H24 ke rel merah di pin yang tersedia seterusnya di sebelah kanan sensor
Ini akan menghidupkan butang.
Langkah 10. Gunakan perintang untuk menyambungkan H26 ke rel biru
Sambungkannya ke pin tepat di sebelah wayar hitam yang anda sambungkan beberapa langkah yang lalu.
Langkah 11. Sambungkan wayar putih dari G26 ke pin 2 di Arduino
Ini akan membolehkan Arduino mendaftarkan butang tekan.
Bahagian 4 dari 6: Memasang Perisian Arduino
Langkah 1. Muat turun dan ekstrak Arduino IDE
Ini adalah persekitaran pengembangan Arduino dan membolehkan anda memprogram arahan yang kemudian anda boleh muat naik ke mikrokontroler Arduino anda. Anda boleh memuat turunnya secara percuma dari arduino.cc/en/main/software. Buka zip fail yang dimuat turun dengan mengklik dua kali dan pindahkan folder ke dalam ke lokasi yang mudah diakses. Anda sebenarnya tidak akan memasang program. Sebaliknya, anda hanya akan menjalankannya dari folder yang diekstrak dengan mengklik dua kali arduino.exe.
Langkah 2. Sambungkan pek bateri ke Arduino
Pasang bicu belakang bateri ke penyambung di Arduino untuk memberikannya kuasa.
Langkah 3. Pasangkan Arduino ke komputer anda melalui USB
Windows kemungkinan tidak akan mengenali peranti tersebut.
Langkah 4. Tekan
⊞ Menang + R dan taip devmgmt.msc.
Ini akan melancarkan Pengurus Peranti.
Langkah 5. Klik kanan pada "Peranti tidak diketahui" di bahagian "Peranti lain" dan pilih "Kemas kini Perisian Pemacu
" Sekiranya anda tidak melihat pilihan ini, klik "Properties" sebagai gantinya, pilih tab "Driver", dan kemudian klik "Update Driver."
Langkah 6. Pilih "Browse komputer saya untuk perisian pemacu
" Ini akan membolehkan anda memilih pemacu yang disertakan dengan Arduino IDE.
Langkah 7. Klik "Browse" kemudian arahkan ke folder yang anda ekstrak sebelumnya
Anda akan menemui folder "pemacu" di dalamnya.
Langkah 8. Pilih folder "pemacu" dan klik "OK
" Sahkan bahawa anda ingin meneruskan sekiranya anda diberi amaran mengenai perisian yang tidak diketahui.
Bahagian 5 dari 6: Memprogram Robot
Langkah 1. Mulakan Arduino IDE dengan mengklik dua kali fail arduino.exe dalam folder IDE
Anda akan disambut dengan projek kosong.
Langkah 2. Tampal kod berikut untuk membuat robot anda lurus
Kod di bawah ini akan menjadikan Arduino anda terus maju.
#include // ini menambah perpustakaan "Servo" ke program // berikut mewujudkan dua objek servo Servo leftMotor; Servo kananMotor; batal persediaan () {leftMotor.attach (12); // jika anda menukar nombor pin untuk servos anda secara tidak sengaja, anda boleh menukar nombor di sini dengan betulMotor.attach (13); } gelung kosong () {leftMotor.write (180); // dengan putaran berterusan, 180 memberitahu servo untuk bergerak dengan kelajuan penuh "maju". betulMotor. tulis (0); // jika kedua-duanya berada pada suhu 180, robot akan berpusing kerana servo dibalik. "0," memberitahu untuk menggerakkan kelajuan penuh "ke belakang." }
Langkah 3. Bina dan muat naik program
Klik butang anak panah kanan di sudut kiri atas untuk membina dan memuat naik program ke Arduino yang bersambung.
Anda mungkin ingin mengangkat robot dari permukaan, kerana ia akan terus bergerak maju setelah program dimuat naik
Langkah 4. Tambahkan fungsi kill kill
Tambahkan kod berikut ke bahagian "loop void ()" pada kod anda untuk mengaktifkan suis kill, di atas fungsi "tulis ()".
jika (digitalRead (2) == TINGGI) // ini mendaftar apabila butang ditekan pada pin 2 Arduino {sambil (1) {leftMotor.write (90); // "90" adalah kedudukan neutral untuk servos, yang memberitahu mereka untuk berhenti membelok ke kananMotor.write (90); }}
Langkah 5. Muat naik dan uji kod anda
Dengan kod suis kill ditambahkan, anda boleh memuat naik dan menguji robot. Ia harus terus bergerak ke depan sehingga anda menekan suis, pada ketika itu ia akan berhenti bergerak. Kod penuh akan kelihatan seperti ini:
#include // berikut membuat dua objek servo Servo leftMotor; Servo kananMotor; batal persediaan () {leftMotor.attach (12); rightMotor.attach (13); } gelung void () {if (digitalRead (2) == TINGGI) {sambil (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }
Bahagian 6 dari 6: Contoh
Langkah 1. Ikuti contoh
Kod berikut akan menggunakan sensor yang dilekatkan pada robot untuk membuatnya berpusing ke kiri setiap kali menghadapi halangan. Lihat komen dalam kod untuk perincian mengenai apa yang dilakukan oleh setiap bahagian. Kod di bawah adalah keseluruhan program.
#masuk Servo leftMotor; Servo kananMotor; const int serialPeriod = 250; // ini menghadkan output ke konsol hingga setiap 1/4 saat tidak ditandatangani lamaSerialDelay = 0; const int loopPeriod = 20; // ini menetapkan seberapa kerap sensor mengambil bacaan hingga 20ms, iaitu frekuensi 50Hz lama tidak ditandatanganiLoopDelay = 0; // ini memberikan fungsi TRIG dan ECHO ke pin di Arduino. Lakukan penyesuaian pada nombor di sini jika anda tersambung secara berbeza const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonik2Distance; int ultrasonik2Duration; // ini menentukan dua keadaan yang mungkin untuk robot: memandu ke hadapan atau membelok ke kiri #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = memandu ke hadapan (DEFAULT), 1 = pusing kiri kosong persediaan () {Serial.begin (9600); // konfigurasi pin sensor ini pinMode (ultrasonik2TrigPin, OUTPUT); pinMode (ultrasonik2EchoPin, INPUT); // ini memberikan motor ke pin Arduino leftMotor.attach (12); rightMotor.attach (13); } gelung void () {if (digitalRead (2) == TINGGI) // ini mengesan suis kill {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // ini mencetak mesej debug ke konsol bersiri jika (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // ini memerintahkan sensor untuk membaca dan menyimpan keadaan jarak yang diukur stateMachine (); timeLoopDelay = milis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // jika tidak ada halangan yang dikesan {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // jika tidak ada apa-apa di hadapan robot. ultrasonik Jarak akan menjadi negatif bagi sesetengah ultrasonik jika tidak ada halangan {// drive rightMotor.write (180); leftMotor.write (0); } lain // jika ada objek di hadapan kita {state = TURN_LEFT; }} lain jika (state == TURN_LEFT) // jika halangan dikesan, pusing kiri {unsigned long timeToTurnLeft = 500; // diperlukan sekitar 5 saat untuk bertukar 90 darjah. Anda mungkin perlu menyesuaikannya jika roda anda berukuran berbeza daripada contoh putaran panjang yang tidak ditandatanganiStartTime = millis (); // jimat masa kita mula berpusing sementara ((milis () - turnStartTime) <timeToTurnLeft) // tetap dalam gelung ini sehingga timeToTurnLeft berlalu {// belok kiri, ingat bahawa apabila kedua-duanya diatur ke "180" ia akan berubah. rightMotor.write (180); leftMotor.write (180); } nyatakan = DRIVE_FORWARD; }} batal readUltrasonicSensors () {// ini untuk ultrasonik 2. Anda mungkin perlu mengubah arahan ini jika anda menggunakan sensor yang berbeza. digitalWrite (ultrasonik2TrigPin, TINGGI); kelewatanMikrodetik (10); // memastikan pin trig tetap tinggi sekurang-kurangnya 10 mikrodetik digitalWrite (ultrasonik2TrigPin, RENDAH); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, TINGGI); ultrasonic2Distance = (ultrasonic2Duration / 2) / 29; } // berikut adalah untuk kesalahan debug pada konsol. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonik2Distance); Serial.print ("cm"); Bersiri.println (); timeSerialDelay = milis (); }}