Мазмуну:
- 1 -кадам: Сизге эмне керек…
- 2 -кадам: Тактага ширетүү
- 3 -кадам: Arduino орнотуу
- 4 -кадам: Python орнотуу
- 5 -кадам: Сыйкыр болгон жерде
Video: Python-GUI жана Arduino менен Servodriver-Board: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Прототиптештирүүдө же моделдик учактарды жасоодо, көбүнчө көйгөйгө туш болосуз, сиз servo саякатын текшерип же servosту орто абалга коюңуз.
Эгерде сиз RC-системаңызды же тестти бүткөрүүнү каалабасаңыз, сервону канчалык алыс түртө аласыз же орто позиция кайда, анда бул такта сиз үчүн! Бул сервону белгиленген кызматтарга жылдырууга же артка жана артка саякат кылууга мүмкүнчүлүк берет.
Бул таң калыштуу түрдө жакшы иштейт, ал тургай, бир позициядан экинчисине жарышып жүргөн 6 сервос менен.
Ошондой эле, Python-GUI менен Arduino ортосундагы Serialди колдонуу менен байланышуу жөнүндө билүү жакшы долбоор.
1 -кадам: Сизге эмне керек…
Бул долбоор үчүн сизге төмөнкүлөр керек болот:
Аппараттык
- Arduino нано кабели менен. Мен клонду колдондум жана 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-Connectors, JST же… же…
Жеке мен, Arduino'ду киргизген аялдардын баш катарын жакшы көрөм, бирок бул сеники.
Көңүл буруңуз, кыска аялдын баш аттары секирүүчү, бул сервисти Arduino 5V булагын тестирлөө максатында жеткирүүгө мүмкүндүк берет. Эгерде сиз аны өтө эле чыңдасаңыз, Arduino баштапкы абалга келет жана ылдамдыгын жоготот. Башка электр менен камсыздоону туташтыруудан мурун, аларды алып салуу КЕРЕК.
3 -кадам: Arduino орнотуу
Arduino IDE орнотуп, тиркелген эскиз менен Arduino наносун жаркылдатыңыз.
4 -кадам: Python орнотуу
Жүктөп алгандан кийин Python 3 орнотуңуз. "ЖОЛ" өзгөрмөсүн түзүү үчүн параметрди текшерүүнү унутпаңыз.
Пипти колдонуу менен дагы эки пакетти орнотушуңуз керек. Бул үчүн "Windows" баскычын басып, "cmd" терип, "кирүү" баскычын басыңыз. Буйрук сабында төмөнкү буйруктарды териңиз:
- pip орнотуу сериялык
- piip pyserial орнотуу
- tkinter орнотуу
Көрүнүп тургандай, мага сериялуу модулдар керек, жана бул эң натыйжалуу эмес, анткени pyserial серияны алмаштырышы керек. Ошентсе да ал иштейт жана мен жаңы үйрөнө баштадым;).
Python-Scriptти IDEде ачыңыз жана аны иштетпеңиз же аны терминалдан түз иштетиңиз.
Ачылуучу менюда сиз эки режимдин бирин тандай аласыз, "Түз жүр" жана "Пинг-понг":
- Түз барыңыз: Биринчи графага микросекунддарда Серво-позицияны киргизиңиз жана сервону көрсөтүлгөн позицияга жылдыруу үчүн "Старт" баскычын басыңыз.
- Пинг -понг: Экинчи жана үчүнчү тилкеде төмөнкү чекти жана жогорку чекти киргизиңиз. Бул servo артка жана артка кете турган төмөнкү жана жогорку абал. "Пинг -понг убактысы" графасында сервис жогорку же төмөнкү абалга жеткенде күтө турган убактысын миллисекунд менен көрсөтсөңүз болот. "Старт" баскычын басыңыз жана серво ары -бери жыла баштайт, "Токто" баскычын басыңыз жана серво токтойт.
5 -кадам: Сыйкыр болгон жерде
Акыр -аягы, мен Python менен Arduino ортосунда бир аз сериялык байланышка кирүүнү каалагандар үчүн коддогу айрым деталдарды белгилегим келет.
Эми, Python программасында эмне болот?
Биринчиден, программа бул линиядагы COM-портторуна эмне тиркелгенин текшерет жана тизмеге сактайт:
self. COMPortsList = тизме (serial.tools.list_ports.comports ())
Андан кийин ал белгилүү CH340-чипин тапмайынча тизмеден өтөт, аны сактап калат жана фор-циклден кийин сериялык байланышты орнотот. Эскертүү, биринчи CH340 табылганда for-loop үзүлөт.
for in in. COMPortsList: if "CH340" in p [1]: # Arduino Clone self. COMPort = p [0] тыныгуу башка: pass self. Ser = serial. Serial (self. COMPort, 57600)
Сериялык байланыш COM порту менен 57600 бод ылдамдыгы менен түзүлөт.
Жана Arduino коду эмне кылат? Ооба, Arduinoдо бир гана COM-порт болгондуктан, сериялык туташуу бир гана линия:
Serial.begin (57600);
Эми биз байланыш үчүн эки портту колдоно алабыз. Бул учурда, Pythonдон Arduinoго келген билдирүүлөр гана. Билдирүүлөр бул жерге Pythonдон жөнөтүлөт. Сериялык туташуу байттарды демейки катары өткөрөт. Бул ошондой эле маалыматтарды жөнөтүүнүн эң ылдам жолу жана мен билгендей дагы эле кеңири таралган. Ошентип, servo санынын инттери (ошондуктан Arduino кайсы сервону жылдырууну билет) жана микросекунддардагы абал байтка айланат.
Command = struct.pack ('> B', self. Place) # "self. Place" int өзгөрмөсү байтка айланат
self. Ser.write (Command) # Байтты Serial-Port Commandга жазуу = 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; }
Сунушталууда:
Ардуино жана Python менен Bitcoin кирешеңизди жана жоготууңузду элестетиңиз: 6 кадам
Ардуино жана Python менен Bitcoin кирешеңизди жана жоготууңузду элестетип көрүңүз: Негизги идея Жеке мен крипто валютасынын инвесторумун. Бирок менде да чоң жумуш бар. Ошентип, мен биткойндун баасын мүнөтүнө 10 жолу көзөмөлдөп тура албайм. Бирок, мен дагы эле акча таап жатканымды же жоготуп жатканымды билгим келет. Ошентип
Ардуино роботу алыстыгы, багыты жана айлануу даражасы менен (Чыгыш, Батыш, Түндүк, Түштүк) Bluetooth модулу жана Автономдуу робот кыймылынын жардамы менен үн менен башкарылат.: 6 кадам
Ардуино роботу алыстыгы, багыты жана айлануу даражасы менен (Чыгыш, Батыш, Түндүк, Түштүк) Bluetooth модулунун жана Автономдуу Робот Кыймылынын жардамы менен Үн менен Башкарылат. , Сол, Оң, Чыгыш, Батыш, Түндүк, Түштүк) Үн буйругун колдонуу менен аралыкты сантиметр менен талап кылды. Роботту автономдуу түрдө жылдырса болот
WiFi жана IR Remote жана Android колдонмосун колдонуп NodeMCU жана IR алуучу менен 8 релелик көзөмөл: 5 кадам (сүрөттөр менен)
WiFi жана IR Remote жана Android тиркемесин колдонуп NodeMCU жана IR алуучу менен 8 реле көзөмөлү: wifi жана ир алыскы жана андроид колдонмосу аркылуу nodemcu жана IR кабыл алгычты колдонуп 8 реле өчүргүчтөрүн көзөмөлдөө БУЛ ЖЕРДЕ
Үн менен башкарылган Arduino роботу + Wifi камерасы + Gripper + APP жана кол менен колдонуу жана тоскоолдуктарды болтурбоо режими (KureBas Ver 2.0): 4 кадам
Үн менен башкарылган Arduino Robot + Wifi Камера + Gripper + APP & Кол менен колдонуу жана тоскоолдуктарды болтурбоо режими (KureBas Ver 2.0): KUREBAS V2.0 кайтып келди Ал жаңы функциялары менен абдан таасирдүү. Анын кармагычы, Wifi камерасы жана ал үчүн чыгарылган жаңы тиркемеси бар
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү