Driver PWM/Servo 16 Saluran 12-bit PCA9685 - Antarmuka I2C
×
1
Tampilan LED 8x8 MAX7219
×
4
Driver Motor H-Bridge Dual SparkFun L298
×
1
Baterai 18650
×
2
Holder Baterai 18650
×
2
Proto Shield Arduino
×
1
Dioda 1N4001
×
1
Resistor 10k ohm
×
3
Alat dan Mesin yang Diperlukan
Printer 3D
Printer 3D (generik)
Aplikasi dan Layanan Online
Autodesk Fusion 360
Arduino IDE
Android SDK
Tentang Proyek Ini
Pemenang hadiah pertama dalam Kontes Roda Instructables, hadiah kedua dalam Kontes Arduino Instructables, dan juara kedua dalam Tantangan Desain untuk Anak Instructables. Terima kasih kepada semua yang sudah memberi suara untuk kami!!!
Robot semakin banyak digunakan. Dari aplikasi industri hingga eksplorasi bawah laut dan angkasa. Tapi yang menjadi favorit saya adalah robot yang digunakan untuk kesenangan dan hiburan! Dalam proyek ini, sebuah robot DIY dirancang untuk digunakan sebagai hiburan di rumah sakit anak, menghadirkan kesenangan bagi para anak. Proyek ini berfokus pada berbagi pengetahuan dan mempromosikan inovasi teknologi untuk membantu NGO yang melakukan kerja sosial di rumah sakit anak.
Tutorial ini menunjukkan cara merancang robot humanoid yang dioperasikan dari jarak jauh, dikontrol melalui jaringan Wi-Fi, menggunakan Arduino Uno yang terhubung ke modul Wi-Fi ESP8266. Robot menggunakan beberapa servo motor untuk gerakan kepala dan lengan, beberapa motor DC untuk bergerak jarak pendek, dan wajah yang terbuat dari matriks LED. Robot dapat dikontrol dari browser internet biasa menggunakan antarmuka HTML yang dirancang. Sebuah ponsel Android digunakan untuk siaran video dan audio dari robot ke antarmuka kontrol operator.
Tutorial ini menunjukkan bagaimana struktur robot dicetak 3D dan dirakit. Rangkaian elektronik dijelaskan, dan kode Arduino diuraikan, sehingga siapa pun dapat mereplikasi robot ini.
Beberapa teknik yang digunakan untuk robot ini telah diterbitkan dalam tutorial sebelumnya. Silakan lihat tutorial berikut:
Terima kasih khusus kepada anggota tim lain yang terlibat dalam proyek di atas, yang bertanggung jawab atas versi pertama kode yang disajikan dalam tutorial ini:
Proyek ini didanai oleh anggota tim dan donasi kecil dari beberapa perusahaan. Jika Anda menyukainya, ada beberapa cara untuk membantu kami:
Berikan Suara: Proyek ini bersaing dalam kontes tutorial Roda, Desain untuk Anak, dan Arduino. Silakan berikan suara untuk kami! :D
Donasi: Anda dapat mengirimkan tips jika ingin mendukung pembangunan robot dan perbaikan masa depannya. Tips akan digunakan untuk membeli perlengkapan (elektronik, cetak 3D, filamen, dll.) dan untuk membantu promosi intervensi kami di rumah sakit anak. Nama Anda akan ditambahkan ke kredit proyek! Anda dapat mengirimkan tips dari desain kami di platform Thingiverse: https://www.thingiverse.com/thing:2765192
Suka: Tunjukkan kepada kami seberapa besar apresiasi Anda terhadap proyek kami. Berikan kami "suka" di platform tempat kami mendokumentasikan proyek kami (Facebook, Hackster, Hackaday, Maker Share, Thingiverse...).
Bagikan: Bagikan proyek ini di situs media sosial favorit Anda, sehingga kami dapat mencapai lebih banyak orang dan menginspirasi lebih banyak pembuat di seluruh dunia.
Tahukah Anda Anda dapat membeli Creality CR10mini hanya dengan $349.99? Gunakan kode kupon cr10mini3d di Gearbest dan dapatkan: https://bit.ly/2FZ5OXw
Langkah 1: Sedikit Sejarah...
Proyek 'Robô da Alegria' ('Joy Robot') lahir pada 2016, di wilayah Baixada Santista (Brazil), dengan tujuan mengembangkan teknologi dan menarik komunitas ke gerakan pembuat. Terinspirasi oleh proyek sukarela yang dilakukan oleh NGO di rumah sakit anak, proyek ini mencoba mengembangkan robot, menggunakan perangkat keras terbuka dan perangkat lunak terbuka, yang mampu membawa sedikit kesenangan ke lingkungan rumah sakit anak dan berkontribusi pada kerja organisasi lain.
Benih proyek ditanam pada akhir 2015. Setelah pembicaraan tentang penciptaan dan pengembangan teknologi yang dipromosikan oleh Asosiasi Startup Baixadas Santista (ASEBS). Sebuah proyek diidealikan, tanpa hadiah uang, tetapi yang menyajikan topik di mana orang akan terlibat secara altruistik, dengan tujuan membantu orang lain.
Robot mengalami berbagai transformasi dari konsepsi awalnya hingga kondisi saat ini. Dari hanya satu kepala, dengan mata mekanis dan alis, ke bentuk humanoid saat ini, beberapa iterasi dilakukan, menguji berbagai bahan konstruktif dan perangkat elektronik. Dari prototipe akrilik dan MDF potong laser, kami beralih ke badan cetak 3D. Dari antarmuka sederhana dengan dua servo motor yang dikontrol melalui Bluetooth, ke badan yang terdiri dari 6 servo motor dan 2 motor DC yang dikendalikan oleh antarmuka web menggunakan jaringan Wi-Fi.
Struktur robot sepenuhnya diproduksi dengan cetak 3D menggunakan Fusion 360. Untuk memungkinkan produksi replika robot di makerspace atau fab lab, di mana waktu maksimal penggunaan printer sangat penting, desain robot dibagi menjadi bagian-bagian yang masing-masing memerlukan waktu cetak kurang dari tiga jam. Kumpulan bagian dilekatkan atau dibaut untuk pemasangan badan.
Wajah, yang terdiri dari array LED, memberikan kemampuan pada robot untuk mengekspresikan emosi. Lengan dan leher yang dihasilkan oleh servo memberikan otomat kecil mobilitas yang diperlukan untuk berinteraksi dengan pengguna. Di pusat kontrol robot, Arduino Uno berinteraksi dengan semua periferal, termasuk komunikasi dengan modul ESP8266, yang memberikan kemampuan pada pengguna untuk memerintahkan ekspresi dan gerakan melalui setiap perangkat yang terhubung ke jaringan Wi-Fi yang sama.
Robot juga memiliki ponsel yang dipasang di dadanya, yang digunakan untuk transmisi audio dan video antara operator robot dan anak-anak. Layar perangkat masih dapat digunakan untuk interaksi dengan game dan aplikasi lainnya yang dirancang untuk berinteraksi dengan badan robot.
Langkah 2: Alat dan Bahan
Berikut alat dan bahan yang digunakan untuk proyek ini:
Alat:
Printer 3D - Seluruh badan robot dicetak 3D. Beberapa jam pencetakan 3D diperlukan untuk membangun seluruh struktur;
Filamen PLA - Filamen PLA putih dan hitam digunakan untuk mencetak badan;
Obeng - Sebagian besar bagian dihubungkan menggunakan baut;
Lem super - Beberapa bagian dilekatkan menggunakan lem super;
Pecut dan potong
Pematik solder dan kawat
Elektronik:
Arduino Uno (link / link) - Digunakan sebagai kontroler utama robot. Mengirim sinyal ke motor dan berkomunikasi dengan modul WiFi;
ESP8266-01 (link / link) - Digunakan sebagai 'modem WiFi'. Menerima sinyal dari antarmuka kontrol untuk dilakukan oleh Arduino Uno;
Servo motor SG90 (x6) (link / link) - Empat servo digunakan untuk lengan, dan dua untuk gerakan kepala;
Motor DC dengan reduksi dan roda karet (x2) (link / link) - Memungkinkan robot untuk menempuh jarak pendek;
L298N dual channel H-bridge (x1) (link / link) - Mengubah keluaran digital Arduino menjadi tegangan daya untuk motor;
Kontroler servo 16 saluran (link / link) - Dengan papan ini seseorang dapat mengontrol beberapa servo motor hanya menggunakan dua keluaran Arduino;
Tampilan LED 8x8 MAX7219 (x4) (link / link) - Digunakan sebagai wajah robot;
Kabel Micro USB - Digunakan untuk mengunggah kode;
Kawat jumper betina-betina (beberapa);
Kawat jumper jantan-betina (beberapa);
Ponsel - Ponsel Motorola 4.3" Moto E digunakan. Ponsel lain dengan ukuran serupa mungkin juga dapat bekerja;
Baterai 18650 (x2) (link) - Digunakan untuk memberi daya pada Arduino dan periferal lainnya;
Holder baterai 18650 (x1) (link / link) - Mereka memegang baterai tetap di tempat;
Dioda 1N4001 (x2)
Resistor 10 kohm (x3)
Saklar on/off 20mm (x1)
Protoshield (link) - Membantu memasang rangkaian.
Mekanik:
Roda bola (x2)
Baut M2x6.0mm (+-70)
Baut M2x10mm (+-20)
Dadu M2x1.5mm (x10)
Baut M3x40mm (x4)
Dadu M3x1.5mm (x4)
Tautan di atas adalah saran di mana Anda dapat menemukan item yang digunakan dalam tutorial ini dan mendukung pengembangan proyek ini. Silakan cari di tempat lain dan beli di toko lokal atau online favorit Anda.
Tahukah Anda Anda dapat membeli Creality3D CR10mini hanya dengan $349.99? Gunakan kode kupon cr10mini3d di Gearbest dan dapatkan: https://bit.ly/2FZ5OXw
Langkah 3: Percetakan 3D
Struktur robot sepenuhnya diproduksi dengan cetak 3D menggunakan Autodesk Fusion 360. Untuk memungkinkan produksi replika robot di makerspace atau fab lab, di waktu maksimal penggunaan printer sangat penting, desain robot dibagi menjadi bagian-bagian yang masing-masing memerlukan waktu cetak kurang dari tiga jam. Kumpulan bagian dilekatkan atau dibaut untuk pemasangan badan.
Model terdiri dari 36 bagian yang berbeda. Sebagian besar dicetak tanpa dukungan, dengan 10% infill.
Bagian atas kepala (kanan/kiri)
Bagian bawah kepala (kanan/kiri)
Tutup sisi kepala (kanan/kiri)
Plate belakang wajah
Plate depan wajah
Poros leher 1
Poros leher 2
Poros leher 3
Pusat leher
Lengan (kanan/kiri)
Bahu (kanan/kiri)
Cangkok bahu (kanan/kiri)
Tutup bahu (kanan/kiri)
Poros lengan (kanan/kiri)
Dada (kanan/kiri)
Dada (kanan/kiri/depan)
Roda (kanan/kiri)
Dasar
Tempat ponsel
Belakang (kanan/kiri)
Kunci (kanan/kiri)
Locker (kanan/kiri)
Prosedur untuk memasang robot dijelaskan dalam langkah berikut.
Anda dapat mengunduh semua file STL di situs web berikut:
Ini adalah prototipe eksperimental. Beberapa bagian membutuhkan beberapa perbaikan (untuk pembaruan proyek nanti). Ada beberapa masalah yang diketahui:
Interferensi antara kabel beberapa servo dan bahu;
Gesekan antara kepala dan dada;
Gesekan antara roda dan struktur;
Lubang untuk beberapa baut terlalu sempit, dan perlu diperlebar dengan bor atau pisau hobi.
Jika Anda tidak memiliki printer 3D, berikut beberapa hal yang dapat Anda lakukan:
Minta teman untuk mencetaknya untuk Anda;
Cari hacker/maker space di dekat Anda. Model dibagi menjadi beberapa bagian, sehingga setiap bagian secara individual membutuhkan waktu kurang dari empat jam untuk dicetak. Beberapa hacker/maker space hanya akan mengenakan biaya bahan yang digunakan;
Beli printer 3D Anda sendiri. Anda dapat menemukan Anet A8 hanya dengan $165.99. Dapatkan di Gearbest: https://bit.ly/2kqVOdO
Tertarik membeli Kit DIY? Jika cukup banyak orang yang tertarik, saya mungkin akan menawarkan kit DIY di Tindie.com. Jika Anda ingin satu, kirimkan pesan kepada saya.
Langkah 4: Rangkaian
Robot dikontrol menggunakan Arduino Uno di intinya. Arduino berinteraksi dengan modul ESP8266-01, yang digunakan untuk mengontrol robot dari jarak jauh melalui jaringan Wi-Fi.
Sebuah kontroler servo 16 saluran terhubung ke Arduino menggunakan komunikasi I2C dan mengontrol 6 servo motor (dua untuk leher dan dua untuk setiap lengan). Array lima matriks LED 8x8 diberi daya dan dikontrol oleh Arduino. Empat keluaran digital Arduino digunakan untuk kontrol dua motor DC, menggunakan h-bridge.
Rangkaian diberi daya menggunakan dua power bank USB: satu untuk motor dan satu untuk Arduino. Saya mencoba memberi daya pada seluruh robot menggunakan satu power pack saja. Tetapi ESP8266 sering kehilangan koneksi karena lonjakan saat motor DC menyala/mati.
Dada robot memiliki ponsel. Digunakan untuk siaran video dan audio ke/dari antarmuka kontrol, yang dihosting pada komputer biasa. Ponsel juga dapat mengirim perintah ke ESP8266, sehingga mengontrol badan robot itu sendiri.
Struktur dibagi menjadi dua bagian (plate belakang wajah dan plate depan wajah) dicetak 3D menggunakan PLA hitam. Saya memerlukan waktu sekitar 2,5 jam untuk mencetak 3D bagian-bagian tersebut, dengan 10% infill dan tanpa dukungan.
Karena keterbatasan ruang, konektor matriks LED harus dilepaskan dari solder dan posisinya diubah seperti yang dijelaskan di bawah ini:
Lepaskan matriks LED;
Lepaskan solder konektor input dan output;
Pasang kembali solder di sisi lain papan rangkaian, dengan pin mengarah ke pusat papan.
Anda dapat melihat hasil akhir dalam gambar.
Empat matriks LED kemudian dilekatkan ke plate belakang, menggunakan 16 baut M2x6mm. Pin dihubungkan sesuai skematik.
Matriks pertama dihubungkan menggunakan kawat jumper jantan-betina 5 kawat. Ujung jantan kemudian dihubungkan ke pin Arduino. Ujung betina dihubungkan ke pin input matriks. Keluaran setiap matriks dihubungkan ke input matriks berikutnya menggunakan kawat jumper betina-betina.
Setelah koneksi matriks, plate depan dipasang menggunakan empat baut M2. Lilitkan kawat jumper di sekeliling panel depan dan belakang, sehingga tidak ada kawat longgar.
Modul wajah kemudian dipasang di dalam kepala robot, seperti yang akan dijelaskan pada langkah berikutnya.
Langkah 6: Memasang Kepala
Kepala robot dibagi menjadi delapan bagian cetak 3D, semuanya dicetak dalam PLA putih dengan resolusi 0,2 mm, 10% infill dan tanpa dukungan:
Bagian atas kepala (kanan dan kiri)
Bagian bawah kepala (kanan dan kiri)
Tutup kepala (kanan dan kiri)
Poros leher 1
Poros leher 2
Saya memerlukan waktu hampir 18 jam untuk mencetak struktur dengan diameter 130 mm.
Bagian atas dan bawah kepala dibagi menjadi dua bagian. Mereka ditempel bersama menggunakan lem super. Aplikasikan lem dan biarkan selama beberapa jam.
Tutup sisi kemudian dipasang menggunakan baut yang dipasang di sisi atas dan bawah kepala. Dengan cara ini, kepala dapat dibongkar untuk perbaikan dengan menghapus baut yang dipasang pada bagian atas kepala. Sebelum menutup kepala, pasang wajah robot (dijelaskan pada langkah sebelumnya), dan dada (dijelaskan pada langkah berikutnya).
Servo motor #5 dipasang pada Poros leher 1. Saya memosisikan servo di tengah poros, lalu memasang tanda dan menggunakan baut untuk mengunci posisinya. Saya menggunakan dua baut M2x6mm untuk memasang Poros leher 2 pada servo motor tersebut. Servo motor #6 dipasang pada Poros leher 2 dengan cara yang sama.
Poros leher 2 kemudian dihubungkan ke Pusat leher, seperti yang ditunjukkan pada langkah berikutnya.
Modul wajah dipasang di dalam kepala.
Langkah 7: Merakit Dada dan Bahu
Dada dan bahu membutuhkan waktu sekitar 12 jam untuk dicetak.
Bagian ini terdiri dari lima bagian yang berbeda:
Dada (kanan/kiri)
Bahu (kanan/kiri)
Pusat leher
Poros leher 3
Bagian dada ditempel menggunakan lem super. Bahu dipasang di sisi menggunakan baut M2x10mm, dan servo motor (Servo motor #2 dan #4) dipasang di setiap sisi. Mereka melewati lubang persegi panjang pada setiap bahu (kawat sebenarnya cukup sulit dilewatkan), dan dipasang menggunakan baut M2x10mm dan dadu.
Pusat leher memiliki lubang persegi panjang, di bagian Poros leher 3 dimasukkan. Empat baut M2x6mm digunakan untuk menghubungkan kedua bagian tersebut. Setelah itu, pusat leher dipasang pada bahu. Ini menggunakan baut yang sama yang digunakan untuk memasang bahu pada dada. Empat dadu M2x1,5mm digunakan untuk mengunci posisinya.
Servo motor #6 dihubungkan ke Poros leher 3 menggunakan dua baut. Lalu saya memasang Poros leher 3 di dalam lubang persegi panjang pusat leher, dan menggunakan empat baut M2x6mm untuk mengunci posisinya.
Langkah 8: Merakit Lengan
Saya memerlukan waktu sekitar 5 jam untuk mencetak setiap lengan.
Setiap lengan terdiri dari empat bagian:
Cangkok bahu
Tutup bahu
Poros lengan
Lengan
Poros lengan terpusat dan dipasang pada lengan itu sendiri menggunakan tiga baut M2x6mm. Tanda servo dipasang di ujung lain poros.
Servo motor (#1 dan #3) dipasang di dalam Cangkok bahu menggunakan beberapa baut, dan tanda servo dipasang. Ada lubang pada cangkok untuk pemasangan tanda lain, yang dipasang pada servo (#2 dan #4) yang sudah dipasang pada bahu, seperti yang ditunjukkan pada langkah sebelumnya.
Ada lubang lain pada Cangkok (dan pada Bahu) untuk melewati kabel servo. Setelah itu, Tutup dipasang untuk menutup bahu robot, dengan dua baut M2x6mm.
Langkah 9: Memasang Dada
Dada adalah bagian yang menghubungkan dada atas ke dasar (roda dan dasar) robot. Terbuat dari hanya dua bagian (bagian kanan dan kiri. Saya mencetaknya dalam 4 jam.
Bahu robot pas di bagian atas dada. Ada lubang untuk baut yang membantu perataan dan pemasangan bagian-bagian tersebut. Meskipun disarankan untuk melem kedua bagian ini.
Bagian bawah bagian ini memiliki enam lubang, yang digunakan untuk koneksi ke roda, seperti yang akan ditunjukkan nanti.
Pada titik ini saya memberi label pada servo motor dengan beberapa stiker, untuk memudahkan koneksi rangkaian.
Langkah 10: Merakit Roda
Roda robot menggunakan tiga bagian cetak 3D:
Roda (kiri/kanan)
Depan
Saya memerlukan waktu sekitar 10 jam untuk mencetak bagian-bagian ini.
Saya mengikuti langkah berikut untuk merakit roda:
Pertama saya harus menyolder beberapa kawat ke konektor motor DC. Kawat-kawat ini kemudian digunakan untuk memberi daya pada motor menggunakan rangkaian H-bridge;
Motor kemudian dipasang pada struktur menggunakan dua baut M3x40 dan dadu untuk setiap motor. Sebenarnya baut yang lebih pendek mungkin digunakan (tapi saya tidak menemukan online);
Setelah itu saya melem panel depan, yang menghubungkan bagian-bagian lain struktur;
Bagian ini memiliki beberapa lubang di bagian atasnya. Digunakan untuk pemasangannya ke dada, yang ditunjukkan sebelumnya. Enam baut M2x6mm digunakan untuk koneksi kedua bagian.
Langkah 11: Tempat Ponsel
Tempat ponsel adalah satu bagian cetak 3D, dan memerlukan waktu sekitar 1 jam untuk dicetak.
Robot memiliki ponsel di perutnya. Dirancang untuk Motorola Moto E. Memiliki layar 4.3". Ponsel lain dengan ukuran serupa mungkin juga muat.
Bagian tempat ponsel digunakan untuk memegang ponsel di posisi yang diinginkan. Pertama ponsel diposisikan, lalu ditekan terhadap badan robot menggunakan tempat ponsel dan empat baut M2x6mm.
Penting untuk menghubungkan kabel USB ke ponsel sebelum mengencangkan baut. Jika tidak, akan sulit untuk menghubungkannya nanti. Sayangnya ruangnya sangat terbatas, jadi saya harus memotong bagian konektor USB... :/
Langkah 12: Memasang Dasar
Dasar hanya memiliki satu bagian cetak 3D. Saya memerlukan waktu sekitar 4 jam untuk mencetak bagian itu.
Memiliki beberapa lubang untuk pemasangan komponen lain, seperti roda bola, dan papan rangkaian misalnya. Prosedur berikut digunakan untuk merakit dasar:
Pasang kontroler servo 16 saluran menggunakan empat baut M2x6mm;
Pasang rangkaian H-bridge L298N menggunakan empat baut M2x6mm;
Pasang Arduino Uno menggunakan empat baut M2x6mm;
Pasang protoshield di atas robot;
Pasang kabel rangkaian (seperti yang dijelaskan beberapa langkah kemudian);
Pasang roda bola menggunakan dua baut untuk masing-masing. Kabel diatur sehingga mereka terjepit antara dasar dan baut yang digunakan dalam pemasangan roda;
Dasar dipasang pada bagian roda menggunakan beberapa baut.
Langkah 13: Belakang dan Baterai
Tutup belakang robot dirancang sehingga seseorang dapat dengan mudah membukanya untuk mengakses rangkaian, mengisi ulang baterai, atau menyalakan/mematikan ponsel.
Terbuat dari enam bagian cetak 3D:
Belakang (kiri/kanan)
Kunci (x2)
Locker (kiri/kanan)
Saya memerlukan waktu sekitar 5 jam 30 menit untuk mencetak bagian-bagian tersebut. Bagian belakang kanan dan kiri ditempel menggunakan lem super. Tunggu hingga lem kering sepenuhnya, atau tutup akan mudah pecah.
Baterai terdiri dari dua baterai 18650 dan holder baterai. Saya harus menyolder beberapa kawat (di antara kutub negatif baterai #1 dan kutub positif baterai #2). Kutub negatif baterai dihubungkan ke GND Arduino (menggunakan beberapa kawat dan jumper). Saklar on/off dipasang di antara kutub positif dan input Vin Arduino.
Saklar on/off dipasang pada bagian cetak 3D belakang menggunakan baut M2x6mm dan dadu M2x1.5mm. Holder baterai dipasang pada belakang menggunakan empat baut M2x6mm.
Bagian silinder locker harus digosok dengan kertas gosok untuk pas yang lebih baik. Mereka melewati lubang pada tutup. Kunci dihubungkan dan ditempel di sisi lain.
Tutup pas di bagian belakang robot. Kunci dapat diputar untuk mengunci tutup, melindungi bagian dalam robot.
Langkah 14: Menghubungkan Rangkaian
Rangkaian dipasang sesuai skematik.
Arduino:
Pin Arduino D2 => L298N pin IN4
Pin Arduino D3 => L298N pin IN3
Pin Arduino D6 => L298N pin IN2
Pin Arduino D7 => L298N pin IN1
Pin Arduino D9 => MAX7219 pin DIN
Pin Arduino D10 => MAX7219 pin CS
Pin Arduino D11 => MAX7219 pin CLK
Pin Arduino D4 => ESP8266 RXD
Pin Arduino D5 => ESP8266 TXD
Pin Arduino A4 => SDA
Pin Arduino A5 => SCL
Pin Arduino Vin => Baterai V+ (sebelum dioda)
Pin Arduino gnd => Baterai V-
ESP8266-01
Pin ESP8266 RXD => Pin Arduino D4
Pin ESP8266 TXD => Pin Arduino D5
Pin ESP8266 gnd => Pin Arduino gnd
Pin ESP8266 Vcc => Pin Arduino 3V3
Pin ESP8266 CH_PD => Pin Arduino 3V3
L298N h-bridge
Pin L298N IN1 => Pin Arduino D7
Pin L298N IN2 => Pin Arduino D6
Pin L298N IN3 => Pin Arduino D3
Pin L298N IN4 => Pin Arduino D2
Pin L298N +12V => Baterai V+ (setelah dioda)
Pin L298N gnd => Arduino gnd
L298N OUT1 => Motor 1
L298N OUT2 => Motor 2
MAX7219 (matriks pertama)
Pin MAX7219 DIN => Pin Arduino D9
Pin MAX7219 CS => Pin Arduino D10
Pin MAX7219 CLK => Pin Arduino D11
Pin MAX7219 Vcc => Pin Arduino 5V
Pin MAX7219 gnd => Pin Arduino gnd
MAX7219 (matriks lainnya)
Pin MAX7219 DIN => Pin MAX7219 DOUT(matriks sebelumnya)
Beberapa orang mengatakan servo SG90 dapat diberi daya antara 3,0 dan 6,0V, yang lain antara 4,0 dan 7,2V. Untuk menghindari masalah, saya memutuskan untuk memasang dua dioda secara berurutan setelah baterai. Dengan cara ini, tegangan untuk servo adalah 2*3,7 - 2*0,7 = 6,0V. Hal yang sama diterapkan pada motor DC.
Perhatikan ini bukan cara paling efisien, tetapi berhasil untuk saya.
Instal Arduino IDE terbaru. Tidak diperlukan pustaka untuk komunikasi dengan modul ESP-8266 atau kontrol motor DC.
Saya perlu menambahkan pustaka berikut:
LedControl.h: pustaka yang digunakan untuk mengontrol matriks LED;
Adafruit_PWMServoDriver.h: pustaka yang digunakan untuk mengontrol servo motor.
Kode Arduino dibagi menjadi 9 bagian:
RobodaAlegria.ino: ini adalah sketsa utama, dan memanggil bagian-bagian lainnya. Pustaka diimpor di sini. Juga mendefinisikan dan menginisialisasi variabel global;
_05_Def_Olhos.ino: inilah tempat matriks untuk setiap mata didefinisikan. Setiap mata direpresentasikan oleh matriks 8x8, dan 9 opsi didefinisikan: netral, mata lebar, tertutup atas, tertutup bawah, marah, bosan, sedih, jatuh cinta, dan mata mati. Ada matriks yang berbeda untuk mata kanan dan kiri;
_06_Def_Boca.ino: inilah tempat matriks untuk mulut didefinisikan. Mulut direpresentasikan oleh matriks 16x8, dan 9 opsi didefinisikan: senang, sedih, sangat senang, sangat sedih, netral, lidah keluar, terbuka, sangat terbuka, dan mulut jijik;
_10_Bracos.ino: gerakan yang telah ditentukan untuk lengan dan leher didefinisikan dalam file ini. Sembilan gerakan, mov1() hingga mov9(), dikonfigurasi;
_12_Rosto.ino: dalam file ini ada beberapa fungsi untuk memperbarui wajah robot, menggabungkan matriks yang didefinisikan di _05_Def_Olhos.ino dan _06_Def_Boca.ino;
_13_Motores_DC: mendefinisikan fungsi untuk motor DC;
_20_Comunicacao.ino: fungsi untuk mengirim data ke ESP8266 didefinisikan dalam file ini;
_80_Setup.ino: berjalan saat Arduino menyala. Mengatur wajah awal dan posisi motor robot. Juga mengirim perintah untuk koneksi ke jaringan Wi-Fi tertentu;
_90_Loop: loop utama. Mencari perintah masuk dari ESP8266 dan memanggil fungsi spesifik untuk mengontrol keluaran.
Unduh kode Arduino. Ganti XXXXX dengan SSID router wifi Anda dan YYYYY dengan kata sandi router pada '_80_Setup.ino'. Harap periksa baudrate ESP8266 Anda dan atur dengan benar dalam kode ('_80_Setup.ino'). Hubungkan papan Arduino ke port USB komputer Anda dan unggah kode.
RoboAlegria.rar
Langkah 16: Aplikasi Android
Sebuah ponsel Android digunakan untuk siaran video dan audio dari robot ke antarmuka kontrol. Anda dapat menemukan aplikasi yang saya gunakan di Google Play store (https://play.google.com/store/apps/details?id=com.pas.webcam).
Layar ponsel juga dapat ditransmisikan ke antarmuka kontrol, sehingga operator dapat melihat apa yang ada di layar. Anda juga dapat menemukan aplikasi yang saya gunakan untuk mencerminkan layar di Google Play store (https://play.google.com/store/apps/details?id=com.ajungg.screenmirror).
Sebuah game video Android juga dirancang untuk berinteraksi dengan robot. Masih belum sangat stabil, jadi tidak tersedia untuk diunduh.
Langkah 17: Antarmuka Kontrol
Sebuah antarmuka html dirancang untuk kontrol robot. Unduh interface.rar dan ekstrak semua file ke folder tertentu. Buka di Firefox. Antarmuka dibagi menjadi dua blok. Di kiri ada tampilan untuk kamera dan cermin layar. Di kanan ada tombol kontrol untuk perintah.
Formulir kotak teks digunakan dalam antarmuka tersebut untuk memasukkan alamat IP modul ESP8266 ('Endereço IP Arduino:'), server video/audio dari aplikasi Android IP Webcam ('IP Webcam (IP):') dan alamat IP Screen Mirror ('Screen Mirror (IP):').
Di bawah tab 'Ações predefinidas' pengguna dapat memilih antara 9 gerakan tubuh yang telah ditentukan dan 13 wajah yang berbeda. Di tab 'Ações personalizadas' pengguna dapat mengatur sudut tertentu untuk masing-masing 6 servo, dan secara individu memilih antara 9 kemungkinan mata dan 8 variasi mulut. Fungsi javascript berjalan setiap kali salah satu tombol tersebut diklik, dan pesan dikirim ke alamat IP ESP8266.
Tombol panah keyboard digunakan untuk menggerakkan robot ke depan atau belakang, dan untuk memutar ke kiri atau kanan.
Saat antarmuka dimulai, peringatan ditampilkan, bertanya apakah pengguna ingin berbagi mikrofon. Jika opsi ini dipilih, intensitas suara mikrofon akan digunakan untuk mengirim perintah yang telah dikonfigurasi ke robot. Perintah ini akan memicu animasi, mensimulasikan gerakan bicara di wajah robot. Tombol pengaturan di sudut kanan atas dapat digunakan untuk mengatur sensitivitas mikrofon.
Menu pengaturan ini juga dapat digunakan untuk mengatur kecepatan gerakan lengan dan leher.
interface.rar
Langkah 18: Bersenang-senang
Nyalakan dan bersenang-senang!
Jika Anda menyukainya, silakan bagikan tutorial ini dengan teman-teman Anda! Dan jangan lupa untuk memberi suara pada Kontes Instructables! :D