[ev3dev×Pythhon] 다중 모터 제어
이번에 나는 여러 개의 모터를 제어해서 탱크를 운전하고 싶다.
카탈로그
0 . 준비물
1 . 탱크.
2 . 방향을 바꾸다
3 . 프로그램 예
4 . 프로그램 실행 정보
준비물
◯ ev3 (캔)
컴퓨터(VScode)
◯ bluetooth
◯ microSD
◯자료.(이걸 보면서 진행하는 걸 추천합니다.)
1. 탱크
1-0 . 탱크의 기초 프로그램(자료p.26)
tank00.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_B, OUTPUT_C, MoveTank
tank_drive = MoveTank(OUTPUT_B,OUTPUT_C)
tank_drive.on_for_rotations(80,-30,6)
Point : class ev3dev2.motor.MoveTank(left_motor_port, right_motor_port, desc=None, motor_class=)
Point: 각 모터의 속도를 입력하여 전진 방향을 결정합니다.
※ 속도 범위는 -100부터 100까지입니다.
Point: MINDSTORMS 프로그래밍은 다음과 같습니다.
2. 전향
2-0 . 전향의 기초 프로그램(자료p.29)
steering00.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A, OUTPUT_B, MoveSteering, SpeedPercent
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
steering_drive.on_for_rotations(-10,SpeedPercent(75),5)
Point : class ev3dev2.motor.MoveSteering(left_motor_port, right_motor_port, desc=None, motor_class=)
Point: 탱크 전용.핸들 작업과 유사한 이미지입니다.
Point: 커브 정도를 직접 하나의 수치로 결정할 수 있습니다.
Point:회전 수치
0<회전 수치<=100: 오른쪽으로 회전합니다.100회전 (이 위치에서 우회전).
회전 수치 = 0: 직선
- 100<=회전 수치<0: 왼쪽으로 회전.-100회전(제자리 좌회전)
Point: MINDSTORMS 프로그래밍은 다음과 같습니다.
3. 프로그램 예
3-0 . 회전 수치를 10개씩 올리는 프로그램
example00.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(0,101,10):
steering_drive.on_for_seconds(i,SpeedPercent(75),1)
steering_drive.stop()
Point: 0<=i <11 범위에서 i 10개씩 증가
즉
첫 번째 순환(i=0): 자동차 직진
제2차 순환(i=10): 자동차를 약간 오른쪽으로 돌다
:
제11차 순환(i=100): 자동차가 제자리에서 우회전한다.
Point: for 순환여기 기사.이 비교적 이해하기 쉽다.
3-1 . 임의로 전진 방향을 결정하는 프로그램
example01.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
import random
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(10):
num = random.randint(-100,100)
print(num)
steering_drive.on_for_seconds(num,SpeedPercent(75),2)
steering_drive.stop()
Point: 2초 간격으로 임의로 전진 방향 결정
Point : random.randint(min,max)
지정한 범위 (min~max) 에서 int 값 (정수 값) 을 무작위로 꺼냅니다.
Point: 랜덤 함수여기 기사.에 대해 이해하기 쉽습니다.
3-2 . 목록을 사용하여 모터의 회전 속도를 바꾸는 프로그램
example02.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,10]
for i in speed_list:
sleep(1)
tank_drive.on_for_rotations(i,i,2)
tank_drive.stop()
Point: 목록의 시작 부분에서 순서대로 숫자를 추출하여 각 모터의 속도로 만들기
Point : sleep()
매개 변수가 지정한 초를 기다리는 함수
Point: 목록여기 기사.에 대해 쉽게 이해할 수 있습니다.
3-3 . 조합 목록과 무작위 함수를 통해 모터의 회전 속도를 바꾸는 프로그램
example03.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
import random
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,0]
for i in speed_list:
sleep(1)
num = random.choice(speed_list)
tank_drive.on_for_rotations(num,0,2)
tank_drive.stop()
Point: 목록에서 숫자를 무작위로 꺼내 8회 반복해서 모터 (포트 A) 의 속도로 설정합니다
Point : random.choice()
여러 요소가 있는 객체(예: 리스트 또는 문자열)를 매개 변수로 한 요소를 임의로 반환(출력)합니다.
Point: 무작위여기 기사.도 쉽게 이해할 수 있습니다.
4. 프로그램 실행
방법을 잊어버리면 기사!
최후
읽어주셔서 감사합니다!!
다음에는 표시, 소리, 불빛에 대해 쓰고 싶어요!
더 좋은 기사를 하고 싶어서.
이렇게 하면 더욱 이해하기 쉽다
여기 이해하기 어렵다.
○여기가 틀렸다
여기
등의 의견을 제시해 주십시오.
Reference
이 문제에 관하여([ev3dev×Pythhon] 다중 모터 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masterkeaton12/items/08b87e2c088449f9bde2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
◯ ev3 (캔)
컴퓨터(VScode)
◯ bluetooth
◯ microSD
◯자료.(이걸 보면서 진행하는 걸 추천합니다.)
1. 탱크
1-0 . 탱크의 기초 프로그램(자료p.26)
tank00.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_B, OUTPUT_C, MoveTank
tank_drive = MoveTank(OUTPUT_B,OUTPUT_C)
tank_drive.on_for_rotations(80,-30,6)
Point : class ev3dev2.motor.MoveTank(left_motor_port, right_motor_port, desc=None, motor_class=)
Point: 각 모터의 속도를 입력하여 전진 방향을 결정합니다.
※ 속도 범위는 -100부터 100까지입니다.
Point: MINDSTORMS 프로그래밍은 다음과 같습니다.
2. 전향
2-0 . 전향의 기초 프로그램(자료p.29)
steering00.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A, OUTPUT_B, MoveSteering, SpeedPercent
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
steering_drive.on_for_rotations(-10,SpeedPercent(75),5)
Point : class ev3dev2.motor.MoveSteering(left_motor_port, right_motor_port, desc=None, motor_class=)
Point: 탱크 전용.핸들 작업과 유사한 이미지입니다.
Point: 커브 정도를 직접 하나의 수치로 결정할 수 있습니다.
Point:회전 수치
0<회전 수치<=100: 오른쪽으로 회전합니다.100회전 (이 위치에서 우회전).
회전 수치 = 0: 직선
- 100<=회전 수치<0: 왼쪽으로 회전.-100회전(제자리 좌회전)
Point: MINDSTORMS 프로그래밍은 다음과 같습니다.
3. 프로그램 예
3-0 . 회전 수치를 10개씩 올리는 프로그램
example00.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(0,101,10):
steering_drive.on_for_seconds(i,SpeedPercent(75),1)
steering_drive.stop()
Point: 0<=i <11 범위에서 i 10개씩 증가
즉
첫 번째 순환(i=0): 자동차 직진
제2차 순환(i=10): 자동차를 약간 오른쪽으로 돌다
:
제11차 순환(i=100): 자동차가 제자리에서 우회전한다.
Point: for 순환여기 기사.이 비교적 이해하기 쉽다.
3-1 . 임의로 전진 방향을 결정하는 프로그램
example01.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
import random
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(10):
num = random.randint(-100,100)
print(num)
steering_drive.on_for_seconds(num,SpeedPercent(75),2)
steering_drive.stop()
Point: 2초 간격으로 임의로 전진 방향 결정
Point : random.randint(min,max)
지정한 범위 (min~max) 에서 int 값 (정수 값) 을 무작위로 꺼냅니다.
Point: 랜덤 함수여기 기사.에 대해 이해하기 쉽습니다.
3-2 . 목록을 사용하여 모터의 회전 속도를 바꾸는 프로그램
example02.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,10]
for i in speed_list:
sleep(1)
tank_drive.on_for_rotations(i,i,2)
tank_drive.stop()
Point: 목록의 시작 부분에서 순서대로 숫자를 추출하여 각 모터의 속도로 만들기
Point : sleep()
매개 변수가 지정한 초를 기다리는 함수
Point: 목록여기 기사.에 대해 쉽게 이해할 수 있습니다.
3-3 . 조합 목록과 무작위 함수를 통해 모터의 회전 속도를 바꾸는 프로그램
example03.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
import random
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,0]
for i in speed_list:
sleep(1)
num = random.choice(speed_list)
tank_drive.on_for_rotations(num,0,2)
tank_drive.stop()
Point: 목록에서 숫자를 무작위로 꺼내 8회 반복해서 모터 (포트 A) 의 속도로 설정합니다
Point : random.choice()
여러 요소가 있는 객체(예: 리스트 또는 문자열)를 매개 변수로 한 요소를 임의로 반환(출력)합니다.
Point: 무작위여기 기사.도 쉽게 이해할 수 있습니다.
4. 프로그램 실행
방법을 잊어버리면 기사!
최후
읽어주셔서 감사합니다!!
다음에는 표시, 소리, 불빛에 대해 쓰고 싶어요!
더 좋은 기사를 하고 싶어서.
이렇게 하면 더욱 이해하기 쉽다
여기 이해하기 어렵다.
○여기가 틀렸다
여기
등의 의견을 제시해 주십시오.
Reference
이 문제에 관하여([ev3dev×Pythhon] 다중 모터 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masterkeaton12/items/08b87e2c088449f9bde2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_B, OUTPUT_C, MoveTank
tank_drive = MoveTank(OUTPUT_B,OUTPUT_C)
tank_drive.on_for_rotations(80,-30,6)
2-0 . 전향의 기초 프로그램(자료p.29)
steering00.py
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A, OUTPUT_B, MoveSteering, SpeedPercent
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
steering_drive.on_for_rotations(-10,SpeedPercent(75),5)
Point : class ev3dev2.motor.MoveSteering(left_motor_port, right_motor_port, desc=None, motor_class=)Point: 탱크 전용.핸들 작업과 유사한 이미지입니다.
Point: 커브 정도를 직접 하나의 수치로 결정할 수 있습니다.
Point:회전 수치
0<회전 수치<=100: 오른쪽으로 회전합니다.100회전 (이 위치에서 우회전).
회전 수치 = 0: 직선
- 100<=회전 수치<0: 왼쪽으로 회전.-100회전(제자리 좌회전)
Point: MINDSTORMS 프로그래밍은 다음과 같습니다.
![](https://s1.md5.ltd/image/c439edc6ff288f872e37e39d4cb15d3b.png)
3. 프로그램 예
3-0 . 회전 수치를 10개씩 올리는 프로그램
example00.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(0,101,10):
steering_drive.on_for_seconds(i,SpeedPercent(75),1)
steering_drive.stop()
Point: 0<=i <11 범위에서 i 10개씩 증가
즉
첫 번째 순환(i=0): 자동차 직진
제2차 순환(i=10): 자동차를 약간 오른쪽으로 돌다
:
제11차 순환(i=100): 자동차가 제자리에서 우회전한다.
Point: for 순환여기 기사.이 비교적 이해하기 쉽다.
3-1 . 임의로 전진 방향을 결정하는 프로그램
example01.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
import random
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(10):
num = random.randint(-100,100)
print(num)
steering_drive.on_for_seconds(num,SpeedPercent(75),2)
steering_drive.stop()
Point: 2초 간격으로 임의로 전진 방향 결정
Point : random.randint(min,max)
지정한 범위 (min~max) 에서 int 값 (정수 값) 을 무작위로 꺼냅니다.
Point: 랜덤 함수여기 기사.에 대해 이해하기 쉽습니다.
3-2 . 목록을 사용하여 모터의 회전 속도를 바꾸는 프로그램
example02.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,10]
for i in speed_list:
sleep(1)
tank_drive.on_for_rotations(i,i,2)
tank_drive.stop()
Point: 목록의 시작 부분에서 순서대로 숫자를 추출하여 각 모터의 속도로 만들기
Point : sleep()
매개 변수가 지정한 초를 기다리는 함수
Point: 목록여기 기사.에 대해 쉽게 이해할 수 있습니다.
3-3 . 조합 목록과 무작위 함수를 통해 모터의 회전 속도를 바꾸는 프로그램
example03.py#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
import random
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,0]
for i in speed_list:
sleep(1)
num = random.choice(speed_list)
tank_drive.on_for_rotations(num,0,2)
tank_drive.stop()
Point: 목록에서 숫자를 무작위로 꺼내 8회 반복해서 모터 (포트 A) 의 속도로 설정합니다
Point : random.choice()
여러 요소가 있는 객체(예: 리스트 또는 문자열)를 매개 변수로 한 요소를 임의로 반환(출력)합니다.
Point: 무작위여기 기사.도 쉽게 이해할 수 있습니다.
4. 프로그램 실행
방법을 잊어버리면 기사!
최후
읽어주셔서 감사합니다!!
다음에는 표시, 소리, 불빛에 대해 쓰고 싶어요!
더 좋은 기사를 하고 싶어서.
이렇게 하면 더욱 이해하기 쉽다
여기 이해하기 어렵다.
○여기가 틀렸다
여기
등의 의견을 제시해 주십시오.
Reference
이 문제에 관하여([ev3dev×Pythhon] 다중 모터 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masterkeaton12/items/08b87e2c088449f9bde2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(0,101,10):
steering_drive.on_for_seconds(i,SpeedPercent(75),1)
steering_drive.stop()
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
import random
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
for i in range(10):
num = random.randint(-100,100)
print(num)
steering_drive.on_for_seconds(num,SpeedPercent(75),2)
steering_drive.stop()
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,10]
for i in speed_list:
sleep(1)
tank_drive.on_for_rotations(i,i,2)
tank_drive.stop()
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from time import sleep
import random
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
speed_list = [-90,30,-10,80,0]
for i in speed_list:
sleep(1)
num = random.choice(speed_list)
tank_drive.on_for_rotations(num,0,2)
tank_drive.stop()
방법을 잊어버리면 기사!
최후
읽어주셔서 감사합니다!!
다음에는 표시, 소리, 불빛에 대해 쓰고 싶어요!
더 좋은 기사를 하고 싶어서.
이렇게 하면 더욱 이해하기 쉽다
여기 이해하기 어렵다.
○여기가 틀렸다
여기
등의 의견을 제시해 주십시오.
Reference
이 문제에 관하여([ev3dev×Pythhon] 다중 모터 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/masterkeaton12/items/08b87e2c088449f9bde2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([ev3dev×Pythhon] 다중 모터 제어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masterkeaton12/items/08b87e2c088449f9bde2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)