Isi kandungan:
- Bekalan
- Langkah 1: Kereta Robot Bergerak
- Langkah 2: Robot Mudah Alih - Diagram Litar
- Langkah 3: Kereta Robot Bergerak - Pemasangan (Motor)
- Langkah 4: Kereta Robot Bergerak - Pemasangan (Sensor Jarak)
- Langkah 5: Kereta Robot Bergerak - Perhimpunan (ESP32 CAM)
- Langkah 6: Kereta Robot Bergerak - Pemasangan (Chip Dispenser)
- Langkah 7: Kereta Robot Bergerak - Perhimpunan (Kuki!)
- Langkah 8: Kereta Robot Bergerak - Kod Arduino
- Langkah 9: Kereta Robot Bergerak - Kod ESP32
- Langkah 10: Chip Dispenser
- Langkah 11: Joystick
- Langkah 12: Joystick - Litar Diagram
- Langkah 13: Joystick - Emulator Papan Kekunci
- Langkah 14: Komunikasi Rangkaian
- Langkah 15: Menggabungkan Semuanya
Video: Robot Kehadiran Maya: 15 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Robot mudah alih ini berinteraksi dengan persekitaran fizikalnya, dengan mewakili "kehadiran maya" orang yang mengendalikannya dari jauh. Ia dapat diakses oleh siapa saja, di mana saja di dunia, untuk membuang makanan dan bermain dengan anda.
Karya di sini dikembangkan oleh dua orang (satu di Jerman dan satu di AS) sebagai usaha untuk melampaui cara tradisional komunikasi berasaskan internet dengan membuat antara muka fizikal untuk interaksi jarak jauh. Oleh kerana COVID-19 terus mempengaruhi dunia, dan setiap orang bertanggungjawab untuk menghadkan pendedahan fizikal kita kepada orang, kita berusaha untuk mengembalikan hubungan nyata yang merupakan bahagian dari interaksi fizikal.
Ia didasarkan pada ESP32-Camera-Robot-FPV-Teacher-Entry yang diarahkan dan diubah untuk memasukkan sensor jarak, dispenser rawatan dan kemampuan "kawalan dari mana saja di dunia", dengan syarat anda mempunyai sambungan internet yang agak stabil.
Bekalan
Projek ini mempunyai 4 bahagian utama - Mobil Robot Bergerak, Chip Dispenser, Joystick, dan Rangkaian Komunikasi Rangkaian.
Kereta Robot Bergerak
- Papan roti
- 2 Wheel Drive Motor dan Chassis Robot Kit (termasuk roda, motor DC, papan pemasangan dan skru)
- Arduino Mega 2560 (jika anda membina tanpa sensor jarak atau Chip Dispenser, Uno akan mempunyai pin yang mencukupi)
- (3) Baterai 9V (ada beberapa lagi kerana anda akan menguruskannya debug)
- Modul Bekalan Kuasa 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
- Pemandu Motor L298N
- (3) LED (warna apa pun)
- (3) 220 Perintang Ohm
Chip Dispenser
- (2) SG90 Servos
- Kadbod / kadbod
Batang Joystick
- Arduino Uno
- Modul Joystick
- Papan Roti Mini, (1) LED, (1) 220 Ohm Perintang (pilihan)
Yang lain
Banyak Breadboard Jumper WiresExtra Cardboard / PaperboardTapeScissorsRape / Measuring TapeSmall Philips ScrewdriverSmall Flathead Screwdriver
Sabar =)
Langkah 1: Kereta Robot Bergerak
Casis Robot Car berfungsi sebagai platform mudah alih, dengan Arduino MEGA sebagai pengawal mikro utama yang menggerakkan motor, membaca nilai sensor dan menggerakkan servo. Sebilangan besar tindakan dilakukan dengan meminta Arduino MEGA menerima arahan melalui komunikasi bersiri, yang dihantar dari ESP32-CAM. Walaupun ESP32 menyediakan live streaming kamera untuk mengawal robot, fungsi lain adalah untuk menguruskan sambungan tanpa wayar antara robot dan pelayan, oleh itu membolehkan pengguna mengendalikannya dari mana saja di dunia. ESP32 menerima arahan dari laman web melalui penekanan kekunci dan mengirimkannya ke Arduino MEGA sebagai nilai char. Berdasarkan nilai yang diterima, kereta akan bergerak maju, mundur dan lain-lain. Kerana kawalan jauh melalui internet bergantung pada banyak faktor luaran termasuk kependaman tinggi, kualiti aliran yang buruk, dan bahkan pemutusan, sensor jarak dimasukkan untuk mengelakkan robot daripada terhempas ke dalam objek. * Oleh kerana keperluan kuasa tinggi dan berfluktuasi cip ESP32, Power Supply Regulator disyorkan untuk digunakan dengan kuasa bateri (lihat gambarajah pendawaian).
Langkah 2: Robot Mudah Alih - Diagram Litar
Kami akan memandu anda untuk mengumpulkan langkah demi langkah ini.
Langkah 3: Kereta Robot Bergerak - Pemasangan (Motor)
Selepas anda memasang casis 2WD, kami mulakan dengan menyambungkan motor dan bateri ke Arduino MEGA melalui pemacu L298N.
Langkah 4: Kereta Robot Bergerak - Pemasangan (Sensor Jarak)
Oleh kerana terdapat beberapa komponen untuk disambungkan, mari kita tambahkan papan roti, supaya kita dapat menghubungkan kuasa dan tanah bersama dengan lebih mudah. Selepas kami menyusun semula wayar, sambungkan sensor jarak dan pasangkannya di bahagian depan robot.
Langkah 5: Kereta Robot Bergerak - Perhimpunan (ESP32 CAM)
Seterusnya, sambungkan modul ESP32-CAM, dan betulkan di sebelah sensor jarak berhampiran bahagian depan robot. Ingat, komponen yang cukup haus ini memerlukan bateri sendiri dan pengatur DC.
Langkah 6: Kereta Robot Bergerak - Pemasangan (Chip Dispenser)
Sekarang, mari kita tambahkan chip-dispenser (lebih lanjut mengenai ini di bahagian "Chip Dispenser"). Kabelkan dua servo mengikut rajah Fritzing, dan pasangkan dispenser di ekor robot.
Langkah 7: Kereta Robot Bergerak - Perhimpunan (Kuki!)
Akhirnya, kami menambah makanan ringan ke dispenser!
Langkah 8: Kereta Robot Bergerak - Kod Arduino
RobotCar_Code adalah kod yang perlu anda muatkan di Arduino Mega.
Inilah cara kerjanya: Arduino mendengar bait yang dihantar dari ESP32 melalui komunikasi bersiri pada jalur 115200. Berdasarkan bait yang diterima, kereta akan bergerak maju, mundur, kiri, kanan dan lain-lain dengan menghantar voltan TINGGI atau RENDAH ke motor untuk mengawal arah, serta pemboleh ubah PWM antara 0-255 untuk mengawal kelajuan. Untuk mengelakkan perlanggaran, kod ini juga membaca nilai yang masuk dari sensor jarak dan jika jaraknya kurang dari ambang yang ditentukan, robot tidak akan bergerak ke depan. Terakhir, jika Arduino menerima perintah untuk mengeluarkan makanan, ia akan mengaktifkan servo di Chip Dispenser.
Langkah 9: Kereta Robot Bergerak - Kod ESP32
ESP32 membolehkan komunikasi antara pelayan dan Arduino melalui Wifi. Ia diprogramkan secara berasingan dari Arduino, dan mempunyai kodnya sendiri:
- ESP32_Code.ino adalah kod untuk ESP32 menghantar maklumat ke Arduino
- app_httpd.cpp adalah kod yang diperlukan untuk pelayan web ESP32 lalai dan tetapkan fungsi untuk mendengar tekanan kekunci. Bagus untuk penyahpepijatan dan pengujian pada wifi tempatan. Ia tidak digunakan untuk komunikasi di luar rangkaian tempatan.
- camera_index.h adalah kod html untuk aplikasi web lalai
- camera_pins.h menentukan pin bergantung pada model ESP32
Kod ESP32 menggunakan perpustakaan Wifi dan juga Pengaya ESP32, yang boleh dipasang di Arduino IDE dengan mengikuti langkah-langkah berikut:
- Di Arduino IDE pergi ke Fail> Keutamaan
- Kemudian di tab Tetapan di bawah URL Pengurus Papan Tambahan masukkan "https://dl.espressif.com/dl/package_esp32_index.json" berikut
- Sekarang buka Pengurus Papan dan pergi ke Alat> Papan> Pengurus Papan dan cari ESP32 dengan menaip "ESP32"
- Anda mesti melihat "esp32 by Espressif Systems". Klik Pasang.
- Sekarang add-on ESP32 harus dipasang. Untuk memeriksa kembali ke Arduino IDE dan pergi ke Tools> Board dan pilih "ESP32 Wrover Module".
- Sekali lagi pergi ke Tools> Upload Speed dan tetapkan ke "115200".
- Terakhir, pergi ke Tools> Partition Scheme dan tetapkan ke "Huge APP (3MB No OTA / 1MB SPIFFS)
- Sebaik sahaja anda menyelesaikannya, saya cadangkan mengikuti tutorial ini oleh RandomNerdTutorials yang menerangkan secara terperinci cara menyelesaikan penyediaan ESP32 dan memuat naik kod dengan FTDI Programmer Memprogram ESP32
Langkah 10: Chip Dispenser
Chip Dispenser adalah tambahan yang murah untuk robot bergerak yang memungkinkannya mempengaruhi persekitaran setempat dan berinteraksi dengan orang / haiwan dengan meninggalkan makanan yang enak. Ini terdiri daripada kotak luaran karton dengan 2 servo dipasang di dalamnya, serta kartrij karton dalaman yang menyimpan barang-barang (seperti gula-gula atau makanan anjing) untuk dikeluarkan. Satu servo berfungsi sebagai gerbang sementara yang lain menolak item keluar.
* Semua dimensi adalah dalam milimeter
Langkah 11: Joystick
Walaupun dapat mengawal robot dengan papan kekunci, lebih menyenangkan dan intuitif untuk menggunakan kayu bedik, di mana robot bertindak balas secara langsung berdasarkan arah yang anda dorong. Oleh kerana robot ini digerakkan melalui penekanan kekunci yang dirakam di laman web, kami memerlukan kayu bedik kami untuk meniru papan kekunci. Dengan cara ini pengguna tanpa kayu bedik masih dapat mengawal robot secara langsung dari papan kekunci, tetapi yang lain dapat menggunakan kayu bedik.
Untuk ini, kami hanya memiliki Arduino Uno yang tidak memiliki kemampuan untuk menggunakan perpustakaan, jadi kami memprogramkannya secara langsung menggunakan protokol USB yang dikenali sebagai Device Firmware Update (DFU) yang membolehkan arduino dikedip dengan firmware keyboard USB HID generik. Dengan kata lain, apabila arduino dipasang ke usb, ia tidak lagi dikenali sebagai arduino tetapi sebagai papan kekunci!
Langkah 12: Joystick - Litar Diagram
Inilah cara kami memasang kayu bedik.
Langkah 13: Joystick - Emulator Papan Kekunci
Agar Arduino Uno anda meniru papan kekunci, anda perlu memprogramkan cip Atmega16u2 secara langsung di Arduino melalui Kemas kini Firmware Peranti Manual (DFU). Langkah-langkah berikut akan menerangkan proses untuk mesin Windows, dan diharapkan dapat membantu anda mengelakkan beberapa masalah yang kami hadapi.
Langkah pertama adalah dengan menulis manual pemacu usb Atmel ke Arduino sehingga dikenali sebagai USB dan bukan Arduino yang memungkinkannya di-flash dengan programmer FLIP.
- Muat turun Atmel's FLIP Programmer dari sini
- Pasangkan Arduino Uno anda
- Pergi ke Pengurus Peranti dan cari Arduino. Ini akan berada di bawah COM atau Peranti Tidak Diketahui. Pasang dan keluar untuk memastikan ini adalah peranti yang betul.
- Setelah anda menemui Arduino Uno di Device Manager, klik kanan dan pilih hartanah> Driver> Update Driver> Browse My Computer For Driver Software> Izinkan saya memilih dari senarai driver yang ada di komputer saya> Have Disk> Browse to the fail "atmel_usb_dfu.inf" dan pilih. Ini harus berada di folder di mana Atmel FLIP Programmer anda dipasang. Di komputer saya ada di sini: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
- Pasang pemacu
- Sekarang kembali ke Pengurus Peranti, anda akan melihat "Atmel USB Devices" dengan Arduino Uno kini dilabel sebagai ATmega16u2!
Setelah komputer mengenali Arduino Uno sebagai Peranti USB, kita dapat menggunakan Programmer FLIP untuk mem-flashnya dengan 3 fail berasingan dan mengubahnya menjadi papan kekunci.
Sekiranya anda mencabut Arduino Uno dari bahagian pertama, pasangkannya semula.
- Buka FLIP
- Tetapkan semula Arduino Uno dengan menghubungkan kuasa ke tanah secara ringkas.
- Klik Pemilihan Peranti (ikon seperti microchip) dan pilih ATmega16U2
- Klik Pilih Medium Komunikasi (ikon seperti tali usb) dan pilih USB. Sekiranya anda melengkapkan bahagian pertama dengan betul butang berwarna kelabu yang lain boleh digunakan.
- Pergi ke Fail> Muatkan Fail Hex> dan muat naik fail Arduino-usbserial-uno.hex
- Di tetingkap FLIP, anda akan melihat tiga bahagian: Aliran Operasi, Maklumat Buffer FLASH, dan ATmega16U2. Dalam Aliran Operasi centang kotak untuk Padam, Program, dan Sahkan, kemudian klik Jalankan.
- Setelah proses ini selesai, klik Mula Aplikasi di bahagian ATmega16U2.
- Pasangkan kitaran arduino dengan mencabutnya dari komputer dan memasangnya kembali.
- Tetapkan semula Arduino Uno dengan menyambungkan kuasa ke tanah secara ringkas.
- Buka Arduino IDE dan muat naik fail JoyStickControl_Code.ino ke papan.
- Pasangkan kitaran arduino dengan mencabutnya dari komputer dan memasangnya kembali.
- Tetapkan semula arduino dengan menyambungkan kuasa ke tanah secara ringkas.
- Kembali ke FLIP, pastikan Pemilihan Peranti mengatakan Atmega16U2
- Klik Pilih Medium Komunikasi dan pilih USB.
- Pergi ke Fail> Muatkan Fail Hex> dan muat naik fail Arduino-keyboard-0.3.hex
- Di tetingkap FLIP, anda akan melihat tiga bahagian: Aliran Operasi, Maklumat Buffer FLASH, dan ATmega16U2. Dalam Aliran Operasi centang kotak untuk Padam, Program, dan Sahkan, kemudian klik Jalankan.
- Setelah proses ini selesai, klik Mula Aplikasi di bahagian ATmega16U2.
- Pasangkan kitaran arduino dengan mencabutnya dari komputer dan memasangnya kembali.
- Sekarang apabila anda pergi ke Pengurus Peranti mesti ada Peranti Papan Kekunci HID baru di bawah Papan Kekunci.
- Buka notepad atau editor teks dan mulailah menggerakkan kayu bedik. Anda mesti melihat nombor ditaip!
Sekiranya anda ingin menukar kod dalam lakaran Arduino, misalnya menulis perintah baru ke kayu bedik, anda perlu memuatkannya dengan ketiga-tiga fail setiap kali.
Beberapa pautan berguna: Arduino DFUAtLibUsbDfu.dll tidak dijumpai
Emulator papan kekunci ini berdasarkan tutorial ini oleh Michael pada 24 Jun 2012.
Langkah 14: Komunikasi Rangkaian
Untuk menerima aliran video dan mengirim arahan ke robot dari mana saja di dunia, kami memerlukan cara untuk mendapatkan data ke dan dari ESP32-CAM. Ini dilakukan dalam dua bahagian, pengendali sambungan di rangkaian tempatan anda, dan pelayan awam. Muat turun tiga fail untuk mencapai ini:
- Handlers.py: menyampaikan maklumat dari ESP32-CAM dan pelayan awam (diuji pada Python 3.8)
- Flask_app.py: menentukan bagaimana aplikasi anda bertindak balas terhadap permintaan masuk.
- Robot_stream.html: membuat video di penyemak imbas anda dan mendengar arahan melalui papan kekunci / kayu bedik (diuji pada Chrome)
Anda boleh membuat kod ini secara langsung di app_httpd.cpp, tetapi untuk penyahpepijatan yang lebih mudah, kami menggunakan skrip Python yang berjalan pada PC yang disambungkan ke rangkaian yang sama. Buka handlers.py dan kemas kini alamat IP dan nama pengguna anda sendiri, dan anda sudah bersedia. Aliran akan bermula semasa anda menjalankan fail ini.
Pelayan Awam Untuk mengakses semua yang ada di internet, anda boleh memulakan pelayan dengan PaaS pilihan anda. Pada pengaturan pythonanywhere (PA), masa ini mengambil masa kurang dari 5 minit:
- Daftar untuk akaun dan log masuk
- Pergi ke tab "Web" dan tekan "Tambah Aplikasi Web baru", pilih Flask dan Python 3.6
- Salin flask_app.py ke dalam direktori / mysite
- Salin robot_stream.html ke dalam direktori / mysite / templates
- Klik "Muat semula"
Dan … anda sudah bersedia!
Penafian: Alur kerja rangkaian ini cepat dan mudah tetapi jauh dari ideal. RTMP atau soket lebih sesuai untuk streaming, tetapi tidak disokong pada PA dan memerlukan beberapa pengalaman dengan penyediaan rangkaian dan pelayan. Sebaiknya anda menambahkan beberapa mekanisme keselamatan untuk mengawal akses.
Langkah 15: Menggabungkan Semuanya
Sekarang, hidupkan robot anda, jalankan handlers.py di komputer (disambungkan ke rangkaian yang sama dengan robot), dan anda boleh mengawal robot dari penyemak imbas berdasarkan url yang anda tetapkan dari mana sahaja yang anda mahukan. (mis.
Disyorkan:
Pengesan Kehadiran Tempat Tidur Zigbee: 8 Langkah
Zigbee Bed Presence Detector: Untuk beberapa waktu sekarang saya sedang mencari kaedah untuk mengesan ketika kita sedang tidur. Ini untuk menggunakan maklumat ini ke Homeassistant. Dengan maklumat ini saya dapat membuat automasi untuk mematikan lampu pada waktu malam atau misalnya mengaktifkan sistem penggera di
Sistem Kehadiran Jari Jari dan RFID Menggunakan Pangkalan Data Raspberry Pi dan MySQL: 5 Langkah
Sistem Kehadiran Cap Jari dan RFID Menggunakan Raspberry Pi dan MySQL Pangkalan Data: Video Projek Ini
Lubang Maya Maya: 4 Langkah (dengan Gambar)
Virtual Peephole: Terdapat kira-kira 770 juta kamera pengawasan di seluruh dunia. Sebilangan dari mereka masih mempunyai kata laluan lalai mereka, menjadikannya mudah diakses, oleh sesiapa sahaja yang mempunyai sambungan internet. Lubang ini maya adalah peranti untuk menonton beberapa
Sensor Kehadiran: 12 Langkah
Sensor Kehadiran: Wearables biasanya merupakan peranti yang diaktifkan BLE. Adalah biasa bagi mereka untuk secara berkala mengiklankan beberapa data di sepanjang alamat MACnya. Kami menggunakan ESP untuk mengimbas data ini dan mencetuskan peristiwa melalui internet apabila ia menemui alamat MAC tertentu. Ini
Mesin Maya Kotak Maya: 6 Langkah
Mesin Virtual Virtualbox: Selamat datang di tutorial cara memasang dan menggunakan VirtualBox