Bonjour j'ai un petit robot GoPiGo et je voudrait le faire avancer. En gros quand j’appuie sur "z" le robot avance et des que j’arrête d’appuyer le robot se stop et ainsi avec "q" "s" et "d".
Je voudrait donc assigner le fait d'appuyer sur "z" a la fonction fwd qui va actionner les moteurs de tels sorte que le robot avance en avant.
Personnellement j'utiliserais carrément pygame (ou pysfml, je garde ma religion (Ô grand Pysfml, notre maître a tous !)) pour en importer le système d'event pour gérer ça. Mais bon, je suis un bourrin et il doit sûrement y avoir plus simple...
C'est multiplatforme et tu n'es pas dépendant d'une interface graphique. Par contre, si tu comptes utiliser une interface par la suite il faudra mieux utiliser le système de gestion d'évènements de la dite interface.
@Reiex Je ne sais pas comment uttiliser Pygame, je début sur Python (et sur la programmation aussi)
@apzoeiruty3 J'ai aussi trouver ça sur internet cependant le programme semble fonctionner sous Windows mais sous Raspian l'interface graphique ne se lance pas.
@Kynarth Ce que tu me propose semble bien car en effet je n'est actuellement pas besoin d'interface graphique et je pense ne pas en avoir besoin dans le future. Cependant j'ai installer le module mais je ne comprend pas exactement quel syntaxe utiliser.
Oui c'est vrai que c'est pas évident pour un néophyte. Je te donne le code commenté qui permet d'écouter le clavier et de faire ce que tu veux en fonction des touches utilisées.
from pykeyboard import PyKeyboardEvent
class KeyboardListener(PyKeyboardEvent):
"""
Cette classe permet de regarder qu'elles sont les touches qui sont
pressées ou relâchée par l'utilisateur.
"""
def __init__(self):
super(KeyboardListener, self).__init__()
def tap(self, keycode, character, press):
"""
Cette fonction détermine l'action a effectuer en fonction
de la touche pressée ou relâchée.
Args:
keycode (int): Code du touche.
character (str): Nom de la touche.
press (bool): True si la touche est pressée, False si relachée.
"""
if press:
print("La touche", character, "est pressée.")
else:
print("La touche", character, "est relâchée.")
# Création de l'espion et lancement de l'écoute
keyboard = KeyboardListener()
keyboard.run()
Merci de ton aide, cependant j'ai un problème j'ai recopier ton code a l'identique or lorsque j'essaye de l'éxécuter j'ai une erreur :
Traceback (most recent call last):
File "/home/pi/Desktop/b.py", line 15, in <module>
keyboard = KeyboardListener()
File "/home/pi/Desktop/b.py", line 7, in __init__
super(KeyboardListener, self).__init__()
File "/usr/local/lib/python2.7/dist-packages/pykeyboard/x11.py", line 210, in __init__
self.ctx = self.display2.record_create_context(
File "/usr/lib/pymodules/python2.7/Xlib/display.py", line 216, in __getattr__
raise AttributeError(attr)
Ok merci je sais pas pourquoi mais sur Raspian ils ont installé les deux Python 2 et Python 3 et par default des que je clique sur un .py il l'ouvre avec Python 2. Ca ne m'avait jamais déranger. Bizarrement avec Python 2 et la réctification lors que l'éxécution : "No module named pykeyboard" etrange puisque j'ai installer pyuserinput ...
J'ai donc dessider d'uttiliser Python 3 avec le premiers script que tu m'a donné a la une autre erreur
Traceback (most recent call last):
File "/home/pi/Desktop/b3.py", line 2, in <module>
from pykeyboard import PyKeyboardEvent
File "/usr/local/lib/python3.2/dist-packages/pykeyboard/__init__.py", line 37, in <module>
from .x11 import PyKeyboard, PyKeyboardEvent
File "/usr/local/lib/python3.2/dist-packages/pykeyboard/x11.py", line 31, in <module>
from .x11_keysyms import KEYSYMS
File "/usr/local/lib/python3.2/dist-packages/pykeyboard/x11_keysyms.py", line 18
u'\u0020': 'space',
C'est normal pour le cas de python2. Tu as surement installer PyUserInput seulement pour python3. Après pour l'erreur qu'il te fait avec python3 je sèche ^^'
Merci pour votre aide, j'ai finalement uttiliser Tkinter pour parvenir a mes fin puisque que je n'ai pas réussie à faire refonctionner PyUserInput
Détecter les touches pressées sur clavier
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Développeur python amateur et fan de jeux-vidéos !