İçindekiler:

Bluetooth, Kamera ve MIT App Inventor ile Robot Araba2: 12 Adım (Resimlerle)
Bluetooth, Kamera ve MIT App Inventor ile Robot Araba2: 12 Adım (Resimlerle)

Video: Bluetooth, Kamera ve MIT App Inventor ile Robot Araba2: 12 Adım (Resimlerle)

Video: Bluetooth, Kamera ve MIT App Inventor ile Robot Araba2: 12 Adım (Resimlerle)
Video: App Inventor Maps, Sensors, Socials Components 2024, Aralık
Anonim
Image
Image
Parçalar ve Yazılım
Parçalar ve Yazılım

Hiç kendi robot arabanızı yapmak istediniz mi? Peki… bu senin şansın!!

Bu Eğitilebilir Kitapta, Bluetooth ve MIT App Inventor2 ile kontrol edilen bir Robot Arabanın nasıl yapılacağı konusunda size yol göstereceğim. Acemi olduğumu ve bunun benim ilk öğretilebilirliğim olduğunu unutmayın, bu yüzden lütfen yorumlarınızda nazik olun.

Dışarıda birçok talimat var ama bunda kamera akışı, engellerden kaçınma, ultrasonik mesafe sensörü, Larson tarayıcı (charlieplexing ile) ve pil izleme gibi birçok özelliği bir Android Uygulamasında birleştirmeye çalıştım!

Haydi başlayalım ve Frankie ile tanışalım (birçok yerden fikirler kullanır…. Dolayısıyla Robo Frankenstein)

Adım 1: Parçalar ve Yazılım

Parçalar ve Yazılım
Parçalar ve Yazılım
Parçalar ve Yazılım
Parçalar ve Yazılım

Burada, memleketimde tüm parçaları almak zor, bu yüzden çoğunu www.aliexpress.com'dan alabildim.

Eski cep telefonu dikkate alınmadan projenin 25 - 30 USD'ye yapılabileceğini tahmin ediyorum.

  • Araç şasisi: 3 tekerlek, 2 motor 6V (9 USD)
  • Arduino Nano (2 USD)
  • Bluetooth HC-05 (3 ila 4 ABD Doları)
  • Tekerlek motorlarını sürmek için L293D motor sürücüsü (5 adet lot için 1,50 USD)
  • Kamera ve Wi-Fi ile eski hücresel
  • Yakındaki bir nesneyi ölçmek için ultrasonik sensör HC-SR04 (1 USD)
  • Larson tarayıcı için 6 LED
  • Larson tarayıcı için ATtiny85 (1 USD)
  • Ekmek tahtası (1 USD)
  • teller
  • 100K Ohm direnç (4)
  • 1K Ohm direnç (2)
  • 2K Ohm direnç (1)
  • 270 Ohm direnç (3)
  • zil

Yazılım:

  • Arduino IDE'si
  • IP Web Kamerası (eski hücresel Android için)
  • MIT App Inventor2: Bu Uygulama harika ancak yalnızca Android işletim sistemi için çalışıyor (Iphone yok… üzgünüm!)

Adım 2: İnşaat Süreci

Inşaat süreci
Inşaat süreci
Inşaat süreci
Inşaat süreci
Inşaat süreci
Inşaat süreci
Inşaat süreci
Inşaat süreci

Araba şasisinin montajı çok kolaydır; arka tekerleklere güç veren 2 motor 6V ve 4 pil takımına sahiptir.

Robot araba Bluetooth ve Wi-Fi ile kontrol ediliyor. Bluetooth, Araba ile MIT Uygulaması mucidi2 arasındaki seri iletişimi kontrol eder ve Wi-Fi, arabanın önüne takılı kamera (eski cep telefonu) ile iletişim kurmak için kullanılır.

Bu proje için iki set pil kullandım: arduino 9V pil ve araba motorları 6V (dört adet 1.5V AA pil) ile çalışır.

Arduino Nano, arabayı, zili, ultrasonik menzil sensörü HC-SR04, Bluetooth HC-05, Larson tarayıcıyı (ATtiny85) kontrol eden ve pilleri izleyen bu projenin beynidir. 9V pil Vin'e (pin 30) gider ve Arduino'nun pin 27'si breadboard'a 5V ayarlı güç verir. Tüm IC'lerden ve pillerden gelen tüm toprakları birbirine bağlamanız gerekir.

Ekli, devre şeması Excel'de yapılmıştır (Üzgünüm…. bir dahaki sefere Fritzing'i deneyeceğim). Her şeyi breadboard ve erkekten erkeğe kablo konektörleri kullanarak bağladım, benimki fare yuvasına benziyor.

Adım 3: L293D Motor Sürücüsü

L293D Motor Sürücüsü
L293D Motor Sürücüsü
L293D Motor Sürücüsü
L293D Motor Sürücüsü

L293D, 4,5V ila 36V voltajlarda 600 mA'ya kadar çift yönlü sürücü akımları sağlamak için tasarlanmış dörtlü yüksek akımlı yarım H sürücüdür. Araba tekerleklerini sürmek için kullanılır.

Motorlar için 6V pil takımı (dört adet 1.5V AA) ile çalışır ve Arduino Nano'da düzenlenmiş 5V'den (pin 27) gelen mantık için 5V kullanır. Bağlantılar ekteki şemada gösterilmiştir.

Bir soğutucuya takmaya gerek yoktu.

Adım 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth, 5V (arduino pin 27) ile çalışır, ancak mantık seviyesinin 3.3V, yani 3.3V ile iletişim (Tx ve Rx) olduğunu anlamak önemlidir. Bu nedenle Rx'in seviye değiştirici dönüştürücü ile veya bu durumda olduğu gibi devrede görüldüğü gibi 1K ve 2K dirençler kullanılarak voltaj bölücü ile elde edilebilecek maksimum 3.3V ile yapılandırılması gerekir.

Adım 5: Pil Monitörü

Pil seviyelerini izlemek için voltaj seviyelerini 5V'nin altına getirmek için voltaj bölücüler ayarladım (Arduino'nun maksimum aralığı). Voltaj bölücü, ölçülen voltajı Arduino analog girişlerinin aralığına düşürür.

A4 ve A6 analog girişleri kullanılmakta olup, ölçüm işleminde pillerin çok fazla boşalmaması için yüksek dirençler (100K ohm) kullanılmaktadır. Dirençler çok düşükse (10K ohm), daha az yükleme etkisi, voltaj okuması daha doğru, ancak daha fazla akım çizimi varsa, ödün vermemiz gerekir; çok yükseklerse (1M ohm), daha fazla yükleme etkisi, voltaj okuması daha az doğrudur, ancak daha az akım çizimi.

Pil izleme her 10 saniyede bir yapılır ve doğrudan kontrolör cep telefonunuzda görüntülenir.

İki analog pinden okuduğum ve dahili MUX'in aralarında değiştiği için bu bölümde iyileştirme için çok yer olduğundan eminim. Birden fazla ölçümün ortalamasını almıyorum ve belki de yapmam gereken şey bu.

Aşağıdaki formülü açıklayayım:

//A4 analog pininden voltajı oku ve Arduino için kalibrasyon yap:

voltaj1 = (analogRead(A4)*5.0/1024.0)*2.0; //8.0V

Arduino nano kartı 8 kanal, 10-bit analogdan dijitale dönüştürücü içerir. analogRead() işlevi, pime uygulanan voltaj miktarıyla orantılı olan 0 ile 1023 arasında bir sayı döndürür. Bu, okumalar arasında bir çözünürlük sağlar: birim başına 5 volt / 1024 birim veya.0049 volt (4,9 mV).

Voltaj bölücü voltajı yarıya indirir ve gerçek voltajı elde etmek için 2 ile çarpmanız gerekir!

ÖNEMLİ: Eminim bir arduinoya güç vermenin benim yaptığımdan daha etkili bir yolu vardır!! Acemi biri olarak zor yoldan öğrendim. Arduino Vin pini lineer voltaj regülatörü kullanır, bu da 9V pil ile lineer regülatörün kendisindeki gücün büyük bir kısmını yakacağınız anlamına gelir! İyi değil. Hızlı olduğu için ve daha iyisini bilmediğim için böyle yaptım…ama emin olun ki Robo Frankie sürüm 2.0'da kesinlikle farklı şekilde yapacağım.

Bir DC DC Yükseltme Anahtarlamalı Güç Kaynağı ve bir Li-ion şarj edilebilir pilin daha iyi bir yol olabileceğini (yüksek sesle) düşünüyorum. Nazik öneriniz memnuniyetle karşılanacaktır…

Adım 6: HC-SR04 Ultrasonik Menzil Sensörü

HC-SR04 Ultrasonik Menzil Sensörü
HC-SR04 Ultrasonik Menzil Sensörü

HC-SR04 bir ultrasonik menzil sensörüdür. Bu sensör, 2 cm'den 400 cm'ye kadar 3 mm'ye kadar değişen bir hassasiyetle ölçüm sağlar. Bu projede 20cm ve altına ulaştığında engellerden kaçınmak ve cep telefonunuza geri gönderilen herhangi bir cisme olan mesafeyi ölçmek için kullanılmaktadır.

Cep telefonunuzun ekranında, yakındaki bir nesneye olan mesafeyi istemek için tıklanması gereken bir düğme var.

7. Adım: Larson Tarayıcı

Larson Tarayıcı
Larson Tarayıcı
Larson Tarayıcı
Larson Tarayıcı
Larson Tarayıcı
Larson Tarayıcı

Eğlenceli bir şey eklemek istedim, bu yüzden K. I. T. T.'ye benzeyen Larson tarayıcıyı dahil ettim. Knight Rider'dan.

Larson tarayıcı için charlieplexing ile ATtiny85 kullandım. Charlieplexing, bir dizi LED'i sürmek için bir mikrodenetleyici üzerindeki nispeten az sayıda I/O pininin kullanıldığı çoğullanmış bir ekranı çalıştırma tekniğidir. Yöntem, geleneksel çoğullamaya göre verimlilik elde etmek için mikrodenetleyicilerin üç durumlu mantık yeteneklerini kullanır.

Bu durumda ATtiny85'ten 6 LED'i yakmak için 3 pin kullanıyorum!

N pinli "X" LED'lerini yakabilirsiniz. Kaç tane LED sürebileceğinizi bulmak için aşağıdaki formülü kullanın:

X= N pinli N(N-1) LED'ler:

3 pim: 6 LED;

4 pim: 12 LED;

5 pin: 20 LED… fikri anladınız;-)

Akım pozitiften (anot) negatife (katot) doğru akar. Okun ucu katottur.

Pin 1'in (Arduino IDE kodunda) ATtiny85'teki fiziksel pin 6'yı ifade ettiğini unutmamak önemlidir (lütfen ekteki pin çıkışına bakın).

Ekli, lütfen Larson tarayıcıyı kontrol eden ATtiny85'e yüklenmesi gereken kodu bulun. ATtiny85'e nasıl kod yükleneceğini anlatmıyorum çünkü bunu yapan çok sayıda talimat var.

Adım 8: Kod

kod
kod

Larson tarayıcıyı kontrol eden ATtiny85'e yüklenmesi gereken kodu ve Arduino nano'nun kodunu ekliyorum.

Arduino nano'ya gelince, diğer talimatlardaki (burada) kodların bir kısmını kullandım ve ihtiyaçlarıma uyacak şekilde değişiklikler yaptım. Switch - Case'in nasıl çalıştığını daha iyi anlamak için kodun bir akış şemasını (daha net bir görüntü için kelime olarak) ekledim.

Önemli: CarBluetooth kodunu Arduino nano'ya yüklemek için Rx ve Tx'i HC-05 Bluetooth modülünden ayırmanız gerekir!

9. Adım: Kamera

Kamera
Kamera
Kamera
Kamera

IP Webcam uygulamasının oyun mağazasından indirilmesi ve eski cep telefonunuza yüklenmesi gerekiyor. Video tercihlerini kontrol edin, çözünürlüğü buna göre ayarlayın ve son olarak iletimi başlatmak için son "Sunucuyu başlat" komutuna gidin. Cep telefonunda Wi-Fi'yi açmayı unutma!!

Adım 10: MIT App Inventor2

MIT Uygulama Mucidi2
MIT Uygulama Mucidi2

MIT Uygulaması mucidi2, web tarayıcınızda uygulamalar oluşturmaya yardımcı olan bulut tabanlı bir araçtır. Bu uygulama (yalnızca android tabanlı hücresel için) daha sonra hücrenize yüklenebilir ve robot arabanızı kontrol edebilir.

Ne yaptığımı görebilmeniz ve istediğiniz gibi değiştirebilmeniz için.apk ve.aia kodunu ekliyorum. İnternetten (MIT App) bir kod kullandım ve kendi değişikliklerimi yaptım. Bu kod robot arabanın hareketini kontrol eder, ultrasonik sensörden sinyal alır, ışıkları yakar ve sesli uyarı verir. Ayrıca pillerden voltaj seviyesini bize bildiren sinyal alır.

Bu kod ile arabadan iki farklı sinyal alabileceğiz: 1) yakındaki bir nesneye olan mesafe ve 2) motor ve arduino'nun akülerinden gelen voltaj.

Alınan seri diziyi tanımlamak için Arduino'nun koduna gönderilen dizi türünü belirten bir bayrak ekledim. Arduino, ultrasonik sensörden ölçülen mesafeyi gönderirse, dizenin önüne bir “A” karakteri gönderir. Arduino, Pil seviyelerini gönderdiğinde, “B” karakterli bir bayrak gönderir. MIT App mucitleri2 kodunda Arduino'dan gelen seri diziyi ayrıştırdım ve bu bayrakları kontrol ettim. Dediğim gibi, ben acemiyim ve eminim bunu yapmanın daha etkili yolları vardır ve umarım birileri beni daha iyi aydınlatabilir.

Arduino_Bluetooth_Car.apk'yi cep telefonunuza gönderin (e-posta veya Google Drive ile) ve kurun.

Adım 11: Cep Telefonunuzu RC Arabanıza Bağlayın

Cep Telefonunuzu RC Arabanıza Bağlayın
Cep Telefonunuzu RC Arabanıza Bağlayın
Cep Telefonunuzu RC Arabanıza Bağlayın
Cep Telefonunuzu RC Arabanıza Bağlayın

Her şeyden önce, eski cep telefonunda (RC robotunda olan) wi-fi'yi açın.

Denetleyici cep telefonunuzda wi-fi, Bluetooth'unuzu açın ve az önce kurduğunuz Arduino_Bluetooth_Car.apk'yi açın. Ekranın sonunda (göremiyorsanız aşağı kaydırın) iki düğme göreceksiniz: Cihazlar ve BAĞLAN. Cihazlar'a tıklayın ve RC Arabanızdan Bluetooth'u seçin (HC 05 olmalıdır), ardından BAĞLAN'a tıklayın ve ekranınızın sol alt kısmında CONNECTED mesajını görmelisiniz. İlk defa bir şifre girmeniz istenecektir (0000 veya 1234 girin).

Eski cep telefonunuzun (RC Arabanızdaki cep telefonu) IP adresini yazmanız gereken bir kutu var, benim durumumda

Bu IP numarası Wi-fi Yönlendiricinizde algılanabilir. Yönlendirici yapılandırmanıza girmeniz, Aygıtlar Listesi'ni (veya Yönlendirici markanıza bağlı olarak buna benzer bir şey) seçmeniz ve eski hücre cihazınızı görebilmeniz, üzerine tıklayıp bu IP numarasını bu kutuya girebilmeniz gerekir.

Ardından KAMERA'yı seçin ve RC Arabanızdan kamera akışını izlemeye başlamalısınız.

Adım 12: İşiniz Bitti

Bitirdiniz!
Bitirdiniz!

Bitirdiniz! Onunla oynamaya başlayın

Gelecekteki değişiklikler: Yeniden şarj etmek ve DC-DC yükseltici voltaj regülatörü kullanmak için 9V pili Li-ion pillerle değiştireceğim, ayrıca analog okumaların yumuşatılmasını (ortalama) dahil ederek pil monitörünü geliştirmek istiyorum. A. I.'yi dahil etmeyi planlamıyor. henüz …;-)

İlk eğitilebilir yarışmama girdim… bu yüzden lütfen oy verin;-)

Önerilen: