Mundarija:

Arduino asosidagi ketma -ket Servo boshqaruvchisi: 6 qadam
Arduino asosidagi ketma -ket Servo boshqaruvchisi: 6 qadam

Video: Arduino asosidagi ketma -ket Servo boshqaruvchisi: 6 qadam

Video: Arduino asosidagi ketma -ket Servo boshqaruvchisi: 6 qadam
Video: Qonuniyat asosidagi ketma ketlik 2024, Iyul
Anonim
Arduino asosidagi ketma -ket Servo boshqaruvchisi
Arduino asosidagi ketma -ket Servo boshqaruvchisi
Arduino asosidagi ketma -ket Servo boshqaruvchisi
Arduino asosidagi ketma -ket Servo boshqaruvchisi

Bu Arduino -ga asoslangan bir nechta servo uchun oddiy ketma -ket boshqaruvchi. (mening birinchi ko'rsatma ham:))

Bu ishlarning aksariyati dasturiy ta'minotni arduino bilan gaplashish va ma'lumotlarni uzatish uchun protokol tuzishdan kelib chiqqan. Uskuna jihatiga kelsak, men ishlatgan ikkita servo (bu erda Parallax standart servo.) Sparkfun Arduino ProtoShield va ATMEGA328 bilan Arduino Duemilanove, lekin bu qismlarning ko'pini shu kabi elementlar bilan almashtirish mumkin. Men bu loyihani RC tizimining bir qismi sifatida o'ylab topdim, lekin aloqani o'rnatish ko'p vaqtni oldi. Agar kimdir yaxshilanishlar, fikrlar yoki xatolar bo'lsa, sharhlarda yozing. EDIT: Men buni biroz oldin yozganman, yaqinda nashr qilishim kerak edi.

1 -qadam: Sizga kerak bo'lgan narsalar …

Sizga kerak bo'lishi mumkin bo'lgan narsalar …
Sizga kerak bo'lishi mumkin bo'lgan narsalar …
Sizga kerak bo'lishi mumkin bo'lgan narsalar …
Sizga kerak bo'lishi mumkin bo'lgan narsalar …

Buni qurish uchun sizga ba'zi narsalar kerak bo'ladi. 1. Arduino kartasi (siz tanlaysiz) 2. ikkita (yoki bitta) servo 3. o'tish simlari 4. Visual Studio 2008 Express - havola (ixtiyoriy) 5. Arduino IDE - havola Kechirasiz Linux va Apple muxlislari, mening dasturim faqat ishlaydi hozircha derazalar, lekin siz kodni o'zgartirmasdan qo'lda ketma -ket buyruqlarni arduino -ga yuborishingiz mumkin.

2 -qadam: Uskuna ulang

Uskunani ulang
Uskunani ulang

Bu bosqichda juda murakkab narsa yo'q, faqat bitta servoni 9 -pinga, ikkinchisini esa 10 -pinga ulang.

3 -qadam: Arduino -ni dasturlash

Arduino -ni dasturlash
Arduino -ni dasturlash

Endi siz eskizni arduino -ga yuklashingiz mumkin.

Bu erda kodning oddiy tasnifi: #include Servo myservo; // servo nazorat qilish uchun servo ob'ekt yaratish Servo myservo1; int incomingByte = 0, datacount = 0, counter = 0, ready = 0; // kiruvchi ketma -ket ma'lumotlar char ma'lumotlari uchun [10]; const char verify [8] = "ma11hew"; char buyrug'i [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // ketma -ket portni ochadi, ma'lumotlar tezligini o'rnatadi Serial.println ("Salom Arduino mana!"); // ketma -ket portni aniqlashga yordam berish uchun qo'shildi, bu faqat ketma -ket port va servolarni o'rnatadi. int i; uchun (i = 0; i <180; i ++) {myservo.write (i); kechikish (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); kechikish (15); } myservo1.write (5); } Servoalarning to'g'ri ishlashini tekshirish uchun oddiy siljish harakati. void loop () {tayyor = 0; hisoblagich = 0; while (1 == 1) {if (Serial.read ()! = verify [counter]) {tanaffus; } if (hisoblagich == 6) {kechiktirish (20); buyruq [0] = Serial.read (); buyruq [1] = Serial.read (); // agar (Serial.read () == ((buyruq [1] * 12) % 8)) // {tayyor = 1; //} Serial.println ("saqlangan buyruq"); } hisoblagich ++; kechikish (2); } bu ketma -ket buferni to'g'ri avtorizatsiya satrini tekshiradi va buyruq uchun ikki baytni oladi. sharhlangan bo'lsa, agar bayonot vaqtinchalik nazorat summasiga ruxsat bersa, lekin qo'lda interfeysni qiyinlashtirishi mumkin. ready -ni 0 -ga o'rnatish mumkin, shuning uchun buyruqlar buzilmagan ma'lumotlar kabi tahlil qilinmaydi. // buyruqlar orqali qidirish if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print ("9 -pinli gaz kelebeği boshqaruvi:"); Serial.println (xarita (buyruq [1], 32, 126, 2, 180), DEC); myservo.write (xarita (buyruq [1], 32, 126, 2, 180)); } if (buyruq [0] == 'S') {buyruq [0] = 0; Serial.print ("10 -pinli gaz kelebeği boshqaruvi:"); Serial.println (xarita (buyruq [1], 32, 126, 2, 180), DEC); myservo1.write (xarita (buyruq [1], 32, 126, 2, 180)); }}} kodning qolgan qismi - buyrug'ini haqiqiy buyruqlar uchun qidirish (T yoki S.), agar u mos kelsa, keyingi baytni oladi va uni servoga yuboradi. xaritada ko'proq (buyruq [1], 32, 126, 2, 180) keyinroq … bu yerdagi kod sizga kerak bo'ladigan hamma narsaga (masalan, chiroqlar, motorlar, IQ va h.k.) kengaytirilishi mumkin, bu kod yaxshi ishlamasligi kerak. o'zgartirishlar.

4 -qadam: Dasturiy ta'minotni o'rnating

Dasturiy ta'minotni o'rnatish
Dasturiy ta'minotni o'rnatish

Buni o'rnatishning ikkita usuli bor … nsis o'rnatuvchisi: Quyida o'z -o'zidan ochiladigan o'rnatuvchini yuklab oling va ishga tushiring. O'rnatish paytida siz manbalarni o'rnatish imkoniyatiga ega bo'lasiz. O'rnatuvchi ikkilik to'plami c ++ dll fayllarini o'rnatadi, shuning uchun uni vizual c ++ o'rnatilgan kompyuterda ishlatish mumkin. O'rnatish tugagach, uni ish stoli yoki ishga tushirish menyusidan ishga tushirishingiz mumkin. zip yo'li (tasdiqlanmagan): Yuklab oling va ishga tushiring, u ishlashi kerak. balki. (Zip arxivi manbaisiz o'rnatuvchi tomonidan yaratilgan bir xil papka tuzilishiga ega. Menda uni sinab ko'rish uchun vizual studiyasi bo'lmagan mashinam yo'q, u ishlamasligi mumkin.)

5 -qadam: Interfeys dasturidan foydalaning

Interfeys dasturidan foydalaning
Interfeys dasturidan foydalaning
Interfeys dasturidan foydalaning
Interfeys dasturidan foydalaning

Dasturdan foydalanish uchun birinchi navbatda arduino eskizida ko'rsatilgan uzatilish tezligini tanlang. O'zgartirilmagan eskiz standart sifatida 38400 bodni tashkil qiladi, lekin sekinroq radio aloqasi kabi narsalarga bo'lgan ehtiyojingizga mos ravishda o'zgartirilishi mumkin. Eslatma: 38400 dan yuqori bo'lgan bod tezligi unchalik barqaror emas edi, menimcha, bu ma'lumotni qayta ishlashdan oldin uart to'ldiriladi. Keyin, foydalanish uchun COM portini tanlang. dasturning standart qiymati COM4 bo'lib, uni o'zgartirganingizga ishonch hosil qiling, aks holda dastur buziladi. Nihoyat, ochishni bosing. Agar hamma narsa yaxshi bo'lsa, dastur tanlangan ketma -ket portni tanlangan tezlikda ochadi. Aks holda, dastur istisnosiz qulab tushishi mumkin. port to'g'ri ekanligiga ishonch hosil qiling va qaytadan urinib ko'ring. Arduino -ga to'g'ridan -to'g'ri buyruqlar yuborish uchun matn qutilaridan foydalaning. "Xarita (buyruq [1], 32, 126, 2, 180)" ASCII -dagi arduino tomonidan o'qilishi mumkin bo'lgan 94 ta mumkin bo'lgan buyruqlar, * bo'sh joydan ~ gacha ~ o'lchanadi. ASCII 32 (bo'sh joy) dan past bo'lgan yoki 126 (~) dan yuqori bo'lgan har qanday baytlar 63 (?) Yo'l chiziqlari to'g'ridan -to'g'ri buyruqlar uchun eaiser interfeysini ta'minlaydi. har bir qadam ketma -ket arduino -ga ketma -ket buyruq yuboradi.

6 -qadam: Ijodkor bo'ling

Ijodkor bo'ling!
Ijodkor bo'ling!
Ijodkor bo'ling!
Ijodkor bo'ling!

Buning uchun ajoyib narsalarni o'ylab ko'ring. Ba'zi fikrlar: 1. Avtomobil uchun masofadan turib gaz kelebeği. 2. 3D -kamera o'rnatgichi 3. suv osti yuruvchi rohatlaning !!

Tavsiya: