Мазмұны:

Arduino негізіндегі сериялық серво контроллері: 6 қадам
Arduino негізіндегі сериялық серво контроллері: 6 қадам

Бейне: Arduino негізіндегі сериялық серво контроллері: 6 қадам

Бейне: Arduino негізіндегі сериялық серво контроллері: 6 қадам
Бейне: Lesson 89: How to control 360 Continuous Servo with Arduino 2024, Шілде
Anonim
Arduino негізіндегі сериялық серво контроллері
Arduino негізіндегі сериялық серво контроллері
Arduino негізіндегі сериялық серво контроллері
Arduino негізіндегі сериялық серво контроллері

Бұл Arduino негізіндегі бірнеше сервоға арналған қарапайым сериялық контроллер. (менің де бірінші нұсқаушым:))

Бұл жұмыстың көп бөлігі бағдарламалық жасақтаманы arduino -мен сөйлесуге және деректерді беру протоколын құруға байланысты болды. Аппараттық аспектілерге келетін болсақ, мен қолданған екі серво болды (Parallax стандартты серво мұнда.) Sparkfun Arduino ProtoShield және ATMEGA328 бар Arduino Duemilanove, бірақ бұл бөлшектердің көпшілігін ұқсас элементтермен алмастыруға болады. Мен бұл жобаны RC жүйесінің бөлігі ретінде ойладым, бірақ байланыс орнату көп уақытты алды. Егер біреуде жақсартулар, идеялар немесе қателер болса, түсініктеме беруден тартынбаңыз. Өңдеу: Мен мұны біраз уақыт бұрын жазғанмын, оны жақында жариялау керек болды.

1 -қадам: Сізге қажет нәрселер …

Сізге қажет болуы мүмкін нәрселер…
Сізге қажет болуы мүмкін нәрселер…
Сізге қажет болуы мүмкін нәрселер…
Сізге қажет болуы мүмкін нәрселер…

Мұны жасау үшін сізге кейбір нәрселер қажет болады. 1. Arduino тақтасы (сіз таңдайсыз) 2. екі (немесе бір) серво 3. қосқыш сымдар 4. Visual Studio 2008 Express - сілтеме (міндетті емес) 5. Arduino IDE - сілтеме Кешіріңіз Linux пен Apple жанкүйерлері, менің бағдарламам тек жұмыс істейді терезелер әзірге, бірақ сіз кодты өзгертпестен arduino -ға қолмен жібере аласыз.

2 -қадам: Жабдықты қосыңыз

Жабдықты қосыңыз
Жабдықты қосыңыз

Бұл қадамға күрделі ештеңе жоқ, тек қана бір сервоны 9 -штырға, екіншісін 10 -штыруға жалғаңыз.

3 -қадам: Arduino бағдарламасын жасаңыз

Arduino бағдарламасын жасаңыз
Arduino бағдарламасын жасаңыз

Енді сіз эскизді arduino -ға жүктей аласыз.

Міне кодтың қарапайым бөлінуі: #include Servo myservo; // сервоприводты басқару үшін servo объектісін жасау Servo myservo1; int incomingByte = 0, datacount = 0, counter = 0, ready = 0; // кіріс сериялық деректер char деректері үшін [10]; const char verify [8] = «ma11hew»; char командасы [3]; void setup () {myservo.attach (9); myservo1.attach (10); Serial.begin (38400); // сериялық портты ашады, Serial.println («Hi Arduino мұнда!») деректер жылдамдығын орнатады; // сериялық портты анықтауға көмектесу үшін қосылды Бұл жай ғана сериялық порт пен серверлерді орнатады. int i; for (i = 0; i <180; i ++) {myservo.write (i); кешіктіру (15); } myservo.write (5); for (i = 0; i <180; i ++) {myservo1.write (i); кешіктіру (15); } myservo1.write (5); } Сервалардың дұрыс жұмыс істеуін тексеру үшін қарапайым сыпыру қозғалысы. void loop () {ready = 0; санауыш = 0; while (1 == 1) {if (Serial.read ()! = verify [counter]) {break; } if (counter == 6) {delay (20); команда [0] = Serial.read (); команда [1] = Serial.read (); // if (Serial.read () == ((команда [1] * 12) % 8)) // {дайын = 1; //} Serial.println («сақталған пәрмен»); } есептегіш ++; кешіктіру (2); } бұл сериялық буфердің дұрыс авторизация жолын тексереді, содан кейін пәрмен үшін екі байтты алады. егер түсініктеме уақытша бақылау сомасына мүмкіндік берсе, бірақ қолмен интерфейсті қиындатады. дайын параметрін 0 -ге орнатуға болады, сондықтан деректер бүлінген жағдайда командалар талданбайды. // командалар арқылы іздеу if (ready == 1) {if (command [0] == 'T') {command [0] = 0; Serial.print («дроссельді басқару түйреуіші 9:»); Serial.println (карта ([1], 32, 126, 2, 180), DEC); myservo.write (карта (команда [1], 32, 126, 2, 180)); } if (command [0] == 'S') {command [0] = 0; Serial.print («дроссельді басқару түйреуіш 10 -да:»); Serial.println (карта ([1], 32, 126, 2, 180), DEC); myservo1.write (карта (пәрмен [1], 32, 126, 2, 180)); }}} кодтың қалған бөлігі - жарамды командалар үшін пәрменін іздеу (T немесе S.), егер ол сәйкес келсе, келесі байтты алады және оны сервосқа жібереді. картадан толығырақ ([1], 32, 126, 2, 180 пәрмендері) кейінірек … бұл жердегі код сізге қажет болуы мүмкін (мысалы, шамдар, қозғалтқыштар, ИҚ және т.б.) үшін кеңейтіледі, бұл код жақсы жұмыс істеуі керек модификациялар.

4 -қадам: Бағдарламалық жасақтаманы орнатыңыз

Бағдарламалық жасақтаманы орнату
Бағдарламалық жасақтаманы орнату

Менде оны орнатудың екі әдісі бар: nsis қондырғысы: төменде өздігінен ашылатын орнатушыны жүктеп алып, оны іске қосыңыз. Орнату кезінде сізде дереккөздерді орнату мүмкіндігі болады. орнатушы екілік пакет негізгі c ++ dll файлдарын орнатады, сондықтан оны көрнекі c ++ орнатылмаған компьютерде іске қосуға болады. Орнату аяқталғаннан кейін оны жұмыс үстелінен немесе іске қосу мәзірінен іске қосуға болады. zip жолы (тексерілмеген): жүктеп алыңыз және іске қосыңыз, ол жұмыс істеуі керек. мүмкін. (Zip мұрағаты дереккөздерсіз орнатушы жасаған қалта құрылымына ие. Менде оны тексеретін визуалды студиясы жоқ машина жоқ, ол жұмыс істемеуі мүмкін.)

5 -қадам: Интерфейс бағдарламасын қолданыңыз

Интерфейс бағдарламасын қолданыңыз
Интерфейс бағдарламасын қолданыңыз
Интерфейс бағдарламасын қолданыңыз
Интерфейс бағдарламасын қолданыңыз

Бағдарламаны пайдалану үшін алдымен arduino эскизінде анықталған беру жылдамдығын таңдаңыз. Өзгертілмеген эскиз әдепкі бойынша 38400 bod құрайды, бірақ баяу радио байланысы сияқты қажеттіліктерге сәйкес өзгертілуі мүмкін. Ескерту: 38400 -ден жоғары бер жылдамдығы өте тұрақты болған жоқ, менің ойымша, бұл деректер өңделместен бұрын толтырылады. Әрі қарай, COM портын таңдаңыз. бағдарлама әдепкі бойынша COM4 болады, оны өзгертіңіз, әйтпесе бағдарлама бұзылады. Соңында ашу түймесін басыңыз. Егер бәрі ойдағыдай болса, бағдарлама таңдалған жіберу жылдамдығында таңдалған сериялық портты ашады. Олай болмаған жағдайда, бағдарлама өңделмеген ерекшеліктермен бұзылуы мүмкін. порттың дұрыс екеніне көз жеткізіп, әрекетті қайталаңыз. Arduino -ға тікелей пәрмендерді жіберу үшін мәтіндік жәшіктерді пайдаланыңыз. «Карта (пәрмен [1], 32, 126, 2, 180)» ASCII -де arduino оқитын барлық 94 мүмкін командаларды, * бос орыннан ~ дейін ~ дейін өлшейді. кез келген байт ASCII 32 -ден (бос орын) немесе 126 -дан жоғары (~) 63 -ке дейін әдепкі бойынша (?) Жолақ жолақтары тікелей командалар үшін интерфейсті қамтамасыз етеді. әр қадам ардуиноға біртіндеп сериялық пәрмен жібереді.

6 -қадам: Шығармашылықпен айналысыңыз

Шығармашылықпен айналысыңыз!
Шығармашылықпен айналысыңыз!
Шығармашылықпен айналысыңыз!
Шығармашылықпен айналысыңыз!

Мұны істеу үшін керемет нәрселер туралы ойланыңыз. Кейбір идеялар: 1. Автокөліктің қашықтан реттегіші. 2. 3D камералық қондырғы 3. су астындағы ровер Көңілді болыңыз !!

Ұсынылған: