![Arduino негізіндегі сериялық серво контроллері: 6 қадам Arduino негізіндегі сериялық серво контроллері: 6 қадам](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10967780-arduino-based-serial-servo-controller-6-steps-j.webp)
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51
Бұл 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 -ға жүктей аласыз.
Міне кодтың қарапайым бөлінуі: #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. су астындағы ровер Көңілді болыңыз !!
Ұсынылған:
ESP8266 Shield негізіндегі Arduino үшін UDP/IP сериялық шлюзі: 8 қадам
![ESP8266 Shield негізіндегі Arduino үшін UDP/IP сериялық шлюзі: 8 қадам ESP8266 Shield негізіндегі Arduino үшін UDP/IP сериялық шлюзі: 8 қадам](https://i.howwhatproduce.com/images/009/image-24231-j.webp)
ESP8266 Shield негізіндегі Arduino үшін UDP/IP сериялы шлюзі: Мен 2016 жылы «Arduino -ны IP желісіне қосу үшін өзіңіздің Wi -Fi шлюзін қалай жасауға болады» деген нұсқаулық жарияладым. Мен кодты жақсартқаннан кейін мен бұл шешімді қолданамын, дегенмен қазір ESP8266 қалқандары бар
SAMD21 негізіндегі USB тақтасын аппараттық сериялық портқа енгізу: 3 қадам
![SAMD21 негізіндегі USB тақтасын аппараттық сериялық портқа енгізу: 3 қадам SAMD21 негізіндегі USB тақтасын аппараттық сериялық портқа енгізу: 3 қадам](https://i.howwhatproduce.com/images/010/image-29240-j.webp)
SAMD21 негізіндегі USB порттарын аппараттық сериялық портқа енгізу!: Қазіргі уақытта Arduino (немесе кез келген басқа үйлесімді) тақтасының USB портын эмуляцияланған сериялық порт ретінде пайдалану стандарт болып табылады. Бұл біздің сүйікті тақталардан деректерді жөндеуге, жіберуге және алуға өте пайдалы.Мен uChipwhen -де жұмыс істедім, деректер кестесінен өтіп
Arduino негізіндегі DIY ойын контроллері - Arduino PS2 ойын контроллері - DIY Arduino Gamepad көмегімен Tekken ойнау: 7 қадам
![Arduino негізіндегі DIY ойын контроллері - Arduino PS2 ойын контроллері - DIY Arduino Gamepad көмегімен Tekken ойнау: 7 қадам Arduino негізіндегі DIY ойын контроллері - Arduino PS2 ойын контроллері - DIY Arduino Gamepad көмегімен Tekken ойнау: 7 қадам](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
Arduino негізіндегі DIY ойын контроллері | Arduino PS2 ойын контроллері | DIY Arduino Gamepad көмегімен Tekken ойнау: Сәлеметсіздер ме, балалар, ойындарды ойнау әрқашан қызықты, бірақ өзіңіздің жеке DIY контроллеріңізбен ойнау қызықты, сондықтан біз осы нұсқаулықта arduino pro micro көмегімен ойын контроллерін жасаймыз
Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам
![Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам](https://i.howwhatproduce.com/images/001/image-764-35-j.webp)
Arduino негізіндегі байланыссыз инфрақызыл термометр | Ардуиноны қолданатын инфрақызыл термометр: Сәлеметсіз бе, балалар, біз индуктивті емес термометр жасаймыз, өйткені кейде сұйықтықтың/қатты заттың температурасы тым жоғары немесе төмен болады, содан кейін онымен байланыс жасау және оны оқу қиын. сол кездегі температура
Қадамдық серво моторын Arduino арқылы 3D принтер көмегімен сериялық басқарумен инкапсуляциялау - Pt4: 8 қадамдары
![Қадамдық серво моторын Arduino арқылы 3D принтер көмегімен сериялық басқарумен инкапсуляциялау - Pt4: 8 қадамдары Қадамдық серво моторын Arduino арқылы 3D принтер көмегімен сериялық басқарумен инкапсуляциялау - Pt4: 8 қадамдары](https://i.howwhatproduce.com/images/002/image-3317-43-j.webp)
Қадамдық серво -қозғалтқышты Arduino арқылы 3D принтер көмегімен сериялы басқарумен инкапсуляциялау - Pt4: Motor Step сериясының осы төртінші бейнебаянында біз бұрын білгенімізді сериялық байланыс пен нақты басқару арқылы басқарылатын сатылы серво қозғалтқышты жасау үшін қолданамыз. Arduino бақылайтын резистивті кодер көмегімен кері байланыс. Ішінде