SERob3 (python) Խնդիր #2 - Փոփոխել սերվոյի դիրքը հեռաչափից կախված։

Post Reply
davbaghdasaryan
Posts: 101
Joined: Thu Apr 09, 2020 8:08 pm

SERob3 (python) Խնդիր #2 - Փոփոխել սերվոյի դիրքը հեռաչափից կախված։

Post by davbaghdasaryan »

Change the servo position depending on the rangefinder | Изменить положение серво в зависимости от дальномера



Բարեւ ձեզ։ Այսօր մենք կքննարկենք մի խնդիր՝ սերվոյի դիրքը հեռաչափից կախված։ Դրա համար մեզ անհրաժեշտ է`

1) SERob3 controller (ղեկավարիչ),
2) Ուլտրաձայնային հեռաչափ,
3) սերվո շարժիչ:

Սերվոն անհրաժեշտ է միացնել motors բաժնի pin 5-ին, հեռաչափի input-ը`
D In/O բաժնի pin 3-ին, իսկ output-ը՝ նույն բաժնի pin 4-ին։

Picture1.png
Picture1.png (130.28 KiB) Viewed 10411 times
Վերջ, սխեման ավարտեցինք։ Ծրագիրը ստեղծելու համար նախ օգտվում ենք «servo», «time» եւ «Usrf» գրադարաններից։ Գրանցում ենք «Usrf»-ը որպես «myUsrf»։
Սեղմեք այստեղ

Code: Select all

from SERob3 import servo
from SERob3 import Usrf
import time

myUsrf = Usrf()
Հետագա գործողությունները անդադար շարունակելու համար օգտագործում ենք «while (1):» հրամանը։

Code: Select all

while (1):
Ստուգումներից առաջ միշտ սպասել 0.5 վայրկյան։
Կատարել համեմատությունները․ եթե հեռավորությունը մեծ է 35սմ-ից, ապա սերվոն ընդունում է 90 աստիճան անկյունը, եթե փոքր է 35սմ- ից՝ ընդունում է 0 աստիճան անկյունը, իսկ եթե փոքր է 20սմ-ից՝ ընդունում է -90 աստիճան անկյունը։
Սեղմեք այստեղ

Code: Select all

time.sleep(0.5)

	if myUsrf.Distance(3) > 35
		servo.Out(5, 90)

	if myUsrf.Distance(3) < 35
		servo.Out(5, 0)
		
	if myUsrf.Distance(3) < 20
		servo.Out(5, -90)	

Տեսնել ավելին
Ինչպես աշխատացնել սերվո շարժիչ՝ viewtopic.php?f=8&t=14&sid=3ec581277cd2 ... c2021e81c9
Ինչպես աշխատացնել հեռաչափը՝ viewtopic.php?f=8&t=10&sid=17e4575f4952 ... 5622f88284)
Code example

Code: Select all

from SERob3 import servo
from SERob3 import Usrf
import time

myUsrf = Usrf()

while (1):
	time.sleep(0.5)

	if myUsrf.Distance(3) > 35
		servo.Out(5, 90)

	if myUsrf.Distance(3) < 35
		servo.Out(5, 0)
		
	if myUsrf.Distance(3) < 20
		servo.Out(5, -90)	

Այնուհետեւ SERob-ին միանալուց հետո անհրաժեշտ է մտնել այն կատալոգը, որտեղ գտնվում է ծրագիրը։ Դրա համար բացում ենք տերմինալը և գրում․ «cd projects», այնուհետեւ «cd SERob3», «cd problems» «sudo python2» եւ ֆայլի անվանումը «Usrf_servo.py»։
Տերմինալի հրամաններ

Code: Select all

cd projects
cd SERob3
cd problems
sudo python2 Usrf_servo.py
Վերջ, մենք ստացանք մեզ անհրաժեշտ արդյունքը

Last edited by davbaghdasaryan on Mon Aug 02, 2021 6:11 pm, edited 2 times in total.

davbaghdasaryan
Posts: 101
Joined: Thu Apr 09, 2020 8:08 pm

Задача #2 - Изменить положение серво в зависимости от дальномера

Post by davbaghdasaryan »

Добрый день. Сегодня мы рассмотрим одну задачу - положение серво в зависимости от дальномера. Для этого нам потребуются:

1) SERob3 controller (контроллер),
2) Ультразвуковой дальномер,
3) Серводвигатель.

Необходимо серво подключить к pin 5 секции motors, input дальномера - к pin 3 секции D In/O, а output - к pin 4 той же секции.
Picture1.png
Picture1.png (130.28 KiB) Viewed 10236 times
Все. Схема завершена. Чтобы создать программу, в первую очередь, воспользуемся библиотеками "time servo", "time" и "Usrf". Записываем "Usrf" как "myUsrf".
Code:

Code: Select all

from SERob3 import servo
from SERob3 import Usrf
import time

myUsrf = Usrf()
Для непрерывного продолжения дальнейших действий воспользуемся командой "while (1):".

Code: Select all

while (1):
Перед проверками всегда ждать 0.5 секунд.
Провести сравнения: если расстояние больше 35 см, то серво принимает угол 90 градусов, если меньше 35 см - принимает угол 0 градусов, а если меньше 20 см - принимает угол -90 градусов.
Code:

Code: Select all

	time.sleep(0.5)

	if myUsrf.Distance(3) > 35
		servo.Out(5, 90)

	if myUsrf.Distance(3) < 35
		servo.Out(5, 0)
		
	if myUsrf.Distance(3) < 20
		servo.Out(5, -90)	
Запустим программу. Для этого открываем terminal и указываем каталог, в котором находится программа, и запускаем ее.
Terminal:

Code: Select all

cd projects/
cd SERob3/
sudo python2 Usrf_servo.py
Вот и все. Мы получили необходимый нам результат.
Код программы:

Code: Select all

from SERob3 import servo
from SERob3 import Usrf
import time

myUsrf = Usrf()

while (1):
	time.sleep(0.5)

	if myUsrf.Distance(3) > 35
		servo.Out(5, 90)

	if myUsrf.Distance(3) < 35
		servo.Out(5, 0)
		
	if myUsrf.Distance(3) < 20
		servo.Out(5, -90)

davbaghdasaryan
Posts: 101
Joined: Thu Apr 09, 2020 8:08 pm

SERob3 (python) Task #2 - Change the servo position depending on the rangefinder

Post by davbaghdasaryan »

Hi! Today we will discuss a task as “the position of the servo depending on the rangefinder". We need

1) SERob3 controller
2)Ultrasonic sensor range finder(Usrf)
3) Servo motor

We need to connect the servo with the pin 5 of the motors section, the Input of Usrf with the pin 3 of the D In/0 section and the output with the pin 4 of the same section.

Image

So, we finished the scheme. Let's move on to software.
In order to create the program we use “time servo”, “time” and “Usrf” libraries. Register the “Usrf” as “myUsrf”.

Code

Code: Select all

from SERob3 import servo
from SERob3 import Usrf
import time

myUsrf = Usrf()
In order to continue the subsequent operations uninterrupted we need to use the “while (1)”.

Code: Select all

while (1):
Always wait 5 seconds before checking. If the distance is more than 35 cm, the servo accepts a 900 angle, if it is less than 35 cm, it accepts 00 angle and if it is less than 20 cm the servo accepts a -900 angle.
example

Code: Select all

time.sleep(0.5)

	if myUsrf.Distance(3) > 35
		servo.Out(5, 90)

	if myUsrf.Distance(3) < 35
		servo.Out(5, 0)
		
	if myUsrf.Distance(3) < 20
		servo.Out(5, -90)	

Click
Code example

Code: Select all

from SERob3 import servo
from SERob3 import Usrf
import time

myUsrf = Usrf()

while (1):
	time.sleep(0.5)

	if myUsrf.Distance(3) > 35
		servo.Out(5, 90)

	if myUsrf.Distance(3) < 35
		servo.Out(5, 0)
		
	if myUsrf.Distance(3) < 20
		servo.Out(5, -90)	

Let’s run the program. Open the “terminal” and mention the catalogue where the program is located and run it.
Code

Code: Select all

cd projects
cd SERob3
cd problems
sudo python2 Usrf_servo.py

So, we got the results we needed.
The program code is as follows:


Post Reply