Contrôler un Raspberry Pi RC voiture avec un clavier (5 / 8 étapes)

Étape 5: logiciels

Voici le python code, que vous aurez besoin afin que ce programme fonctionne. Enregistrez le programme comme rc_car.py lorsque vous avez terminé.

importation RPi.GPIO comme io
IO.setMode (e/s. BCM)
import sys, ATS, termios fois

# Ces deux blocs de code configurer les paramètres de PWM
# le DC deux moteurs sur les voitures RC. Il définit les deux GPIO
broches # utilisés pour l’entrée, commence le PWM et définit le
vitesse des moteurs # 0
motor1_in1_pin = 4
motor1_in2_pin = 17
IO.Setup (motor1_in1_pin, io. OUT)
IO.Setup (motor1_in2_pin, io. OUT)
motor1 = io. PWM(4,100)
motor1.Start(0)
motor1. ChangeDutyCycle(0)

motor2_in1_pin = 24
motor2_in2_pin = 25
IO.Setup (motor2_in1_pin, io. OUT)
IO.Setup (motor2_in2_pin, io. OUT)
motor2 = io. PWM(4,100)
motor2.Start(0)
motor2. ChangeDutyCycle(0)

# Définir les broches GPIO qui seront utilisés pour les LEDs sur
voiture # la RC et en affectant false à la sortie
IO.Setup (18, io. OUT)
IO.Output (18, False)

IO.Setup (23, io. OUT)
IO.Output (23, False)

# La méthode getch peut déterminer quelle touche a été enfoncée
# par l’utilisateur sur le clavier en accédant aux fichiers système
# Il retournera ensuite la touche appuyée en tant que variable
def getch() :
FD = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
Essayez :
TTY.setraw(sys.stdin.Fileno())
ch = sys.stdin.read(1)
Enfin :
termios.tcsetattr (fd, termios. TCSADRAIN, old_settings)
retour de ch

# Cette disposition du code définit les méthodes utilisées pour déterminer
# Si un moteur doit tourner vers l’avant ou vers l’arrière. Le
les différentes directions # sont atteints en définissant un de la
# Broches GPIO true et l’autre à false. Si le statut de
# les deux broches correspondent, le moteur ne s’allume pas.
def motor1_forward() :
IO.Output (motor1_in1_pin, True)
IO.Output (motor1_in2_pin, False)

def motor1_reverse() :
IO.Output (motor1_in1_pin, False)
IO.Output (motor1_in2_pin, True)

def motor2_forward() :
IO.Output (motor2_in1_pin, True)
IO.Output (motor2_in2_pin, False)

def motor2_reverse() :
IO.Output (motor2_in1_pin, False)
IO.Output (motor2_in2_pin, True)

# Cette méthode fait alterner les voyants marche/arrêt lorsque l’utilisateur
# appuie sur une touche particulière. Il va ensuite changer le statut
# des lumières donc il va savoir s’il faut les allumer ou
# hors tension lorsqu’elle est appelée ensuite.
def toggleLights() :

lightStatus global

if(lightStatus == false) :
IO.Output (18, True)
IO.Output (23, True)
lightStatus = True
autre chose :
IO.Output (18, False)
IO.Output (23, False)
lightStatus = False

# Cette méthode fait alterner le sens de la direction
moteur de #. La méthode détermine si l’utilisateur veut
# pour tourner à gauche ou à droite selon la clé ils Appuyez sur et
# Ensuite, faire les réglages appropriés. Il fonctionne comme une bascule
# parce que le programme ne peut lire plusieurs touches enfoncées à
# le même temps. Les positions possibles des roues sont
# « droit », « centre » et « de gauche ». Il met ensuite à jour la
condition # de la roue pour accéder à la prochaine fois on l’appelle.
def toggleSteering(direction) :

wheelStatus global

Si (sens == « right ») :
Si (wheelStatus == « centre ») :
motor1_forward()
motor1. ChangeDutyCycle(99)
wheelStatus = « right »
Elif (wheelStatus == « gauche ») :
motor1. ChangeDutyCycle(0)
wheelStatus = « centre »

Si (sens == « gauche ») :
Si (wheelStatus == « centre ») :
motor1_reverse()
motor1. ChangeDutyCycle(99)
wheelStatus = « left »
Elif (wheelStatus == « right ») :
motor1. ChangeDutyCycle(0)
wheelStatus = « centre »

# Affectant les broches PWM false afin que les moteurs ne bougera pas
# jusqu'à ce que l’utilisateur appuie sur la première clé
IO.Output (motor1_in1_pin, False)
IO.Output (motor1_in2_pin, False)
IO.Output (motor2_in1_pin, False)
IO.Output (motor2_in2_pin, False)

# Globales variables pour l’état des lumières et de la direction
lightStatus = False
wheelStatus = « centre »

# Mode de dispose d’une interface
Print ("w/s : accélération")
imprimer (« un/d: de pilotage ")
Print ("l: lights")
Print ("x: sortie")

# Infini boucle qui ne se terminera pas jusqu'à ce que l’utilisateur appuie sur la
touche exit #
While True :
# Méthode de récupération de personnage clavier est appelée et sauvé
# dans variable
char = getch()

# La voiture poussera vers l’avant lorsque vous appuyez sur la touche « w »
Si (char == « w ») :
motor2_forward()
motor2. ChangeDutyCycle(99)

# La voiture va inverser lorsque vous appuyez sur la touche « s »
Si (char == « s ») :
motor2_reverse()
motor2. ChangeDutyCycle(99)

# La touche « a » fait alterner la direction gauche
Si (char == « a ») :
toggleSteering("left")

# La touche « d » fait alterner la direction droite
Si (char == « d ») :
toggleSteering("right")

# La touche « l » fait alterner les voyants marche/arrêt
Si (char == « l ») :
toggleLights()

# La touche « x » va casser la boucle et quitter le programme
Si (char == « x ») :
Print ("programme a pris fin")
rupture

# À la fin de chaque boucle s’arrête le moteur d’accélération
# et attendre sa prochaine commande
motor2. ChangeDutyCycle(0)

# La variable de caractères clavier sera définie sur vide, prêt
# pour sauver la prochaine touche enfoncée
char = ""

# Programme cessera toute activité GPIO avant de se terminer
IO.Cleanup()

Articles Liés

Contrôler un puissant moteur à courant continu avec LabVIEW

Contrôler un puissant moteur à courant continu avec LabVIEW

Cet article vous montrera comment contrôler un moteur DC, à l'aide d'un pont en H avec MOSFET complémentaire. Avatanjele à l'utilisation de transistors bipolaires MOSFET est qu'ils ont des pertes de conduction inférieurs que bipolaire. Ordres sont do
Contrôler un petite actionneur linéaire avec Arduino

Contrôler un petite actionneur linéaire avec Arduino

Ce tutoriel de l'actionneur linéaire Arduino indique comment contrôler un Firgelli petite actionneur linéaire à l'aide d'une carte compatible Arduino et différents capteurs d'entrée, y compris un curseur et la commande de Rotation pour un contrôle di
Contrôler quoi que ce soit à distance avec les signaux infrarouges.

Contrôler quoi que ce soit à distance avec les signaux infrarouges.

Qui aurait pensé que presque chaque pièce jointe Arduino peut être commandé en quelque sorte avec une télécommande de TV ? Maintenant son heure pour en savoir plus.Étape 1: Configuration et matériaux L'installation pour que cela est tout à fait basiq
Comment contrôler un jeu simple de traitement avec Arduino

Comment contrôler un jeu simple de traitement avec Arduino

Bonjour à tousDans ce Instructable, nous allons voir comment créer un « lien » entre une esquisse de traitement et une carte Arduino. Dans cet exemple, un module à ultrasons sera utilisé pour contrôler un avion dans un jeu simple. Encore une fois, ce
Contrôler votre arduino depuis votre PC avec le Qt Gui

Contrôler votre arduino depuis votre PC avec le Qt Gui

pour mon premier instructable je vais vous montrer comment utiliser Qt pour faire des interfaces graphiques pour votre arduino (ou n'importe quel appareil rs232)Donc, si vous souhaitez créer vos propres interfaces graphiques, vous souhaitez contrôler
Contrôler vos décorations d’Halloween avec Arduino

Contrôler vos décorations d’Halloween avec Arduino

Animation Halloween accessoires sont beaucoup de plaisir. Mais les accessoires que vous achetez au magasin ont certaines limites importantes.Un des problèmes est que chaque pilier est activé par son propre capteur. Il est donc difficile de les amener
Contrôler l’Arduino Board sans fil avec iPhone, iPad ou iPod Using iArduino App et bouclier Ethernet

Contrôler l’Arduino Board sans fil avec iPhone, iPad ou iPod Using iArduino App et bouclier Ethernet

ce tutoriel vous guidera avec comment faire l'installation entière pour contrôler votre Arduino à bord avec l'application iArduino. Pour comprendre, nous allons utiliser des Led et nous basculera sur et en dehors avec l'aide d'iArduino app. De là, vo
Contrôler votre Arduino depuis un PC avec un câble Usb

Contrôler votre Arduino depuis un PC avec un câble Usb

si vous voulez savoir comment tou peut contrôler votre Arduino avec votre PC ou laissez votre Arduino à afficher les données sur votre PC, puis suivez mes pas. Pour ce faire, vous aurez besoin du logiciel pour créer des interfaces. Avec WD Interface
Contrôler une matrice de LED RVB avec Android et IOIO

Contrôler une matrice de LED RVB avec Android et IOIO

Version de produit de ce projet disponible à http://ledpixelart.com ***Un androïde contrôlée miroir interactif. L'exécution de diverses applications Android, le miroir interactif affiche photos, texte en cours d'exécution, des jeux simples et vidéo d
Contrôler la luminosité de la LED avec télécommande et Arduino

Contrôler la luminosité de la LED avec télécommande et Arduino

Nous allons faire un contrôleur de luminosité LED de la télécommande, c'est très simple. Commentaire ci-dessous votre question que si vous en avez un, j'aimerai répondre à toutes. Mon blog pour les dernières nouvelles de Tech et certains projets Elec
Comment contrôler un moteur servo de Pc avec GUI

Comment contrôler un moteur servo de Pc avec GUI

अपनी Servo moteur को pc से graphique interface(GUI) के par le biais de contrôle करने के लिए में अपनी पहली part Instructable कर रहा हूँ myblog -www.mechanic37.com पर आप ऐसे बहुत से projet देख सकते है इस करें lecture instructable जिसके द्वारा आप अपने p
Contrôler un Train Lionel avec une framboise Pi

Contrôler un Train Lionel avec une framboise Pi

Que se passe-t-il quand vous prenez un vieux modèle de Lionel train système et ajouter quelques web-contrôle ? Ce projet détermine un ensemble de train Lionel modèle avec le Raspberry Pi.Dans ce projet, nous allons étape par étape à travers les pièce
Contrôler votre musique sans fil avec une souris Logitech

Contrôler votre musique sans fil avec une souris Logitech

avez-vous jamais eu besoin de contrôler votre musique sans fil ? Avec un peu de logiciel et d'une souris Logitech, c'est facile. Nous irons sur la façon de mettre en place votre souris afin que vous pouvez mettre en pause, sauter et rejouer jusqu'à c
Contrôler votre discours avec arduino

Contrôler votre discours avec arduino

Contrôler votre app keynote de mac avec un arduino.Étape 1: Choses nécessaires :Arduino (j'utilise uno, mais tous doivent faire).Câble USB pour l'arduino.IR recevoir diode.Télécommande universelle IR.câbles de démarrage pour le décodeur IR.Etape 2: C