İçindekiler:
- Adım 1: Hawking Botunuzu Oluşturun
- Adım 2:
- 3. Adım: Kendi Hawking Soundbit'lerinizi Yapın
- 4. Adım: İpuçları ve Püf Noktaları
- Adım 5: Önerilen İyileştirmeler, Güncellemeler ve Gelecek Fikirler
Video: Hawking Botu: 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Hawking Bot, merhum Stephen Hawking'den ilham alan bir Lego MINDSTORMS EV3 Projesidir. Stephen Hawking'in iyi bir mizah anlayışı vardı, bu yüzden bu projeyi onaylardı eminim. Hawking Bot engellerin etrafından dolaşabilir ve hareketlere tepki verebilir ve ardından Stephen Hawking'in ünlü seslerinden birini söyleyerek hareket eden nesnenin yönünde hareket eder. Süpürme kafa hareketi ile çevresini tarayan ultrasonik sensör kullanır.
Adım 1: Hawking Botunuzu Oluşturun
Ayrı olarak satın alınması gereken ultrasonik sensör (gözleri) hariç, gerekli tüm parçalar temel EV3 Lego MINDSTORMS setindedir.
Adım 2:
Hawking Bot kodunun tamamı python 3'te yazılmıştır. Python'u Hawking Bot'ta bir Debian Linux ortamında çalıştırmak için önyüklenebilir bir görüntü dosyası ev3dev web sitesinden indirilebilir. Hawking Bot'u çalıştırma kodu buradan indirilebilir. Tüm kodlar bir sınıf dosyasında bulunur, böylece mevcut yöntemleri kullanabilir veya isterseniz bunları değiştirebilirsiniz.
Lütfen robotunuzda Debian Linux ve Python3'ü nasıl kuracağınızla ilgili ayrıntılı talimatlar içeren bu videoyu izleyin. Bu özellikle bir Mac kurulumu için olsa da, süreç hakkında genel bir anlayış elde etmek yine de faydalı olacaktır. Bu devam eden bir çalışmadır. Ultrasonik sensör bazen güvenilmezdir ve bu, 'aykırı değerleri' tespit etmek için daha akıllı kod gerektirir. Kodu daha verimli ve daha az hataya açık hale getirmek için başkalarının katkılarını görmek istiyorum.
3. Adım: Kendi Hawking Soundbit'lerinizi Yapın
Tamam, şimdi Prof Hawking'den bazı ünlü alıntılar veya sadece bazı basit ifadeler almak istiyorsunuz. Onun konuşmasını duyabileceğiniz tonlarca video var ve bir de bilgelik hazinesi ve faydalı ses parçaları olan dersleri var.
En sevdiğiniz ses parçalarını seçmek ve kesmek için birçok platformda çalışan Audacity gibi bir programa ihtiyacınız var.
Soundbite'ınızı bir wav mono dosyası olarak SH6, SH7, …SH11, SH12 vb. olarak kaydedin.
Aşağıda, yukarıdaki yönteme göre oluşturduğum birkaç örneği bulacaksınız.
4. Adım: İpuçları ve Püf Noktaları
Hawking Bot, tüm kabloların bağlı olduğundan ve pil gücünün yeterli olduğundan emin olmak için bir otomatik kontrol modülü ile birlikte gelir. Gevşek, eksik ve hatta hasarlı bağlantılar kolayca oluşabilir. Dolayısıyla bu modül çok kullanışlıdır. 'checkConnection' yöntemi yalnızca elektrik bağlantısı olup olmadığını kontrol eder. Yine de motorların doğru bağlantı noktasına bağlı olduğundan emin olmalısınız.
Hawking Bot'un araziyi taraması ve önündeki engelsiz en uzun yolu bulması için kafayı kaydırma hareketi çok önemlidir. Kablolar, kafa hareketlerine uyum sağlamak için yeterli alana ihtiyaç duyar; bu nedenle, fotoğrafta gösterildiği gibi bunları birbirine bağlamanız tavsiye edilir.
Hawking Bot, büyük engellerle ve düz ve pürüzsüz bir yüzeyde en iyi şekilde çalışır. Halılar motorlar için daha zorludur ve farklı yüzeyler için davranışı ayarlamak için ayarları yapmanız gerekebilir.
Hawking Bot hiçbir şekilde mükemmel değil ve bu, daha fazla iyileştirmeden faydalanacak bir prototip. Kod tamamen yorumlanmıştır ve çeşitli yöntemlerin ne yaptığını anlamanız sizin için kolay olacaktır. # ile çeşitli bitler yorumlanmıştır, eğer 'yazdır'ın önündeki #'yi kaldırırsanız, çalışan program size çeşitli sensör okumalarını ve hesaplamalarını gösterecektir.
Adım 5: Önerilen İyileştirmeler, Güncellemeler ve Gelecek Fikirler
Artık robotunuzu başarıyla inşa ettiğinize göre, onu bir sonraki seviyeye taşımak istiyorsunuz. MotionDetector yöntemini geliştirebilirsiniz. Şu anda çok sık yanlış bir okuma alıyor. disA ve disB'yi (yöntem bloğunun alt kısmında) yorumlayarak gerçek okumaları görebilirsiniz. Yanlış okuma genellikle diğer okumalardan farklıdır, böylece robotun yanlış bir okumaya yanıt vermesini durdurmak için bir algoritma yazabilirsiniz.
Belki de robotun tam kontrolünü almak ve sadece çeşitli işlevlerini uzaktan kontrol etmek istiyorsunuz. Bunu Bluetooth üzerinden yapabilir ve robotla iletişim kurmak için bir Android programı yazabilirsiniz. Bununla birlikte, kızılötesi sensörün Hawking Bot'un kontrolünü ele geçirmesi için bir yer bulmak çok daha kolay bir yaklaşım olacaktır.
Robotun çevresi hakkında bilgi edinmesini sağlamaya ne dersiniz? Bu, bir k-en yakın komşu yaklaşımı veya muhtemelen bir sinir ağı ile gerçekleştirilebilir. EV3 tuğlası, Numpy'yi desteklemesine rağmen sınırlı işlem gücüne sahiptir. Bir alternatif, Tensorflow gibi bir AI kitaplığı çalıştırmanıza izin verecek bir BrickPi olabilir, ancak bu kılavuzun amacı, ultrasonik sensör dışında birçok pahalı ek parça satın almaya gerek kalmadan Lego EV3 MINDSTORMS kitini kullanmaktı.
Ancak, k-en yakın komşular yeniden bilgilendirme öğrenme yaklaşımı EV3 tuğlası üzerinde çalışmalıdır ve önerilen algoritma budur. Çalışan bir uygulama bulmayı veya herhangi bir sorunu tespit etmeyi size bırakıyorum:
Hawkings Bot için pekiştirmeli öğrenme
Buradaki fikir, 7 USS okumasının bir vektöre kodlanması ve son 10 kafa baskınının 70 girişlik sıralı bir vektör oluşturmak için kullanılmasıdır. İlk okumalar eksik olduğundan sıfırlarla doldurulacaktır. Her giriş USS'den olan mesafe değerini içerir. Bu durum vektörü s'dir. Sistem 1000 girişe izin vermektedir. Daha sonra en eski giriş değiştirilecek ve her bir s-r çifti için yaş girişleri birer birer azaltılacaktır.
Bot bir cisme 10 cm'den fazla yaklaşmamalıdır. Bu olumsuz bir ödül yaratır. Basitlik için; iyi eylemler 1 ile ve kötü olanlar 0 ile ödüllendirilir. Etkili olarak bu, her eylem-durum kombinasyonu için ödül için bir olasılık yaratır. İndirimli ödüller ve epsilon açgözlü politikasını kullanacağız.
Bu, sağ, dümdüz ve sol üç eylemin tümü için 3 büyük durum – ödül (s-r) tablosu oluşturur – her eylem için hızlı ve yavaş hızlara sahip olmak mümkün olabilir. Daha sonra 6 eylemimiz ve 6 arama s-r tablomuz olurdu.
Her yeni durum s kaydedildiğinde, tablolarla karşılaştırılır, en yakın komşuyu bulmak için Öklid mesafesi (veya benzer bir ölçü) kullanılır. Bu derecelendirilmeyecek, bunun yerine durumu çok benzer olarak kabul etmek, mevcut durumun üzerine yazmak ve en yüksek ödül için güncelleme yapmak ve ilgili eylemi gerçekleştirmek için bir t eşiği belirlenir. Benzer değilse (d>t) her eylem için yeni bir s-r çifti girin a. s-r için eylemler arasında bir bağ varsa (hepsi aynı ödüle sahiptir) rastgele seçin, ancak bu yaygın değildir ve atlanabilir.
t'nin deneysel olarak belirlenmesi gerekecek, eğer t çok küçükse benzer durumlar göz ardı edilecek ve her bir durum benzersiz olarak görülüyor. Çok büyük bir t, iyi eylemleri seçme yeteneğini etkileyebilecek oldukça farklı durumların bile bir araya toplandığı anlamına gelir. En iyi t'yi belirlemek için istatistiksel yöntemler kullanmak mümkün olabilir.
Tablo şuna benzer: Giriş No – Durum vektörü – 1. eylem için ödül – 2. eylem için ödül – 3. eylem için ödül.
Sanırım gerçek uygulama zor olacak ama çabaya değer olmalı. İyi şanlar!
Önerilen:
NodeMCU ile Telegram Botu (ESP8266): 3 Adım
NodeMCU'lu Telegram Botu (ESP8266): Sisteminizden bildirim vermek için bir bota mı ihtiyacınız var? ya da sadece mesaj göndererek bir şeyler yapmak mı? Telegram Bot sizin çözümünüz! Bu eğitimde, botumu yapmak için Telegram Web ve BotFather kullanacağım
T2 - Çay Botu - Kolay Çay Demleme: 4 Adım
T2 - Çay Botu - Çay Demleme Kolaylığı: Çay botu, kullanıcının çayını önerilen demleme süresine kadar demlemesine yardımcı olmak için yapılmıştır. Tasarım hedeflerinden biri basit tutmaktı. Bir ESP8266, bir servo motoru kontrol etmek için bir web sunucusu ile programlanmıştır. ESP8266 Web Sunucusu mobil uyumludur ve
ESP32 Tabanlı Telegram Botu: 7 Adım
ESP32 Tabanlı Telegram Botu: Telegram tamamen özgürlük ve açık kaynaklarla ilgilidir, 2015 yılında üçüncü tarafların mesajlaşma uygulamasını ana iletişim arayüzü olarak kullanan ESP32 için telgraf botları oluşturmasına izin veren yeni Telegram bot API'sini duyurdu. Bu demektir ki biz
Karton ve Arduino ile Savaş Botu Nasıl Yapılır: 7 Adım (Resimlerle)
Karton ve Arduino ile Savaş Botu Nasıl Yapılır: Arduino UNO'yu kullanarak savaş robotları yarattım ve gövdeleri oluşturmak için karton kullanıldı. Uygun fiyatlı malzemeler kullanmaya çalıştım ve çocuklara savaş robotlarını nasıl tasarlayacakları konusunda yaratıcı özgürlük verdim. Battlebot, kablosuz denetleyiciden komutlar alıyor
Telegram Alev Alarm Botu: 5 Adım
Telegram Alev Alarm Botu: Bu yazımda, alevi algılamayı ve kullanıcının Telegram'ına bildirim göndermeyi sağlayan IoT projesini sunacağım