Daftar Isi:
Video: Localino Melacak Roomba IRobot, Memetakan Lingkungan dan Memungkinkan Kontrol.: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
Untuk membangun jembatan WiFi-UART, Anda dapat melihat repo github ini:
Ini memiliki dasar yang bagus untuk memulai. Pastikan Anda membaca panduannya dengan baik, karena VCC Roomba saat pengisian daya meningkat hingga 20 Volt! Jika Anda menambahkan ESP8266 tanpa konverter uang yang tepat yang bekerja bahkan hingga 20V dan konversi turun ke 3.3V, Anda akan merusak ESP Anda.
Pastikan juga untuk menggunakan pemindah level (misalnya menggunakan pembagi tegangan) untuk menggeser level logika UART 5V dari Roomba ke 3.3V, yang digunakan oleh ESP.
Detail penting lainnya adalah, bahwa konverter buck harus memiliki 300mA, tetapi tidak jauh lebih sedikit atau lebih banyak (tergantung pada konverter buck itu sendiri). Ada beberapa di luar sana yang dapat melakukan lebih banyak arus, tetapi menyebabkan Roomba mogok karena mereka menarik terlalu banyak arus saat start-up. Kami menemukan bahwa Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) bekerja dengan sempurna. Versi alternatif yang memiliki 500mA / 600mA menyebabkan antarmuka UART Roomba mogok. Pada dasarnya Roomba bereaksi pada penekanan tombol, tetapi tidak pada perintah melalui antarmuka UART. Setelah ini terjadi, kami harus melepas baterai Roomba dan menyalakan ulang Roomba dengan jembatan WiFi-UART terpasang. Namun, hanya D24V3F3 yang bekerja dengan baik.
Selain detail teknis itu, Anda harus menambahkan perintah tambahan ke kode, yang dapat Anda temukan di spesifikasi antarmuka terbuka Roomba. Anda perlu menambahkan semua perintah yang Anda ingin agar roomba Anda bereaksi (misalnya, mundur, maju, kecepatan, dll.).
contoh dalam arduino IDE:
void goForward() { char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print(c); }
void goBackward() { char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print(c); }
void spinLeft() { char c = {137, 0x00, 0xc8, 0x00, 0x01}; Serial.print(c); }
void spinRight() { char c = {137, 0x00, 0xc8, 0xff, 0xff}; Serial.print(c); }
jika Anda menulis dalam lua terlihat sedikit berbeda, contoh untuk belok KIRI akan terlihat seperti ini:
if(_GET.pin == "LEFT")lalu print ('\137'); --VOR
tmr.delay(100);
cetak('\00'); -- Kecepatan = 200 = 0x00C8 -> 0 dan 200
tmr.delay(100);
cetak ('\200'); -- Kecepatan
tmr.delay(100);
cetak('\254'); -- Jari-jari = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay(100);
cetak('\12'); -- Berbelok
akhir
Pastikan Anda harus memperbaiki deskripsi antarmuka terbuka untuk Roomba Anda. Setidaknya ada dua spesifikasi antarmuka terbuka yang tersedia.
untuk seri Roomba 5xx:
untuk seri Roomba 6xx:
Setelah Anda membangun jembatan WiFi-UART dan menguji perintah, Anda membuat langkah besar lebih jauh. Video ini menunjukkan bahwa aplikasi dan pendekatan bekerja. Kami agak malas, antarmuka web kehilangan semua perintah kontrol lainnya, seperti maju, mundur, kecepatan, kanan, kiri, dan sebagainya, tetapi Anda dapat mengeluarkan perintah melalui http. Bagaimanapun, ini hanya demonstrasi bahwa remote control Roomba bekerja dengan perangkat keras dan perangkat lunak yang mudah menggunakan ESP8266.
Sekarang karena Anda dapat mengontrol Roomba Anda dari jarak jauh dari aplikasi PC, satu-satunya hal yang hilang adalah lokalisasi dalam ruangan. Kami membutuhkan ini untuk menutup loop umpan balik, karena tujuan kami adalah mengarahkan robot ke arah tertentu. Mari kita lakukan.
Langkah 3: Siapkan Sistem Lokalisasi Dalam Ruangan Anda
Untuk menutup loop umpan balik, kami menggunakan sistem lokalisasi dalam ruangan. Kami menggunakan Localino untuk ini. Sistem Localino terdiri dari "jangkar" dan "tag". Jangkar diposisikan di lokasi tetap di dalam ruangan dan menemukan posisi tag bergerak (yang ditempatkan di Roomba). Pemrosesan lokasi dilakukan dalam aplikasi PC. Itu adalah keuntungan besar, karena Anda juga dapat mengontrol Roomba dari PC yang sama! Ada kode sumber gratis yang tersedia dari situs web Localino, ditulis dengan python dan ada juga aliran waktu nyata yang menawarkan koordinat XYZ dari tag. Aliran data tersedia melalui jaringan UDP, tetapi Anda juga dapat menambahkan MQTT atau hal-hal mewah lainnya yang Anda suka. Jika Anda tahu Python, ada banyak perpustakaan yang membantu Anda.
Dalam video ini, lokalisasi Roomba ditunjukkan. Oleh karena itu kami memiliki 4 penyiapan jangkar di ruangan di lokasi tetap, yang memungkinkan pemosisian 3D Roomba. Secara umum, kami hanya membutuhkan 3 jangkar, karena Roomba mungkin tidak akan bergerak di sumbu Z, oleh karena itu 2D sudah cukup. Tetapi karena jangkar terletak pada ketinggian colokan utama AC (yang kira-kira 30cm di atas tanah), pengaturan 2D akan menyebabkan sedikit kesalahan estimasi posisi. Jadi kami memutuskan untuk memiliki 4 jangkar dan melokalisasi dalam 3D.
Sekarang karena kita memiliki posisi Roomba, langkah selanjutnya adalah mengontrol Roomba dari aplikasi yang sama. Idenya adalah untuk menggunakan kebenaran dasar dan memperkirakan jalur pembersihan yang sempurna untuk robot. Dengan menggunakan Localino kita dapat menutup loop umpan balik dan mengontrol robot dari aplikasi PC.
Pengaturan komentar
Posisikan jangkar Localino di dalam ruangan pada posisi x, y yang berbeda dan tiga di antaranya pada posisi z yang sama. Posisikan satu dari empat jangkar pada ketinggian yang berbeda z per ruangan. Pastikan ada cakupan yang baik dari tag Localino, yang akan bergerak dengan Roomba.
Semua jangkar memiliki ID jangkar unik, yang ditampilkan pada kode batang Localino dan dapat dibaca dengan alat "konfigurasi lokal".
Perhatikan posisi di X, Y, Z dan ID jangkar. Ini diperlukan untuk Perangkat Lunak Prosesor Localino dan harus diadaptasi di file “localino.ini” di folder “LocalinoProcessor”
Jangkar harus mengarah ke atas atau ke bawah di Z (ketika area XY tertutup), tetapi tidak ke arah area yang dicakup. Jangkar juga tidak boleh ditutupi oleh logam atau bahan pengganggu sinyal nirkabel lainnya. Jika ini tidak memungkinkan, juga harus ada celah udara tertentu antara bahan apa pun dan jangkar.
…akan datang lebih banyak lagi.
Langkah 4: Sesuaikan Perangkat Lunak Python
Pantau terus. akan datang lebih banyak lagi.
Direkomendasikan:
Mainan Beralih-Adaptasi: Memanjat Tangga Melacak Mainan: 7 Langkah
Switch-Adapt Toys: Climbing Stairs Track Toy: Adaptasi mainan membuka jalan baru dan solusi khusus untuk memungkinkan anak-anak dengan kemampuan motorik terbatas atau cacat perkembangan berinteraksi dengan mainan secara mandiri. Dalam banyak kasus, anak-anak yang membutuhkan mainan yang disesuaikan tidak dapat
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: 5 Langkah (dengan Gambar)
Kontrol Tirai Dengan ESP8266, Integrasi Google Home dan Openhab dan Kontrol Web: Dalam Instruksi ini saya menunjukkan kepada Anda bagaimana saya menambahkan otomatisasi ke tirai saya. Saya ingin dapat menambah dan menghapus otomatisasi itu, jadi semua instalasi adalah clip on. Bagian utama adalah: Motor stepper Driver stepper dikendalikan bij ESP-01 Gear dan pemasangan
Buat Tampilan EInk MQTT Anda Sendiri untuk Waktu, Berita, dan Data Lingkungan: 7 Langkah
Buat Tampilan EInk MQTT Anda Sendiri untuk Waktu, Berita, dan Data Lingkungan: 'THE' adalah Tampilan Informasi MQTT mini untuk Informasi Waktu, Berita, dan Lingkungan. Menggunakan layar eInk 4,2 inci, konsepnya sederhana – untuk menampilkan informasi secara bergiliran, memperbarui setiap beberapa menit. Datanya bisa berupa feed apa saja – f
Melacak Variasi Akselerasi Dengan Raspberry Pi dan MMA7455 Menggunakan Python: 6 Langkah
Melacak Variasi Akselerasi Dengan Raspberry Pi dan MMA7455 Menggunakan Python: Saya tidak tersandung, saya sedang menguji gravitasi. Masih berfungsi… Sebuah representasi dari pesawat ulang-alik yang dipercepat menjelaskan bahwa jam di titik tertinggi pesawat ulang-alik akan memilih lebih cepat daripada jam di pangkalan karena ekspansi waktu gravitasi. Beberapa
Mengais Elektronik Gratis, Makanan, dan Membantu Lingkungan: 11 Langkah
Memulung Barang Elektronik Gratis, Makanan, dan Membantu Lingkungan: Oke, jadi Anda kekurangan uang, dan Anda membutuhkan barang gratis, atau mungkin Anda hanya ingin mendapatkan beberapa peralatan elektronik dan makanan gratis. Jadi kami akan menunjukkan caranya mengais barang gratis! Dengan sedikit latihan, memulung dan mendaur ulang sampah bisa menjadi