Isi kandungan:

Localino Tracks Roomba IRobot, memetakan persekitaran dan membenarkan kawalan: 4 Langkah
Localino Tracks Roomba IRobot, memetakan persekitaran dan membenarkan kawalan: 4 Langkah

Video: Localino Tracks Roomba IRobot, memetakan persekitaran dan membenarkan kawalan: 4 Langkah

Video: Localino Tracks Roomba IRobot, memetakan persekitaran dan membenarkan kawalan: 4 Langkah
Video: Как настроить пылесосы и швабры iRobot Roomba для отображения разных этажей 2024, Julai
Anonim
Image
Image

Untuk membina jambatan WiFi-UART, anda boleh melihat repo github ini:

Ia mempunyai asas yang baik untuk bermula. Pastikan anda membaca garis panduan dengan baik, kerana Roomba VCC semasa pengisian meningkat hingga 20 Volt! Sekiranya anda menambahkan ESP8266 tanpa penukar buck yang betul yang berfungsi sehingga 20V dan turun ke 3.3V, anda akan merosakkan ESP anda.

Pastikan juga menggunakan pemindah level (mis. Menggunakan pembahagi voltan) untuk mengalihkan tahap logik UART 5V dari Roomba ke 3.3V, yang digunakan oleh ESP.

Perincian penting yang lain adalah, bahawa penukar buck harus mempunyai 300mA, tetapi tidak lebih kurang atau lebih banyak lagi (bergantung pada penukar buck itu sendiri). Terdapat beberapa di luar sana yang dapat melakukan arus lebih banyak, tetapi menyebabkan Roomba mogok kerana mereka mengeluarkan arus terlalu banyak semasa permulaan. Kami mendapat tahu bahawa Pololu 3.3V, 300mA Step-Down Voltage Regulator (D24V3F3) berfungsi dengan sempurna. Versi alternatif yang mempunyai 500mA / 600mA menyebabkan antara muka Roomba UART rosak. Pada dasarnya Roomba bertindak balas dengan menekan butang, tetapi tidak pada perintah melalui antara muka UART. Setelah ini, kami terpaksa mengeluarkan bateri Roomba dan menghidupkan semula Roomba dengan jambatan WiFi-UART terpasang. Walau bagaimanapun, hanya D24V3F3 yang berfungsi dengan baik.

Selain dari perincian teknikal itu, anda harus menambahkan perintah tambahan pada kod yang dapat anda temukan dalam spesifikasi antara muka terbuka Roomba. Anda perlu menambahkan semua perintah yang anda mahu roomba anda bertindak balas (contohnya, mundur, maju, laju, dll.).

contoh dalam IDE arduino:

batal goForward () {char c = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 Serial.print (c); }

batal goBackward () {char c = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 Serial.print (c); }

batal spinLeft () {char c = {137, 0x00, 0xc8, 0x00, 0x01}; Cetakan bersiri (c); }

void spinRight () {char c = {137, 0x00, 0xc8, 0xff, 0xff}; Cetakan bersiri (c); }

jika anda menulis dalam lua ia kelihatan sedikit berbeza, contoh untuk belokan KIRI akan kelihatan seperti ini:

jika (_GET.pin == "KIRI") kemudian cetak ('\ 137'); - NILAI

tmr.delay (100);

cetak ('\ 00'); - Kecepatan = 200 = 0x00C8 -> 0 und 200

tmr.delay (100);

cetak ('\ 200'); - Halaju

tmr.delay (100);

cetak ('\ 254'); - Radius = 500 = 0x01F4 = 0x01 0xF4 = 1 244

tmr.delay (100);

cetak ('\ 12'); - Belok

akhir

Pastikan anda perlu membetulkan keterangan antara muka terbuka untuk Roomba anda. Terdapat sekurang-kurangnya dua spesifikasi antara muka terbuka.

untuk siri Roomba 5xx:

untuk siri Roomba 6xx:

Setelah anda membina jambatan WiFi-UART dan menguji arahan, anda membuat langkah lebih jauh. Video ini menunjukkan bahawa aplikasi dan pendekatan berfungsi. Kami agak malas, antara muka web kehilangan semua arahan kawalan lain, seperti maju, mundur, laju, kanan, kiri dan sebagainya, tetapi anda boleh mengeluarkan perintah melalui http. Bagaimanapun, ini hanyalah demonstrasi bahawa alat kawalan jauh Roomba berfungsi dengan perkakasan dan perisian yang mudah menggunakan ESP8266.

Sekarang kerana anda dapat mengendalikan Roomba anda dari jauh dari aplikasi PC, satu-satunya perkara yang hilang adalah penyetempatan dalaman. Kami memerlukan ini untuk menutup gelung maklum balas, kerana tujuan kami adalah untuk mengarahkan robot ke arah tertentu. Mari lakukan ini.

Langkah 3: Sediakan Sistem Penyetempatan Dalaman Anda

Untuk menutup gelung maklum balas, kami menggunakan sistem penyetempatan dalaman. Kami menggunakan Localino untuk ini. Sistem Localino terdiri daripada "jangkar" dan "tag". Sauh diletakkan di lokasi tetap di dalam bilik dan cari kedudukan tanda bergerak (yang diletakkan di Roomba). Pemprosesan lokasi dilakukan dalam aplikasi PC. Itu adalah kelebihan besar, kerana anda juga dapat mengendalikan Roomba dari PC yang sama! Terdapat kod sumber percuma yang tersedia dari laman web Localino, ia ditulis dalam python dan terdapat juga aliran masa nyata yang menawarkan koordinat XYZ teg. Stast data tersedia melalui rangkaian UDP, tetapi anda juga boleh menambahkan MQTT atau perkara menarik lain yang anda suka. Sekiranya anda mengenali Python, terdapat banyak perpustakaan yang membantu anda.

Dalam video ini, penyetempatan Roomba ditunjukkan. Oleh itu, kami mempunyai 4 tetapan sauh di ruangan di lokasi tetap, yang membolehkan penentuan kedudukan 3D dari Roomba. Secara amnya, kami hanya memerlukan 3 sauh, kerana Roomba mungkin tidak akan bergerak dalam paksi-Z, oleh itu 2D akan mencukupi. Tetapi kerana sauh terletak pada ketinggian palam utama AC (yang terletak kira-kira 30cm di atas tanah), pemasangan 2D akan menyebabkan sedikit kesalahan anggaran kedudukan. Oleh itu, kami memutuskan untuk mempunyai 4 jangkar dan melokalisasi dalam 3D.

Sekarang kerana kita mempunyai kedudukan Roomba, langkah seterusnya adalah mengendalikan Roomba dari aplikasi yang sama. Ideanya adalah menggunakan kebenaran dasar dan mengira jalan pembersihan yang sempurna untuk robot. Dengan penggunaan Localino kita dapat menutup gelung maklum balas dan mengawal robot dari aplikasi PC.

Ucapkan persediaan

Letakkan jangkar Localino di dalam bilik pada kedudukan x, y yang berbeza dan tiga daripadanya pada kedudukan z yang sama. Posisikan satu daripada empat jangkar pada ketinggian yang berbeza z setiap bilik. Pastikan ada liputan yang baik dari tag Localino, yang akan bergerak dengan Roomba.

Semua sauh mempunyai ID sauh unik, yang dipaparkan pada kod bar Localino dan dapat dibaca dengan alat "konfigurasi localino".

Perhatikan kedudukan di X, Y, Z dan ID jangkar. Ini diperlukan untuk Perisian Pemproses Localino dan harus disesuaikan dalam fail "localino.ini" dalam folder "LocalinoProcessor"

Sauh harus menunjuk ke atas atau ke bawah di Z (ketika kawasan XY ditutup), tetapi tidak ke arah kawasan tertutup. Penambat juga tidak boleh dilindungi oleh logam atau bahan gangguan isyarat tanpa wayar yang lain. Sekiranya ini tidak dapat dilakukan, perlu juga terdapat jurang udara tertentu antara bahan dan sauh.

… banyak lagi yang akan datang.

Langkah 4: Sesuaikan Perisian Python

nantikan. banyak lagi yang akan datang.

Disyorkan: