SERob3 (python) - Թափառող ռոբոտի օրինակ Python ծրագրավորման լեզվի միջոցով
| Пример бродячего робота с помощью языка программирования Python
Ռոբոտի համար անհրաժեշտ է՝
1) SERob3 ղեկավարիչ (controller),
2) Ուլտրաձայնային հեռաչափ (Ultrasonic sensor range finder, Usrf),
3) 2 Շարժիչ իրենց controller-ներով։
Աջ շարժիչը միացնել Motor բաժնի pin 1 – ին:
Ուլտրաձայնային հեռաչափի input-ը միացնել D n/O բաժնի pin 3-ին, իսկ Out-ը՝ pin 4-ին:
Ձախ շարժիչը միացնել Mօtor բաժնի pin 0 – ին:
Սեղմեք այստեղ
Թափառող ռոբոտի համար կա 2 python-ի օրինակ՝ 1. obstacle_avoiding_v1 - Առանց drive դրայվերի․ 2. obstacle_avoiding_v2 - drive դրայվերով։
Կքննարկենք 2-րդ տարբերակը։
Եթե ռոբոտի հեռավորությունը արգելքից 50սմ-ից ավելին է` ռոբոտը շարժվում է առաջ տվյալ շարժիչներով, տվյալ արագությամբ։ Այդ ամենը գրառում ենք այսպես.
Ծրագիրը ստեղծելու համար օգտվում ենք «sys», «time» եւ «SERob3» կատալոգի միջից` «drive» (Շարժիչների հեշտ կառավարման համար) եւ «Usrf» (հեռաչափի միջոցով արգելքից հեռավորությունը չափելու համար) գրադարաններից։ Դրանք ներմուծելու համար օգտագործում ենք «import» հրամանը եւ նշում ենք կատալոգը։
Սեղմեք այստեղ
Code: Select all
from SERob3 import drive
from SERob3 import Usrf
import time
myUsrf = Usrf()
Code: Select all
while (1):
Սեղմեք այստեղ
Code: Select all
if myUsrf.Distance(3) > 50:
drive.Out(0, 1, 70)
Սեղմեք այստեղ
Code: Select all
if myUsrf.Distance(3) > 20 and myUsrf.Distance(3) < 50:
drive.Out(0, 1, 30)
Սեղմեք այստեղ
Code: Select all
drive.Out(0, 1, 0)
time.sleep(0.5)
drive.Out(0, 2, 70)
time.sleep(0.2)
drive.Out(0, 3, 70)
time.sleep(0.17)
drive.Out(0, 1, 0)
time.sleep(0.5)
Code: Select all
a = myUsrf.Distance(3)
Սեղմեք այստեղ
Code: Select all
time.sleep(0.5)
drive.Out(0, 4, 70)
time.sleep(0.4)
drive.Out(0, 1, 0)
Code: Select all
b = myUsrf.Distance(3)
Սեղմեք այստեղ
Code: Select all
time.sleep(0.5)
drive.Out(0, 3, 70)
time.sleep(0.2)
drive.Out(0, 1, 0)
Եթե «a > b», ապա
Code: Select all
if a > b :
Սեղմեք այստեղ
Code: Select all
drive.Out(0, 3, 70)
time.sleep(0.4)
drive.Out(0, 1, 0)
time.sleep(0.3)
drive.Out(0, 1, 70)
Code: Select all
if a < b :
Սեղմեք այստեղ
Code: Select all
drive.Out(0, 4, 70)
time.sleep(0.5)
drive.Out(0, 1, 0)
drive.Out(0, 1, 70)
Code example:
Code: Select all
from SERob3 import drive
from SERob3 import Usrf
import time
myUsrf = Usrf()
while (1):
print(myUsrf.Distance(3))
if myUsrf.Distance(3) > 50:
drive.Out(0, 1, 70)
if myUsrf.Distance(3) > 20 and myUsrf.Distance(3) < 50:
drive.Out(0, 1, 30)
if myUsrf.Distance(3) < 20:
drive.Out(0, 1, 0)
time.sleep(0.5)
drive.Out(0, 2, 70)
time.sleep(0.2)
drive.Out(0, 3, 70)
time.sleep(0.17)
drive.Out(0, 1, 0)
time.sleep(0.5)
a = myUsrf.Distance(3)
time.sleep(0.5)
drive.Out(0, 4, 70)
time.sleep(0.4)
drive.Out(0, 1, 0)
b = myUsrf.Distance(3)
time.sleep(0.5)
drive.Out(0, 3, 70)
time.sleep(0.2)
drive.Out(0, 1, 0)
if a > b :
drive.Out(0, 3, 70)
time.sleep(0.4)
drive.Out(0, 1, 0)
time.sleep(0.3)
drive.Out(0, 1, 70)
if a < b :
drive.Out(0, 4, 70)
time.sleep(0.5)
drive.Out(0, 1, 0)
drive.Out(0, 1, 70)
Ռոբոտը միացնելուց հետո բացում ենք «Terminal»-ը եւ նշում այն կատալոգը, որտեղ գտնվում է ծրագիրը։ «cd projects/SERob3»
Այնուհետեւ «obstacle_avoiding_v2.py» ծրագիրը աշխատացնում ենք python-ի միջոցով։ «sudo python2 obstacle_avoiding_v2.py»
Տերմինալի հրամաներ
Code: Select all
cd projects/SERob3/robots
sudo python2 obstacle_avoiding_v2.py