Мазмұны:
- 1 -қадам: Сізге не қажет …
- 2 -қадам: тақтаны дәнекерлеу
- 3 -қадам: Arduino орнату
- 4 -қадам: Python орнату
- 5 -қадам: Сиқыр қайда болады
Бейне: Python-GUI және Arduino қосылған серводрайвер тақтасы: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Ұшақтардың прототипін жасау немесе құрастыру кезінде сіз жиі жүретін жолды тексеруге немесе сервоприводты орташа күйге қоюға тура келетін мәселеге тап боласыз.
Егер сіз бүкіл RC-жүйесін немесе тестін жасамасаңыз, серваны қаншалықты итере аласыз немесе ортаңғы позиция қайда болса, онда бұл тақта сізге арналған! Бұл серводы белгіленген орындарға жылжытуға немесе артқа -артқа жүруге мүмкіндік береді.
Бұл таңқаларлық түрде жақсы жұмыс істейді, тіпті циклде бір позициядан екіншісіне жүгіретін 6 серво.
Сонымен қатар, Python-GUI мен Arduino арасындағы Serial көмегімен байланыс туралы білуге болатын жақсы жоба.
1 -қадам: Сізге не қажет …
Бұл жоба үшін сізге мыналар қажет:
Аппараттық құрал
- Ардуино нано кабельмен. Мен клон қолдандым, ал Python коды клонның CH340 чипін күтеді
- Прототип тақтасы. 7х5 см жеткілікті
- Кейбір 2, 54 мм тақырыптар мен түйреуіштер
- 1-6 сервос
- Сервоға арналған қуат көзі (мен 4 аккумуляторлы батарея пакетін қолдандым)
Бағдарламалық қамтамасыз ету
- Python 3:
- CH340 чиптеріне арналған USB драйвері: CH340 драйверлері үшін драйверлерге арналған Google
- Arduino IDE:
2 -қадам: тақтаны дәнекерлеу
Дәнекерлеу суреттегі Фритзингке сәйкес тікелей алға қарай жүреді. Серводы 3 түйреуішке оңай қосуға болатынына көз жеткізіңіз.
- 3 істікшелі жолдар Arduino нано 3, 5, 6, 9, 10 және 11 цифрлық түйреуішіне бекітілген.
- Қызыл сым Arduino 5V-істігіне бекітілген
- Қара сым Arduino GND түйреуішіне қосылған
- 3 істікшелі жолдардың астындағы түйреуіштер әдеттегі RC қабылдағыш қуат көзін қосуға арналған, сіз бұрандалы терминалдар, XT-Коннекторлары, JST немесе… немесе… сияқты қосқыштарды қалауыңызша қосуға болады.
Мен өз басым, Arduino -ны кірістіру үшін әйелдердің жоғарғы қатарларын ұнатамын, бірақ бұл сізге байланысты.
Есіңізде болсын, қысқартылған әйел тақырыптары тестілеу үшін Arduino 5V көзін пайдаланып серво беруге мүмкіндік беретін секіргіш болып табылады. Егер сіз оны шамадан тыс жүктесеңіз, Arduino қалпына келеді және қажетті қарқыннан айырылады. Оларды басқа қуат көзіне қоспас бұрын алып тастау керек.
3 -қадам: Arduino орнату
Arduino IDE орнатыңыз және бекітілген нобаймен Arduino нано жарқылын қосыңыз.
4 -қадам: Python орнату
Жүктелгеннен кейін Python 3 орнатыңыз. «PATH» айнымалысын жасау опциясын тексеріңіз.
Pip көмегімен тағы екі пакетті орнату қажет. Ол үшін «Windows» пернесін басып, «cmd» деп теріп, «enter» түймесін басыңыз. Пәрмен жолында келесі пәрмендерді теріңіз:
- pip сериялық орнатыңыз
- piip pyserial орнатыңыз
- pip tkinter орнатыңыз
Көріп отырғаныңыздай, маған сериялық модульдер де керек, бұл ең тиімдісі емес, себебі сериялық серияны алмастыруы керек. Дегенмен, ол жұмыс істейді және мен енді үйрене бастадым;).
Python-сценарийді IDE-де ашыңыз, оны іске қоспаңыз немесе оны терминалдан тікелей іске қосыңыз.
Ашылмалы мәзірде сіз екі режимнің бірін таңдай аласыз: «Тікелей өту» және «Пинг-понг»:
- Тікелей өту: Серво-позицияны микросекундтарда бірінші бағанға енгізіңіз және servo көрсетілген позицияға ауысуы үшін «Бастау» түймесін басыңыз.
- Пинг -понг: екінші және үшінші бағанға төменгі шекараны және жоғарғы шекараны енгізіңіз. Бұл төменгі және жоғарғы позиция, олардың арасында серво артқа -артқа өтеді. «Пинг -понг уақыты» бағанында сервис жоғарғы немесе төменгі позицияға жеткенде күтетін уақытты миллисекундпен көрсетуге болады. «Бастау» түймесін басыңыз, сонда серво артқа -артқа қозғала бастайды, «Тоқтату» түймесін басыңыз, сонда серво тоқтайды.
5 -қадам: Сиқыр қайда болады
Ақырында, мен Python мен Arduino арасында сериялық байланысқа түскісі келетіндерге арналған кодтағы кейбір мәліметтерді атап өткім келеді.
Енді Python бағдарламасында не болады?
Ең алдымен, бағдарлама осы жолдағы COM-порттарына не қосылғанын тексереді және оны тізімге сақтайды:
self. COMPortsList = тізім (serial.tools.list_ports.comports ())
Содан кейін ол әйгілі CH340 чипін тапқанша, оны сақтап, содан кейін циклден кейін тізбекті байланыс орнатқанша тізім бойынша айналады. Назар аударыңыз, цикл бірінші CH340 табылғаннан кейін үзіледі.
for in in. COMPortsList: if «CH340» in p [1]: # Arduino Clone өзін іздейді. COMPort = p [0] үзіліс басқа: pass self. Ser = serial. Serial (self. COMPort, 57600)
Сериялық байланыс 57600 жылдамдықтағы COM-портымен орнатылады.
Ал Arduino коды не істейді? Ардуинода тек бір COM-порт болғандықтан, сериялық байланыс тек бір жолдан тұрады:
Serial.begin (57600);
Енді біз екі портты байланыс үшін пайдалана аламыз. Бұл жағдайда тек Python -дан Arduino -ға хабарламалар. Хабарлар мұнда Python -дан жіберіледі. Сериялық байланыс байттарды әдепкі бойынша жібереді. Бұл сонымен қатар деректерді жіберудің ең жылдам әдісі және мен білемін, әлі де кең таралған. Серво санының инттері (сондықтан Arduino қай серво жылжу керектігін біледі) және микросекундтардағы орын байтқа айналады.
Command = struct.pack ('> B', self. Place) # «self. Place» int айнымалысы байтқа айналады
self. Ser.write (Пәрмен) # Байтты сериялық порттық пәрменге жазу = int (self. ServoPos.get ()) // 10 # Кірісті өрістен оқу және int Command = struct.pack (' > B ', Command) # Int byt in self. Ser.write (Command) # Сериялық портта байтты жазу
Сондай -ақ, деректерді талдау уақытты қажет етеді (мысалы, төрт байт «1», «2», «3» және «0» төрт түрлі таңба ретінде емес, int 1230 ретінде интерпретацияланады) және мұны Arduino -да емес жасаған дұрыс.
Arduino жағында жіберілген ақпарат келесі түрде алынады:
if (Serial.available ()> 1) {// Егер сериялық деректер болса, онда цикл енгізіледі c = Serial.read (); // Бірінші байт (серво саны) Micros = Serial.read () айнымалысына сақталады; // Серваның позициясы мұнда сақталады Micros = Micros * 10; }
Ұсынылған:
Тақталар тақтасы: Электронды тоқыма прототиптер тақтасы: 5 қадам (суреттермен)
ThreadBoard: Электронды тоқыма жылдам прототиптеу тақтасы: ThreadBoard V2-дің 3D басып шығарылмайтын нұсқасы үшін нұсқаулықты мына жерден табуға болады. ThreadBoard-дің 1-нұсқасын мына жерден табуға болады. электронды тоқыма бұйымдарын жылдам прототиптеу үшін
Hologram Nova және Ubidots көмегімен қосылған шешімдерді қосыңыз және жаңартыңыз: 9 қадам
Hologram Nova және Ubidots көмегімен қосылған шешімдерді қосыңыз және жаңартыңыз: инфрақұрылымды жаңарту үшін голограмманы қолданыңыз. Ubidots -қа деректерді (температура) жіберу үшін Raspberry Pi көмегімен Hologram Nova орнатыңыз. Келесі нұсқаулықта Ubidots Raspberry Pi көмегімен голограмма Нованы қалай орнату керектігін көрсетеді
RabbitPi - Alexa қосылған, IFTTT қосылған, құлақ түретін IoT көмекшісі: 12 қадам
RabbitPi - Alexa қосылған, IFTTT қосылған, IoT -тың құлағын ұстайтын көмекшісі: бұл 2005 жылы ескірген Nabaztag " ақылды қоян " Мен Raspberry Pi 3 пен Adafruit Motor HAT көмегімен заманауи IoT көмекшісіне, веб камера микрофонымен және Philips Soundshooter динамигімен сүйкімді түпнұсқа корпусында қайта құрдым
Интернетке қосылған SMART LED анимациялық сағаты веб-басқару тақтасы бар, уақыт сервері синхрондалған: 11 қадам (суреттермен)
Интернетке қосылған SMART LED анимациялық сағаты веб-басқару тақтасы бар, синхронды уақыт сервері: Бұл сағаттың тарихы 30 жылдан астам уақытқа созылады. Менің әкем бұл идеяны мен 10 жасымда, светодиоды төңкерістен бұрын, - жарық диоды болған кезде, олардың қазіргі жарқырауының 1/1000 шамасында болды. Нағыз
ESP-12E және ESP-12F бағдарламалау және әзірлеу тақтасы: 3 қадам (суреттермен)
ESP-12E және ESP-12F бағдарламалау және әзірлеу тақтасы: Бұл тақтаның міндеті қарапайым болды: ESP-12E және ESP-12F модульдерін NodeMCU тақталары сияқты оңай бағдарламалай білу (яғни түймелерді басудың қажеті жоқ). Қолданылатын IO -ға кіруге болатын нанға арналған түйреуіштер бар. Сериялық тасымалдау үшін бөлек USB қолданыңыз