SERob3 (python) Խնդիր #1 - Փոփոխել շարժիչի արագությունը հեռաչափից կախված։
Posted: Wed Apr 15, 2020 1:36 pm
Change the motor speed depending on the rangefinder | Изменить скорость двигателя в зависимости от дальномера
Բարեւ ձեզ։ Այսօր մենք կքննարկենք մի խնդիր՝ կփոփոխենք հաստատուն հոսանքի շարժիչի արագությունը հեռաչափից կախված։ Դրա համար մեզ անհրաժեշտ է՝
1) SERob3 controller (ղեկավարիչ),
2) Ուլտրաձայնային հեռաչափ,
3) հաստատուն հոսանքի շարժիչ իր դրայվերով։
Սկզբում շարժիչը միացնում ենք դրայվերին հետեւյալ կերպ՝
Շարժիչը միացնում ենք SERob3-ի motors բաժնի pin 0-ին, հեռաչափի input-ը՝
D In/O բաժնի pin 3-ին, իսկ output-ը՝ նույն բաժնի pin 4-ին։
Վերջ։ Սխեման ավարտեցինք։ Ծրագիրը ստեղծելու համար նախ օգտվում ենք «time myPwm», «time» և «Usrf» գրադարաններից։ Գրանցում ենք «Usrf»-ը որպես «myUsrf» եւ «Pwm»-ը՝ որպես «myPwm»։
Հետագա գործողությունները անդադար շարունակելու համար օգտագործում ենք «while (1):» հրամանը։
Աշխատանքն ավելի հեշտացնելու համար` տպենք հեռաչափից ստացած հեռավորությունը։
Ստուգումներից առաջ միշտ սպասել 0.5 վայրկյան։
Կատարել համեմատությունները. եթե հեռավորությունը մեծ է 50սմ-ից, ապա շարժիչը գտնվի սպասող վիճակում, եթե փոքր է 7սմ- ից` կանգնի, իսկ եթե մեծ է 7սմ-ից եւ փոքր է 50սմ-ից, ապա x – ին տանք հեռավորություն * 50 / 70 արժեքը։
Այնուհետեւ SERob-ին միանալուց հետո անհրաժեշտ է մտնել այն կատալոգը, որտեղ գտնվում է ծրագիրը։ Դրա համար բացում ենք տերմինալը և գրում․ «cd projects», այնուհետեւ «cd SERob3», «cd problems» «sudo python2» եւ ֆայլի անվանումը «Usrf_motor.py»։
Վերջ, մենք ստացանք մեզ անհրաժեշտ արդյունքը
Բարեւ ձեզ։ Այսօր մենք կքննարկենք մի խնդիր՝ կփոփոխենք հաստատուն հոսանքի շարժիչի արագությունը հեռաչափից կախված։ Դրա համար մեզ անհրաժեշտ է՝
1) SERob3 controller (ղեկավարիչ),
2) Ուլտրաձայնային հեռաչափ,
3) հաստատուն հոսանքի շարժիչ իր դրայվերով։
Սկզբում շարժիչը միացնում ենք դրայվերին հետեւյալ կերպ՝
Շարժիչը միացնում ենք SERob3-ի motors բաժնի pin 0-ին, հեռաչափի input-ը՝
D In/O բաժնի pin 3-ին, իսկ output-ը՝ նույն բաժնի pin 4-ին։
Վերջ։ Սխեման ավարտեցինք։ Ծրագիրը ստեղծելու համար նախ օգտվում ենք «time myPwm», «time» և «Usrf» գրադարաններից։ Գրանցում ենք «Usrf»-ը որպես «myUsrf» եւ «Pwm»-ը՝ որպես «myPwm»։
Սեղմեք այստեղ
Code: Select all
from SERob3 import Pwm
from SERob3 import Usrf
import time
myUsrf = Usrf()
myPwm = Pwm()
Code: Select all
while (1):Code: Select all
print(myUsrf.Distance(3))
Կատարել համեմատությունները. եթե հեռավորությունը մեծ է 50սմ-ից, ապա շարժիչը գտնվի սպասող վիճակում, եթե փոքր է 7սմ- ից` կանգնի, իսկ եթե մեծ է 7սմ-ից եւ փոքր է 50սմ-ից, ապա x – ին տանք հեռավորություն * 50 / 70 արժեքը։
Տեսնել ավելին
Ինչպես աշխատացնել շարժիչները՝ viewtopic.php?f=8&t=13&sid=17e4575f4952 ... 622f88284])
Ինչպես աշխատացնել հեռաչափը՝ viewtopic.php?f=8&t=10&sid=17e4575f4952 ... 5622f88284)
Ինչպես աշխատացնել հեռաչափը՝ viewtopic.php?f=8&t=10&sid=17e4575f4952 ... 5622f88284)
Code example
Code: Select all
from SERob3 import Pwm
from SERob3 import Usrf
import time
myUsrf = Usrf()
myPwm = Pwm()
while (1):
print(myUsrf.Distance(3))
time.sleep(0.5)
if myUsrf.Distance(3) > 50:
myPwm.Out(0, 0)
if myUsrf.Distance(3) < 7:
myPwm.Out(0, 0)
if myUsrf.Distance(3) < 50 and myUsrf.Distance(3) > 7:
x = myUsrf.Distance(3) * 70 / 50
myPwm.Out(0, x)
Տերմինալի հրամաններ
Code: Select all
cd projects
cd SERob3
cd problems
sudo python2 Usrf_motor.py