SERob3 (python) - pyfirmata – Ինչպե՞ս SERob ղեկավարիչին միացնել Arduino
Posted: Fri Apr 24, 2020 5:21 pm
How to connect Arduino with SERob controller | Как к SERob контроллеру подключить Arduino
Այսօր մենք SERob3 ղեկավարիչին կմիացնենք Arduino Uno եւ կփորձենք կարդալ նրա Pin-երը եւ տալ նրանց արժեքներ։
Մեզ անհրաժեշտ է․
1) SERob3 ղեկավարիչ (controller),
2) Arduino Uno,
3) 2 լեդ լույս՝ իրենց ռեզիստորներով,
4) լարեր,
5) փոփոխական ռեզիստոր,
6) գծին հետեւող սենսոր,
7) մակետային սալիկ (breadboard)՝ ըստ ցանկության:
Սխեման կարող եք հավաքել ըստ հետեւյալ նկարի
USB-ով Arduino-ն միացնենք SERob3 ղեկավարիչին անալոգ եւ թվային (digital) Pin-երից։ Մուտքագրելու ենք թվային (digital) եւ PWM Pin-երի արժեքները։
Ծրագիրը ստեղծելու համար օգտվում ենք «pyfirmata» եւ «time» գրադարաններից։ «Pyfirmata»-ն գտնվում է «SERob3» կատալոգում։ Այնուհետեւ նշենք մեր սալիկը (board)՝ Arduino եւ թե ուր է այն միացված USB-ի միջոցով
Գծին հետեւող սենսորը միացված է 7-րդ Pin-ին: Դրա արժեքը կարդալու համար գրում ենք «d:7:i», որտեղ «d»-ն նշանակում է թվային (digital), 7-ը Pin-ի համարն է, «i»՝ ներմուծում (input)։
Առաջին լույսին տալիս ենք «d:5:p», որտեղ «d»-ն նշանակում է թվային (digital), 5-ը Pin-ի համարն է, «p»՝ pwm, որը կարող է ստանալ 0-255 արժեք։
Երկրորդ լույսին, որը միացված է 6-րդ Pin-ին, տալիս ենք «d:6:օ», որտեղ «о» նշանակում է թվային (digital) output․ կարող է ունենալ 0 կամ 1 արժեքը։
Փոփոխական ռեզիստորի արժեքը կարդալու համար գրում ենք «a:0:i», որտեղ «а»-ն նշանակում է անալոգային, 0, Input` ներմուծում.
Անալոգը կարդալու համար անպայման է սկսել «Iterator» գործողությունը հետեւյալ հրամանով. «i=pyfirmata.until.Iterator(board)»:
Այնուհետեւ՝ ստուգումները կատարելուց առաջ, սպասում ենք 0․1 վայրկյան՝ «time.sleep(0.3)»։
Աշխատանքը հեշտացնելու համար տպում ենք գծին հետեւող սենսորից եւ փոփոխական ռեզիստորից ստացված արժեքները։
Առաջին լույսին տալիս ենք փոփոխական ռեզիստորից ստացված արժեք, իսկ երկրորդ լեդին՝ գծին հետեւող սենսորից ստացված արժեքը։
Նշում ենք այն կատալոգը, որտեղ գտնվում է ծրագիրը։ Դրա համար գրում ենք․ «cd projects», «cd SERob3»։ Այնուհետեւ աշխատացնում ենք ծրագիրը․ «sudo python2» եւ ֆայլի անվանումը՝ «ardpins.py»:
Արդյունքում տպվում են սենսորներից ստացված տվյալները եւ դրանց համապատասխան վառվում են լույսերը։
Հավելյալ ՝ viewtopic.php?f=8&t=32&sid=bb54feab3b41 ... eb098c916d
Այսօր մենք SERob3 ղեկավարիչին կմիացնենք Arduino Uno եւ կփորձենք կարդալ նրա Pin-երը եւ տալ նրանց արժեքներ։
Մեզ անհրաժեշտ է․
1) SERob3 ղեկավարիչ (controller),
2) Arduino Uno,
3) 2 լեդ լույս՝ իրենց ռեզիստորներով,
4) լարեր,
5) փոփոխական ռեզիստոր,
6) գծին հետեւող սենսոր,
7) մակետային սալիկ (breadboard)՝ ըստ ցանկության:
Սխեման կարող եք հավաքել ըստ հետեւյալ նկարի
Տեսնել նկարը
Տեսնել նկարը
Սեղմեք այստեղ
Code: Select all
from SERob3 import pyfirmata
import time
board = pyfirmata.Arduino('/dev/ttyACM0')
Առաջին լույսին տալիս ենք «d:5:p», որտեղ «d»-ն նշանակում է թվային (digital), 5-ը Pin-ի համարն է, «p»՝ pwm, որը կարող է ստանալ 0-255 արժեք։
Երկրորդ լույսին, որը միացված է 6-րդ Pin-ին, տալիս ենք «d:6:օ», որտեղ «о» նշանակում է թվային (digital) output․ կարող է ունենալ 0 կամ 1 արժեքը։
Փոփոխական ռեզիստորի արժեքը կարդալու համար գրում ենք «a:0:i», որտեղ «а»-ն նշանակում է անալոգային, 0, Input` ներմուծում.
Սեղմեք այստեղ
Code: Select all
pin = board.get_pin('d:7:i')
led = board.get_pin('d:5:p')
led2 = board.get_pin('d:6:o')
potentiometer = board.get_pin('a:0:i')
Սեղմեք այստեղ
Code: Select all
i = pyfirmata.util.Iterator(board)
i.start()
Աշխատանքը հեշտացնելու համար տպում ենք գծին հետեւող սենսորից եւ փոփոխական ռեզիստորից ստացված արժեքները։
Առաջին լույսին տալիս ենք փոփոխական ռեզիստորից ստացված արժեք, իսկ երկրորդ լեդին՝ գծին հետեւող սենսորից ստացված արժեքը։
Սեղմեք այստեղ
Code: Select all
while True:
time.sleep(0.1)
print(pin.read())
print(potentiometer.read())
led.write(potentiometer.read())
led2.write(pin.read())
Code example:
Code: Select all
from SERob3 import pyfirmata
import time
board = pyfirmata.Arduino('/dev/ttyACM0')
pin = board.get_pin('d:7:i')
led = board.get_pin('d:5:p')
led2 = board.get_pin('d:6:o')
potentiometer = board.get_pin('a:0:i')
i = pyfirmata.util.Iterator(board)
i.start()
while True:
time.sleep(0.1)
print(pin.read())
print(potentiometer.read())
led.write(potentiometer.read())
led2.write(pin.read())
Տերմինալի հրամաններ
Code: Select all
cd projects
cd SERob3
sudo python2 ardpins.py
Հավելյալ ՝ viewtopic.php?f=8&t=32&sid=bb54feab3b41 ... eb098c916d