- Необхідні матеріали:
- Встановлення Python на ваш комп'ютер:
- Отримання PySerial у Python:
- Наша перша програма Arduino Python:
- Керування світлодіодом за допомогою Python та Arduino:
Arduino завжди була потужною та простою у використанні платформою для навчання / розробки, коли мова йде про розробку апаратного забезпечення з відкритим кодом. У сучасному світі кожне обладнання обладнане високоякісною мовою програмування загального призначення, щоб зробити його більш ефективним та зручним для користувачів. Однією з таких мов є Python. Python - це інтерпретована, об’єктно-орієнтована мова програмування високого рівня з динамічною семантикою із вбудованими структурами даних високого рівня, в поєднанні з динамічним набором тексту та динамічним прив’язуванням, роблять її дуже привабливою для швидкої розробки додатків.
Поєднання потужності Arduino та Python відкриє багато можливостей, оскільки python має підвищену продуктивність завдяки своїй здатності взаємодіяти з іншими платформами, такими як openCV, Matlab тощо. Тож у цьому посібнику ми дізнаємось, як ми можемо встановити python на наш комп’ютер і як використовувати його з Arduino для перемикання вбудованого світлодіода Arduino.
Отже, давайте почнемо….
Необхідні матеріали:
- Arduino Uno (або будь-які дошки Arduino)
- Комп’ютер з підключенням до Інтернету
Встановлення Python на ваш комп'ютер:
Очевидно, що першим кроком у цьому посібнику буде встановлення Python на наш комп’ютер. Зазначені нижче кроки застосовні лише для користувачів Windows, що працюють на 32-розрядної або 64-розрядної ОС. Процедура встановлення MAC та Linux відрізняється.
- Клацніть на 32-розрядний Python-2.7.9, і це встановить 32-розрядний Python IDLE на ваш Комп’ютер. Не завантажуйте 64-розрядну версію або оновлені версії, оскільки вони не забезпечують підтримку наших бібліотек Arduino. Навіть якщо ваш Комп'ютер працює на 64-розрядної версії, ви можете використовувати сам 32-розрядний Python.
- Відкрийте завантажений файл exe і дотримуйтесь інструкцій. Не змінюйте каталог, в якому встановлюється python. За замовчуванням це буде C: \ Python27 і залиште його таким.
- Поки відбувається встановлення, ви можете отримати попередження від антивірусу (якщо таке є), у такому випадку натисніть кнопку дозволити.
Це все !, python успішно інстальовано на нашому комп’ютері. Ви можете перевірити це, здійснивши пошук “Python IDLE” у вікні пошуку Windows і відкривши його.
Після відкриття ви повинні отримати наступний екран. Це вікно називається оболонкою Python, і відтепер ми будемо називати його « оболонкою Python ».
Цей екран називається оболонкою Python. Ви можете безпосередньо кодувати тут і отримати вихід на тому ж екрані або створити новий файл і написати програму там і перевірити програму тут. Пізніше ми вникнемо в подробиці створення програми python, а зараз давайте перевіримо, чи працює python.
Для цього просто введіть “ print (1 + 1) ” і натисніть enter. Ви повинні побачити результат, надрукований, як показано нижче.
Отримання PySerial у Python:
Наступним кроком є встановлення pyserial. PySerial - це модуль API Python, який використовується для читання та запису послідовних даних в Arduino або будь-який інший мікроконтролер.
Клацніть на Pyserial Windows, щоб завантажити PySerial. Отримане завантаження буде файлом exe, який можна встановити безпосередньо. Не змінюйте жодних налаштувань під час встановлення. Залиште це в каталозі за замовчуванням та налаштуваннях за замовчуванням.
Тепер давайте перевіримо, чи правильно встановлений PySerial. Для цього знову відкрийте оболонку Python і введіть
імпорт серійний . Якщо бібліотека була успішно встановлена, ви не повинні отримувати жодних повідомлень про помилки, як показано на малюнку нижче. Якщо у вас з’являються помилки, розмістіть їх у розділі коментарів, і ми спробуємо їх вирішити.
Цей посібник передбачає, що ви знайомі з Arduino та маєте досвід завантаження проектів до Arduino. Тож давайте безпосередньо перейдемо до нашої програми Python. Якщо ви новачок в Arduino, перегляньте наші проекти Arduino і починайте з LED-мигання з Arduino.
Наша перша програма Arduino Python:
Як вже говорилося раніше, ми будемо контролювати вбудований світлодіод Arduino, використовуючи скрипт Python. Почнемо з коду Arduino.
Програма для Arduino:
Повна програма для цього підручника з Arduino python наведена в кінці цієї сторінки. Читайте далі, щоб дізнатись, як це працює.
Усередині функції налаштування ми ініціалізуємо послідовний зв’язок зі швидкістю 9600 бод і заявляємо, що будемо використовувати вбудований світлодіод як вихідний сигнал і зменшуватимемо його під час запуску програми. Ми також надіслали привітальне повідомлення python шляхом послідовного друку, як показано нижче:
void setup () {Serial.begin (9600); // ініціалізуємо послідовний COM на 9600 швидкості передачі pinMode (LED_BUILTIN, OUTPUT); // зробити світлодіодний штифт (13) вихідним digitalWrite (LED_BUILTIN, LOW); Serial.println ("Привіт! Я Arduino"); }
Усередині петлю функції, ми читати всі дані, які надходять послідовно і привласнення значення змінних «дані». Тепер на основі значення цієї змінної («дані») ми перемикаємо вбудований світлодіод, як показано нижче.
void loop () {while (Serial.available ()) {data = Serial.read (); } if (data == '1') digitalWrite (LED_BUILTIN, HIGH); інакше if (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Програма для Python:
Повна програма python для цього підручника наведена в кінці цієї сторінки. Читайте далі, щоб знати, як писати і використовувати те саме.
- Відкрийте свою оболонку Python (Python IDLE) і натисніть Файл-> Створити
- Після цього відкриється новий текстовий файл, куди ви можете ввести свою програму.
- Перш ніж вводити що-небудь, давайте збережемо файл за допомогою Ctrl + S. Введіть будь-яке ім'я та натисніть "Зберегти". Це автоматично збереже файл у розширенні.py.
- Тепер введіть програму або вставте код python, вказаний в кінці цієї сторінки. Пояснення цього ж наведено нижче, і нарешті запустіть програму.
У нашій програмі першим кроком було б імпортувати бібліотеку послідовності та часу. Як було сказано раніше, послідовна бібліотека буде використана для читання та запису послідовних даних, а бібліотека часу - для затримок у нашій програмі. Ці дві бібліотеки можна імпортувати в нашу програму, використовуючи такі два рядки:
імпорт серійний # Імпортований серійний для часу імпорту послідовного зв'язку # Потрібно використовувати функції затримки
Наступним кроком буде ініціалізація послідовного об'єкта за допомогою нашої послідовної бібліотеки. У цій програмі ми назвали наш послідовний об'єкт як "ArduinoSerial" . У цьому рядку ми повинні згадати назву COM-порту, до якого підключений наш Arduino, і з якою швидкістю передачі даних він працює, як показано нижче.
ArduinoSerial = serial.Serial ('com18', 9600)
Примітка: Дуже важливо згадати правильну назву COM-порту. Його можна знайти за допомогою диспетчера пристроїв на вашому комп’ютері.
Як тільки послідовний об'єкт ініціалізується, ми повинні затримати програму дві секунди для встановлення послідовного зв'язку. Це можна зробити за допомогою рядка нижче:
час. сон (2)
Тепер ми можемо читати або писати що завгодно з / на нашу дошку Arduino.
У наступному рядку буде прочитано все, що надходить від Arduino, і буде надруковано на вікні оболонки
print ArduinoSerial.readline ()
Ви також можете призначити значення змінній і використовувати його для обчислень.
У наступному рядку буде записано значення параметра на Arduino Board.
ArduinoSerial.write ('1')
Цей рядок буде писати Arduino "1". Ви можете надсилати що завгодно, від десяткових до рядків, використовуючи той самий рядок.
Тепер, повертаючись до нашої програми, всередині нескінченного циклу while, ми маємо наступні рядки
var = raw_input () # отримати ввід від користувача print "ви ввели", var #print введення для підтвердження, якщо (var == '1'): # якщо значення 1 ArduinoSerial.write ('1') #send 1 print ("світлодіод увімкнено") time.sleep (1) if (var == '0'): #якщо значення 0 ArduinoSerial.write ('0') #send 0 print ("світлодіод вимкнено") час. сон (1)
Рядок var = raw_input отримає будь-яке значення, яке введено в сценарії оболонки, і присвоїть це значення змінній var .
Пізніше, якщо значення дорівнює 1, воно буде друкувати послідовно «1» на Arduino, а якщо 0, то послідовно друкуватиме «0» на Arduino. Код в нашій програмі Arduino (обговорено вище) ми будемо перемикати світлодіод на основі отриманого значення.
Після завершення повної програми ваш сценарій повинен виглядати приблизно так нижче
Тепер натисніть Виконати -> Запустити модуль або натисніть F5, це може попросити вас зберегти програму, а потім запустить її.
Керування світлодіодом за допомогою Python та Arduino:
Робота цього проекту є досить прямою. Завантажте програму на ваш Arduino і переконайтеся, що вона підключена до того самого COM-порту, як зазначено в програмі python. Потім запустіть програму Python, як згадано вище.
Це запустить скрипт оболонки python, як показано нижче. Вікно зліва - це вікно оболонки, що відображає вихідні дані, а вікно праворуч - сценарій, що відображає програму.
Як бачите, рядок "Привіт! Я - Arduino", введений в програму Arduino, отримується Python і відображається у вікні його оболонки.
Коли вікно оболонки просить ввести значення, ми можемо ввести або 0, або 1. Якщо ми надішлемо 1, світлодіод на платі Arduino увімкнеться, а якщо ми надішлемо 0, світлодіод на нашій платі Arduino вимкнеться. Показ успішного зв’язку між нашою програмою Arduino та Python.
Є дві програми, наведені нижче, одна для завантаження та запуску з Arduino, а друга - для запуску з оболонки Python у Windows.
Сподіваюся, ви зрозуміли проект і змогли змусити його працювати. Якщо ні, опублікуйте свою проблему в коментарі нижче, і я буду радий вам допомогти. У нашому наступному проекті ми дізнаємося, що ще можна зробити круто за допомогою Python та Arduino, досліджуючи глибоко інші модулі python, такі як Vpython, gamepython тощо. До цього часу слідкуйте за оновленнями….