İçindekiler:

Muz/Ahududu Pi + Web Kameralı Arduino Rover: 9 Adım
Muz/Ahududu Pi + Web Kameralı Arduino Rover: 9 Adım

Video: Muz/Ahududu Pi + Web Kameralı Arduino Rover: 9 Adım

Video: Muz/Ahududu Pi + Web Kameralı Arduino Rover: 9 Adım
Video: En Yaratıcı 5 Kullanım - Raspberry Pi Projeleri 2024, Kasım
Anonim
Muz/Ahududu Pi + Web Kameralı Arduino Rover
Muz/Ahududu Pi + Web Kameralı Arduino Rover

Boş zamanlarımda yaptığım bir proje. Bir web arayüzü üzerinden kontrol edilen tam tahrikli 4 tekerlekli bir robottur. Herhangi bir yorumunuz veya sorunuz varsa, lütfen benimle iletişime geçmekten çekinmeyin. Bu projenin kendisi, başkaları tarafından oluşturulan 3B baskılı parçaları ve belirli kod parçalarını kullanır. Instructuble'ın sonunda kredi bulabilir ve orijinal parçalara göz atabilirsiniz.

Başlayalım mı?

Adım 1: İhtiyacınız Olan Bileşenler

İhtiyacınız Olan Bileşenler
İhtiyacınız Olan Bileşenler
İhtiyacınız Olan Bileşenler
İhtiyacınız Olan Bileşenler
İhtiyacınız Olan Bileşenler
İhtiyacınız Olan Bileşenler

İşte kullandığım bileşenlerin listesi ve alternatifleri. Çin, Shenzhen'de yaşıyorum ve parçaları doğrudan Taobao'dan satın aldım.

4 motorlu robot şasisi Alternatif: Yeterince büyük herhangi bir şasi yapacaktır. Bunun ekstra tork için 4 motoru var. Motorlar normal ucuz sarı motorlardır, L293D Arduino Motor Shield rev.1 klonu Alternatif: Daha fazla akım için derecelendirilmiş daha iyi motor kalkanı

Arduino Uno klonu Alternatif: Kodda önemli değişiklikler yapmadan başka herhangi bir Arduino kartını kullanabilirsiniz.

6V 4.5Ah Pb pil Alternatif: Daha hafif robot/sadece iki motor kullanmak istiyorsanız daha küçük LiPo pillerle deneme yapmak mümkündür.

Banana Pi Alternatifi: Önemli kod değişiklikleri olmadan Raspberry Pi 1/2/3 veya Orange Pi ile takas edilebilir. Banana Pi'yi sadece etrafta bir tane olduğu için kullandım.

Web kamerası Alternatifi: Raspberry Pi/Banana Pi/Orange Pi için CSI kamera kullanın

sg60 servolu kamera Pan/tilt montajı Alternatif: Örneğin 3D Print tilt/pan montajı bunu kullanabilir.

3D baskılı parçalar Alternatif: Bırakın hayal gücünüz ve 3D tasarım yetenekleriniz size yol göstersin! Ayrıca Thingverse:)

Adım 2: Motorları L293D Motor Shield ile Bağlayın

Motorları L293D Motor Shield ile Bağlayın
Motorları L293D Motor Shield ile Bağlayın
Motorları L293D Motor Shield ile Bağlayın
Motorları L293D Motor Shield ile Bağlayın

Her motoru motor kalkanı vidalı terminalleriyle bağlayın. İşte bağlantı şeması. Yalnızca iki motorunuz varsa ve kodu değiştirmek istemiyorsanız, bunları MOTOR 1 ve MOTOR 3'e eklemek yerine.

NOT: Daha yüksek akım değerine sahip farklı motorlar kullananlar için başka bir motor sürücüsüne ihtiyacınız olabilir. Alternatif olarak, son zamanlarda öğrendiğim güzel bir tüyo, iki tane daha L293D sürücüsünü mevcut olanın üzerine bindirebilmenizdir (tahtadaki orta çiptir)!

Adım 3: Arduino Uno, Motor Kalkanı Montajı

Arduino Uno, Motor Kalkanı Montajı
Arduino Uno, Motor Kalkanı Montajı

Arduino Uno'yu kasaya koyun ve üstüne Motor Shield'i takın. Bunu yapmanın tek bir yolu var, eğer uymuyorsa, biraz ting wong yapıyorsun!

Arduino Uno Rahat Kılıf

İşte kullandığım durum, Esquilo tarafından oluşturulan model.

Adım 4: Gücü Banana Pi ve Arduino'ya Bağlayın

Gücü Banana Pi ve Arduino'ya Bağlayın
Gücü Banana Pi ve Arduino'ya Bağlayın

Banana Pi'ye (6v) güç sağlamak için SATA arabirimini kullandım. Aynı panoya sahipseniz, bunu da yapabilirsiniz, voltajın 5v-6v olduğundan emin olun. Düzenlenmemiş güç kaynağı, bu yüzden Banana Pi M1'de SATA gücü için bir koruma devresi olduğunu varsayıyorum.

DİKKAT: Raspberry Pi için birkaç seçeneğiniz vardır: güvenli olan (5v sağlamak için USB konektörü kullanarak) ve çok güvenli olmayan (GPIO pinlerini kullanarak). İşte Raspberry Pi GPIO pinlerine güç bağlama hakkında okumak için bağlantı. Emin olun

1) Düzenlenmiş güç kaynağı kullanın

2) Voltajı 5v olarak ayarlayın

GPIO pinleri için koruma devresi yoktur! Yanlış bir şey yaparsanız, kart üzerindeki elektronik aksamlara ciddi şekilde zarar verme şansınız vardır.

Arduino için, gücü motor kalkanı üzerindeki giriş vidalı terminallerine bağlayın. 12v'a kadar sürebilir.

Adım 5: Banana Pi'yi 3D Basılı Kasaya Yerleştirin, Rover'ın Geri Kalanını Birleştirin

Banana Pi'yi 3D Basılı Kasaya Koyun, Rover'ın Geri Kalanını Birleştirin
Banana Pi'yi 3D Basılı Kasaya Koyun, Rover'ın Geri Kalanını Birleştirin
Banana Pi'yi 3D Basılı Kasaya Koyun, Rover'ın Geri Kalanını Birleştirin
Banana Pi'yi 3D Basılı Kasaya Koyun, Rover'ın Geri Kalanını Birleştirin

Bu vakayı GermanRobotics tarafından oluşturulanthingverse'den Banana Pi için kullandım. Onun kapağını kendim yaptım.

Muz Pi'yi kasaya koyun, kapakla kapatın, Arduino Uno'yu Banana Pi kasasının üzerine yapıştırmak için tutkal tabancası kullanın.

Pili bu kapakla kapatın ve web kamerası kaydırma/eğme montajını üste takın.

Banana Pi kullanıyorsanız, yalnızca iki USB yuvası olduğundan (Raspberry 2, 3'te dört tane vardır) bir USB hub'ına ihtiyacınız olacaktır. Tamamen estetik kaygılardan dolayı bir OTG 1-2 USB hub kullanmaya ve kabloları Banana Pi kasasının içine saklamaya karar verdim.

Adım 6: Donanım Montajı Tamamlandı

Donanım Montajı Tamamlandı!
Donanım Montajı Tamamlandı!

Şimdiye kadar yaptıklarımızı hızlıca özetleyelim.

Robot platformunu monte ettik, Banana Pi, Arduino Uno'ya güç bağladık, motor sürücüsüne motor ve servo bağladık ve USB kamerayı ve Arduino Uno'yu Banana Pi'ye bağlamak için USB hub kullandık. Artık donanımı test edebilir ve sorunları giderebilirsiniz. Bu adım için tüm bağlantıları gösteren bağlantı şeması resimdedir.

7. Adım: Sistem Yapılandırması

Sistem yapılandırması
Sistem yapılandırması

Pi'mdeki sistem için Raspbian Lite görüntüsünü kullandım. Lite sürümünde GUI yoktur ve yalnızca yüklenmiş temel paketlerle birlikte gelir. Ancak çok daha az yer kaplar, bu da daha küçük SD kart kullanabileceğimiz anlamına gelir. GUI olmadan rahat değilseniz, tam görüntüyü de yükleyebilirsiniz.

Pi'nizi Ethernet kablosuyla internete bağlayın. Açıldıktan sonra ilk adım onu Wi-Fi'ye bağlamak olacaktır.

Terminalde aşağıdaki komutu çalıştırın

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Yapılandırma dosyasını WiFi kimlik bilgilerinizle düzenleyin

ağ={ ssid="test" psk="testingPassword" }

Pi'yi yeniden başlatın. İşte! Artık Wi-Fi'ye bağlısınız.

Sonra pip (Python Paket Yöneticisi) kurmamız gerekecek

sudo apt-get install python-setuptools

sudo easy_install pip

Şimdi bir web sunucusu çalıştırmak için Flask'ı kurmak için pip ve seri bağlantı üzerinden Arduino ile iletişim kurmak için pi için pyserial kullanıyoruz.

sudo pip yükleme şişesi

sudo pip kurulum pyserial

Son şey, web kameramızdan video akışı için kullandığımız hareket paketini kurmak ve yapılandırmak olacaktır.

Bunu yapmak için bu harika talimatı izleyin.

Şimdi gürlemeye hazırız!

8. Adım: Yazılımı Başlatma

Yazılımı Başlatma
Yazılımı Başlatma
Yazılımı Başlatma
Yazılımı Başlatma

Gürlemeye hazır olduğumuzu nasıl söylediğimi hatırlıyor musun?

Tamam, biraz daha gıcırdattıktan sonra gürlemeye başlayabiliriz:)

Gerekli tüm dosyaları github depomdan indirelim.

git klonu

rover.ino'yu Arduino Uno'ya yükleyin. Donanım değişiklikleri yaptıysanız (örneğin farklı motor kalkanı kullanarak) taslağı değiştirmeniz gerekir.

Bir web kamerası kullanıyorsanız, şablon klasöründeki index.html dosyasının altına yakın olan satırı değiştirin. IFRAME satırındaki URL'yi, video akışınızın src URL'si ile eşleşecek şekilde değiştirin.

Artık web sunucusunu başlatabilirsiniz. Aşağıdaki komutu çalıştırın

sudo python pi_rover.py

Yapımı çok yakından takip ettiyseniz ve Arduino'yu bağladıysanız, terminalde aşağıdaki (ilk resim) göreceksiniz.

Robotunuzun ip adresini web tarayıcısına yazın (örneğin benim durumumda 192.168.1.104 idi), Linux üzerinde $ifconfig komutu ile ip adresini kontrol edebilirsiniz.

/kutlama dansını burada yapın!/

Herhangi bir sorunuz varsa, yorumlarda bana sormaktan çekinmeyin. Bu eğitim başlangıç seviyesi içindir, ancak sıfır başlangıç değil, bu yüzden google'da bulabileceğiniz şeyler hakkında oldukça kısaydım (örneğin, sistem görüntüsünü SD karta yazma, Arduino taslağını yükleme vb.).

9. Adım: Krediler

Fikir ve web sunucusu kodu, jscottb tarafından verilen bu harika talimattan gelir. Arduino Uno gibi daha yaygın donanımları kullanmak için değiştirdim.

Thingverse'den 3D baskılı parçalar.

www.thingiverse.com/thing:994827

www.thingiverse.com/thing:2816536/files

www.thingiverse.com/thing:661220

Önerilen: