- Необходими материали:
- Инсталиране на 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 Shell и ние ще го наричаме „ Python shell “ отсега.
Този екран се нарича Python Shell. Можете директно да кодирате тук и да получите изхода на същия екран или да създадете нов файл и да напишете програмата там и да проверите програмата тук. По-късно ще влезем в подробностите за създаването на програма за python, засега нека проверим дали python работи.
За да направите това, просто напишете „ print (1 + 1) “ и натиснете enter. Трябва да видите печатането на резултата, както е показано по-долу.
Получаване на PySerial в Python:
Следващата стъпка е да инсталирате pyserial. PySerial е модул на API на Python, който се използва за четене и запис на серийни данни в Arduino или друг микроконтролер.
Щракнете върху Pyserial Windows, за да изтеглите PySerial. Полученото изтегляне ще бъде exe файл, който може да бъде директно инсталиран. Не променяйте настройките, докато инсталирате. Оставете го в директорията по подразбиране и настройките по подразбиране.
Сега нека проверим дали PySerial е инсталиран правилно. За да направите това, отворете Python Shell отново и въведете
внос сериен . Ако библиотеката е била успешно инсталирана, не трябва да получавате съобщения за грешка, както е показано на снимката по-долу. Ако получите грешки, публикувайте ги в раздела за коментари и ние ще се опитаме да ги разрешим.
Този урок предполага, че сте запознати с Arduino и имате опит в качването на проекти в Arduino. Така че нека директно да влезем в нашата програма на Python. Ако сте начинаещ с Arduino, проверете нашите Arduino проекти и започнете от LED мига с Arduino.
Първата ни програма за Arduino Python:
Както казахме по-рано, ние ще контролираме вградения светодиод Arduino на борда, използвайки Python скрипт. Нека започнем с кода на Arduino.
Програма за Arduino:
Пълната програма за този урок за питони на Arduino е дадена в края на тази страница. Прочетете по-нататък, за да разберете как работи.
Във функцията за настройка ние инициализираме серийната комуникация със скорост 9600 бода и декларираме, че ще използваме вградения светодиод като изход и ще го намалим по време на стартиране на програмата. Също така изпратихме приветствено съобщение до python чрез сериен печат, както е показано по-долу:
void setup () {Serial.begin (9600); // инициализиране на сериен COM при 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // направете LED щифта (13) като изход digitalWrite (LED_BUILTIN, LOW); Serial.println ("Здравей! Аз съм Arduino"); }
Във вътрешната функция на цикъла четем последователно всички данни, които влизат, и присвояваме стойността на променливата „data“. Сега въз основа на стойността на тази променлива („данни“) превключваме вградения светодиод, както е показано по-долу.
цикъл void () {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 порта. Той може да бъде намерен с помощта на диспечера на устройствата на вашия компютър.
Веднага след като серийният обект бъде инициализиран, трябва да задържим програмата за две секунди, за да бъде установена серийната комуникация. Това може да се направи, като се използва долният ред:
time.sleep (2)
Сега можем да четем или пишем каквото и да е от / към нашия Arduino Board.
Следващият ред ще прочете всичко, идващо от Arduino, и ще го отпечата на прозореца на черупката
отпечатай ArduinoSerial.readline ()
Можете също да присвоите стойността на променлива и да я използвате за изчисления.
Следващият ред ще напише стойността на параметъра в Arduino Board.
ArduinoSerial.write ('1')
Този ред ще напише „1“ на Arduino. Можете да изпращате всичко от десетични знаци до низове, като използвате същия ред.
Сега, връщайки се към нашата програма, вътре в безкрайния цикъл while, имаме следните редове
var = raw_input () #get input from user print "сте въвели", var #print въведете за потвърждение, ако (var == '1'): #ако стойността е 1 print ("LED включен") time.sleep (1) if (var == '0'): #ако стойността е 0 ArduinoSerial.write ('0') #send 0 print ("LED OFF OFF") време. сън (1)
Редът var = raw_input ще получи всяка стойност, която е въведена в скрипта Shell и ще присвои тази стойност на променливата var .
По-късно, ако стойността е 1, тя ще отпечата „1“ последователно на Arduino, а ако 0 ще отпечата „0“ последователно на Arduino. Кодът в нашата програма Arduino (обсъден по-горе) ще превключваме светодиода въз основа на получената стойност.
След като завърши пълната програма, вашият скрипт трябва да изглежда по следния начин
Сега кликнете върху Run -> Run Module или натиснете F5, това може да поиска да запазите програмата и след това да я стартирате.
Контрол на светодиода с Python и Arduino:
Работата на този проект е доста права. Качете програмата на вашия Arduino и проверете дали е свързана към същия COM порт, както е споменато в програмата на python. След това стартирайте програмата Python, както беше споменато по-горе.
Това ще стартира скрипт на обвивка на python, както е показано по-долу. Прозорецът отляво е прозорецът на обвивката, показващ изхода, а прозорецът отдясно е скриптът, показващ програмата.
Както можете да видите низът „Здравей! Аз съм Arduino“, въведен в програмата Arduino, се получава от Python и се показва в прозореца на неговата обвивка.
Когато прозорецът на обвивката поиска да въведе стойности, можем да въведем 0 или 1. Ако изпратим 1, светодиодът на Arduino Board ще се включи и ако изпратим 0, LED на нашата Arduino Board ще се изключи. Показване на успешна връзка между нашата програма Arduino и Python.
Има две програми, дадени по-долу, едната за качване и стартиране от Arduino, а втората за стартиране от Python Shell в Windows.
Надявам се, че сте разбрали проекта и сте успели да го накарате да работи. Ако не, публикувайте проблема си в коментара по-долу и ще се радвам да ви помогна. В следващия ни проект ще научим какво друго може да се направи хладно с Python и Arduino, като изследваме дълбоко в други модули на python като Vpython, gamepython и т.н. Дотогава останете на линия….