Как да програмирате и контролирате Arduino с Python

Как да програмирате и контролирате Arduino с Python

Python завладя света на кодирането. Наред с възхода на този нов език, и електронната сцена на DIY също процъфтява. Дъски за разработка и едноплатни компютри от компании като Arduino и Raspberry Pi са променили начина, по който хората създават домашно приготвена електроника. Не би ли било страхотно, ако можете да програмирате Arduino с Python?





как да разберете кой притежава телефонен номер

Няма по -добро чувство от това да съчетаеш две готини неща. За съжаление е невъзможно директно програмиране на Arduino с Python, тъй като дъските нямат възможност за вградена интерпретация на езика. Това, което е възможно обаче, е директен контрол над USB с помощта на програма Python.





Тази статия ще ви покаже как да настроите Arduino UNO (въпреки че всяка съвместима с Arduino платка може да работи тук), която да бъде програмирана и контролирана от командния ред с помощта на програми на Python. Този урок е написан за Windows 10, но работи и за Mac и Linux. Можете дори да използвате този работен процес, за да контролирате Arduino директно от Raspberry Pi за най-доброто изживяване с двойно надолу.





Настройване на вашия Arduino за Python

За днешния проект ще използваме Arduino Uno, заедно с интерфейса pyFirmata за Python. Можете да използвате почти всяка съвместима с Arduino платка за това, въпреки че по време на писането само Arduino Uno, Mega, Due и Nano се поддържат от интерфейса pyFfirmata. Ако вече сте гуру на Python, можете да добавите своя собствена поддръжка на борда към pyFirmata - не забравяйте да актуализирате техния GitHub, ако го направите!

Ако все още не сте инсталирали Arduino IDE. Ако сте напълно нов в света на микроконтролерите, нашият ръководство за начинаещи в Arduino ще ви помогне да поставите всичко на мястото си.



Свържете дъската си Arduino и отворете IDE. Уверете се, че сте избрали правилната платка и порт в Инструменти меню. Заредете Стандартни фирми примерна скица и я качете на дъската. Това ще ви позволи да контролирате Arduino директно, стига да е свързан към компютъра чрез USB. При условие, че скицата се качва на дъската ви без никакви грешки, вие сте готови да продължите.

Python и контрол на командния ред

Ще използваме Python 3.4, за да контролираме нашия Arduino, тъй като модулът, който ще инсталирате, определя това като най -новата съвместима версия. Всяка версия преди това трябва да работи добре, а за по -късните версии се съобщава, че работят. Можете да изтеглите Python 3.4 за Windows 10 от Python Software Foundation сайт. Ако искате да стартирате няколко версии на Python, нашето ръководство за виртуални среди на Python ще може да ви помогне.





След като инсталирате Python, искаме да го добавим към променливата PATH на вашата система. Това ще ни позволи да стартираме кода на Python директно от командния ред, без да е необходимо да сме в директорията, в която е инсталиран. Можете да направите това, като отворите Контролен панел , търся Заобикаляща среда и кликнете върху Редактирайте променливите на системната среда . В долната част на прозореца изберете Променливи на околната среда . Това ще отвори този прозорец:

Ако вече виждате ПЪТ в списъка щракнете върху редактиране и добавете своя Python и Python/скриптове директория. Ако нямате променлива PATH, щракнете върху нов и го добавете. Обърнете внимание, че Python е инсталиран директно в ° С: тук. Ако сте го инсталирали другаде, ще трябва да го промените, за да отразява това. Щракнете върху OK обратно по веригата на прозорците и сте почти готови да контролирате вашия Arduino с Python!





Магическата мазнина

Ще ви трябва едно последно парче от пъзела, за да накарате Python да говори добре с нашия Arduino. Това идва под формата на интерфейс на Python, наречен pyFirmata . Този интерфейс, създаден от Tino de Bruijn е достъпни за изтегляне от github, въпреки че можете да го инсталирате направо от командния ред, като напишете:

pip install pyfirmata

Всичко е наред, трябва да се инсталира и да изглежда така:

Ако не успее, преминете към добавяне на Python към Променлива на околната среда раздел и се уверете, че сте дали правилния път към вашата директория на Python.

Как да се случи

Сега всичко е настроено и можете да създадете програма Python за вашия Arduino, за да го тествате. Отворете IDE по ваш избор. Ще използваме Затъмнение днес, но също толкова лесно можете да използвате всеки текстов редактор или дори IDE в облака.

Създайте нов скрипт и го запазете като blink.py . Нарушавайки традицията със стандартната мигаща LED програма, ще създадете програма, която подканва потребителя колко пъти иска светодиодът да мига, преди да го извърши. Това е кратка програма, която можете изтеглете тук ако искате да преминете директно към това, но нека го разбием.

Първо, ще искате да импортирате това, от което се нуждаете, от pyFirmata модул, заедно със стандартния Python Време модул.

как да преименувате файлове в linux
from pyfirmata import Arduino, util
import time

Сега ще искате да настроите дъската на Arduino. Тази статия предполага, че използвате Arduino uno платка, въпреки че се поддържат няколко други дъски на Arduino. Вижте pyFirmata github за подробности относно поддръжката на борда.

Проверете кой COM порт използвате в Arduino IDE и го въведете в кода си като променлива дъска .

board = Arduino('COM3')

Сега ще настроите подкана за потребителя. Запознатите с Python ще разпознаят всичко тук. Отпечатвате въпрос на екрана с помощта на вход функция и съхранява отговора като променлива. След като потребителят е предоставил номер, програмата отчита колко пъти светодиодът ще мига.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

За да накарате светодиода да мига подходящ брой пъти, използвайте a for цикъл . Ако вие сте ново за Python , внимавайте с отстъпа, тъй като за разлика от други езици, интервалите са част от синтаксиса. Обърнете внимание, че щифт 13 е вграденият светодиод за Arduino Uno, ще трябва да промените това, ако вашата платка е различна.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Вие ще хвърлите loopTimes променлива до цяло число тук, тъй като входът от потребителя автоматично ще се съхранява като низ. В тази проста демонстрация предполагаме, че потребителят ще въведе числова стойност. Всеки друг запис като „осем“ ще изведе грешка.

Запазете скрипта си и отворете Командния ред .

Мигащи светлини и други откровения

Всичко е готово за работа, всичко, което трябва да направите, е да отидете до скрипта и да го стартирате. Направете това, като въведете cd [път към директорията на скрипта] и след това пишете python blink.py .

Всичко е наред, програмата ви ще започне с леко забавяне, докато Arduino се инициализира, ще ви подкани за номер и след това ще мига толкова пъти, като използвате вградения светодиод.

Изходът на програмата трябва да изглежда така:

Веднага щом натиснете Enter след избрания от вас брой мигания, Arduino трябва да изпълни вашите поръчки.

Малки начала

Този проект беше безпроблемно начало за комуникация между Python и дъска на Arduino. Този подход е много различен от обичайния работен процес на качване на скриптове в самия Arduino, но отваря изцяло нов начин на работа с платформата, особено ако харесвате езика за програмиране на Python.

Ако използвате a Linux сървър у дома, този метод за комуникация с дъските на Arduino може да разшири този сървър в пълноценна система за домашна автоматизация „направи си сам“. Чрез комбиниране на скриптове на Python, управляващи микроконтролера, със схема за автоматизация „Направи си сам“, Вашето NAS хранилище може да поеме изцяло нов набор от полезни функции.

принтерът казва офлайн, но е свързан

За да го превърнете в най -доброто изживяване „направи си сам“, защо не изградете своя собствена NAS кутия и да го използвате, за да контролирате и уредите си? Представете си колко готино би било да натиснете play на вашия Plex сървър и светлините да се изключат автоматично!

Вече контролирате ли Arduino с помощта на Python? Има ли невероятни решения, за които просто още не знаем? Кажете ни в секцията за коментари по -долу!

Дял Дял Туит електронна поща 5 съвета за зареждане на вашите VirtualBox Linux машини

Уморени ли сте от лошото представяне на виртуалните машини? Ето какво трябва да направите, за да увеличите производителността на VirtualBox.

Прочетете Напред
Свързани теми
  • Направи си сам
  • Програмиране
  • Arduino
  • Домашна автоматизация
  • Python
За автора Иън Бъкли(216 статии са публикувани)

Иън Бъкли е журналист на свободна практика, музикант, изпълнител и видео продуцент, живеещ в Берлин, Германия. Когато не пише или е на сцената, той се занимава с „направи си сам“ електроника или код с надеждата да стане луд учен.

Още от Иън Бъкли

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате