İçindekiler:

Raspberry SPy Robot: 8 Adım (Resimlerle)
Raspberry SPy Robot: 8 Adım (Resimlerle)

Video: Raspberry SPy Robot: 8 Adım (Resimlerle)

Video: Raspberry SPy Robot: 8 Adım (Resimlerle)
Video: Metal Iron Man Helmet WITH DISPLAY! 2024, Temmuz
Anonim
Image
Image
Ahududu Casus Robotu
Ahududu Casus Robotu

Bu proje, bir web sayfası aracılığıyla bir robotu sürmenize ve bir canlı akışı izlemenize olanak tanır. Evcil hayvanları gözetlemek, fırınınızda hiçbir şeyin yanmadığından emin olmak ve hatta kuş gözlemciliği yapmak için kullanılabilir! DFRobot, Raspberry Pi 3 ve Raspberry Pi kamera modülünü sağladı.

Adım 1: Robot Elektroniği

Robot Elektroniği
Robot Elektroniği

DFRobot'tan 2WD MiniQ şasi kitini monte ederek başladım. Tekerlekleri motor millerine kaydırdım, ardından braketlere yerleştirdim ve şasiye bağladım. Son olarak metal destekleri ekledim. Şimdi ana kartı inşa etme zamanıydı. L293d motor sürücüsü, Raspberry Pi'nin GPIO pinlerine giden kablolarla birlikte yerinde lehimlendi. Ardından, ana gücü sağlayacağı için pil için bir konektör lehimledim. Güç kaynağı eklendikten sonra 5V regülatör taktım.

Adım 2: Pi'yi Ayarlama

Pi'yi Ayarlama
Pi'yi Ayarlama

DFRobot bana ulaştı ve Raspberry Pi 3 ve Raspberry Pi Kamera Modüllerini gönderdi. Bu yüzden kutuları açtıktan sonra SD kartı kurarak çalışmaya başladım. Önce Raspberry Pi İndirilenler sayfasına gittim ve Raspbian'ın en son sürümünü indirdim. Daha sonra dosyayı çıkardım ve uygun bir dizine koydum. Bir.img dosyasını bir SD karta kopyalayıp yapıştıramazsınız, karta "yakmanız" gerekir. İşletim sistemi görüntüsünü kolayca aktarmak için Etcher.io gibi bir yazma yardımcı programını indirebilirsiniz..img dosyası SD kartıma girdikten sonra Raspberry Pi'ye taktım ve güç verdim. Yaklaşık 50 saniye sonra kabloyu çıkardım ve SD kartı çıkardım. Sonra SD kartı bilgisayarıma geri koydum ve "önyükleme" dizinine gittim. Not defterini açtım ve NO uzantısıyla "ssh" adlı boş bir dosya olarak kaydettim. Ayrıca eklediğim "wpa_supplicant.conf" adında bir dosya vardı ve içine şu metni koydum:

ağ={ ssid= psk= }

Sonra kartı kaydedip çıkardım ve Raspberry Pi 3'e geri koydum. Bu artık SSH kullanımına ve WiFi'ye bağlanmaya izin verecek.

3. Adım: Kamerayı Hazırlama

Kamerayı Hazırlama
Kamerayı Hazırlama

Varsayılan olarak, kamera Pi'de devre dışıdır, bu nedenle menüyü getirmek için sudo raspi-config terminal tipini açmalısınız. "Arayüz seçenekleri"ne gidin ve ardından kamerayı etkinleştirin. Şimdi sadece "Son"u seçin ve kamera modülünün şerit kablosunu Pi'nin doğru alanına takın.

4. Adım: Yazılımı Yükleme

Vlc ve motion gibi video akışı yapabilen birkaç farklı yazılım var, ancak düşük gecikme süresi ve kolay kurulumu nedeniyle mjpeg-streamer'ı kullanmaya karar verdim. Sitedeki talimatlara göre, bir klasöre git klonu https://github.com/jacksonliam/mjpg-streamer.git yapın, ardından gerekli kitaplıkları kurmak için sudo apt-get install cmake libjpeg8-dev yazın. Dizininizi indirdiğiniz klasöre değiştirin ve ardından yazılımı derlemek için make ve ardından sudo make install yazın. Son olarak dışa aktarma LD_LIBRARY_PATH= girin. ve çalıştırmak için./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" yazın. Akışı görüntülemek için https://:8080/stream.html adresine giderek akışa erişebilirsiniz.

Adım 5: Denetleyici

Denetleyici
Denetleyici
Denetleyici
Denetleyici

Ardından, Bluetooth'un çok az menzili olduğu için bir Raspberry Pi'nin WiFi üzerinden nasıl kontrol edileceğine geldi. Raspberry PI üzerinde çalışan bir Flask sunucusu ve ona veri göndermek için bir ESP8266 ESP12E modülü kullanmaya karar verdim. ESP8266'nın yalnızca bir analog girişi var, bu da iki analog giriş aldığı için joystick'i doğrudan kullanamadığım anlamına geliyor. En iyi seçenek, analog sinyalleri 16 bit çözünürlükte okuyan bir I2C cihazı olan ADS1115 idi. VCC ve GND ile birlikte SDA'yı 4'e ve SCL'yi 5'e bağladım. Joystick X ekseni ADS1115'te A0'a ve Y ekseni A1'e bağlanır. AMA, yanlışlıkla ADS1115'i yaktım, bu yüzden bir sonraki en iyi şeye başvurmak zorunda kaldım: düğmeler! Şimdi kurulumum, ileri, sağ ve sol olmak üzere 3 düğmeli bir ESP8266 Sparkfun Thing Dev Board. Şimdi ne zaman birine basılsa, tekerlekleri o yöne çevirmek için veri gönderiyor.

Adım 6: Robot Kodu

Robot için Kod
Robot için Kod

Motorları json üzerinden kontrol etmek için Pi'nin GPIO PWM kitaplığını kullanan önceki bir proje yaptım, bu yüzden kodu bir Flask uygulaması aracılığıyla veri kabul etmek için yeniden tasarladım. Flask, Pi'nizi veri gönderip alabilen bir web sunucusuna dönüştüren bir Python kitaplığıdır. PWM kullanılarak motorlar, tank tahrikine kıyasla daha hassas bir şekilde kontrol edilebilir. Bu aynı zamanda robotun sabit hız yerine değişken hızlarda gidebileceği anlamına gelir. Şişe uygulamam, ESP12e'den http aracılığıyla bir GET isteğinden veri aldığında motorların PWM'sini değiştirecek şekilde yapılandırılmıştır. Ayrıca arka planda web akışı komut dosyasını çalıştırmak için subprocess. Popen kitaplığını kullanır. Proje sayfasına kod ekledim, bu yüzden gerekli olan tek şey bir indirme.

7. Adım: Denetleyici Kodu

Kod oldukça basitti, sadece 3 pinden okumalar alın, tekerlek yönünü belirlemek için bazı if deyimlerinden geçirin ve son olarak bu değerleri Raspberry Pi'ye gönderin. Arduino IDE için ESP8266 kart eklentisi, başlıkları işleyen ve veri gönderen HTTPClient kitaplığı ile birlikte gelir. Flask sunucusunun bir POST çağrısı yoluyla veri alması gerekir, bu nedenle kod, Raspberry Pi web sunucusuyla bağlantı kurar, ardından verilere JSON kodlu olduğunu belirten bir başlık ekler ve son olarak verileri bir JSON nesnesi biçiminde gönderir.. Raspberry Pi'nin verilerle aşırı yüklenmesini önlemek için 40 ms'lik bir gecikme ekledim.

Adım 8: Raspberry SPy'yi Çalıştırma

Raspberry SPy'yi Çalıştırma
Raspberry SPy'yi Çalıştırma
Raspberry SPy'yi Çalıştırma
Raspberry SPy'yi Çalıştırma

Tek gereken sudo python.py yazmaktır! Kameranın yandığını görmelisiniz ve 8080 numaralı bağlantı noktasıyla pi'nin web adresine giderek akış görünür olmalıdır. Artık kontrol cihazını evin herhangi bir yerinde kullanabilir ve canlı yayın yapabilirsiniz.

Önerilen: