Daftar Isi:
- Perlengkapan
- Langkah 1: Mobil Robot Seluler
- Langkah 2: Mobil Robot Seluler - Diagram Sirkuit
- Langkah 3: Mobil Robot Seluler - Perakitan (Motor)
- Langkah 4: Mobil Robot Seluler - Perakitan (Sensor Jarak)
- Langkah 5: Mobil Robot Seluler - Perakitan (ESP32 CAM)
- Langkah 6: Mobil Robot Seluler - Perakitan (Chip Dispenser)
- Langkah 7: Mobil Robot Seluler - Perakitan (Cookie!)
- Langkah 8: Mobil Robot Seluler - Kode Arduino
- Langkah 9: Mobil Robot Seluler - Kode ESP32
- Langkah 10: Dispenser Chip
- Langkah 11: Joystick
- Langkah 12: Joystick - Diagram Sirkuit
- Langkah 13: Joystick - Emulator Keyboard
- Langkah 14: Komunikasi Jaringan
- Langkah 15: Menyatukan Semuanya
Video: Robot Kehadiran Virtual: 15 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Robot bergerak ini berinteraksi dengan lingkungan fisiknya, dengan merepresentasikan "kehadiran virtual" orang yang mengendalikannya dari jarak jauh. Itu dapat diakses oleh siapa saja, di mana saja di dunia, untuk membagikan suguhan dan bermain dengan Anda.
Pekerjaan di sini dikembangkan oleh dua orang (satu di Jerman dan satu di AS) sebagai upaya untuk bergerak melampaui cara tradisional komunikasi berbasis internet dengan menciptakan antarmuka fisik untuk interaksi jarak jauh. Karena COVID-19 terus memengaruhi dunia, dan setiap orang bertanggung jawab untuk membatasi paparan fisik kita kepada orang-orang, kami mencoba mengembalikan koneksi nyata yang merupakan bagian dari interaksi fisik.
Ini didasarkan pada ESP32-Camera-Robot-FPV-Teacher-Entry Instructable dan dimodifikasi untuk memasukkan sensor jarak, memperlakukan dispenser dan kemampuan "kontrol dari mana saja di dunia", asalkan Anda memiliki koneksi internet yang agak stabil.
Perlengkapan
Proyek ini memiliki 4 bagian utama - Mobil Robot Bergerak, Dispenser Chip, Joystick, dan Pengaturan Komunikasi Jaringan.
Mobil Robot Seluler
- Papan tempat memotong roti
- 2 Wheel Drive Motor dan Chassis Robot Kit (termasuk roda, motor DC, papan pemasangan dan sekrup)
- Arduino Mega 2560 (jika Anda membangun tanpa sensor jarak atau Dispenser Chip, Uno akan memiliki cukup pin)
- (3) Baterai 9V (memiliki beberapa baterai lagi karena Anda akan mengurasnya saat debugging)
- Modul Catu Daya LM2596 DC/DC Buck 3A Regulator (atau serupa)
- Modul Wifi ESP32-CAM
- FT232RL FTDI USB to TTL Serial Converter (untuk memprogram ESP32-CAM)
- Sensor Jarak Ultrasonik HC-SR04
- Pengemudi Motor L298N
- (3) LED (warna apa saja)
- (3) Resistor 220 Ohm
Dispenser Chip
- (2) Servo SG90
- Karton / Karton
Joystik
- Arduino Uno
- Modul Joystick
- Papan tempat memotong roti mini, (1) LED, (1) Resistor 220 Ohm (opsional)
Lainnya
Banyak Kabel Jumper Papan Tempat memotong rotiKarton Ekstra / KartonTapeGuntingPenggaris / Pita Ukur Obeng Philips Kecil Obeng Pipih Kecil
Sabar =)
Langkah 1: Mobil Robot Seluler
Sasis Mobil Robot berfungsi sebagai platform seluler, dengan Arduino MEGA sebagai pengontrol mikro utama yang menggerakkan motor, membaca nilai sensor, dan menggerakkan servo. Sebagian besar tindakan dilakukan dengan meminta Arduino MEGA menerima perintah melalui komunikasi serial, yang dikirim dari ESP32-CAM. Sementara ESP32 menyediakan streaming langsung kamera untuk mengontrol robot, fungsi lainnya adalah mengelola koneksi nirkabel antara robot dan server, sehingga memungkinkan pengguna untuk mengontrolnya dari mana saja di dunia. ESP32 menerima perintah dari halaman web melalui penekanan tombol dan mengirimkannya ke Arduino MEGA sebagai nilai karakter. Berdasarkan nilai yang diterima, mobil akan maju, mundur, dll. Karena kendali jarak jauh melalui internet bergantung pada banyak faktor eksternal termasuk latensi tinggi, kualitas aliran yang buruk, dan bahkan pemutusan, sensor jarak dimasukkan untuk menjaga robot agar tidak menabrak ke objek.*Karena kebutuhan daya chip ESP32 yang tinggi dan berfluktuasi, Regulator Catu Daya direkomendasikan untuk digunakan dengan daya baterai (lihat diagram pengkabelan).
Langkah 2: Mobil Robot Seluler - Diagram Sirkuit
Kami akan memandu Anda melalui perakitan ini langkah demi langkah.
Langkah 3: Mobil Robot Seluler - Perakitan (Motor)
Setelah Anda merakit sasis 2WD, kita mulai dengan menghubungkan motor dan baterai ke Arduino MEGA melalui driver L298N.
Langkah 4: Mobil Robot Seluler - Perakitan (Sensor Jarak)
Karena ada beberapa komponen yang harus disambungkan, mari tambahkan papan tempat memotong roti, sehingga kita dapat menghubungkan daya dan arde bersama dengan lebih mudah. Setelah kami mengatur ulang kabel, sambungkan sensor jarak dan pasang di depan robot.
Langkah 5: Mobil Robot Seluler - Perakitan (ESP32 CAM)
Selanjutnya, sambungkan modul ESP32-CAM, dan pasang di sebelah sensor jarak di dekat bagian depan robot. Ingat komponen yang haus daya ini membutuhkan baterai sendiri dan pengatur DC.
Langkah 6: Mobil Robot Seluler - Perakitan (Chip Dispenser)
Sekarang, mari tambahkan chip-dispenser (lebih lanjut tentang ini di bagian "Chip Dispenser"). Pasang kedua servo sesuai dengan diagram Fritzing, dan pasang dispenser di bagian ekor robot.
Langkah 7: Mobil Robot Seluler - Perakitan (Cookie!)
Akhirnya, kami menambahkan suguhan ke dispenser!
Langkah 8: Mobil Robot Seluler - Kode Arduino
RobotCar_Code adalah kode yang perlu Anda muat di Arduino Mega.
Begini cara kerjanya: Arduino mendengarkan byte yang dikirim dari ESP32 melalui komunikasi serial pada pita 115200. Berdasarkan byte yang diterima, mobil akan bergerak maju, mundur, kiri, kanan dll dengan mengirimkan tegangan TINGGI atau RENDAH ke motor untuk mengontrol arah, serta variabel PWM antara 0-255 untuk mengontrol kecepatan. Untuk menghindari tabrakan kode ini juga membaca nilai yang masuk dari sensor jarak dan jika jaraknya kurang dari ambang batas yang ditentukan, robot tidak akan bergerak maju. Terakhir, jika Arduino menerima perintah untuk mengeluarkan camilan, maka akan mengaktifkan servos di Dispenser Chip.
Langkah 9: Mobil Robot Seluler - Kode ESP32
ESP32 memungkinkan komunikasi antara server dan Arduino melalui Wifi. Ini diprogram secara terpisah dari Arduino, dan memiliki kode sendiri:
- ESP32_Code.ino adalah kode untuk ESP32 untuk mengirim informasi ke Arduino
- app_httpd.cpp adalah kode yang diperlukan untuk server web ESP32 default dan mengatur fungsi untuk mendengarkan penekanan tombol. Baik untuk debugging dan pengujian pada wifi lokal. Itu tidak digunakan untuk komunikasi di luar jaringan lokal.
- camera_index.h adalah kode html untuk aplikasi web default
- camera_pins.h mendefinisikan pin tergantung pada model ESP32
Kode ESP32 menggunakan library Wifi serta Add-on ESP32, yang dapat diinstal di Arduino IDE dengan mengikuti langkah-langkah berikut:
- Di Arduino IDE, buka File > Preferences
- Kemudian pada tab Settings di bawah Additional Boards Manager URL masukkan berikut "https://dl.espressif.com/dl/package_esp32_index.json"
- Sekarang buka Boards Manager dan pergi ke Tools > Board > Boards Manager dan cari ESP32 dengan mengetik "ESP32"
- Anda akan melihat "esp32 oleh Sistem Espressif". Klik Instal.
- Sekarang add-on ESP32 harus diinstal. Untuk memeriksa kembali ke Arduino IDE dan pergi ke Tools > Board dan pilih "ESP32 Wrover Module".
- Sekali lagi, buka Alat > Kecepatan Unggah dan atur ke "115200".
- Terakhir, buka Tools > Partition Scheme dan atur ke "Huge APP (3MB No OTA/1MB SPIFFS)
- Setelah Anda menyelesaikan ini, saya sarankan mengikuti tutorial ini oleh RandomNerdTutorials yang menjelaskan secara rinci cara menyelesaikan pengaturan ESP32 dan mengunggah kode dengan FTDI ProgrammerProgramming the ESP32
Langkah 10: Dispenser Chip
Chip Dispenser adalah tambahan murah untuk robot seluler yang memungkinkannya memengaruhi lingkungan lokal dan berinteraksi dengan orang / hewan dengan meninggalkan makanan lezat. Ini terdiri dari kotak eksterior karton dengan 2 servo yang dipasang di dalamnya, serta kartrid karton interior yang menampung barang-barang (seperti permen atau makanan anjing) untuk dikeluarkan. Satu servo bertindak sebagai gerbang sementara yang lain mendorong item keluar.
*Semua dimensi dalam milimeter
Langkah 11: Joystick
Meskipun menyenangkan untuk mengontrol robot dengan keyboard, bahkan lebih menyenangkan dan intuitif untuk menggunakan joystick, di mana robot bereaksi langsung berdasarkan arah yang Anda dorong. Karena robot ini digerakkan melalui penekanan tombol yang direkam di halaman web, kami membutuhkan joystick untuk meniru keyboard. Dengan cara ini pengguna tanpa joystick masih dapat mengontrol robot langsung dari keyboard, tetapi orang lain dapat menggunakan joystick.
Untuk ini kami hanya memiliki Arduino Uno yang tidak memiliki kemampuan untuk menggunakan perpustakaan sehingga kami memprogramnya secara langsung menggunakan protokol USB yang dikenal sebagai Device Firmware Update (DFU) yang memungkinkan arduino untuk di-flash dengan firmware keyboard USB HID generik.. Dengan kata lain, ketika arduino dicolokkan ke usb itu tidak lagi dikenali sebagai arduino tetapi sebagai keyboard!
Langkah 12: Joystick - Diagram Sirkuit
Inilah cara kami memasang joystick.
Langkah 13: Joystick - Emulator Keyboard
Agar Arduino Uno Anda dapat meniru keyboard, Anda perlu memprogram secara langsung chip Atmega16u2 di Arduino melalui Manual Device Firmware Update (DFU). Langkah-langkah berikut akan menjelaskan proses untuk mesin Windows, dan semoga membantu Anda menghindari beberapa masalah yang kami alami.
Langkah pertama adalah menulis manual driver usb Atmel ke Arduino sehingga dikenali sebagai USB dan bukan Arduino yang memungkinkannya untuk di-flash dengan programmer FLIP.
- Unduh Programmer FLIP Atmel dari sini
- Colokkan Arduino Uno Anda
- Buka Device Manager dan temukan Arduino. Itu akan berada di bawah COM atau Perangkat Tidak Dikenal. Pasang masuk dan keluar untuk memastikan ini adalah perangkat yang benar.
- Setelah Anda menemukan Arduino Uno di Device Manager, klik kanan dan pilih properties > Driver > Update Driver > Browse My Computer For Driver Software > Biarkan saya memilih dari daftar driver yang tersedia di komputer saya > Have Disk > Browse to the file "atmel_usb_dfu.inf" dan pilih. Ini harus berada di folder tempat Programmer Atmel FLIP Anda diinstal. Di komputer saya ada di sini: C:\Program Files (x86)\Atmel\Flip 3.4.7\usb\atmel_usb_dfu.inf
- Instal drivernya
- Sekarang kembali ke Pengelola Perangkat Anda akan melihat "Perangkat USB Atmel" dengan Arduino Uno yang sekarang diberi label sebagai ATmega16u2!
Sekarang komputer mengenali Arduino Uno sebagai Perangkat USB, kita dapat menggunakan Programmer FLIP untuk mem-flash-nya dengan 3 file terpisah dan mengubahnya menjadi keyboard.
Jika Anda mencabut Arduino Uno Anda setelah bagian pertama, pasang kembali.
- Buka FLIP
- Setel ulang Arduino Uno dengan menghubungkan daya ke ground secara singkat.
- Klik Pilihan Perangkat (ikon seperti microchip) dan pilih ATmega16U2
- Klik Pilih Media Komunikasi (ikon seperti kabel usb) dan pilih USB. Jika Anda menyelesaikan bagian pertama dengan benar, tombol abu-abu lainnya akan dapat digunakan.
- Buka File > Load Hex File > dan upload file Arduino-usbserial-uno.hex
- Di jendela FLIP Anda akan melihat tiga bagian: Alur Operasi, Informasi Penyangga FLASH, dan ATmega16U2. Di Alur Operasi, centang kotak untuk Hapus, Program, dan Verifikasi, lalu klik Jalankan.
- Setelah proses ini selesai, klik Mulai Aplikasi di bagian ATmega16U2.
- Pasang siklus arduino dengan mencabutnya dari komputer dan mencolokkannya kembali.
- Setel ulang Arduino Uno dengan menghubungkan daya ke ground secara singkat.
- Buka Arduino IDE dan unggah file JoyStickControl_Code.ino ke board.
- Pasang siklus arduino dengan mencabutnya dari komputer dan mencolokkannya kembali.
- Setel ulang arduino dengan menghubungkan daya ke ground secara singkat.
- Kembali ke FLIP, pastikan Pilihan Perangkat mengatakan Atmega16U2
- Klik Pilih Media Komunikasi dan pilih USB.
- Buka File > Load Hex File > dan unggah file Arduino-keyboard-0.3.hex
- Di jendela FLIP Anda akan melihat tiga bagian: Alur Operasi, Informasi Penyangga FLASH, dan ATmega16U2. Di Alur Operasi, centang kotak untuk Hapus, Program, dan Verifikasi, lalu klik Jalankan.
- Setelah proses ini selesai, klik Mulai Aplikasi di bagian ATmega16U2.
- Pasang siklus arduino dengan mencabutnya dari komputer dan mencolokkannya kembali.
- Sekarang ketika Anda pergi ke Pengelola Perangkat harus ada Perangkat Keyboard HID baru di bawah Keyboard.
- Buka notepad atau editor teks apa pun dan mulai gerakkan joystick. Anda akan melihat nomor sedang diketik!
Jika Anda ingin mengubah kode di sketsa Arduino, misalnya menulis perintah baru ke joystick, Anda harus mem-flash-nya dengan semua 3 file setiap kali.
Beberapa tautan berguna: Arduino DFUAtLibUsbDfu.dll tidak ditemukan
Emulator keyboard ini didasarkan pada tutorial ini oleh Michael pada 24 Juni 2012.
Langkah 14: Komunikasi Jaringan
Untuk menerima aliran video dan mengirim perintah ke robot dari mana saja di dunia, kita memerlukan cara untuk mendapatkan data ke dan dari ESP32-CAM. Ini dilakukan dalam dua bagian, pengendali koneksi di jaringan lokal Anda, dan server publik. Unduh tiga file untuk mencapai ini:
- Handlers.py: menyampaikan informasi dari ESP32-CAM dan server publik (diuji pada Python 3.8)
- Flask_app.py: mendefinisikan bagaimana aplikasi Anda merespons permintaan yang masuk.
- Robot_stream.html: merender video di browser Anda dan mendengarkan perintah melalui keyboard / joystick (diuji di Chrome)
Connection HandlerAnda dapat mengkodekannya secara langsung di app_httpd.cpp, tetapi untuk debugging yang lebih mudah, kami menggunakan skrip Python yang berjalan di PC yang terhubung ke jaringan yang sama. Buka handlers.py dan perbarui alamat IP dan nama pengguna menjadi milik Anda, dan Anda siap melakukannya. Streaming akan dimulai saat Anda menjalankan file ini.
Server Publik Untuk mengakses semua yang ada di internet, Anda dapat memulai server dengan PaaS pilihan Anda. Di pythonanywhere (PA) pengaturan ini membutuhkan waktu kurang dari 5 menit:
- Mendaftar untuk akun dan masuk
- Buka tab "Web" dan tekan "Tambahkan Aplikasi Web baru", pilih Flask dan Python 3.6
- Salin flask_app.py ke direktori /mysite
- Salin robot_stream.html ke direktori /mysite/templates
- Klik "Muat Ulang"
Dan … Anda sudah siap!
Penafian: Alur kerja jaringan ini cepat dan sederhana tetapi sangat jauh dari ideal. RTMP atau soket akan lebih sesuai untuk streaming, tetapi tidak didukung di PA dan memerlukan beberapa pengalaman dengan pengaturan jaringan dan server. Anda juga disarankan untuk menambahkan beberapa mekanisme keamanan untuk mengontrol akses.
Langkah 15: Menyatukan Semuanya
Sekarang, hidupkan robot Anda, jalankan handlers.py di komputer (terhubung ke jaringan yang sama dengan robot), dan Anda dapat mengontrol robot dari browser berdasarkan url yang Anda tetapkan dari mana saja yang Anda inginkan. (mis.
Direkomendasikan:
Sensor Kehadiran: 12 Langkah
Sensor Kehadiran: Perangkat yang dapat dikenakan biasanya merupakan perangkat berkemampuan BLE. Adalah umum bagi mereka untuk secara berkala mengiklankan beberapa data di sepanjang alamat MAC-nya. Kami menggunakan ESP untuk memindai data ini dan memicu suatu peristiwa melalui internet ketika menemukan alamat MAC tertentu. khusus ini
Simulator Kehadiran Rumah dan Perangkat Kontrol Keamanan: 6 Langkah (dengan Gambar)
Simulator Kehadiran Rumah dan Perangkat Kontrol Keamanan: Proyek ini memungkinkan kami untuk mensimulasikan kehadiran dan mendeteksi gerakan di rumah kami. Kami dapat mengonfigurasi jaringan perangkat yang dipasang di berbagai ruangan di rumah kami, semuanya dikendalikan oleh perangkat utama. Proyek ini menggabungkan ini fitur pada satu d
Server Kehadiran Nodmcu RFID Dengan Pemrosesan: 4 Langkah
Server Kehadiran Nodmcu RFID Dengan Pemrosesan: Cara keren untuk menandai kehadiran
SISTEM KEHADIRAN BERBASIS RFID MENGGUNAKAN ARDUINO DAN GSM: 5 Langkah
SISTEM KEHADIRAN BERBASIS RFID MENGGUNAKAN ARDUINO DAN GSM: Proyek ini menggunakan teknologi RFID untuk mencatat setiap siswa yang masuk ke dalam kelas dan juga untuk menghitung waktu berada di dalam kelas. Dalam sistem yang diusulkan ini, setiap siswa diberikan sebuah tag RFID. Proses kehadirannya bisa
Sistem Kehadiran Kelas Pemindai Sidik Jari (GT-521F32): 9 Langkah
Sistem Kehadiran Kelas Pemindai Sidik Jari (GT-521F32): Proyek ini adalah sistem pencatatan kehadiran sederhana yang menggunakan GT-521F32, pemindai sidik jari optik berbiaya rendah dari Sparkfun untuk memindai dan merekam siapa, dan ketika seseorang masuk