Proses manufaktur
![]() |
| × | 1 | |||
| × | 4 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 8 | |||
![]() |
| × | 8 | |||
| × | 1 | ||||
![]() |
| × | 1 |
![]() |
| |||
![]() |
| |||
![]() |
|
Setelah membangun sejumlah robot dalam ruangan, saya memutuskan untuk membuat robot luar ruangan yang mampu melakukan perjalanan melalui medan yang kasar. Saya menyebutnya “M1-Robot.”
Motor M1-Robot dengan mudah menggerakkan empat motor DC yang dikendarai dengan Arduino sehingga sangat cocok untuk proyek robotika apa pun, saya pikir ini akan membuat jantung yang fantastis untuk robot yang lebih kuat, jadi saya merancang M1 penggerak 4 roda off-road dari goresan.
Ini bukan hanya mobil RC, dapat diprogram untuk mengemudi sendiri mengikuti serangkaian instruksi atau bahkan dikendalikan dari komputer jarak jauh, dan dapat digunakan melalui pengontrol permainan dan joystick khusus seperti mobil kendali jarak jauh.
Langkah 1:Desain
Merancang produk atau prototipe Anda sendiri sangat menyenangkan, tetapi menjadi lebih rumit ketika Anda memutuskan untuk membuatnya dalam skala ukuran langsung. Jadi saya memilih Google Sketch-up 2017 sebagai alat perancangan yang kuat dan mudah dan memungkinkan Anda mengekspor cetak biru model Anda ke mesin potong laser atau bahkan printer 3D.
Saya menghabiskan tiga minggu pertama merancang dan membuat lambung robot.
Untuk bahannya, saya diberi selembar papan kayu 3mm.
Pengkabelan akhir robot yang tidak terlalu bagus, yang karena keterbatasan waktu, terdiri dari memasukkan seluruh roadkill ke dalam lambung.
Saya pikir nama yang tepat untuk robot saya adalah M1Rover. Karena saya berencana untuk mengembangkan versinya dalam nama urutan seperti M2, M3, dll. Ini dirancang dalam Kit, yang harus Anda lakukan adalah memasangnya dengan beberapa sekrup.
Langkah 2:Komponen dan Fitur
Waktu pengerjaan hingga tiga jam!
Dirancang untuk Arduino Uno, Mega dan Nano.
Tegangan Operasi 5V-9V DC
Sasis kayu setebal 3mm
Roda berdiameter 68mm L298N Dual H-Bridge Motor/Stepper
Baterai 9v untuk menyalakan motor DC
Baterai 9v untuk menyalakan Arduino
Lampu LED 7 untuk belakang dan depan
Modul Bluetooth HC-06
Pelindung sensor Arduino v5.0
Transduser ultrasonik HC SR04
Langkah 3:Pengendali Motor
H-Bridge biasanya digunakan dalam mengendalikan kecepatan dan arah motor, tetapi dapat digunakan untuk proyek lain seperti mengemudikan kecerahan proyek pencahayaan tertentu seperti rangkaian LED bertenaga tinggi.
Pastikan Anda memiliki semua alasan Anda terikat bersama-sama; Arduino, Sumber daya, dan pengontrol Motor.
Pin PWM tidak diperlukan jika Anda tidak ingin mengontrol fitur PWM.
Langkah 4:Merakit Sasis
Sasis telah dipotong menggunakan pemotong laser di beberapa bagian, dan seperti yang saya sebutkan sebelumnya model dibuat dalam kit yang mudah dipasang, jadi Anda hanya perlu mengikuti petunjuk di bawah.
Mempertimbangkan desain juga penting dan ketika datang ke mobil RC itu harus berisi lampu depan dan belakang. Di bagian depan M1-Robot saya pasang 4 buah LED putih yang masing-masing dihubungkan dengan resistor 220 ohm, dan di bagian belakang saya pasang 2 buah LED merah masing-masing dengan resistor 220 ohm. LED ini dapat dikontrol oleh aplikasi yang sama
Langkah 5:Sirkuit
Sirkuit sedikit rumit karena ketika Anda memutuskan untuk mengontrol banyak bagian elektronik pada saat yang sama, Anda harus memperhatikan urutan setiap bagian.
Perisai Sensor Arduino 5.0
Arduino Uno R3 L298N Dual H-Bridge Motor/Stepper
Baterai 9v untuk menyalakan motor DC
Lampu LED 7 (2 belakang) dan (4 depan)
Modul Bluetooth HC-06
Transduser ultrasonik HC SR04
Motor servo 9g
Buzzer Aktif
4 motor DC dengan roda
Langkah 6:Perangkat Lunak
Saya mempertimbangkan banyak hal saat menulis kode M1-Robot, dan dengan perangkat lunak GUI Anda dapat memperoleh informasi lebih lanjut tentang status robot.
Kode Dasar untuk starter kit , dapat dikontrol melalui Handphone atau Laptop melalui Bluetooth :
int frontled =3; //led int kembali =4;int outPin1 =5; //motor1 int outPin2 =6; //motor1 int outPin4 =11; //motor2 int outPin3 =12; //motor2 char bt =0; //BT int buzzerPin =2;const int pingPin =9; // Pin Pemicu Sensor Ultrasonikconst int echoPin =8; // Gema Pin Sensor Ultrasonik/*----------------------------------------- -------------------------------------*/ void setup() { Serial.begin(9600); pinMode(outPin1,OUTPUT); pinMode(outPin2,OUTPUT); pinMode(outPin3,OUTPUT); pinMode(outPin4,OUTPUT); pinMode (depan, OUTPUT); pinMode (buzzerPin, OUTPUT);} void loop() { if (Serial.available()> 0) { bt =Serial.read(); digitalWrite(frontled, 1); durasi panjang, inci, cm; pinMode(pingPin, OUTPUT); digitalWrite(pingPin, RENDAH); delayMicroseconds(2); digitalWrite(pingPin, TINGGI); delayMicroseconds(10); digitalWrite(pingPin, RENDAH); pinMode(echoPin, INPUT); durasi =pulseIn(echoPin, TINGGI); inci =mikrodetikToInches(durasi); cm =mikrodetikToCentimeters(durasi); if (cm> 10 ){ // jarak untuk berhenti /*_________________________________________________________________________*/ if(bt =='F') //maju { digitalWrite(outPin1,HIGH); digitalWrite(outPin2,LOW); digitalWrite(outPin3,HIGH); digitalWrite(outPin4,LOW); } else if (bt =='B') //bergerak mundur { digitalWrite(outPin1,LOW); digitalWrite(outPin2,HIGH); digitalWrite(outPin3,LOW); digitalWrite(outPin4,HIGH); } else if (bt =='S') //stop!! { digitalWrite(outPin1,LOW); digitalWrite(outPin2,LOW); digitalWrite(outPin3,LOW); digitalWrite(outPin4,LOW); } else if (bt =='R') //kanan { digitalWrite(outPin1,HIGH); digitalWrite(outPin2,LOW); digitalWrite(outPin3,LOW); digitalWrite(outPin4,LOW); } else if (bt =='L') //left { digitalWrite(outPin1,LOW); digitalWrite(outPin2,LOW); digitalWrite(outPin3,HIGH); digitalWrite(outPin4,LOW); } else if (bt =='I') //forward right { digitalWrite(outPin1,HIGH); digitalWrite(outPin2,LOW); digitalWrite(outPin3,LOW); digitalWrite(outPin4,HIGH); } else if (bt =='G') //maju ke kiri { digitalWrite(outPin1,LOW); digitalWrite(outPin2,HIGH); digitalWrite(outPin3,HIGH); digitalWrite(outPin4,LOW); } } else{ digitalWrite (Pin buzzer, TINGGI); penundaan (500); digitalWrite (buzzerPin, RENDAH); penundaan (500); } }}panjang mikrodetikToInches(mikrodetik panjang) { kembalikan mikrodetik / 74 / 2;}mikrodetik panjangToCentimeters(mikrodetik panjang) { kembalikan mikrodetik / 29 / 2;}
Kode Arduino kompatibel dengan semua jenis pengontrol karena semua komponen elektronik diprogram untuk bekerja melalui perintah port serial, sehingga Anda dapat menggunakan pengirim/penerima modul Bluetooth, PC, ponsel.
Aplikasi windows C# (tangkapan layar terlampir)
Langkah 7:Paket
PEMULAI
Paket M1-Robot ini mencakup komponen dasar sementara pelat atas memungkinkan pemasangan yang mudah dari setiap penginderaan, manipulasi, atau perangkat keras komputer. Cukup pasang sensor ke onboard dan catu daya Rover untuk memulai.
PELAJARI
Paket Explorer memungkinkan fungsionalitas dasar otonom dalam dan luar ruangan, dan alih-alih kamera IP, saya menggunakan kamera ponsel yang terhubung ke internet melalui alamat IP.
PEETAAN
Paket Explorer memungkinkan pelacakan GPS dasar, tentu saja, saat kendaraan berada di luar ruangan, sangat keren saat Anda melihat jalur koordinat secara real-time.
MANIPULASI
Berinteraksi dengan dunia dengan lengan robot dan gripper 50mm dua jari.
Kiat Penting:
Tidak semua servo memiliki putaran 180 derajat penuh. Banyak yang tidak. Anda dapat menulis tes untuk menentukan di mana batas mekanisnya. Gunakan servo.writeMicroseconds daripada servo.write Saya lebih suka ini karena memungkinkan Anda menggunakan 1000-2000 sebagai rentang dasar. Dan banyak servos akan mendukung di luar kisaran itu, dari 600 hingga 2400.
Jadi, coba nilai yang berbeda dan lihat di mana Anda mendapatkan buzz yang memberi tahu Anda bahwa Anda telah mencapai batas. Maka hanya tinggal dalam batas-batas itu ketika Anda menulis. Anda dapat mengatur batas tersebut saat menggunakan servo.attach(pin, min, max)
Sunting:Saya harus mengatakan bahwa jika Anda mau, Anda dapat mengatur mikrodetik min dan maks di lampiran, lalu cukup gunakan servo.write. Ini menggunakan map() untuk mengubah nilai 0-180 derajat yang Anda berikan menjadi nilai mikrodetik.
Ini akan segera terjadi jika Anda menyimpannya di stop stop - ia menarik arus tinggi dan memanas dengan cepat - terlalu mudah untuk "memasak" servo dengan memuatnya dengan cara ini untuk waktu yang lama.
Temukan rentang gerakan yang sebenarnya dan pastikan kode tidak mencoba mendorongnya melewati titik akhir, fungsi constrain() Arduino berguna untuk ini:
servo.write (constrain (sudut, 10, 160)); // membatasi sudut dalam rentang 10..160
Proses manufaktur
Komponen dan persediaan Kabel jumper (generik) × 1 Arduino Yun × 1 Resistor 221 ohm × 1 Sakelar Tombol Tekan SparkFun 12mm × 1 Breadboard (generik) × 1 Aplikasi dan layanan online Editor Web Arduino Blynk Tent
Komponen dan persediaan Arduino Nano R3 × 1 Driver motor H-Bridge Ganda Instrumen Texas L293D × 1 Motor servo mikro SG90 × 1 motor stepper dari DVD ROM × 1 JLCPCB PCB yang Disesuaikan × 1 Alat dan mesin yang diperlukan Pemotong laser (g
Komponen dan persediaan Arduino Nano R3 × 2 Modul nRF24 (Generik) × 2 SparkFun Dual H-Bridge driver motor L298 × 1 Kabel jumper (generik) × 1 Motor DC, 12 V × 2 Alat dan mesin yang diperlukan Besi solder (generik) Pistol lem p
Komponen dan persediaan Sensor Ultrasonik - HC-SR04 (Generik) × 2 Arduino Nano R3 × 1 Resistor foto × 1 Maxim Integrated 8x8 LED Matrix MAX7219 × 2 Ukuran Setengah Papan Tempat Memotong Roti Tanpa Solder × 1 Kabel jumper (generik) × 1