Paano Mag-Program at Makontrol ang isang Arduino Sa Python

Paano Mag-Program at Makontrol ang isang Arduino Sa Python

Kinuha ng Python ang mundo ng pag-cod sa pamamagitan ng bagyo. Kasabay ng pagtaas ng bagong wikang ito, ang tanawin ng electronics ng DIY ay umunlad din. Mga development board at solong board computer mula sa mga kumpanyang gusto Arduino at ang Raspberry Pi ay nagbago sa paraan ng paglikha ng mga tao ng home brewed electronics. Hindi ba kahanga-hanga kung maaari mong i-program ang isang Arduino kasama si Python?





ang iPhone 6 ay natigil sa logo ng apple

Walang mas mahusay na pakiramdam kaysa sa pagsasama-sama ng dalawang cool na bagay. Nakalulungkot, imposibleng direktang programa ang isang Arduino na may Python, dahil ang mga board ay walang pagpipilian para sa onboard interpretasyon ng wika. Gayunpaman, kung ano ang posible, ay direktang kontrol sa USB gamit ang isang programa ng Python.





Ipapakita sa iyo ng artikulong ito kung paano mag-set up ng isang Arduino UNO (kahit na ang anumang Arduino na katugmang lupon ay maaaring gumana dito) upang ma-program at makontrol mula sa linya ng utos gamit ang mga programa ng Python. Ang tutorial na ito ay nakasulat para sa Windows 10, ngunit gumagana rin para sa Mac at Linux. Maaari mo ring gamitin ang daloy ng trabaho na ito upang makontrol ang isang Arduino nang direkta mula sa isang Raspberry Pi para sa tunay na karanasan sa dobleng-down-DIY.





Pag-set up ng Iyong Arduino para sa Python

Para sa proyekto ngayon gagamit kami ng isang Arduino Uno, kasama ang interface ng pyFirmata para sa Python. Maaari mong gamitin ang halos anumang board na katugma sa Arduino para dito, kahit na sa oras ng pagsulat ng Arduino Uno, Mega, Dahil at Nano ay sinusuportahan ng interface ng pyFfirmata. Kung ikaw ay isang Python guru, maaari kang magdagdag ng iyong sariling suporta sa board sa pyFirmata - tiyaking i-update ang kanilang GitHub kung gagawin mo!

Kung hindi mo pa nagagawa, i-install ang Arduino IDE. Kung ganap kang bago sa mundo ng mga microcontroller, ang aming gabay ng nagsisimula sa Arduino ay makakatulong sa iyo na makuha ang lahat sa lugar.



Ikonekta ang iyong Arduino board, at buksan ang IDE. Tiyaking mayroon kang tamang board at port na napili sa Mga kasangkapan menu I-load ang PamantayangFirmata halimbawa ng sketch at i-upload ito sa board. Papayagan ka nitong kontrolin ang Arduino nang direkta hangga't nakakonekta ito sa computer sa pamamagitan ng USB. Ibinigay ang mga pag-upload ng sketch sa iyong board nang walang anumang mga error, handa ka nang magpatuloy.

Pagkontrol ng Python at Command Line

Gagamitin namin ang Python 3.4 upang makontrol ang aming Arduino, dahil ang module na iyong mai-install ay tumutukoy nito bilang pinakabagong katugmang bersyon. Anumang bersyon bago ito ay dapat gumana nang maayos, at ang mga ibang bersyon ay naulat na gumagana. Maaari mong i-download ang Python 3.4 para sa Windows 10 mula sa Python Software Foundation lugar. Kung nais mong magpatakbo ng maraming bersyon ng Python, ang aming gabay sa Python virtual na mga kapaligiran ay makakatulong sa iyo.





Kapag na-install mo na ang Python, nais naming idagdag ito sa variable ng PATH ng iyong system. Papayagan kaming magpatakbo ng Python code nang direkta mula sa Command Line nang hindi nangangailangan na nasa direktoryo na na-install. Maaari mo itong gawin sa pamamagitan ng pagbubukas ng Control Panel , naghahanap para sa Kapaligiran at mag-click sa I-edit ang mga variable ng kapaligiran sa system . Sa ilalim ng window piliin Mga variable sa kapaligiran . Dadalhin nito ang window na ito:

Kung nakita mo na PATH sa listahan, i-click ang i-edit, at idagdag ang iyong Sawa at Python / Script direktoryo Kung wala kang variable na PATH, mag-click bago at idagdag ito. Tandaan na ang Python ay naka-install nang direkta sa C: dito Kung na-install mo ito sa ibang lugar kailangan mong baguhin ito upang maipakita ito. I-click ang OK pabalik sa kadena ng mga bintana, at halos handa ka nang kontrolin ang iyong Arduino gamit ang Python!





Ang Magic Grease

Kakailanganin mo ang isang pangwakas na piraso ng palaisipan upang makipag-usap nang mabuti sa Python sa aming Arduino. Ito ay nasa anyo ng isang interface ng Python na tinawag pyFirmata . Ang interface na ito, nilikha ng Tino de Bruijn ay magagamit upang i-download mula sa github, bagaman maaari mo itong mai-install nang diretso mula sa linya ng utos sa pamamagitan ng pagta-type:

pip install pyfirmata

Lahat ng pagiging maayos, dapat itong mag-install at magmukhang ganito:

Kung nabigo ito, pumunta sa pagdaragdag ng Python sa Variable sa Kapaligiran seksyon at tiyaking nabigyan mo ang tamang landas sa iyong direktoryo ng Python.

Ginagawa Ito

Ngayon ang lahat ay naka-set up, at maaari kang lumikha ng isang programa ng Python para sa iyong Arduino upang subukan ito. Magbukas ng isang gusto mong IDE. Gagamitin namin Eclipse ngayon, ngunit madali mo ring magagamit ang anumang text editor, o kahit isang IDE sa cloud.

Lumikha ng isang bagong script, at i-save ito bilang blink.py . Paglabag sa tradisyon sa pamantayang blinking LED na programa, lilikha ka ng isang programa na hinihimok ang gumagamit para sa dami ng mga oras na nais nilang i-flash ng LED bago ito isakatuparan. Ito ay isang maikling programa, na maaari mo I-download dito kung nais mong dumiretso dito, ngunit paghiwalayin natin ito.

Una, gugustuhin mong i-import kung ano ang kailangan mo mula sa pyFirmata module, kasama ang karaniwang Python Oras modyul

punasan ang isang hard drive windows 10
from pyfirmata import Arduino, util
import time

Ngayon gugustuhin mong i-set up ang Arduino board. Ipinapalagay ng artikulong ito na gumagamit ka ng isang Arduino uno board, bagaman maraming iba pang mga board ng Arduino ang suportado. Sumangguni sa pyFirmata github para sa mga detalye sa suporta sa board.

Suriin kung aling COM port ang iyong ginagamit sa Arduino IDE, at ipasok ito sa iyong code bilang variable sumakay .

board = Arduino('COM3')

Ngayon ay i-set up mo ang prompt ng gumagamit. Ang mga pamilyar sa Python ay makikilala ang lahat dito. Nag-print ka ng isang katanungan sa screen gamit ang input pagpapaandar, at itabi ang sagot bilang isang variable. Kapag ang gumagamit ay nagbigay ng isang numero, iulat ng programa kung gaano karaming beses ang blink ng LED.

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

Upang gawing blink ang LED ng naaangkop na bilang ng beses, gumamit ka ng a para sa loop . Kung ikaw ay bago sa Python , mag-ingat sa indentation, tulad ng hindi katulad ng ibang mga wika ang mga puwang ay bahagi ng syntax. Tandaan na ang pin 13 ay ang onboard LED para sa Arduino Uno, kakailanganin mong baguhin ito kung iba ang iyong board.

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

Itatapon mo ang loopTime variable sa isang integer dito, dahil ang input mula sa gumagamit ay awtomatikong maiimbak bilang isang string. Sa simpleng demo na ito, ipinapalagay namin na ang gumagamit ay maglalagay ng isang bilang na bilang. Anumang iba pang mga entry tulad ng 'walong' ay magtapon ng isang error.

I-save ang iyong script, at buksan ang Command Prompt .

Mga Blinking Light at Iba Pang Mga Paghahayag

Handa nang puntahan ang lahat, ang kailangan mo lang gawin ay mag-navigate sa kung saan ang script at patakbuhin ito. Gawin ito sa pamamagitan ng pagta-type cd [path sa direktoryo ng script] at pagkatapos ay nagta-type python blink.py .

Nagiging maayos ang lahat, magsisimula ang iyong programa ng kaunting pagkaantala habang pinasimulan ang Arduino, hinihikayat ka para sa isang numero, at pagkatapos ay i-flash iyon ng maraming beses gamit ang onboard LED.

Ang output ng programa ay dapat magmukhang ganito:

Sa sandaling pinindot mo ang enter pagkatapos ng iyong napiling bilang ng mga blinks, dapat isagawa ng Arduino ang iyong mga order.

Maliit na Simula

Ang proyektong ito ay naging isang barebones na nagsisimula sa pakikipag-usap sa pagitan ng Python at isang Arduino board. Ang diskarte na ito ay ibang-iba sa karaniwang daloy ng pag-upload ng mga script sa Arduino mismo, ngunit binubuksan nito ang isang bagong bagong paraan ng pagtatrabaho sa platform, lalo na kung gusto mo ang wika ng programa ng Python.

Kung gumagamit ka ng a Linux server sa bahay, ang pamamaraang ito ng pakikipag-usap sa mga board ng Arduino ay maaaring mapalawak ang server na iyon sa isang ganap na sistema ng DIY Home Automation. Sa pamamagitan ng pagsasama ng mga script ng Python na pagkontrol sa microcontroller sa isang circuit ng automation ng DIY, ang iyong NAS storage box ay maaaring tumagal ng isang buong bagong hanay ng mga kapaki-pakinabang na function.

kung paano linisin ang memorya sa pc

Upang gawin itong panghuli karanasan sa DIY, bakit hindi bumuo ng iyong sariling kahon ng NAS at gamitin ito upang makontrol din ang iyong mga gamit? Pag-isipan kung gaano cool na pindutin ang pag-play sa iyong Plex server at awtomatikong patayin ng mga ilaw ang kanilang sarili!

Kinokontrol mo na ba ang Arduino gamit ang Python? Mayroon bang mga kamangha-manghang mga workaround na hindi ko pa alam tungkol dito? Ipaalam sa amin sa seksyon ng komento sa ibaba!

Magbahagi Magbahagi Mag-tweet Email 5 Mga Tip upang Supercharge ang Iyong Mga VirtualBox Linux Machine

Pagod na sa hindi magandang pagganap na inaalok ng mga virtual machine? Narito kung ano ang dapat mong gawin upang mapalakas ang pagganap ng VirtualBox.

Basahin Susunod
Mga Kaugnay na Paksa
  • DIY
  • Programming
  • Arduino
  • Pag-aautomat sa Bahay
  • Sawa
Tungkol sa May-akda Ian Buckley(216 Mga Artikulo Nai-publish)

Si Ian Buckley ay isang freelance journalist, musikero, tagaganap at tagagawa ng video na naninirahan sa Berlin, Germany. Kapag hindi siya nagsusulat o nasa entablado, nakikipag-usap siya sa mga elektronikong DIY o code sa pag-asang maging isang baliw na siyentista.

Higit pa Mula kay Ian Buckley

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe