İçindekiler:
Video: Localino Roomba IRobot'u İzler, Ortamı Haritalar ve Kontrol Sağlar.: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
WiFi-UART köprüsünü kurmak için şu github deposuna göz atabilirsiniz:
Başlangıç için güzel bir temeli var. Kılavuzu iyi okuduğunuzdan emin olun, çünkü Roomba VCC şarj sırasında 20 Volt'a kadar yükselir! Uygun bir dönüştürücü olmadan 20V'a kadar çalışan ve 3,3V'a aşağı dönüştüren bir ESP8266 eklerseniz, ESP'nize zarar verirsiniz.
Ayrıca, 5V UART mantık seviyelerini Roomba'dan ESP tarafından kullanılan 3.3V'a kaydırmak için bir seviye değiştirici (örneğin bir voltaj bölücü kullanarak) kullandığınızdan emin olun.
Diğer bir önemli detay ise, dönüştürücünün 300mA'ya sahip olması, ancak çok daha az veya çok daha fazla olmamasıdır (buck dönüştürücünün kendisine bağlı olarak). Çok daha fazla akım yapabilen, ancak başlatma sırasında çok fazla akım çektikleri için Roomba'nın çökmesine neden olan bazıları var. Pololu 3.3V, 300mA Düşürücü Voltaj Regülatörünün (D24V3F3) mükemmel çalıştığını öğrendik. 500mA / 600mA'ya sahip alternatif versiyonlar Roomba UART arayüzünün çökmesine neden oldu. Temel olarak Roomba, düğmeye basıldığında tepki veriyordu, ancak UART arayüzü üzerinden komutlara tepki vermiyordu. Bu olduğunda, Roomba pilini çıkarmamız ve WiFi-UART köprüsü takılıyken Roomba'yı soğuk yeniden başlatmamız gerekti. Ancak yalnızca D24V3F3 iyi çalıştı.
Bu teknik detayın yanı sıra, Roomba açık arayüz spesifikasyonlarında bulabileceğiniz koda ek komutlar eklemeniz gerekiyor. Roomba'nızın tepki vermesini istediğiniz tüm komutları eklemeniz gerekecek (örneğin, geri, ileri, hız, vb.).
arduino IDE içindeki örnekler:
geçersiz 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}; Seri.baskı(c); }
void spinRight() { char c = {137, 0x00, 0xc8, 0xff, 0xff}; Seri.baskı(c); }
lua ile yazarsanız biraz farklı görünür, SOL dönüş için bir örnek şöyle görünür:
if(_GET.pin == "LEFT")sonra yazdırın ('\137'); --VOR
tmr.delay(100);
yazdır ('\00'); -- Hız = 200 = 0x00C8 -> 0 ve 200
tmr.delay(100);
yazdır ('\200'); -- Hız
tmr.delay(100);
yazdır ('\254'); -- Yarıçap = 500 = 0x01F4 = 0x01 0xF4 = 1 244
tmr.delay(100);
yazdır ('\12'); -- Dönüş
son
Roomba'nız için açık arayüz açıklamasını düzeltmeniz gerektiğinden emin olun. En az iki açık arayüz özelliği mevcuttur.
Roomba 5xx serisi için:
Roomba 6xx serisi için:
WiFi-UART köprünüzü oluşturduktan ve komutları test ettikten sonra büyük bir adım attınız. Bu video, uygulamanın ve yaklaşımın işe yaradığını göstermektedir. Biraz tembeldik, web arayüzünde ileri, geri, hız, sağ, sol ve benzeri gibi diğer tüm kontrol komutları eksik, ancak komutları http üzerinden verebilirsiniz. Her neyse, bu sadece Roomba'nın uzaktan kumandasının bir ESP8266 kullanarak kolay bir donanım ve yazılım parçası ile çalıştığının bir göstergesi.
Artık Roomba'nızı bir PC uygulamasından uzaktan kontrol edebileceğiniz için, eksik olan tek şey iç mekan lokalizasyonu. Geri bildirim döngüsünü kapatmak için buna ihtiyacımız var, çünkü amacımız robotu belirli bir yöne yönlendirmekti. Bunu yapalım.
3. Adım: İç Mekan Yerelleştirme Sisteminizi Kurun
Geri bildirim döngüsünü kapatmak için bir iç mekan yerelleştirme sisteminden yararlanıyoruz. Bunun için Localino kullanıyoruz. Localino sistemi "çıpalar" ve "etiketler"den oluşur. Ankrajlar, oda içinde sabit konumlara yerleştirilmiştir ve (Roomba'ya yerleştirilen) hareketli etiketin konumunu belirler. Konum işleme bir PC uygulamasında yapılır. Bu büyük bir avantajdır, çünkü Roomba'yı aynı bilgisayardan da kontrol edebilirsiniz! Localino web sitesinde ücretsiz kaynak kodu mevcuttur, python ile yazılmıştır ve ayrıca etiketin XYZ koordinatlarını sunan gerçek zamanlı bir akış mevcuttur. Veri akışına UDP ağı üzerinden erişilebilir, ancak MQTT veya beğendiğiniz diğer süslü şeyleri de ekleyebilirsiniz. Python'u biliyorsanız, size yardımcı olacak yığınla kitaplık vardır.
Bu videoda Roomba'nın lokalizasyonu gösterilmektedir. Bu nedenle, Roomba'nın 3D konumlandırılmasına izin veren, odada sabit konumlarda 4 ankraj kurulumumuz var. Genel olarak, sadece 3 ankraja ihtiyaç duyarız, çünkü Roomba muhtemelen Z ekseninde hareket etmeyecektir, bu nedenle 2D yeterli olacaktır. Ancak ankrajlar AC ana fiş yüksekliğinde (yerden yaklaşık 30 cm yükseklikte) bulunduğundan, 2D kurulum çok az konum tahmini hatalarına neden olur. Bu yüzden 4 çapaya sahip olmaya ve 3 boyutlu olarak yerelleştirmeye karar verdik.
Şimdi Roomba'nın konumuna sahip olduğumuza göre, bir sonraki adımımız Roomba'yı aynı uygulamadan kontrol etmektir. Buradaki fikir, temel gerçeği kullanmak ve robot için mükemmel bir temizleme yolunu tahmin etmektir. Localino'nun kullanımıyla geri bildirim döngüsünü kapatabilir ve robotu PC uygulamasından kontrol edebiliriz.
Kurulum açıklamaları
Localino ankrajlarını odanın içinde farklı x, y konumlarına ve üç tanesini aynı z konumuna yerleştirin. Dört ankrajdan birini oda başına farklı bir yüksekliğe z yerleştirin. Roomba ile taşınacak olan Localino etiketinin iyi bir kapsama alanı olduğundan emin olun.
Tüm bağlantıların, Localino'nun barkodunda görüntülenen ve "localino yapılandırma" aracıyla okunabilen benzersiz bir bağlantı kimliği vardır.
X, Y, Z'deki konumları ve bağlantı kimliklerini not edin. Bu, Localino İşlemci Yazılımı için gereklidir ve “LocalinoProcessor” klasöründeki “localino.ini” dosyasına uyarlanmalıdır.
Ankrajlar Z'de (XY alanı kaplandığında) yukarı veya aşağı bakmalıdır, ancak kapsanan alan yönünde değil. Ankrajlar ayrıca metal veya herhangi bir kablosuz sinyali bozucu malzeme ile kapatılmamalıdır. Bu mümkün değilse, herhangi bir malzeme ile ankraj arasında da belirli bir hava boşluğu olmalıdır.
…gelmek için daha fazla.
4. Adım: Python Yazılımını Uyarlayın
bizi izlemeye devam edin. gelmek için daha fazla.
Önerilen:
Garmin GPS'iniz için Özel Haritalar Oluşturun: 8 Adım (Resimlerle)
Garmin GPS'iniz için Özel Haritalar Oluşturun: Yürüyüş ve diğer açık hava etkinlikleri için tasarlanmış bir Garmin GPS'iniz varsa (diğer birkaçının yanı sıra GPSMAP, eTrex, Colorado, Dakota, Oregon ve Montana serisi dahil), bunu yapmanız gerekmez. önceden yüklenmiş olarak gelen çıplak haritalara razı olun. E
Google Haritalar Web Sitesine Nasıl Yerleştirilir: 4 Adım
Google Haritalar Web Sitesine Nasıl Yerleştirilir: Haritalar Yarışmasında benim için oy verin! Kısa süre önce, Google Haritalar'ı kullanan bir web sitesi oluşturdum. Google Haritalar'ı web siteme gömmek oldukça kolaydı ve o kadar da zor değildi. Bu Instructables'da size Google'ı gömmenin ne kadar kolay olduğunu göstereceğim
Google Haritalar'ı Google E-Tablolarınıza Otomatik Olarak ve Ücretsiz Olarak Kolayca Ekleyin: 6 Adım
Google Haritalar'ı Google E-Tablolarınıza Otomatik ve Ücretsiz Olarak Kolayca Ekleyin: Pek çok Maker gibi ben de birkaç GPS takip projesi oluşturdum. Bugün, herhangi bir harici web sitesi veya API kullanmadan GPS noktalarını doğrudan Google E-Tablolar'da hızlı bir şekilde görselleştirebileceğiz. En iyisi de bedava olması
OpenStreetMap Kullanarak Özel Stilize Haritalar Nasıl Oluşturulur: 7 Adım (Resimlerle)
OpenStreetMap Kullanarak Özel Stilize Haritalar Nasıl Oluşturulur: Bu talimatta, kendi özel yapım stilize haritalarınızı oluşturabileceğiniz bir süreci anlatacağım. Stilize edilmiş bir harita, kullanıcının hangi veri katmanlarının görselleştirileceğini belirleyebildiği ve ayrıca her katmanın hangi stile sahip olduğunu tanımlayabildiği bir haritadır
Linux'ta AVR Programlama Ortamı Nasıl Kurulur: 5 Adım
Linux'ta AVR Programlama Ortamı Nasıl Kurulur: Windows'ta AVR mikro denetleyicilerini programlamak istiyorsanız, bir Studio'nuz var ama Linux'ta sahip olduğumuz tek şey bir Dude.AVRDUDE, AVR çiplerini programlamak için komut satırı arayüzüdür, biraz zor olabilir ilk başta kurulum için. Bu Eğitilebilir Tabloda, ben s