Управляем Arduino с компьютера. Python + PyQt5
Vložit
- čas přidán 22. 07. 2024
- В этом уроке покажу как сделать программу для связи Arduino с ПК на Python и PyQt5
► Огромный стартовый набор GyverKIT: kit.alexgyver.ru/
► Примеры из урока: github.com/AlexGyver/tutorials/
► Уроки Arduino на сайте: alexgyver.ru/lessons/
► Модули и датчики с Али: alexgyver.ru/arduino_shop/
► Страница "Заметок Ардуинщика": alexgyver.ru/arduino_lessons/
► Скачать Python: www.python.org/downloads/
► Скачать PyCharm: www.jetbrains.com/ru-ru/pycha...
► Скачать QT Designer: build-system.fman.io/qt-desig...
► Доки на виджеты QT: doc.qt.io/qt-5/widget-classes...
► Установка PyQt5: pip install PyQt5
► Установка pyqtgraph: pip install pyqtgraph
► Урок по графикам: www.mfitzp.com/tutorials/embe...
00:00 Начало
01:00 Коротко о языке Python, подготовка
05:07 Вспоминаем что делали в прошлом уроке
08:02 Работа с QT Designer
13:52 Добавляем элементы управления COM
14:53 Переходим в Питон
16:45 Начинаем кодить, подключаем интерфейс
18:13 Связь по Serial
19:12 Работаем с QSerialPort
21:54 Загружаем список в ComboBox
23:19 Сигналы и слоты
25:24 Обработка кнопок
26:30 Открываем порт по кнопке
29:05 Читаем входящие данные
32:26 Добавляем управление реле/фет/лед
35:26 Делаем удобную функцию отправки пакета
38:17 Управляем светодиодом
39:01 Управляем реле и мосфетом
39:34 Добавляем цвет, крутилку и текст
41:43 Управляем RGB, QSlider
43:51 Управление серво, QDial
44:40 Отправляем текст
47:00 Добавляем индикатор температуры
48:28 Парсим пакеты, температура
51:47 Добавляем показометр
53:18 Добавляем джойстик и кнопку
57:43 Добавляем график
01:02:51 Финал
Теги: #arduino #уроки #ардуино #alexgyver
●●●●●●●●●●●●●●●●●●●●
► Основной канал: / alexgyvershow
► Поддержать автора alexgyver.ru/support_alex/
► Официальный сайт: alexgyver.ru/
► Почта: alex@alexgyver.ru - Věda a technologie
Так и фанатом можно стать! Видео приятно смотреть. Ещё до конца не досмотрел, а радости уже море. Радости много от того что не нужно быть ботаном для понимания технического материала, когда человек с открытой душой и простыми словами без заумных терминов рассказывает тебе. Поклон за простоту.
Особенно эта тема важна для развития уже знающим ардуино.
спасибо)
@@ArduNotes Думаю полезнее был бы вебчик и мобильные приложения а десктоп.
@@ArduNotes Доброго времени суток. Спасибо ещё раз за помощь в освоении. Вопрос. А можно ли при помощи Proccesing и его расширении для Android сделать приложение для общения с портом телефона, аналогично serial port для компьютера. То есть приложение на телефоне будет собирать данные с микроконтроллера через usb телефона и визуализировать их при помощи нашего приложения на Proccesing. Прошу прощения если написал что-то неправильно.
Поддерживаю
Саня, спасибо за урок реализации проекта arduino c python. Я думаю, это очень актуальная тема со множеством других интересных функций и возможностей, которую можно развивать на твоём канале и все остальные меня поддежат!
Очень наглядно и доходчиво, без воды. На питоне никогда не кодил (пишу на php и js) но сходу во все врубился. Синтаксис дружелюбный. Спасибо, получил удовольствие от просмотра!
Спасибо, Алекс! Давно смотрю, безостановочно восхищаюсь.
Что-то повторил, но без доводки до практического воплощения, разобрав схему после реализации. Зато воплотил в жизнь свою схему на Ардуинке со своей же программкой в системе управления домом, уже окупилось кратно у меня и соседей, хоть они о том и не знают. Вы побудили. Спасибо вам!
ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС !
Ну это конечно сильно👍 так слёту писать и почти без ошибок причём плохо зная питон. Это заслуживает уважения.
Спасибо вам за ваш труд ждём побольше подробных уроков для начинающих!
Спасибо за видео и за Ваш труд. Благодаря вашим урокам и начал заниматься микроконтроллерами чуть больше года назад
Спасибо за эту огромнейшую работу, ты не представляешь скольким помог!
Красава побольше-бы таких видео,как раз начал изучать pyton и pychar
Невероятно емкое и полезное видео! Большущее спасибо, Алекс!
Да, Алекс. Ты проделал хорошую работу! Это титанический труд, спасибо тебе!
ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС!
Присоединяюсь. Материал просто отличный. Использовался не для ардуино. Респект! Желаю в таком же духе! Просто и доходчиво.
Спасибо Вам за Ваши уроки на данную тематику. Многим нравится такое направление. Всё таки, управление микроконтроллерами с компьютеров нужная и полезная вещь. Пожалуйста, продолжайте снимать, Вам, как и нам, это нравится. Было бы здорово, если бы ещё видеоуроки про ESP были. Дай Бог Вам здоровья.
ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС!!!
Алекс, это потрясающе) Спасибо большое)
Спасибо за урок! С точки зрения Ардуино, и Ардуино + Питон, и Ардуино + Питон + Qt - очень хорошо и наглядно.
Алекс, ты просто МОЛОДЕЦ. Продолжай развиваться и помогать другим.
Блин, я с этим несколько дней разбирался, а тут за час все что нужно.
СПАСИБО БОЛЬШОЕ!!!!!
это голливуд и магия монтажа
Еще бы урок про оболочку под андроид платформу чтобы управлять по блютузу. По идее тот же serial. 👍
вот пример czcams.com/video/6oUTEatBoh4/video.html
всё заводится с первого тычка. Но это BLE 2.0. С BLE 4.0 и выше немного сложнее.
И из самого Qt можно собирать проекты под любую ОС - хоть под винду, хоть под андроид. В примерах самого Qt есть работа QML Bluetooth 4.0.
Скетчвар тебе в помощь . Сам сделал сигналку на авто с телефона
Если устройство простое, то для управления достаточно прописать в скетче обработку нескольких запоминающихся команд. Дальше на Rx-Tx цепляется адаптер HC-06, берется с маркета Serial Terminal. В нем, кстати, можно шаблоны для ввода сохранять. И вот он ввод-вывод готов. Нет смысла городить целое отдельное приложение. Разве что для учебы.
ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС
@@sozdatelEd ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС
Шикарный материал! За считанные минуты объяснил больше чем мычат часами оч. поверхностно.
Блин, Алекс, я тебя люблю) Ты прям второе дыхание у меня открыл)
Спасибо большое тебе! Я после tkinter пытаюсь освоить qt и ни в одном видосе таких примеров не встречал. С наступающим Новым годом!!!🎄🤝
Просмотрел на одном дыхании. Спасибо!
Рад что вышел подобный ролик, так как сам только начал осваивать программирование(и начал с питона) :)
Еще не начал смотреть но уже поставил лайк! Я только что начал осваивать Python, хороший не сложный язык. Несколько лет назад купил Arduino и не знал как сделать управление с компьютера Ардуинкой. Искал и почти ничего не мог найти. Я все таки смог реализовать но очень коряво и только включение реле и забросил это дело. Я раньше Python и не думал изучать, а тут недавно занялся, понравилось и захотелось реализовать что то поинтереснее "калькуляторов". GUI имеет огромное практическое применение. Спасибо вам огромное!
Спасибо Гайвер, очень хорошие уроки. Много всего можно узнать.
И снова я ложусь в два ночи. Спасибо Гайвер, очень интересно и информативно!
Месяц тому назад я создал условно игровой руль с помощью Arduino Nano + Python, так как напрямую моя Nano не прошивается как джойстик. Приходилось самому во всем разбираться. И тут вот тебе видос все готовое
I don't speak Russian, but the tutorial is excellent. Exactly what I want. Design a Layout with Designer and use the Layout in Code instead of generating all Widgets in Code.
ИИСУС ХРИСТОС ЕСТЬ МЕССИЯ И ОН ВОСКРЕС !!
JESUS IS THE KING OF THE KINGS
LOVE GOD AND EVERYONE
GOD IS REAL!
666, the Number of the beast
для меня этот ггайд - это конец декабря и все каникулы. по строчке по часу по чуть-чуть, каждый пройденный шаг вызывает радость.
очень хорошо что показываешь как работать с библиотеками - это база подачи материала, т.е. раскрываешь все стороны взаимодействия с предметом.
и именно то что можно взаимодейстовать с устройством посредством компа. Вообщем, подержать руками. а не эфемерное ЭХеллоWорлдЭ
такой материал необходимо развивать.
ну и чиста для проверки связи с аффтаром: куды кидать поддержку для аффтара
Спасибо за урок. Все очень понравилось, респект!
Для начала - спасибо большое!!! Ну а теперь нужно все это как то освоить😃
Только думаю не кто не делает гайды нормально. А тут вот оно! ты ты ты супер.
Этот ролик оказался последней каплей в чаше моего интереса к Ардуино, ибо Питон весьма уважаю, уважаю и СРР тоже. Мне надоело интересоваться и захотелось попробовать. Я таки приобрел себе GyverKIT-мини. По цене вышло на штуку больше, чем было бы в розницу на Али. Считаю, что оно того стоит, учитывая скорость почты и вероятности ошибок в выборе компонентов при покупке напрямую у китайцев. Доставка в Москву СДЕКом длилась всего сутки. Оплата при получении, что крайне удобно для меня. Комплектация соответствует описанию на сайте, упаковка качественная, платы запаяны в антистатические пакеты. Буду развлекаться. Кроме того, усматриваю и варианты практического применения этой платформы.
Материалов то куча, но у тебя просто, доходчиво, ничего лишнего и голос приятный
И в большинстве уроков сразу пишут код без объяснений того, где его найти.
Спасибо, супер. Для полной метеостанции не хватает сохранения данных в XML файл, отсылки данных на народный мониторинг и работы с трея. Ну и получения данных с нескольких ардуинок.
слава питону, спасибо gyver идеальное видео(хотя я его не смотрел, но уже поставио лайк)
спасибо за подробный урок) всё чётко, а главное учишь искать по докам и понимать, а не зубрить
29:05 достаточно было написать: ui.closeB.clicked.connect(serial.close) и не нужно лишней функции
37:07 можно проще: txs += str(val) + ','
ну или ещё проще: txs = ','.join(str(v) for v in data) + ';'
а если там заведомо будут только строки, то: txs = ','.join(data) + ';'
Ждал этого ролика, сам пишу подобные приложения, узнал нового.
*Спасибо. По таким видео можно учиться*
Нет. Учиться нет. Можно лишь очень поверхностно и бегло посмотреть и ознакомиться.
Если было бы возможность поставил бы тысячи лайков. Спасибо вам за Ваши видео уроки .
Видео динамит! Спасибо за ваш труд!
Агонь! Теперь нужен урок по созданию приложения Андроид - Ардуино через блютуз!
Питон мне лично очень нравится. Видео воспринимается очень легко, спасибо!
Круто!
Спасибо!
Стоило задуматься над вопросом связи с ардуинкой через питон, как мне выдало в рекомендацию это Видео.
А ведь я даже не искал, не гуглил - просто подумал...
Жесть...
Спасибо отдельное за построитель графиков - очень пригодится для моего текущего обучения по ИИ на питоне!
Добрейшего. Позволил себе немного сократить:
код 37:13 строки с 28 по 34 можно упростить до одной строки
print(','.join([str(s) for s in data])+';')
по анологии код на 37:55 строки с 28 по 34 можно упростить до одной строки
serial.write((','.join([str(s) for s in data])+';').encode())
P.s.
Я понимаю, что это может быть тяжело-читаемо для непитониста.
сначала хотел предложить что-то типа: txs = txs[:-1]+';'
потом, подумав, решил что можно так: txs= re.sub(",$", ";", txs) (правда надо сперва сделать import re)
но ваш вариант конечно тхе бест
чтобы было лучше читаемо для непитониста, просто стоит расшифровать
blabla = [str(s) for s in data] из list of integers мы делаем list of strings. просто немного непривычно что функция преобразования str(s) указывается перед описанием цикла, а не внутри цикла
','.join( blabla ) - этот list of strings мы соединяем в одну строку с помощью join и запятую берем как соединитель. join работает только с list of strings - потому перед этим и делали преобразование
+ ';' - ну и потом добавляем терминатор в конец
Следующий гайд делай на HTML, а вообще я просто офигеваю с твоих самоделок, они очень крутые.
Чего там учить то))
Спасибо за ваш труд!
Это просто праздник какой-то!
Как всегда прекрасно!😁👍
Классно. Когда нужно научится чему то новому - это супер пособие для таких как я. Пока использую Blynk для работы с арудуино на телефоне. Порог вхождения еще ниже, чем в этом уроке.
Огромное спасибо за урок !👍
как всегда лучший. ждем с нетерпением объяснение основ ООП Твоим понятным языком.
Thank you very much for your excellent course!
Хорошее видео. Учу своих студентов работать с Ардуино по USB, но на C#. Делаем похожие программки для управления/визуализации. Всё очень легко и просто. В принципе, можно писать на любых языках... Надо как нибудь и программы на Питон им показать...
Спасибо, получил удовольствие от просмотра!
не, классно, что ты не писал на ооп, потому что это правда достаточно сложная тема, но все же, считаю, что нужно выложить два архива с ооп и без, на всякий случай)
Лайк, однозначно)
Отлично! Жду видео на следующую тему - "Управляем ESP 8266 с компьютера. Python + MQTT , GSM SMS, Telnet, Telegram и ICQ".
Не описать ту душевную боль которую я испытал пока ты программировал на питоне (учу С++)
Я тоже пользуюсь Qt а не PyQt, капец боль
@@iluha168 смотря на твою аву я немного(много) не верю
Тоже уже много лет пишу на с/с++ и кьют гуи. Не понимаю зачем Алекс форсит Пайтон. Для Ардуино контроллеров сам Ктулху предписал с++ гуи юзать
эм, в самом начале видео сказано и показано, зачем и почему вышел этот урок
@@iluha168 Одна фигня.
Алекс, запиливай уже цикл уроков по сборке и настройке робо собаки, аналога от Бостона
Ага, и ROS еще прикрутить к ней
А после уже и марсоход можно)
Не, не погоди. Он сейчас очень важные темы затрагивает. Многому можно научиться.
Собака от Бостон на сан техе🤣
Ну а шо. Щя питон туда сюда.. врубится.. потом комп. зрение... потом шир пыр и вжух скормил обученную модель, сервы, мервы присобачил и можно в бутку вместо барбоса. В бутке розетку надо только для зарядки провести.
36:55
txs = ','.join(data) + ';'
54:05
ui.circle.setChecked(data[1] == 0)
Небольшие замечания, но в целом урок неплохой))
1:00:30
listX = list(range(100))
Видео шикарное! Спасибо!
Автор видео красава. Я на питоне более 3 года, но всё, что ты имел ввиду, я это понял. Смысл хорошо доносишь а как они это будут реализовать - Не наше дело так сказать. Спасибо большое)
Отличное видео! Спасибо огромное!
Видос, топ.
Вдохновил кодить проги
Gyver красава! показал ребенку , он в восторге
Спасибище огромное, было очень интересно.
Отлично! Наконец-то я понимаю код 🤣👍
*Спасибо за гайд по питону! Раньше я себе представлял, что это гораздо сложнее, чем есть на самом деле!*
Python one love!
Thanks for AlexGyver!!!!
О, вы из англии
@@ananasfioletovО, вы,
из России
Работа с документацией pyqt - бесценно!
I worked with this video using English captions, and it was still helpfull. Many thanks!
Как всегда все Супер.
Офигел задолго до середины видео... Только начал изучать язык программирования но интерес только растёт. Одно беспокоит - пока очень непонятно, как можно разобраться во всей мешанине букв/цифр/функций )) Тут простейшие арифметические действия вывел на экран и радости ппц, а видео глянул и прифигел.. сколько всего ещё нужно изучать.
Какое счастливое совпадение.
Как раз на неделе дошли руки до графиков в PyQt5. И их настройка была сложной... До сегодняшнего дня конечно)
Отлично, как раз делал пол года назад очень похожую программу для ардуино, но на Visual Basic. Будет что сравнить.
Отлично! То, что надо!
Удивительно, но факт: Эти гайды информативнее чем от Хауди Хо
Спасибо за урок по PyQt👍 Прокачивай своего питона🐍
Больше таких уроков!!!!!!!!!
Лайк глядя!
Спасибо, как раз хотел изучить
Как всегда выше всяких похвал! Народ не стесняется поддерживаем!!! В последнее время нас так часто радуют!
ну всё, ждем возбужденных питонистов в чат... :-)
txs = f"5,{u1.textF.displayText}"
форматирование текста по моему мнениш удобнее, а так Ваш канал просто супер!
Спасибо) только вчера гуглил про питон)
Спасибо большое, очень интересно
Огромное Вам спасибо за помощь и труд!!!
Подскажите, пожалуйста, можно ли при закрытии управляющего окна крестиком выключить все выходы Arduino? Передать эдакий "прощальный" пакет данных. Попытка сделать это самостоятельно по сигналу "destroyed" у меня приводит к ошибке и устройство не выключается, а продолжает работу.
сериал hui))
оторал
Пасхалочка)
тоже проорался )))
где!?!?!? хочу проораться
В кнопку джойстика можно сразу передавать булеан в виде условия ui.circle.setChecked(data[1] == '0')
case switch является архаизмом, но появится в 3.10 питоне(уже совсем скоро), хотя в питоне он будет нацелен на более сложные сравнения чем в С
Также в питоне есть типы, можно было функцию объявить как def test(a: list[int]): чтобы не делать комментарий
Супер видео. Спасибо!!!
нее, ничего кроме Python, потому как мультиплатформа.
Ну и захотелось после просто Pytho скриптов поковырять Qt, сподвиг так сказать. За что огромадное СПАСИБО!!! Рахмат, ука!
В общем то здесь на самом деле даже больше возможностей, чем на Processing
Спасибо за урок 👍👍👍
В чем может быть, Pyсharm ругается на uic и QSerialPortInfo?? (ModuleNotFoundError: No module named 'PyQt5') Модуль PyQt5 установлен в Pycharm. Arduino подключен.
Алекс будь добр сделай пожалуйста видос как все тоже самое делать под есп с парсингом юдп-пакетов по вифи.
Молодец, отличный урок)
Питон - топовый, комментаторы, которые его ругают, просто злобные. Можно конечно писать красивее, с опытом) Я за 10 лет написал на питоне велосипедов не меньше чем у тебя самоделок из сантеха :) Там вообще можно накидать веб-сервер и управлять всем этим добром из браузера, по вебсокетам, в реальном времени, и с нескольких устройств одновременно. И код будет простой-понятый, полно готовых библиотек, а на си такое замучаешься писать.
В python есть модуль threading чтобы запустить while loop в отдельном процессе! Тоже есть библиотека kivy и kivymd для gui и компиляции под Android! Сам делал управление ленты через телефон и Python serial service на компьютере, круто работает, можешь загуглить! Крутой урок!! 😊
Спасибо, было познавательно
Привет, возможно ли управлять шаговым дыигателем от музыкального сигнала, типа стрелочного индикатора на шаговых двигателях?спасибо
Супер!
Я думаю у Гайвера есть машина времени на Arduino. Иначе я не понимаю как можно с такой скоростью штамповать такой интересный и качественный контент. Не говоря уже о тоннах поделок на основе которых эти видео делаются.