- Mga Materyal na Kinakailangan:
- Pag-install ng Python sa iyong Computer:
- Pagkuha ng PySerial sa Python:
- Ang aming Unang Arduino Python Program:
- Pagkontrol sa LED na may Python at Arduino:
Ang Arduino ay palaging isang malakas at isang madaling gamitin na pag-aaral / pagbuo ng platform pagdating sa bukas na pag-unlad na pinagmulan ng hardware. Sa modernong mundo ngayon, ang bawat hardware ay pinalakas ng isang mataas na antas na pangkalahatang layunin na wika ng programa upang gawin itong mas epektibo at magiliw sa gumagamit. Ang isang tulad ng wika ay ang Python. Ang Python ay isang binibigyang kahulugan, oriented na object, mataas na antas na wika ng programa na may mga dynamic na semantika na may mataas na antas na built sa mga istruktura ng data, na sinamahan ng pag-type ng pabagu-bago at pabuong pagbuklod, ginagawang kaakit-akit ito para sa Rapid Application Development.
Ang pagsasama-sama ng lakas ng Arduino at Python ay magbubukas ng mga pintuan sa maraming mga posibilidad dahil ang python ay may mas mataas na pagiging produktibo na may kakayahang makipag-ugnay sa iba pang mga platform tulad ng openCV, Matlab atbp. Kaya't sa tutorial na ito matututunan natin kung paano natin mai-install ang sawa sa aming computer at kung paano ito gamitin sa Arduino para sa pag-toggle ng on-board LED ng Arduino.
Kaya, magsimula na tayo….
Mga Materyal na Kinakailangan:
- Arduino Uno (o anumang Arduino Boards)
- Computer na may koneksyon sa Internet
Pag-install ng Python sa iyong Computer:
Malinaw na ang unang hakbang sa tutorial na ito ay ang pag-install ng Python sa aming computer. Ang mga hakbang na nabanggit sa ibaba ay nalalapat lamang para sa mga gumagamit ng windows na tumatakbo alinman sa 32-bit o 64-bit OS. Ang pamamaraan ng pag-install para sa MAC at Linux ay iba.
- Mag-click sa 32-bit Python-2.7.9 at mai-install nito ang 32-bit Python IDLE sa iyong Computer. Huwag i-download ang 64-bit na bersyon o na-update na mga bersyon dahil hindi sila nagbibigay ng suporta para sa aming Arduino Library. Kahit na ang iyong Computer ay tumatakbo sa 64-bit maaari mong gamitin ang 32-bit Python mismo.
- Buksan ang na-download na file ng exe at sundin ang tagubilin. Huwag baguhin ang direktoryo kung saan nakakakabit ang sawa. Ito ay magiging C: \ Python27 bilang default at iwanan ito tulad ng.
- Habang nagaganap ang pag-install maaari kang makakuha ng isang babala mula sa iyong anti-virus (kung mayroon man) sa kasong iyon mag-click sa payagan.
Iyon lang !, Matagumpay na na-install ang sawa sa aming computer. Maaari mong i-verify ito sa pamamagitan ng paghahanap para sa "Python IDLE" sa box para sa paghahanap sa Windows at buksan ito.
Kapag binuksan dapat mong makuha ang sumusunod na screen. Ang window na ito ay tinawag na Python Shell at isasangguni namin ito bilang " Python shell " mula ngayon.
Ang screen na ito ay tinawag na Python Shell. Maaari kang direktang mag-code dito at makuha ang output sa parehong screen o lumikha ng isang bagong file at isulat ang programa doon at i-verify ang programa dito. Malalaman namin ang mga detalye ng paglikha ng isang programa ng sawa, sa ngayon suriin natin kung gumagana ang python.
Upang magawa ito, i-type lamang ang " print (1 + 1) " at pindutin ang enter. Dapat mong makita ang resulta na nai-print tulad ng ipinakita sa ibaba.
Pagkuha ng PySerial sa Python:
Ang susunod na hakbang ay ang pag-install ng pyserial. Ang PySerial ay isang module ng Python API na ginagamit upang basahin at isulat ang serial data sa Arduino o anumang iba pang Microcontroller.
Mag-click sa Pyserial Windows upang mag-download ng PySerial. Ang nagresultang pag-download ay magiging isang file ng exe na maaaring direktang mai-install. Huwag baguhin ang anumang setting habang nag-i-install. Iwanan ito sa default na direktoryo at mga setting ng default.
Ngayon, suriin natin kung maayos na na-install ang PySerial. Upang magawa ito, buksan muli ang Python Shell at i-type
mag-import ng serial . Kung matagumpay na na-install ang library pagkatapos ay hindi ka dapat makakuha ng anumang mga mensahe ng error tulad ng ipinakita sa larawan sa ibaba. Kung nakakuha ka ng anumang mga error i-post ang mga ito sa seksyon ng komento at susubukan naming lutasin ito.
Ipinapalagay ng tutorial na ito na pamilyar ka sa Arduino at may karanasan sa pag-upload ng mga proyekto sa Arduino. Kaya't direkta tayong tumalon sa aming programa ng Python. Kung ikaw ay isang nagsisimula sa Arduino suriin ang aming Mga Proyekto ng Arduino at magsimula mula sa LED Blinking kasama ang Arduino.
Ang aming Unang Arduino Python Program:
Tulad ng sinabi kanina, makokontrol namin ang in-built Arduino board LED gamit ang Python script. Magsimula tayo sa Arduino code.
Programa para sa Arduino:
Ang kumpletong programa para sa Arduino python tutorial na ito ay ibinibigay sa pagtatapos ng pahinang ito. Magbasa nang higit pa upang malaman kung paano ito gumagana.
Sa loob ng pag- andar ng pag- setup ay pinasimulan namin ang serial na komunikasyon sa 9600 baud rate at ipinapahayag na gagamitin namin ang built in led bilang output at babaan ito mababa sa pagsisimula ng programa. Nagpadala din kami ng isang maligayang mensahe sa python sa pamamagitan ng serial print tulad ng ipinakita sa ibaba:
void setup () {Serial.begin (9600); // initialize serial COM at 9600 baudrate pinMode (LED_BUILTIN, OUTPUT); // gawin ang LED pin (13) bilang output digitalWrite (LED_BUILTIN, LOW); Serial.println ("Hi !, I am Arduino"); }
Sa loob ng pag- andar ng loop , binabasa namin kung anuman ang data na darating sa serial at itatalaga ang halaga sa variable na "data". Batay ngayon sa halaga ng variable na ito ("data") pinapalitan namin ang built in led tulad ng ipinakita sa ibaba.
void loop () {habang (Serial.available ()) {data = Serial.read (); } kung (data == '1') digitalWrite (LED_BUILTIN, TAAS); kung hindi man kung (data == '0') digitalWrite (LED_BUILTIN, LOW); }
Programa para sa Python:
Ang kumpletong programa ng sawa para sa tutorial na ito ay ibinibigay sa pagtatapos ng pahinang ito. Magbasa pa upang malaman kung paano magsulat at gumamit ng pareho.
- Buksan ang iyong Python Shell (Python IDLE) at i-click ang File-> Bago
- Magbubukas ito ng isang bagong file ng teksto kung saan maaari kang mag-type sa iyong programa.
- Bago kami mag-type ng anumang hinahayaan i-save ang file, sa pamamagitan ng Ctrl + S. Mag-type sa anumang pangalan at mag-click sa save. Awtomatiko nitong mai-save ka ng file sa extension na ".py".
- Ngayon, i-type ang programa o i-paste ang code ng sawa na ibinigay sa dulo ng pahinang ito. Ang paliwanag para sa pareho ay ibinibigay sa ibaba at sa wakas ay patakbuhin ang programa.
Sa aming programa ang unang hakbang ay ang pag- import ng serial at time library. Ang serial library na nasabi nang maaga ay gagamitin upang mabasa at sumulat ng serial data at gagamitin ang time library upang lumikha ng mga pagkaantala sa aming programa. Ang dalawang aklatan na ito ay maaaring mai-import sa aming programa gamit ang sumusunod na dalawang linya:
mag-import ng serial #Serial na na-import para sa Serial na oras ng pag-import ng komunikasyon #Kinakailangan upang magamit ang mga pagpapaandar na pagkaantala
Ang susunod na hakbang ay upang simulan ang isang serial object gamit ang aming serial library. Sa programang ito, pinangalanan namin ang aming serial object bilang "ArduinoSerial" . Sa linyang ito kailangan nating banggitin ang pangalan ng port ng COM kung saan nakakonekta ang aming Arduino at sa kung anong baud rate ito tumatakbo tulad ng ipinakita sa ibaba.
ArduinoSerial = serial.Serial ('com18', 9600)
Tandaan: Napakahalaga na banggitin ang tamang pangalan ng port ng COM. Maaari itong matagpuan sa pamamagitan ng paggamit ng Device manager sa iyong computer.
Kaagad na nasimulan ang serial object dapat nating hawakan ang programa sa loob ng dalawang segundo para maitatag ang Serial na komunikasyon. Maaari itong magawa sa pamamagitan ng paggamit ng linya sa ibaba:
oras. tulog (2)
Ngayon ay maaari naming basahin o isulat ang anumang mula sa / sa aming Arduino Board.
Basahin ng sumusunod na linya ang anumang nagmumula sa Arduino at i-print ito sa window ng shell
i-print ang ArduinoSerial.readline ()
Maaari mo ring italaga ang halaga sa isang variable at gamitin ito para sa mga pagkalkula.
Isusulat ng sumusunod na linya ang halaga ng parameter sa Arduino Board.
ArduinoSerial.write ('1')
Isusulat ng linyang ito ang '1' sa Arduino. Maaari kang magpadala ng anumang bagay mula sa mga decimal hanggang sa mga string gamit ang parehong linya.
Ngayon, pagbabalik sa aming programa, sa loob ng walang hanggan habang loop, mayroon kaming mga sumusunod na linya
var = raw_input () #get input mula sa print ng gumagamit na "ipinasok mo", var #print ang input para sa kumpirmasyon kung (var == '1'): #kung ang halaga ay 1 ArduinoSerial.write ('1') #send 1 oras ng pag-print ("LED ON" ".matulog (1) kung (var == '0'): #kung ang halaga ay 0 ArduinoSerial.write ('0') #send 0 print (" LED naka-OFF ") na oras.matulog (1)
Makakakuha ang linya ng var = raw_input ng anumang halaga na nai-type sa Shell script at itatalaga ang halagang iyon sa variable var .
Sa paglaon, kung ang halaga ay 1 mai-print nito ang '1' nang serial sa Arduino at kung 0 mai-print nito ang '0' nang serial sa Arduino. Ang code sa aming Arduino Program (tinalakay sa itaas) ililipat namin ang LED batay sa natanggap na halaga.
Kapag tapos na ang kumpletong programa ay dapat magmukhang ganito sa ibaba ang iyong script
Ngayon mag- click sa Run -> Run Module o pindutin ang F5 maaari itong hilingin sa iyo na i-save ang programa at pagkatapos ay ilulunsad ito.
Pagkontrol sa LED na may Python at Arduino:
Ang pagtatrabaho ng proyektong ito ay medyo tuwid. I-upload ang programa sa iyong Arduino at i-verify na nakakonekta ito sa parehong port ng COM tulad ng nabanggit sa programang sawa. Pagkatapos Ilunsad ang programa ng Python tulad ng nabanggit sa itaas.
Ilulunsad nito ang isang python shell script tulad ng ipinakita sa ibaba. Ang window sa kaliwa ay ang window ng shell na nagpapakita ng output at ang window sa kanan ay ang script na nagpapakita ng programa.
Tulad ng nakikita mo ang string na "Hi !, I am Arduino" na ipinasok sa Arduino program ay natanggap ng Python at ipinapakita sa shell window nito.
Kapag humiling ang window ng shell na maglagay ng mga halaga, maaari kaming magpasok ng alinman sa 0 o 1. Kung magpapadala kami ng 1 ang LED sa Arduino Board ay MAG-ON at kung magpapadala kami ng 0 ang LED sa aming Arduino Board ay papatayin. Ipinapakita ang isang matagumpay na koneksyon sa pagitan ng aming Arduino Program at Python.
Mayroong dalawang programa na ibinigay sa ibaba, isa upang mai-upload at patakbuhin mula sa Arduino at pangalawa ay tatakbo mula sa Python Shell sa Windows.
Inaasahan kong naintindihan mo ang proyekto at nagawa itong gumana. Kung hindi, i-post ang iyong problema sa komento sa ibaba at nasisiyahan akong tulungan ka. Sa aming susunod na proyekto matututunan namin kung ano pa ang maaaring gawin cool na sa Python at Arduino sa pamamagitan ng paggalugad malalim sa iba pang mga module ng sawa tulad ng Vpython, gamepython atbp Hanggang sa manatiling nakatutok….