İçindekiler:
- Adım 1: İhtiyacınız Olabilecek Şeyler…
- Adım 2: Donanımı Bağlayın
- Adım 3: Arduino'yu programlayın
- 4. Adım: Yazılımı Yükleyin
- Adım 5: Arayüz Programını Kullanın
- Adım 6: Yaratıcı Olun
Video: Arduino Tabanlı Seri Servo Kontrolör: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:22
Bu, Arduino'ya dayalı çoklu servolar için basit bir seri kontrolördür. (ilk dersim de:))
Buradaki çalışmaların çoğu, yazılımın arduino ile konuşmasını sağlamak ve aktarılacak veriler için bir protokol yapmaktan geldi. Donanım yönüne gelince, kullandığım tek şey iki servoydu (burada Parallax standart servo.) Bir Sparkfun Arduino ProtoShield ve ATMEGA328'li bir Arduino Duemilanove, ancak bu parçaların çoğu benzer öğelerle değiştirilebilir. Bu projeyi bir RC sisteminin parçası olarak düşündüm, ancak iletişimi kurmak çok zaman aldı. Herhangi birinin herhangi bir iyileştirmesi, fikri veya hatası varsa, lütfen yorum yapmaktan çekinmeyin. EDIT: Bunu bir süre önce yazdım, yeni yayınlamaya başladım.
Adım 1: İhtiyacınız Olabilecek Şeyler…
Bunu inşa etmek için ihtiyacınız olacak bazı şeyler. 1. Arduino kartı (seçtiğiniz) 2. iki (veya bir) servo 3. atlama telleri 4. Visual Studio 2008 Express -- bağlantı (isteğe bağlı) 5. Arduino IDE -- bağlantı Üzgünüm Linux ve Apple hayranları, programım yalnızca üzerinde çalışır şimdilik windows, ancak yine de kodu değiştirmeden arduino'ya seri komutları manuel olarak gönderebilirsiniz.
Adım 2: Donanımı Bağlayın
Bu adımda çok karmaşık bir şey yok. Sadece bir servoyu pin 9'a ve diğerini pin 10'a bağlayın.
Adım 3: Arduino'yu programlayın
şimdi taslağı arduino'ya yükleyebilirsiniz.
İşte kodun basit bir dökümü: #include Servo myservo; // bir servoyu kontrol etmek için servo nesnesi yarat Servo myservo1; int gelenByte = 0, datacount = 0, sayaç = 0, hazır = 0; // gelen seri veri için karakter verisi[10]; const char doğrulama[8] = "ma11hew"; karakter komutu[3]; geçersiz kurulum() { myservo.attach(9); myservo1.attach(10); Seri.başla(38400); // seri portu açar, veri hızını ayarlar Serial.println("Hi Arduino Here!"); // seri portu tanımlamaya yardımcı olmak için eklendi Bu sadece seri portu ve servoları ayarlar. int i; for(i = 0; i<180;i++) { myservo.write(i); gecikme(15); } myservo.write(5); for(i = 0; i<180;i++) { myservo1.write(i); gecikme(15); } myservo1.write(5); } Servoların doğru çalıştığını doğrulamak için basit süpürme hareketi. geçersiz döngü() { hazır = 0; sayaç = 0; while (1==1) { if (Serial.read() != doğrulama[sayaç]) { break; } if(sayaç == 6) { gecikme(20); komut[0] = Seri.read(); komut[1] = Seri.read(); //if (Serial.read() == ((komut[1] * 12) % 8)) // { hazır = 1; //} Serial.println("kaydedilmiş komut"); } sayaç ++; gecikme(2); } bu, doğru yetkilendirme dizesi için seri arabelleği kontrol eder ve ardından komut için iki bayt alır. Yorumlanan if ifadesi geçici bir sağlama toplamına izin verir, ancak manuel arabirim oluşturmayı zorlaştırır. hazır 0 olarak ayarlanabilir, böylece bozuk veri durumunda olduğu gibi komutlar ayrıştırılmaz. //komutlar arasında arama if (hazır == 1) { if (komut[0] == 'T') { komut[0] = 0; Serial.print("pin 9'dan gaz kelebeği kontrolü: "); Serial.println(harita(komut[1], 32, 126, 2, 180), Aralık); myservo.write(harita(komut[1], 32, 126, 2, 180)); } if (komut[0] == 'S') { komut[0] = 0; Serial.print("Pin 10'dan gaz kelebeği kontrolü: "); Serial.println(harita(komut[1], 32, 126, 2, 180), Aralık); myservo1.write(harita(komut[1], 32, 126, 2, 180)); } } } kodun geri kalanı, geçerli komutlar (T veya S.) için komutu aramaktır, eğer eşleşirse bir sonraki baytı alır ve servoya gönderir. haritada daha fazlası(komut[1], 32, 126, 2, 180) daha sonra… buradaki kod, ihtiyaç duyabileceğiniz her şey için genişletilebilir (örn. ışıklar, motorlar, IR, vb.) bu kod sorunsuz çalışmalıdır değişiklikler.
4. Adım: Yazılımı Yükleyin
Bunu kurmanın iki yolu var… nsis yükleyici: Aşağıdaki kendi kendine açılan yükleyiciyi indirin ve çalıştırın. Yükleme sırasında kaynakları yükleme seçeneğiniz olacaktır. yükleyici ikili paketi, çekirdek c++ dll'lerini yükler, böylece görsel c++ kurulu olmayan bir bilgisayarda çalıştırılabilir. Yükleyici bittiğinde, masaüstünden veya başlat menüsünden çalıştırabilirsiniz. Zip yolu (doğrulanmamış): İndirin ve çalıştırın, çalışması gerekir. belki. (Zip arşivi, yükleyici tarafından kaynaksız olarak oluşturulan klasör yapısının aynısına sahiptir. Test etmek için görsel stüdyosu olmayan bir makinem yok, bu yüzden çalışmayabilir.)
Adım 5: Arayüz Programını Kullanın
Programı kullanmak için önce arduino çiziminde tanımlanan baud hızını seçin. Değiştirilmemiş taslak varsayılan olarak 38400 baud'dur, ancak daha yavaş bir radyo bağlantısı gibi ihtiyaçlarınızı karşılayacak şekilde değiştirilebilir. not: 38400'den yüksek baud hızları çok kararlı olmadı, bunun nedeni uart'ın veriler işlenmeden önce dolmasıdır. Ardından, kullanılacak COM bağlantı noktasını seçin. program varsayılan olarak COM4'tür, değiştirdiğinizden emin olun, aksi takdirde program çökecektir. Son olarak, aç'ı tıklayın. Her şey yolunda giderse, program seçilen seri portu seçilen baud hızında açacaktır. Değilse, program işlenmeyen bir istisna ile muhtemelen çökecektir. bağlantı noktasının doğru olduğundan emin olun ve tekrar deneyin. Arduino'ya doğrudan komutlar göndermek için metin kutularını kullanın. "map(command[1], 32, 126, 2, 180)", arduino tarafından ASCII'de okunabilen *boşluk* ile ~ arasındaki tüm 94 olası komutu servo için 2'den 180'e ölçeklendirir. ASCII 32'den (boşluk) küçük veya 126'nın (~) üzerindeki herhangi bir bayt varsayılan olarak 63 (?)'dir. İz çubukları, doğrudan komutlar için daha kolay bir arabirim sağlar. her adım, artımlı olarak arduino'ya bir seri komut gönderir.
Adım 6: Yaratıcı Olun
Bununla yapmak için harika şeyler düşünün. Bazı fikirler: 1. Bir araba için uzaktan gaz kelebeği. 2. 3D kamera montajı 3. sualtı gezgini İyi eğlenceler!!
Önerilen:
ESP8266 Kalkanı Tabanlı Arduino için Seri UDP/IP Ağ Geçidi: 8 Adım
ESP8266 Kalkanına Dayalı Arduino için Seri UDP/IP Ağ Geçidi: 2016'da "Arduino'nuzu IP Ağına bağlamak için kendi Wifi ağ geçidinizi nasıl yapılır" talimatını zaten yayınladım. Bazı kod geliştirmeleri yaptığım için ve hala bu çözümü kullanıyorum. Yine de şimdi bazı ESP8266 kalkanları var
Mikro-kontrolör Tabanlı Metronom: 5 Adım
Mikro-kontrolör Tabanlı Metronom: Bir metronom, müzisyenler tarafından şarkılardaki vuruşları takip etmek ve yeni bir enstrüman öğrenen yeni başlayanlar arasında bir zamanlama duygusu geliştirmek için kullanılan bir zamanlama cihazıdır. Müzikte çok önemli olan ritim duygusunun korunmasına yardımcı olur. Bu metronom
LED'lerin Doğru Seri Bağlanması - Seri Vs Paralel Bağlantı: 6 Adım
LED'leri Doğru Seri Vs Paralel Bağlantıya Bağlama: Bu talimatta, LED - Işık Yayan Diyotlardan ve birden fazla ünitemiz varsa bunları nasıl bağlayabileceğimizden bahsediyoruz. Bu, keşke en başından bilseydim dediğim bir ders çünkü elektronik devrelerle uğraşmaya başladığımda birkaç tane inşa ettim
Evive ile Kapasitif Dokunmatik (Arduino Tabanlı Kontrolör): 6 Adım (Resimli)
Evive ile Kapasitif Dokunma (Arduino Tabanlı Kontrolör): Akıllı telefonunuzun dokunmatik ekranının nasıl çalıştığını biliyor musunuz? Akıllı telefonun cam ekranın altında bir dizi dokunmatik sensör vardır. Günümüzde kapasitans dokunmatik algılama teknolojisine dayanmaktadır ve hafif bir dokunuş bile kolayca algılanmaktadır. Kapasitif dokunma hissedilir
Arduino HVAC Servo Termostat/Kontrolör: 5 Adım (Resimlerle)
Arduino HVAC Servo Termostat/Denetleyici: 'Yeşil' talimatıma hoş geldiniz! Size bir Arduino'yu, iki servo motoru, bir sıcaklık sensörünü ve bir duvardan geçen HVAC ünitesi için dijital bir termostat yapmak için bir miktar metali (veya tahtayı) nasıl kullanacağınızı göstereceğim. CB Richard Ellis'e göre (büyük bir gerçek