İçindekiler:

Sıçrama Hareketi Kontrollü Uzaktan Arama ve İmha Robotu: 5 Adım
Sıçrama Hareketi Kontrollü Uzaktan Arama ve İmha Robotu: 5 Adım

Video: Sıçrama Hareketi Kontrollü Uzaktan Arama ve İmha Robotu: 5 Adım

Video: Sıçrama Hareketi Kontrollü Uzaktan Arama ve İmha Robotu: 5 Adım
Video: Dünyanın en zor zeka oyunu daha çözebilen yok 😳😳 2024, Temmuz
Anonim
Image
Image

Leap Motion #3D Jam için yaptığım girişin bir parçası olarak, Raspberry Pi tabanlı bu kablosuz hareket kontrollü Arama/Kurtarma Robotunu yapmaktan heyecan duydum. Bu proje, kablosuz 3B el hareketlerinin fiziksel nesneleri kontrol etmek ve etkileşim kurmak için nasıl kullanılabileceğinin minimalist bir örneğini göstermekte ve sunmaktadır.

Bu proje, Raspberry Pi'de popüler WebIOPi IoT çerçevesini kullandığından, Raspberry Pi ile arayüz oluşturulabilen herhangi bir Sensör/Donanım/Elektronik'i kontrol etmek ve arayüz oluşturmak için çok kolay bir şekilde genişletilebilir.

Diğer Maker'ların bu projeyi temel çerçeveleri olarak kullanabileceğini öngördüğüm bazı olası senaryolar:

1. Uzaktan Hareketle Çalışan Bomba İmha Robotu (belki bir OWI Kolu vb. kullanarak)

2. Doktor Tarafından Uzaktan Ameliyat

3. Hareket kontrollü etkileşimli Sanat Sergileri veya Eğitim İçeriği

4. Sonsuz diğer olasılıklar/entegrasyonlar (hayal gücümle sınırlıyım:))

1. Adım: Genel Bakış

WebIOPi Çerçevesini Anlamak
WebIOPi Çerçevesini Anlamak

Bu proje, kullanıcının bir PC'ye bağlı bir Leap Motion aracılığıyla 3D el hareketlerini kullanarak bir Robotu etkileşimli olarak kontrol etmesine olanak tanır.

Robottaki Raspberry Pi'de ayrıca, bir Web Tarayıcısında görülebilen kullanıcıya canlı video akışı sağlayan bir USB Web Kamerası bulunur. Bu Web Sayfasına yerleştirilmiş LeapMotion JavaScript kitaplığı, el hareketlerini işler ve kontrol sinyallerini Robot'a geri gönderir ve robot buna göre hareket eder.

Robot üzerindeki Raspberry Pi, kendisine bağlı olan USB WiFi dongle yardımıyla Hotspot (AP modu) olarak yapılandırılır. Bu, PC'lerimizin/Cihazlarımızın doğrudan Raspberry Pi'ye bağlanmasına ve bir web sayfası üzerinden kontrol etmesine olanak tanır. Raspberry Pi, PC/Cihazların halihazırda bağlı olduğu WiFi Router'ın AP'sine kablosuz olarak bağlandığı istemci modunda çalışacak şekilde de yapılandırılabilir.

Bu proje, Raspberry Pi için popüler bir IoT çerçevesi olan WebIOPi'ye (https://webiopi.trouch.com/) dayanmaktadır. Birlikte verilen Dokuma IoT Kitini kullanarak (veya Yönlendiricide bağlantı noktası iletme yoluyla), bu Robot uzaktan kontrol edilebilir ve/veya dünyanın herhangi bir yerinden veri alabilir.

Projeyi oluşturmak için aşağıdaki bileşenler kullanıldı:

  1. Raspberry Pi B (Raspberry Pi B+ ile %100 ileri uyumlu)
  2. Logitech USB Web Kamerası (değersiz 1,3 Megapiksel)
  3. L293D Motor Sürücü IC ve Koparma Kalkanı
  4. Raspberry Pi için USB WiFi Dongle
  5. Raspberry Pi için USB Güç Bankası
  6. Robot Motorlarını sürmek için Harici 4V/1.5A Pil

2. Adım: Proje Oluşturma

WebIOPi Kurulumu, Özel Kod Yazma ve Web Kamerasını Yapılandırma:

WebIoPi kurulum talimatları, çerçeve temelleri ve birçok örnek buradaki proje sayfasında mevcuttur:

Web sayfasındaki LeapMotion işlevlerinin Raspberry Pi'de GPIO eylemlerini tetiklemesini sağlamak için, ayrıntıları burada bulunan Makroları kullandık:

Ayrıca yukarıdaki süreç hakkında ekte bulunabilecek bazı başlangıç notları da yazdım.

Web Kamerasını Yükleme ve Yapılandırma

Raspberry Pi'den gelen video akışını Pi'ye bağlı USB Webcam aracılığıyla Tarayıcıya geri aktarmak için MJPG-Streamer kullanıyoruz. MJPG-Streamer'ın Raspberry Pi üzerinde çalışmasını sağlamak için lütfen burada belirtilen kurulum ve yapım talimatlarını izleyin

Raspberry Pi'yi AP/Hotspot olarak Yapılandırma

Raspberry Pi'yi Hostpot olarak kurmak için lütfen burada verilen talimatları izleyin: https://elinux.org/RPI-Wireless-Hotspot. Raspberry Pi'nin statik IP'sini 192.168.42.1 olarak yapılandırdım; bu, Pi AP moduna geçtiğinde tarayıcıya yazacağımız şeydi.

WebIOPi, MJPG-Streamer ve WiFi erişim noktası hizmeti, açılışta otomatik çalışacak şekilde yapılandırılmıştır ve bu, bir Web tarayıcısını doğrudan açmamıza ve önyüklendikten sonra Robot'a bağlanmamıza olanak tanır. Depoda bulunan rc.local dosyası, Web kamerasını açılışta çalıştırmak için kullanılır.

Adım 3: Yapı/Kablolama Talimatları

Raspberry Pi'nin 4 GPIO'su, yani GPIO 9, 11, 23 ve 24, Webiopi çerçevesi tarafından sunulan Web Sayfasından makro istekleri aldıktan sonra motorları buna göre çalıştıran L293D Motor Driver IC'ye bağlanır. USB WiFi dongle ve USB Logitech Web Kamerası, Raspberry Pi'de bulunan 2 USB bağlantı noktasına bağlanır. Bir 5V 4000 Mah Güç bankası, Pi'ye ana gücü sağlar. Motorları sürmek için 4V 1.5A Kurşun Asit akü kullanılır.

Not: Kullandığım power bank'ın maksimum çıkış akımı cimri bir şekilde 1000 Mah olduğu için motorları sürmek için harici Kurşun Asit akü kullanmak zorunda kaldım. >= 2000Mah veren bir güç bankanız varsa, motorları doğrudan Pi üzerindeki 5V raydan çalıştırabilirsiniz (yine de güç aç motorlar için bunu tavsiye etmem)

LeapMotion Javascript API, WebIOPi ve MJPG-Streamer projesinin 3 temel alt bölümü ve bunların temel çalışması/kurulumu aşağıda kısaca özetlenmiştir.

Adım 4: WebIOPi Çerçevesini Anlamak

Tarayıcıda gösterilen ön uç HTML (Dosya adı:index.html) ve Javascript ile yazılırken, GPIO'ları çalıştıran arka uç Python'da (Dosya adı: script.py) yazılmıştır. WebIOPi çerçevesine dayalı özel bir WebApp oluşturmaya ilişkin ayrıntılı notlar, Bitbucket deposunda notlar olarak eklenmiştir.

Python betiğinde tanımlanan özel makrolar, HTML dosyasından tetiklenebilir.

Örn: webiopi().callMacro("go_forward"); Bu, her iki Motoru da ileri yönde sürme sürecini yöneten Python betiğinde tanımlanan bir makro go_forward'a yapılan özel bir çağrıdır.

Dosyaların Pi'de depolandığı dizin hiyerarşisi ekteki resimde gösterilmektedir.

Robot klasörü şu alt klasörleri içerir:

  • html: index.html içeren
  • piton: script.py içeren
  • mjpg-streamer-r63: Web kamerasını çalıştırmak için derleme dosyalarını ve yürütülebilir dosyaları içerir

MJPG-Streamer: USB Web Kamerasından Canlı Video akışı, varsayılan olarak Pi'nin 8080 numaralı bağlantı noktasında çalışır. Akışı manuel olarak görüntülemek için Web Kamerasını açtıktan sonra tarayıcıda RASPBERRYPI_IP:8080'e gidin.

LeapMotion Kodu:

LeapMotion SDK'da sağlanan örneklerden kod parçacıkları, index.html dosyasına gömüldü. LeapMotion'ın leap.js dosyası, Raspberry Pi'deki proje dizinindeki html klasörüne eklenmelidir.

LeapMotion tarafından gönderilen palmPosition parametresi Raspberry Pi üzerinde hangi makronun tetikleneceğini belirlemek için kullanılır.

Adım 5: Projeyi Çalıştırmak

Raspberry Pi'yi AÇIN ve yaklaşık bir dakika bekleyin. RaspberryPi'nin yeni bir hotpsot olduğunu göreceksiniz. Bu etkin noktaya bağlanın ve tarayıcıda şu statik IP adresini açın: 192.168.42.1:8000. 8000, WebIOPi'nin varsayılan bağlantı noktasıdır.

Raspberry Pi, bir etkin nokta olarak görünmek yerine yerel WiFi ağına istemci olarak bağlanacak şekilde de yapılandırılabilir. Daha sonra, Raspberry Pi'ye Yönlendirici tarafından atanan dinamik IP'yi belirlemeniz ve ardından Bot ile oynamak için Tarayıcıda onu vurmanız gerekir.

Herhangi bir yardıma ihtiyacınız varsa veya proje hakkında herhangi bir sorunuz varsa yorum bırakabilirsiniz. Mutlu Sıçrayış!

Tüm kaynak kodları eklenmiştir. Projenin herhangi bir bölümünde yardıma ihtiyacınız olursa yorum bırakabilirsiniz. Mutlu Sıçrayış!

Önerilen: