İçindekiler:

UChip - 2.4GHz Radyo Tx-Rx! Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim: 3 Adım
UChip - 2.4GHz Radyo Tx-Rx! Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim: 3 Adım

Video: UChip - 2.4GHz Radyo Tx-Rx! Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim: 3 Adım

Video: UChip - 2.4GHz Radyo Tx-Rx! Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim: 3 Adım
Video: RC Model Uçak Eğitimi 2024, Temmuz
Anonim
Image
Image
UChip - 2.4GHz Radyo Tx-Rx Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim!
UChip - 2.4GHz Radyo Tx-Rx Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim!
UChip - 2.4GHz Radyo Tx-Rx Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim!
UChip - 2.4GHz Radyo Tx-Rx Üzerinden Uzaktan Kumandalı Motorlara ve/veya Servolara Basit Çizim!

RC dünyasını gerçekten seviyorum. Bir RC oyuncağı kullanmak, küçük bir tekne, araba veya drone olmasına rağmen size olağanüstü bir şeyin kontrolünün sizde olduğu hissini verir!

Ancak oyuncaklarınızı kişiselleştirmek ve onlara istediğinizi yaptırmak kolay değil. Genellikle, varsayılan verici ayarlarını veya özel olarak tasarlanmış anahtar ve düğme kombinasyonlarını kullanmakla sınırlandırılırsınız.

Her şeyi gerçekten istediğiniz gibi kontrol etmek oldukça zordur, çünkü esas olarak RC dünyası, bundan en iyi şekilde yararlanmak için oldukça derin bir donanım düzeyinde programlama bilgisi gerektirir.

Birçok platform ve kurulum denedim, ancak RC oyuncağımda gerçek bir özelleştirme yapmadan önce kodla yeterince rahat olmak için her zaman büyük bir çaba harcandı.

Eksik olan, Arduino IDE'yi kullanarak yükleyebileceğim ve Radio RX'ten (alıcı) gelen değerleri kolayca istenen Motor/Servo kontrolüne çevirmeme izin verecek basit bir çizimdi.

Bu nedenle, uChip ve Arduino IDE ile biraz oynadıktan sonra oluşturduğum şey burada: Motorları ve/veya Servoları 2.4GHz Radyo Tx-Rx üzerinden uzaktan kontrol etmek için basit bir çizim!

Malzeme listesi

1 x uChip: Arduino IDE uyumlu kart

1 xTx-Rx Radyo sistemi: cPPM alıcılı herhangi bir radyo sistemi iyidir (kombinim eski bir Spectrum DX7 Tx + Orange R614XN cPPM Rx), Tx ve Rx'i bağlamak için doğru bağlama prosedürünü uyguladığınızdan emin olun.

1 x Batarya: Motorlar ve servolarla uğraşırken yüksek deşarj akımlı bataryalar gereklidir.

Motorlar/Servolar: ihtiyaçlarınıza göre

Motorları/Servoları sürmek için elektronik bileşenler: basit dirençler, MOSFET'ler ve Diyotlar, sürüş amacını gerçekleştirmenize olanak tanır.

Adım 1: Kablolama

kablolama
kablolama
kablolama
kablolama
kablolama
kablolama
kablolama
kablolama

Bileşenleri şemalarda açıklandığı gibi birbirine bağlayın.

Rx doğrudan uChip'e bağlıdır ve herhangi bir harici bileşen gerektirmez. Farklı bir alıcı kullanıyorsanız, seviye değiştiriciye ihtiyacınız olup olmadığını kontrol edin. cPPM sinyalini uChip PIN_9'a bağladığınızdan emin olun (bu, kodu başka bir SAMD21 kartına uyarlamak istemeniz durumunda PORTA19'dur).

Kalan kablolama, motoru ve/veya servoyu sürmek için gereklidir. Ekli şema, uChip'i genellikle endüktif yükleri sürerken meydana gelen artışlardan/aşmalardan korumak için temel devreyi temsil eder. uChip güvenliğini korumak için anahtar bileşen, VEXT (uChip pin 16) ve GND'ye (uChip pin 8) paralel olarak yerleştirmeniz gereken 5.1V'luk (şematikte D1) güç Zener diyotudur. Alternatif olarak, Zener diyotu kullanmak yerine, D2, C1 ve C2 ile temsil edilen ve ters ani artışların uChip bileşenlerine zarar vermesini önleyen isteğe bağlı devreyi tercih edebilirsiniz.

Basitçe şemayı kopyalayarak ve kontrol pinlerini değiştirerek (güç pinleri (PIN_8 ve PIN_16) ve cPPM pini (PIN_9) hariç herhangi bir pini kullanabilirsiniz) ihtiyaç duyduğunuz kadar motor/servo sürebilirsiniz. Zener diyotuyla (veya isteğe bağlı devre bileşenleriyle) temsil edilen yalnızca bir koruma devresine ihtiyacınız olsa da, motor/servo sürüşüyle ilgili elektrikli bileşenlerin, motor/servo sayısı kadar çoğaltılması gerektiğini unutmayın. sürmeyi düşündüğünüz servolar.

En az 2 motor ve 2 servo sürmek istediğim için resimde de görebileceğiniz gibi anlatılan devreyi uygulayan küçük bir PCB yaptım. Bununla birlikte, ilk prototip, uçan teller kullanılarak bir proto-board üzerinde yapıldı.

Bu nedenle, bu basit projeyi uygulamak için herhangi bir lehimleme/PCB tasarım becerisine ihtiyacınız yok:)

Adım 2: Programlama

Programlama
Programlama

İşte sihir! İşlerin ilginçleştiği yer burasıdır.

Önceki şemada açıklanan devreyi kurduysanız, basitçe “DriveMotorAndServo.ino” taslağını yükleyebilirsiniz ve her şey işe yarayacaktır.

Koda bir göz atın ve nasıl çalıştığını kontrol edin.

Başlangıçta, tanımlamak için kullanılan birkaç #define vardır:

- Rx'in sayı kanalları (Turuncu 614XN ile 6 Kanal)

- motorların/servoların bağlı olduğu pimler

- Servo ve motorlar için kullanılan max ve min

- Radyo kanalları aralığı için kullanılan maks ve min

Ardından, motorlar/servos değişkenlerinin bildirildiği değişken tanımlama bölümü vardır.

Bir önceki şemada açıklandığı gibi birden fazla motoru ve bağlı bir servoyu sürmeniz durumunda, taslağı değiştirmeniz ve eklediğiniz ek motorları/servoları işleme kodunu eklemeniz gerekir. Kullandığınız kadar çok servo/motor kadar Servo, servo_value ve motor_value eklemeniz gerekir.

Değişken bildirimi bölümünde, cPPM sinyalinin Yakalama Karşılaştırması için kullanılan bazı geçici değişkenler de vardır. BU DEĞİŞKENLERİ DEĞİŞTİRMEYİN!

Bundan sonra yapmanız gereken loop() fonksiyonundadır. Burada, gelen kanalların değerini ne şekilde kullanacağınıza karar verebilirsiniz.

Benim durumumda, gelen değeri doğrudan motora ve servoya bağladım, ancak ihtiyaçlarınıza göre değiştirebilirsiniz! Bu eğitimde bağlantı verilen video ve resimlerde 2 motor ve 2 servo bağladım, ancak 3, 4, 5, … maksimum kullanılabilir boş pin sayısına kadar olabilir (uChip durumunda 13).

Yakalanan kanal değerini, “dizini” 0'dan NUM_CH - 1'e kadar olan ch[indeks] dizisinde bulabilirsiniz. Her kanal, telsizinizdeki bir çubuk/anahtar/düğmeye karşılık gelir. Ne olduğunu anlamak size kalmış:)

Son olarak, neler olduğunu anlamayı kolaylaştırmak için bazı hata ayıklama işlevleri uyguladım. Kanal değerini yerel SerialUSB'ye yazdırmak için #define DEBUG'a yorum yapın/yorumu kaldırın.

İPUCU: loop() işlevinin altında daha fazla kod var. Kodun bu kısmı, uChip güç pinlerini ayarlamak, yakalama karşılaştırma özelliği tarafından oluşturulan kesintileri işlemek, zamanlayıcıları ve hata ayıklama amacını ayarlamak için gereklidir. Kayıtlarla oynamak için yeterince cesur hissediyorsanız, değiştirmekten çekinmeyin!

Düzenleme: Çizim güncellendi, haritalama işlevindeki bir hata düzeltildi.

Adım 3: Oyna, Sür, Yarış, Uç

Image
Image

Tx ve Rx sistemini doğru şekilde bağladığınızdan emin olun. Pili bağlayarak açın. Her şeyin çalıştığını doğrulayın. Her bir kanalın işlevlerini istediğiniz gibi genişletebilir veya işlevini değiştirebilirsiniz, çünkü artık gelecekteki RC modelinizin tüm kontrolü sizdedir.

Şimdi, özelleştirilmiş RC modelinizi oluşturun!

Not: Ciltleme yapmak oldukça sıkıcı olabileceğinden, Tx-Rx sisteminizi manuel olarak yapmak zorunda kalmadan bağlamanıza olanak tanıyan bir çizimi yakında yayınlamayı planlıyorum. Güncellemeler için takipte kalın!

Önerilen: