Cet article s'adresse à tous ceux qui souhaitent travailler avec ev3 en Python. Cette fois, je souhaite effectuer diverses opérations à l'aide du capteur tactile.
◯ ev3 (réservoir) et capteur tactile ◯ PC (code VS) ◯ bluetooth ◯ microSD ◯ Material (Il est recommandé de continuer en regardant ceci.)
touchsensor00.py
#!/usr/bin/env python3
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1,INPUT_2
from ev3dev2.sound import Sound
from ev3dev2.led import Leds
ts_1 = TouchSensor(INPUT_1)
ts_2 = TouchSensor(INPUT_2)
snd = Sound()
led = Leds()
while True:
if ts_1.is_pressed:
snd.beep()
if ts_2.is_pressed:
led.set_color("LEFT","YELLOW")
led.set_color("RIGHT","YELLOW")
Point : Un programme qui émet un son chaque fois que le capteur tactile (port 1) est enfoncé et le voyant devient jaune chaque fois que le capteur tactile (port 2) est enfoncé.
Point : ʻSi condition: Processus 1` ** Si la condition est vraie, traiter 1 **
Point : is_pressed A boolean indicating whether the current touch sensor is being pressed.
** Point **: Voici comment cela fonctionne par rapport à scratch ↓
touchsensor01.py
#!/usr/bin/env python3
from ev3dev2.motor import MediumMotor,OUTPUT_A
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1
M_A = MediumMotor(OUTPUT_A)
ts_1 = TouchSensor(INPUT_1)
while True:
if ts_1.is_pressed:
M_A.on(100)
else:
M_A.stop()
Point : Un programme qui fait tourner le moteur M lorsque le capteur tactile (port 1) est enfoncé et s'arrête lorsqu'il est relâché.
Point : ʻSi condition: Processus 1 else: Processus 2`
** Si la condition est vraie, effectuez le processus 1, Si faux, traiter 2 ** Programme
** Point **: Voici comment cela fonctionne par rapport à scratch ↓
touchsensor02.py
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveSteering,SpeedPercent
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1
from ev3dev2.sound import Sound
steering_drive = MoveSteering(OUTPUT_A,OUTPUT_B)
ts_1 = TouchSensor(INPUT_1)
snd = Sound()
while True:
while not ts_1.is_pressed:
steering_drive.on(0,SpeedPercent(40))
snd.beep()
steering_drive.on_for_seconds(0,SpeedPercent(-10),1)
steering_drive.on_for_seconds(100,SpeedPercent(40),2)
** Point **: Un programme qui va droit, émet un son lorsque le capteur tactile est enfoncé, recule un peu, puis se retourne pendant 2 secondes.
Point :
while not ~: Processus 1
** Continuez le processus 1 sans faire ~ ** Programme
touchsensor03.py
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,MediumMotor
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1
M_A = MediumMotor(OUTPUT_A)
ts_1 = TouchSensor(INPUT_1)
while True:
ts_1.wait_for_bump()
M_A.on(50)
ts_1.wait_for_bump()
M_A.on(-50)
if not ts_1.wait_for_bump(2000):
exit()
** Point **: programme qui change le sens de rotation lorsque le capteur tactile est heurté. Appuyez et maintenez pendant 2 secondes ou plus pour terminer le programme.
wait_for_pressed(timeout_ms=None, sleep_ms=10) → Attendez jusqu'à ce que vous appuyiez sur. wait_for_released(timeout_ms=None, sleep_ms=10) → Attendez d'être libéré. wait_for_bump(timeout_ms=None, sleep_ms=10) → Attendez que le bouton soit heurté (enfoncé et relâché). Le délai entre le pressage et le relâchement peut être défini avec le premier argument
** Point **: sinon ts_1.wait_for_bump (2000): À propos. sinon Appuyez et relâchez le capteur tactile dans les 2 secondes:
= si Ne relâchez pas le capteur tactile dans les 2 secondes après avoir appuyé dessus
= si Si vous maintenez enfoncé le capteur tactile pendant 2 secondes ou plus
touchsensor04.py
#!/usr/bin/env python3
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1,INPUT_2
from ev3dev2.sound import Sound
ts_1 = TouchSensor(INPUT_1)
ts_2 = TouchSensor(INPUT_2)
snd = Sound()
while True:
if ts_1.is_pressed and ts_2.is_pressed:
snd.beep()
** Point **: Un programme qui émet un son lorsque les deux capteurs tactiles sont enfoncés en même temps.
** Point **: expression conditionnelle de l'instruction if
◯ Lorsque la condition 1 est vraie ** et ** la condition 2 est vraie, le traitement est effectué.
ʻSi la condition 1 et la condition 2: Processus 1`
◯ La condition 1 est vraie ** ou ** Lorsque la condition 2 est vraie, le traitement est effectué.
ʻSi la condition 1 ou la condition 2: Processus 1`
◯ Processus lorsque la condition 1 n'est pas vraie **
Si ce n'est pas la condition 1: Processus 1
** Point **: Voici comment cela fonctionne par rapport à scratch ↓
touchsensor05.py
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,LargeMotor
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1,INPUT_2
L_A = LargeMotor(OUTPUT_A)
L_B = LargeMotor(OUTPUT_B)
ts_1 = TouchSensor(INPUT_1)
ts_2 = TouchSensor(INPUT_2)
while True:
if ts_1.is_pressed:
L_A.on(50)
else:
L_A.stop()
if ts_2.is_pressed:
L_B.on(50)
else:
L_B.stop()
** Point **: Un programme qui utilise le capteur tactile (1) pour déplacer le moteur L (A) et le capteur tactile (2) pour déplacer le moteur L (B).
** Point **: Voici comment cela fonctionne par rapport à scratch ↓
touchsensor06.py
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1,INPUT_2
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
ts_1 = TouchSensor(INPUT_1)
ts_2 = TouchSensor(INPUT_2)
while True:
if ts_1.is_pressed:
tank_drive.on(50,50)
else:
if ts_2.is_pressed:
tank_drive.on(-50,-50)
else:
tank_drive.stop()
** Point **: programme qui avance avec le capteur tactile (1) et recule avec le capteur tactile (2).
** Point **: Voici comment cela fonctionne par rapport à scratch ↓
touchsensor07.py
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor import INPUT_1,INPUT_2
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
ts_1 = TouchSensor(INPUT_1)
ts_2 = TouchSensor(INPUT_2)
while True:
if ts_1.is_pressed:
if ts_2.is_pressed:
tank_drive.on(100,100)
else:
tank_drive.on(40,100)
else:
if ts_2.is_pressed:
tank_drive.on(100,40)
else:
tank_drive.stop()
Point : Appuyez sur les deux capteurs tactiles: vers l'avant Appuyer uniquement sur le capteur tactile 1: aller vers l'avant Appuyez uniquement sur le capteur tactile 2: avancez vers la droite N'appuyez pas sur les deux capteurs tactiles: arrêtez
** Point **: Vous pouvez régler le degré de courbure du réservoir lorsqu'une seule touche tactile est enfoncée.
** Point **: Voici comment cela fonctionne par rapport à scratch ↓
touchsensor08.py
#!/usr/bin/env python3
from ev3dev2.motor import OUTPUT_A,OUTPUT_B,MoveTank
from ev3dev2.sensor.lego import TouchSensor,UltrasonicSensor
from ev3dev2.sensor import INPUT_1,INPUT_2,INPUT_3
tank_drive = MoveTank(OUTPUT_A,OUTPUT_B)
us = UltrasonicSensor(INPUT_3)
ts_1 = TouchSensor(INPUT_1)
ts_2 = TouchSensor(INPUT_2)
while True:
while us.distance_centimeters > 20:
if ts_1.is_pressed:
if ts_2.is_pressed:
tank_drive.on(100,100)
else:
tank_drive.on(40,100)
else:
if ts_2.is_pressed:
tank_drive.on(100,40)
else:
tank_drive.stop()
while us.distance_centimeters < 30:
tank_drive.on(-80,-80)
Point : Lorsqu'il n'y a pas d'obstacles à moins de 20 cm, vous pouvez utiliser manuellement le contrôleur radio. Cependant, si l'obstacle est à moins de 20 cm, il s'agit d'un programme qui s'échappe automatiquement en arrière jusqu'à ce que la distance à l'obstacle soit supérieure à 30 cm pour éviter une urgence.
** Point **: Ce mécanisme (même contenu) par rapport à scratch ↓
** Point **: ** Répéter jusqu'à ** et ** Répéter entre **
** Répéter jusqu'à **: Répéter jusqu'à ce que la condition ne soit plus vraie ** Répéter pendant ~ **: Répéter tant que la condition est vraie
Merci pour la lecture! !! La prochaine fois, j'aimerais écrire sur les capteurs de couleur!
Je veux faire un meilleur article ◯ C'est plus facile à comprendre ◯ C'est difficile à comprendre ◯ C'est faux ◯ Je veux que vous expliquiez plus ici Nous apprécions vos opinions et suggestions.
Recommended Posts