İçindekiler:
- Adım 1: Parçalar
- 2. Adım: PROTOTİPLEME
- 3. Adım: ELDİVEN
- Adım 4: VERİCİ KUTUSU
- Adım 5: KOL KONTROL KUTUSU
- 6. Adım: PIN ATANMASI
- 7. Adım: İLETİŞİM
- Adım 8: SKETCHES ve Daha Fazlası…
- 9. Adım: BAŞKA NELER?
- Adım 10: *** KAZANDIK !!! ***
Video: OWI Robotik Kolu Kontrol Etmek İçin Elinizi Sallayın Telsiz: 10 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
FİKİR:
Instructables.com'da (13 Mayıs 2015 itibariyle) OWI Robotik Kolu değiştirme veya kontrol etme konusunda en az 4 başka proje var. Şaşırtıcı olmayan bir şekilde, oynamak için harika ve ucuz bir robotik kit olduğu için. Bu proje özünde benzerdir (yani, Robotik Kolu Arduino ile kontrol edin), ancak yaklaşımda farklıdır. [video]
Buradaki fikir, Robotik Kolu hareketler kullanarak kablosuz olarak kontrol edebilmektir. Ayrıca Robotik Koldaki değişiklikleri minimumda tutmaya çalıştım, böylece orijinal kontrolörle kullanılmaya devam edebilirdi.
Kulağa basit geliyor.
Sonuçta ortaya çıkan şey üç parçalı bir proje:
- Bir LED'i ve 5 motoru kontrol etmek için yeterli sensörle donatılmış bir eldiven
- Eldivenden kontrol komutlarını kabul etmek ve kablosuz olarak Arm kontrol cihazına göndermek için Arduino Nano tabanlı bir verici cihazı
- OWI Robotik Kola bağlı Arduino Uno tabanlı kablosuz alıcı ve motor kontrol cihazı
ÖZELLİKLERİ
- Tüm 5 Serbestlik Derecesi (DOF) ve LED için destek
- Büyük Kırmızı Düğme - Koldaki motorları anında durdurmak ve hasarı önlemek için
- Taşınabilir modüler tasarım
Mobil kullanıcılar için: Bu projenin "tanıtım videosu" burada YouTube'da.
Adım 1: Parçalar
ELDİVEN:
Bir eldiven denetleyicisi oluşturmak için aşağıdakilere ihtiyacınız olacak:
- Isotoner Smartouch Tech Stretch Dikişli Eldiven (veya benzeri) - Amazon.com'da
- Spectra Symboflex Sensör 2.2" - Amazon.com'da
- GY-521 6DOF MPU6050 3 Eksen Jiroskop + İvmeölçer Modülü - Fasttech.com'da
- 2X5 KUTU BAŞLIĞI DÜZ - Phoenixent.com'da
- 2X5 IDC PRİZ-PRİZ - Phoenixent.com'da
- DÜZ ŞERİT KABLO 10 İletkenli.050" Aralık - Phoenixent.com'da
- 2 x 5mm LED - Yeşil ve Sarı
- 2 x Küçük Düğmeler
- Dirençler, teller, iğne, siyah iplik, tutkal tabancası, lehim tabancası, lehim vb.
ŞANZIMAN KAYIŞ KUTUSU:
- Arduino Uyumlu Nano v3.0 ATmega328P-20AU Kartı - Fasttech.com'da
- nRF24L01+ 2.4GHz Kablosuz Alıcı-Verici Arduino Uyumlu - Amazon.com'da
- Gymboss BİLEKLİK - Amazon.com'da
- 9V Pil Tutucu Kutu Kılıf, Kablo Uçlu AÇMA/KAPAMA Anahtarlı - Amazon.com'da
- 2X5 KUTU BAŞLIĞI DÜZ - Phoenixent.com'da
- 9v pil
- 47uF (50v) kapasitör
- Dirençler, teller, tutkal tabancası, lehim tabancası, lehim vb.
OWI ROBOTİK KOL KONTROL KUTUSU:
- Arduino Uyumlu Uno R3 Rev3 Geliştirme Kartı - Fasttech.com'da
- Arduino (veya benzeri) için Prototip Kalkanı Kendin Yap KIT - Amazon.com'da
- nRF24L01+ 2.4GHz Kablosuz Alıcı-Verici Arduino Uyumlu - Amazon.com'da
- 3 x L293D 16-pin Tümleşik Devre IC Motor Sürücüsü - Fasttech.com'da
- 1 x SN74HC595 74HC595 3 Durumlu Çıkış Kayıtları DIP16 ile 8-Bit Kaydırma Kaydı - Amazon.com'da
- 47uF (50v) kapasitör
- Arduino Kutusu - Amazon.com'da
- Açma / kapama düğmesi
- 2 x 13 mm düğme (bir Kırmızı ve bir Yeşil kapak)
- 2 x 2X7 KUTU BAŞLIĞI DÜZ - Phoenixent.com'da yukarıdakiyle aynı
- DÜZ ŞERİT KABLO 14 İletken.050" Aralık - Phoenixent.com'da yukarıdakiyle aynı
- 9v pil + klipsli konektör
- Dirençler, teller, tutkal tabancası, lehim tabancası, lehim vb.
… ve tabi ki:
OWI Robotik Kol Kenar - Robot kol - OWI-535 - Adafruit.com'da
2. Adım: PROTOTİPLEME
Tüm bileşenleri birlikte lehimlemeden önce kontrol cihazlarının her birinin prototipini oluşturmanızı şiddetle tavsiye ederim.
Bu proje birkaç zorlu donanım parçası kullanıyor:
nRF24L01
İki nRF24'ün birbiriyle konuşmasını sağlamak biraz zaman aldı. Görünüşe göre ne Nano ne de Uno, modüllerin tutarlı bir şekilde çalışması için yeterli miktarda stabilize 3.3v güç sağlamıyor. Benim durumumdaki bir çözüm, her iki nRF24 modülündeki güç pimleri boyunca 47 uF'lik bir kapasitördü. IRQ ve IRQ olmayan modlarda RF24 kütüphanesini kullanmanın bazı tuhaflıkları da vardır, bu yüzden örnekleri gerçekten dikkatli bir şekilde incelemenizi tavsiye ederim.
Birkaç harika kaynak:
nRF24L01 Ultra düşük güç 2.4GHz RF Alıcı-Verici IC Ürün Sayfası
RF24 Sürücü kitaplığı sayfası
Sadece googling nRF24 + arduino çok sayıda bağlantı üretecektir. araştırmaya değer
74HC595 VİTES KAYDI
Şaşırtıcı olmayan bir şekilde 5 motoru, bir LED'i, iki düğmeyi ve bir Kablosuz modülü kontrol etmek zorunda kalmam, Uno'daki pinleri nispeten hızlı bir şekilde bitirdim. Pin sayınızı "uzatmanın" iyi bilinen yolu bir shift register kullanmaktır. nRF24 zaten SPI arabirimini kullandığından, shiftout() işlevi yerine shift register programlama için de (hız ve pinleri kaydetmek için) SPI kullanmaya karar verdim. Sürprizime göre, ilk defa bir cazibe gibi çalıştı. Pin atamasında ve eskizlerde kontrol edebilirsiniz.
Breadboard ve jumper kabloları arkadaşlarınızdır.
3. Adım: ELDİVEN
OWI Robotik ARM, kontrol edilecek 6 öğeye sahiptir (OWI Robotik Kol Kenar Resmi)
- Cihazın TUTUCU üzerinde bulunan bir LED
- TUTUCU
- BİR BİLEK
- DİRSEK - robotik kolun BİLEĞE bağlı kısmıdır.
- OMUZ, robotik kolun BASE'e bağlı kısmıdır.
- BAZ
Eldiven, Robotik Kolun LED'ini ve 5 motorun tümünü (Serbestlik Derecesi) kontrol etmek için tasarlanmıştır.
Aşağıdaki açıklamanın yanı sıra resimlerde işaretlenmiş bireysel sensörlerim var:
- TUTUCU orta parmak ve serçe parmağında bulunan butonlarla kontrol edilir. İşaret parmağı ve orta parmak birlikte bastırılarak tutucu kapatılır. Halka ve pembemsi birlikte bastırılarak tutucu açılır.
- WRIST, indeks bulucudaki esnek direnç tarafından kontrol edilir. Parmağı yarıya kadar kıvırmak bileği aşağı indirir ve sonuna kadar kıvırmak bileği yukarı kaldırır. İşaret parmağını düz tutmak bileği durdurur.
- DİRSEK, ivmeölçer tarafından kontrol edilir - avuç içi yukarı ve aşağı eğme, dirseği sırasıyla yukarı ve aşağı hareket ettirir
- OMUZ ivmeölçer tarafından kontrol edilir - avuç içi sağa ve sola yatırılır (baş aşağı değil!) Omuz sırasıyla yukarı ve aşağı hareket eder
- BASE aynı zamanda ivmeölçer tarafından da kontrol edilir, omuza benzer şekilde avuç içi sağa ve sola tamamen baş aşağı eğilir (avuç içi yukarı bakacak şekilde) tabanı sırasıyla sağa ve sola hareket ettirir
- Tutucu üzerindeki LED, her iki tutucu kontrol düğmesine birlikte basılarak açılır/kapanır.
Titremeyi önlemek için tüm düğme yanıtları saniyenin 1/4'ü kadar geciktirilir.
Eldivenin montajı biraz lehimleme ve çok fazla dikiş gerektirir. Temel olarak eldivenin yapısına 2 düğme, esnek direnç, Accel/Gyro modülü takmak ve kabloları konektör kutusuna yönlendirmek yeterlidir.
Bağlantı kutusundaki iki LED:
- YEŞİL - güç açık
- SARI - kol kontrol kutusuna veri iletildiğinde yanıp söner.
Adım 4: VERİCİ KUTUSU
Verici kutusu esasen Arduino Nano, nRF24 kablosuz modül, esnek kablo konektörü ve 3 dirençten oluşur: Eldiven üzerindeki kavrayıcı kontrol düğmeleri için 2 adet aşağı çekilebilir 10 kOhm direnç ve bileği kontrol eden esnek sensör için 20 kOhm gerilim bölmeli direnç.
Her şey bir vero-board üzerinde birlikte lehimlenmiştir. nRF24'ün Nano üzerinde "asılı" olduğunu unutmayın. Bunun parazite neden olabileceğinden endişelendim ama işe yarıyor.
9v pil kullanmak, kayışlı kısmı biraz hantallaştırıyor, ancak LiPo pillerle uğraşmak istemedim. Belki sonra.
Lehimleme talimatları için lütfen pin atama adımına bakın
Adım 5: KOL KONTROL KUTUSU
Kol kontrol kutusu Arduino Uno'ya dayanmaktadır. Eldivenden komutları nRF24 modülü aracılığıyla kablosuz olarak alır ve OWI Robotoc Kolunu 3 L293D sürücü çipi aracılığıyla kontrol eder.
Neredeyse tüm Uno pinleri kullanıldığı için kutunun içinde çok sayıda kablo var - zar zor kapanıyor!
Tasarım gereği, kutu KAPALI modda başlar (sanki bir kırmızı durdurma düğmesine basılmış gibi), operatöre eldiveni takıp hazırlanmak için zaman tanır. Hazır olduğunda operatör yeşil düğmeye basar ve torpido gözü ile kontrol kutusu arasındaki bağlantı hemen kurulmalıdır (eldiven üzerindeki sarı LED ve kontrol kutusundaki kırmızı LED ile belirtildiği gibi).
OWI'YE BAĞLANMAK
Robotik kola bağlantı 14 pinli çift sıra başlık (yukarıdaki resme göre) 14 telli yassı kablo ile yapılır.
- LED bağlantıları ortak topraklama (-) ve arduino pin A0'a 220 Ohm direnç üzerinden yapılır.
- Tüm motor kabloları L293D 3/6 veya 11/14 (sırasıyla +/-) pinlerine bağlanır. Her L293D 2 motoru, dolayısıyla iki çift pimi destekler.
- OWI Güç hatları, sarı tepenin arkasındaki 7 pinli konnektörün en soldaki (+6v) ve en sağdaki (GND) pinleridir. (Yukarıdaki resimde takılı kabloları görebilirsiniz). Bu ikisi, üç L293D'nin tümünde 8 (+) ve 4, 5, 12, 13 (GND) pinlerine bağlanır.
Lütfen bir sonraki adımda pin atamasının geri kalanına bakın
6. Adım: PIN ATANMASI
NANO:
- 3.3v - 3.3v - nRF24L01 yongası (pim 2)
- 5v - 5v - İvmeölçer kartı, düğmeler, esnek sensör
- a0 - esnek direnç girişi
- a1 - sarı "haberleşme" LED kontrolü
- a4 - SDA'dan ivmeölçere
- a5 - SCL'den ivmeölçere
- d02 - nRF24L01 çip Kesinti pimi (pim 8)
- d03 - tutucu düğme girişini aç
- d04 - tutucu düğme girişini kapat
- d09 - SPI CSN pininden nRF24L01 çipine (pin 4)
- d10 - SPI CS pininden nRF24L01 çipine (pin 3)
- d11 - SPI MOSI'den nRF24L01 yongasına (pin 6)
- d12 - SPI MISO'dan nRF24L01 çipine (pim 7)
- d13 - SPI SCK'den nRF24L01 çipine (pim 5)
- Vin - 9v +
- GND - ortak zemin
UNO:
- 3.3v - 3.3v - nRF24L01 yongası (pin 2)
- 5v - 5v için düğmeler
- Vin - 9v +
- GND - ortak zemin
- a0 - Bilek LED'i +
- a1 - Shift Register Select için SPI SS pini - Shift Register'da pin 12'ye
- a2 - KIRMIZI düğme girişi
- a3 - YEŞİL düğme girişi
- a4 - yön tabanı sağ - L293D üzerindeki pim 15
- a5 - iletişim ledi
- d02 - nRF24L01 IRQ girişi (pin 8)
- d03 - L293D'de temel servo (pwm) pin 1 veya 9'u etkinleştir
- d04 - sol yön tabanı - ilgili L293D üzerindeki pim 10
- d05 - L293D'de omuz servosu (pwm) pin 1 veya 9'u etkinleştir
- d06 - L293D'de dirsek servosu (pwm) pin 1 veya 9'u etkinleştir
- d07 - SPI CSN pininden nRF24L01 çipine (pin 4)
- d08 - SPI CS pininden nRF24L01 çipine (pin 3)
- d09 - L293D'de bilek servosu (pwm) pin 1 veya 9'u etkinleştir
- d10 - L293D'de tutucu servo (pwm) pin 1 veya 9'u etkinleştir
- d11 - SPI MOSI'den nRF24L01 yongasına (pim 6) ve Shift Register'da pim 14'e
- d12 - SPI MISO'dan nRF24L01 yongasına (pim 7)
- d13 - SPI SCK'den nRF24L01 yongasına (pim 5) ve Shift Register'daki pim 11'e
VİTES KAYDI VE L293D'ler:
- 74HC595'in QA (15) pini, L293D #1'in pin 2'sine
- 74HC595'in QB (1) pini ile L293D #1'in pin 7'si arasında
- 74HC595'in QC (2) pini ile L293D #1'in pin 10'u arasında
- 74HC595'in QD (3) pini ile L293D #1'in pin 15'i arasında
- 74HC595'in QE (4) pini, L293D #2'nin pin 2'sine
- 74HC595'in QF (5) pini ile L293D #2'nin pin 7'si arasında
- 74HC595'in QG (6) pini ile L293D #2'nin pin 10'u arasında
- 74HC595'in QH (7) pini ile L293D #2'nin pin 15'i arasında
7. Adım: İLETİŞİM
Eldiven, kontrol kutusuna saniyede 10 kez veya sensörlerden birinden bir sinyal alındığında 2 bayt veri gönderir.
6 kontrol için 2 bayt yeterlidir, çünkü yalnızca şunları göndermemiz gerekir:
- LED için AÇIK/KAPALI (1 bit) - Aslında motorlarla uyumlu olması için 2 bit kullandım, ancak bir tane yeterli
- 5 motor için KAPALI/SAĞ/SOL: her biri 2 bit = 10 bit
Toplam 11 veya 12 bit yeterlidir.
Yön kodları:
- KAPALI: 00
- SAĞ: 01
- SOL: 10
Kontrol kelimesi şöyle görünür (bit bazında):
Bayt 2 ---------------- Bayt 1----------------
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 LED-- M5-- M4-- M3-- M2-- M1--
- M1 - tutucu
- M2 - bilek
- M3 - dirsek
- M4 - omuz
- M5 - taban
Bayt 1, 1'den 4'e kadar olan motorların sağ/sol yönünü kontrol ettiği için doğrudan kaydırma yazmacına beslenebilir.
İletişim için 2 saniyelik bir zaman aşımı etkinleştirildi. Zaman aşımı meydana gelirse, tüm motorlar KIRMIZI bir düğmeye basılmış gibi durdurulur.
Adım 8: SKETCHES ve Daha Fazlası…
ELDİVEN
Eldiven çizimi aşağıdaki kitaplıkları kullanır:
- DirectIO - Github'da mevcut
- I2Cdev - Github'da mevcut
- Tel - Arduino IDE'nin bir parçası
- MPU6050 - Github'da mevcut
- SPI - Arduino IDE'nin bir parçası
- RF24 - Github'da mevcut
ve benim tarafımdan geliştirilen üç kütüphane:
- AvgFilter - Github'da mevcuttur
- DhpFilter - Github'da mevcut
- TaskScheduler - Github'da mevcut
Eldiven çizimi burada mevcuttur: Eldiven Çizimi v1.3
KOL KONTROL KUTUSU
Kol çizimi aşağıdaki kitaplıkları kullanır:
- DirectIO - Github'da mevcut
- PinChangeInt - Github'da mevcut
- SPI - Arduino IDE'nin bir parçası
- RF24 - Github'da mevcut
ve benim tarafımdan geliştirilen bir kütüphane:
TaskScheduler - Github'da mevcut
Kol taslağı burada mevcuttur: Kol taslağı v1.3
Kullanılan donanım için Veri Sayfaları
- 74HC595 kaydırmalı yazmaç - veri sayfası
- L293D motor sürücüsü - veri sayfası
- nRF24 kablosuz modül - veri sayfası
- MPU6050 ivmeölçer/jiroskop modülü - veri sayfası
31 Mayıs 2015 GÜNCELLEME:
Eldiven ve kol kontrol kutusu çizimlerinin yeni bir versiyonu burada mevcuttur: Glove and Arm Sketches v1.5
Onlar da burada github'da bulunuyor.
Değişiklikler
- Bilek, Dirsek, Omuz ve Taban motorları için istenen motor hızını Eldiven'den kontrol hareketinin açısıyla orantılı olarak 5 bitlik bir değer (0.. 31) olarak göndermek için iletişim yapısına iki bayt daha eklendi (aşağıya bakın). Arm Kontrol Kutusu, değerleri [0.. 31] her bir motor için ilgili PWM değerlerine eşler. Bu, operatör tarafından kademeli hız kontrolü ve daha hassas kol kullanımı sağlar.
- Yeni jest seti:
1. LED: Düğmeler kontrol LED'i - orta parmak düğmesi - AÇIK, serçe parmak düğmesi - KAPALI
2. TUTUCU: Esnek şerit kontrolleri Tutucu - yarı bükülü parmak - AÇIK, tamamen bükülü parmak - KAPALI
3. BİLEK: Bilek, avuç içini sırasıyla YUKARI ve AŞAĞI tamamen yatay konumdan eğerek kontrol edilir. Daha fazla eğim daha fazla hız sağlar
4. KOL: Kol, avuç içini SOL ve SAĞ tamamen yatay konumdan eğerek kontrol edilir. Daha fazla eğim daha fazla hız sağlar
5. OMUZ: Omuz, avuç içi düz yukarıya bakacak şekilde SAĞ ve SOL döndürülerek kontrol edilir. Avuç içi dirsek ekseni boyunca döndürülür (elinizi sallar gibi)
6. TABAN: Taban, avuç içi düz aşağı bakacak şekilde omuzla aynı şekilde kontrol edilir.
9. Adım: BAŞKA NELER?
İŞ BAŞINDA HAYAL
Bu tür sistemlerde olduğu gibi, çok daha fazlasını yapmak üzere programlanabilirler.
Örneğin, mevcut tasarım zaten standart uzaktan kumanda ile mümkün olmayan ek yetenekler içermektedir:
- Kademeli hız artışı: Her motor hareketi, maksimum hıza ulaşılana kadar her 1 saniyede bir kademeli olarak artırılan önceden tanımlanmış bir minimum hızda başlatılır. Bu, her bir motorun (özellikle bilek ve kavrayıcı) daha hassas bir şekilde kontrol edilmesini sağlar.
- Daha hızlı hareket iptali: Arm Box tarafından bir motoru durdurmak için komut alındığında, motoru yaklaşık 50 ms için anlık olarak tersine çevirir, böylece hareketi "kırar" ve daha hassas bir kontrole izin verir.
BAŞKA?
Belki daha ayrıntılı bir kontrol hareketi uygulanabilir. Veya ayrıntılı kontroller için eşzamanlı hareketler kullanılabilir. Kol dans edebilir mi?
Eldiveni nasıl yeniden programlayacağınıza dair bir fikriniz varsa veya test etmemi istediğiniz bir eskiz versiyonuna sahipseniz - lütfen bana bildirin: [email protected]
Adım 10: *** KAZANDIK !!! ***
Bu proje, Microsoft'un sponsor olduğu Coded Creations yarışmasında Birincilik Ödülü kazandı.
Bunu kontrol et! WOO-HOO!!!
Kodlu Kreasyonlarda İkincilik Ödülü
Önerilen:
[2020] Bir RC Arabayı Kontrol Etmek İçin İki (x2) Mikro:bit Kullanımı: 6 Adım (Resimlerle)
[2020] Bir RC Arabayı Kontrol Etmek İçin İki (x2) Mikro:bit Kullanma: İki (x2) mikro:bitiniz varsa, bunları bir RC arabayı uzaktan kontrol etmek için kullanmayı düşündünüz mü? Bir RC arabayı verici olarak bir micro:bit ve diğerini alıcı olarak kullanarak kontrol edebilirsiniz.Bir mikro:b kodlamak için MakeCode düzenleyici kullandığınızda
Yıldırımı Tespit Etmek İçin Telsiz Kullanmak: 4 Adım
Yıldırım Tespiti İçin Telsiz Kullanmak: Küçük telsizler, müzik veya spor dinlemekten daha fazlası için kullanılabilir. Tüm telsizler (yalnızca ucuz AM telsizleri bile) yıldırım ve diğer atmosferik olayları tespit etmek için kullanılabilir. Eğitimli bir kulakla, yıldırımın hareket edip etmediğini bile belirleyebilirsiniz
HUE Işıklarını Kontrol Etmek için Pille Çalışan Wi-Fi Akıllı Düğme: 5 Adım (Resimlerle)
HUE Işıklarını Kontrol Etmek için Pille Çalışan Wi-Fi Akıllı Düğmesi: Bu proje, pille çalışan bir IoT Wi-Fi düğmesinin 10 dakikadan daha kısa sürede nasıl oluşturulacağını gösterir. Düğme, IFTTT üzerinden HUE ışıklarını kontrol eder. Bugün elektronik cihazlar oluşturabilir ve bunları kelimenin tam anlamıyla dakikalar içinde diğer akıllı ev cihazlarına bağlayabilirsiniz. Ne
I2C ile Birçok Nixie Tüpünü Kontrol Etmek için Çok Yönlü I/O Genişletici PCB: 9 Adım (Resimlerle)
I2C ile Birçok Nixie Tüpünü Kontrol Etmek için Çok Yönlü I/O Genişletici PCB: Şu anda eski nixie tüplerini hayata geçirme konusunda çok fazla ilgi var. Piyasada çok sayıda nixie tüp saat kiti mevcuttur. Eski Rus nixie tüpleri stoğu üzerinde bile canlı bir ticaret olduğu ortaya çıktı. Ayrıca burada Eğitilebilirler'de orada
Step Motoru Kontrol Etmek İçin Eski Dizüstü Bilgisayarın Dokunmatik Yüzeyini Yeniden Kullanın: 11 Adım (Resimlerle)
Step Motoru Kontrol Etmek İçin Eski Dizüstü Bilgisayarın Dokunmatik Yüzeyini Yeniden Kullanın: Bu projeyi birkaç ay önce yaptım. Birkaç gün önce, Reddit'te r/Arduino'da projenin bir videosunu yayınladım. İnsanların projeyle ilgilendiğini görünce, Arduino kodunda bazı değişiklikler yaptığım bu Eğitilebilirliği yapmaya karar verdim ve