[ev3dev × Python] Affichage, voix, contrôle LED

Cet article s'adresse à tous ceux qui souhaitent travailler avec ev3 en Python. Cette fois, j'aimerais utiliser des blocs intelligents pour afficher du texte et des valeurs numériques, lire de l'audio et contrôler des LED.

table des matières

  1. Quoi préparer
  2. Affichage
  3. Voix 3 . LED
  4. Exemple de programme

0. Quoi préparer

◯ ev3 (bloc intelligent, capteur tactile, capteur gyroscopique) ◯ PC (code VS) ◯ bluetooth ◯ microSD ◯ Material (Il est recommandé de continuer en regardant ceci.)

1. Affichage

1-0. Programme d'affichage de base ①

display00.py


#!/usr/bin/env python3
from time import sleep

print("HELLO WORLD")
sleep(3)

** Point **: Un programme qui affiche de petits caractères sur un bloc intelligent pendant 3 secondes. Le programme le plus simple, bien que la taille des caractères soit petite.

Point : print() Valeurs de sortie pour les chaînes, les nombres et les variables

** Point **: Pour print (), cet article est facile à comprendre.

** Point **: Lorsqu'il est programmé avec MINDSTORMS, cela ressemble à ce qui suit. スクリーンショット 2020-06-16 18.28.52.png

1-1. Programme d'affichage de base ② (Document p.52)

display01.py


#!/usr/bin/env python3
from ev3dev2.display import Display 
from time import sleep

dsp = Display()
while True:
    dsp.update()
    dsp.text_pixels('HELLO WORLD',True,0,52,font = 'courB' + '24')

** Point **: Un programme qui affiche en permanence des caractères sur des blocs intelligents.

Point : text_pixels(text, clear_screen=True, x=0, y=0, text_color=’black’, font=None) Le texte commence aux coordonnées en pixels (x, y). L'écran de ev3 mesure 178x128 pixels, • Le coin supérieur gauche de l'écran est (0, 0) • Le centre de l'écran est (89, 64)

Point : update() Applies pending changes to the screen. Nothing will be drawn on the screen until this function is called.

Point : font↓ fonts.png

2. Voix

2-0. Programme audio de base (Document p.46)

sound00.py


#!/usr/bin/env python3
from ev3dev2.sound import Sound
spkr = Sound()

spkr.beep()
spkr.speak('lets start STAR WARS music')

spkr.play_song((
('D4', 'e3'),
('D4', 'e3'),
('D4', 'e3'),
('G4', 'h'),
('D5', 'h')
))

** Point **: Un programme qui joue une mélodie en prononçant un mot après avoir émis un bip.

** Point **: play_song ('échelle', 'prix')

Échelle de musique ↓ DqTLAYFV4AAsKFO.jpg

Valeur sonore (durée du son) ↓ 184978921.jpg

3.LED

3-0. Programme LED de base (Document p.43)

led00.py


#!/usr/bin/env python3
from ev3dev2.led import Leds
from ev3dev2.sound import Sound
from time import sleep

led = Leds()
snd = Sound()

for i in (3):
    led.set_color("LEFT","AMBER")
    led.set_color("RIGHT","AMBER")
    sleep(1)
    led.all_off()
    sleep(1)
    snd.beep()

Point : set_color(group, color, pct=1)  group   • LEFT   • RIGHT

color   • BLACK   • RED   • GREEN   • AMBER   • ORANGE   • YELLOW

4. Exemple de programme

4-0. Programme qui continue d'afficher la valeur du capteur gyroscopique

example00.py


#!/usr/bin/env python3
from ev3dev2.display import Display
from ev3dev2.sensor.lego import GyroSensor
from time import sleep

dsp = Display()
gy = GyroSensor()

while True:
    dsp.update()
    num = gy.angle
    dsp.text_pixels(str(num) + ' degrees',True,0,52,font = 'helvB' + '24')
    sleep(0.5)

** Point **: Voir p.36 du document pour le capteur gyroscopique!

** Point **: str () est une fonction qui convertit les arguments en caractères

4-1. Un programme qui change la couleur en appuyant sur le capteur tactile

example01.py


#!/usr/bin/env python3
from ev3dev2.sensor import INPUT_1
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.led import Leds

ts = TouchSensor(INPUT_1)
leds = Leds()

print("Press the touch sensor to change the LED color!")
while True:
    if ts.is_pressed:
        leds.set_color("LEFT", "GREEN")
        leds.set_color("RIGHT", "GREEN")
    else:
        leds.set_color("LEFT", "RED")
        leds.set_color("RIGHT", "RED")

** Point **: Un programme qui devient vert lorsque le capteur tactile est enfoncé et rouge lorsqu'il n'est pas enfoncé

** Point **: Voir page 33 du document pour les capteurs tactiles!

Point : is_pressed A boolean indicating whether the current touch sensor is being pressed.

Point : ʻSi condition: Processus 1 else: Processus 2`

** Si la condition est vraie, effectuez le processus 1, Si faux, traiter 2 ** Programme

Point : INPUT_1~4 Le capteur est utilisé pour ** obtenir ** une valeur, Le moteur est utilisé pour la ** sortie **, donc Chaque port est indiqué par INPUT / OUTPUT.

** Point **: Lorsqu'il est programmé avec MINDSTORMS, cela ressemble à ce qui suit. スクリーンショット 2020-06-17 8.39.02.png

4-2. Un programme qui change les couleurs à l'aide d'une liste

example02.py


#!/usr/bin/env python3
from ev3dev2.led import Leds
from ev3dev2.sound import Sound
from time import sleep

led = Leds()
snd = Sound()
color_list = ["BLACK","RED","GREEN","AMBER","ORANGE","YELLOW"]

for i in color_list:
    print(i)
    led.set_color("LEFT",i)
    led.set_color("RIGHT",i)
    sleep(1)
    led.all_off()
    sleep(1)
    snd.beep()

** Point **: prend les caractères dans l'ordre à partir du haut de la liste et leur donne la couleur de la LED

Point : sleep() Fonction pour attendre le nombre de secondes spécifié par l'argument

** Point **: Pour la liste, cet article est facile à comprendre.

4-3. Un programme qui change les couleurs en combinant des listes et des fonctions aléatoires

example03.py


#!/usr/bin/env python3
from ev3dev2.led import Leds
from ev3dev2.sound import Sound
from time import sleep
import random

led = Leds()
snd = Sound()
color_list = ["BLACK","RED","GREEN","AMBER","ORANGE","YELLOW"]

for i in color_list:
    print(c)
    c = random.choice(color_list)
    led.set_color("LEFT",c)
    led.set_color("RIGHT",c)
    sleep(1)
    led.all_off()
    sleep(1)
    snd.beep()

** Point **: sélectionne au hasard les caractères de la liste et leur donne des couleurs de LED, en répétant autant de fois qu'il y a d'éléments dans la liste.

Point : random.choice() Il prend un objet avec plusieurs éléments tels qu'une liste ou une chaîne de caractères comme argument, et renvoie (produit) un élément au hasard parmi eux.

** Point **: Pour le hasard, cet article est également facile à comprendre.

finalement

Merci pour la lecture! !! La prochaine fois, j'aimerais écrire sur les boutons de bloc intelligents!

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

[ev3dev × Python] Affichage, voix, contrôle LED
[ev3dev × Python] Commande de moteur unique
[ev3dev × Python] Contrôle de plusieurs moteurs
Affichage de la forme d'onde audio en Python
[ev3dev × Python] Contrôle SSH (opération à distance avec clavier)
Installer le contrôle Python
[ev3dev × Python] Capteur à ultrasons
[ev3dev × Python] Capteur tactile
Entrée / sortie audio Python
[ev3dev × Python] Capteur gyroscopique
Syntaxe de contrôle Python (mémoire)
[ev3dev × Python] Capteur de couleur
[Ev3dev] Comment afficher une image bmp sur un écran LCD avec python
[ev3dev × Python] Bouton de blocage intelligent
[Tutoriel Python] Outil de structure de contrôle
Afficher les données UTM-30LX en Python
Contrôle d'instruments à l'aide de Python [pyvisa]