Box Bot



Raspberry Pi Box Bot Finished

Aimeriez-vous construire votre propre robot ? Alors, ne cherchez pas plus loin que le Box Bot, qui est une bonne introduction à la robotique à base de Pi.




1. Choisissez votre châssis

 

Raspberry Pi Box Bot Step 1

Un carton peut constituer un excellent squelette pour votre robot, mais il en faut un avec suffisamment de place pour contenir le Raspberry Pi, le boîtier de piles et le câblage. Si vous voulez que le robot puisse être piloté sans fil, vous aurez aussi besoin d’espace pour des éléments supplémentaires.

     

2. Ajoutez les moteurs et les roues

 

Raspberry Pi Box Bot Step 2

Fixez les moteurs, les roues et la roulette pivotante sous le carton en les collant avec du scotch double face. Les roues sont à l’avant et la roulette boule à l’arrière. Percez deux petits trous sous le carton pour pouvoir passer les câbles du moteur (voir l’illustration).

 

 

 

3. Connectez la carte contrôleur

 

Raspberry Pi Box Bot Step 3

La carte contrôleur se connecte aux broches du GPIO de votre Raspberry Pi 3 (voir schéma). Si vous avez un modèle de Pi différent, avec un autre nombre de broches, allez sur le site Web Cambridge Raspberry Jam pour des informations sur le détail des connexions.

 

 

 

4. Câblez le tout

 

Raspberry Pi Box Bot Step 4

Assurez-vous que les piles sont insérées dans le boîtier, mais que le boîtier n’est pas allumé. Les câbles du boîtier doivent être reliés selon le schéma. Connectez le moteur droit à « Motor A » sur la carte contrôleur et le moteur gauche à « Motor B ». Pour le moment, le sens des câbles du moteur n’a pas d’importance.

 

 

 

5. Codez les roues

 

Raspberry Pi Box Bot Step 5

Les broches du GPIO pilotent les moteurs. On utilise les broches 9 et 10 pour contrôler le moteur A (moteur droit) et les broches 7 et 8 pour le moteur B (moteur gauche). Branchez votre Pi à une alimentation, un écran, une souris et un clavier, puis saisissez les commandes suivantes dans un terminal afin de créer un répertoire pour tout le code du robot :

cd ~

mkdir EduKitRobotics

cd EduKitRobotics

Ensuite, saisissez une commande pour créer un nouveau script Python dans l’éditeur Nano :

nano 3-motors.py

À présent, entrez le code suivant :

 

# CamJam EduKit 3 - Robotics

# Worksheet 3 – Code de test du moteur

 

import RPi.GPIO as GPIO # Import de la bibliothèque GPIO

import time # Import de la bibliothèque time

 

# Définition des modes GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setwarnings(False)

 

# Définition des modes des broches GPIO

GPIO.setup(7, GPIO.OUT)

GPIO.setup(8, GPIO.OUT)

GPIO.setup(9, GPIO.OUT)

GPIO.setup(10, GPIO.OUT)

 

# Arrêt de tous les moteurs

GPIO.output(7, 0)

GPIO.output(8, 0)

GPIO.output(9, 0)

GPIO.output(10, 0)

 

# Allumage du moteur droit en marche avant

GPIO.output(9, 0)

GPIO.output(10, 1)

 

# Allumage du moteur gauche en marche avant

GPIO.output(7, 0)

GPIO.output(8, 1)

 

# Attente d’une seconde

time.sleep(1)

 

# Réinitialisation des broches GPIO (et arrêt des moteurs)

GPIO.cleanup()

 

Quand vous avez collé le code, appuyez sur Ctrl + X puis Y, et la touche Entrée pour enregistrer le fichier.

 

 

 

 

6. Testez les roues

Raspberry Pi Box Bot Step 6

Votre robot naissant étant toujours connecté à la souris, au clavier et à l’écran, allumez le boîtier de piles. Soulevez votre robot de telle sorte que ses roues ne touchent plus le sol et saisissez la commande suivante dans un terminal afin d’exécuter votre script Python :

sudo python3 3-motors.py

Les deux roues doivent tourner une seconde. Si l’une des roues tourne dans le mauvais sens, il suffit de permuter les deux câbles reliant le moteur en question à la carte contrôleur. Quand les deux roues tournent correctement, vous avez un robot qui peut avancer en ligne droite.




7. Ajoutez la direction

 

Raspberry Pi Box Bot Step 7

 

Chaque moteur utilise deux broches du GPIO du Pi. En activant et en désactivant ces broches selon différentes combinaisons, votre robot va pouvoir se déplacer en avant, en arrière, à gauche et à droite. Nous allons créer un nouveau script Python dans Nano avec la commande suivante saisie dans un terminal :

cd ~/EduKitRobotics nano 4-driving.py

Retournez sur le site du livre et collez le code suivant :

 

# CamJam EduKit 3 - Robotics

# Worksheet 4 – Rouler et tourner

 

import RPi.GPIO as GPIO # Import de la bibliothèque GPIO

import time # Import de la bibliothèque time

 

# Définition des modes GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setwarnings(False)

 

# Définition des variables pour les broches GPIO du moteur

pinMotorAForwards = 10

pinMotorABackwards = 9

pinMotorBForwards = 8

pinMotorBBackwards = 7

 

# Définition des modes des broches GPIO

GPIO.setup(pinMotorAForwards, GPIO.OUT)

GPIO.setup(pinMotorABackwards, GPIO.OUT)

GPIO.setup(pinMotorBForwards, GPIO.OUT)

GPIO.setup(pinMotorBBackwards, GPIO.OUT)

 

# Arrêt de tous les moteurs

def StopMotors():

    GPIO.output(pinMotorAForwards, 0)

    GPIO.output(pinMotorABackwards, 0)

    GPIO.output(pinMotorBForwards, 0)

    GPIO.output(pinMotorBBackwards, 0)

 

# Allumage des deux moteurs en marche avant

def Forwards():

    GPIO.output(pinMotorAForwards, 1)

    GPIO.output(pinMotorABackwards, 0)

    GPIO.output(pinMotorBForwards, 1)

    GPIO.output(pinMotorBBackwards, 0)

 

# Allumage des deux moteurs en marche arrière

def Backwards():

    GPIO.output(pinMotorAForwards, 0)

    GPIO.output(pinMotorABackwards, 1)

    GPIO.output(pinMotorBForwards, 0)

    GPIO.output(pinMotorBBackwards, 1)

 

GPIO.cleanup()

 

Quand c’est fait, pressez les touches Ctrl + X puis Y, et Entrée pour sauver le fichier. Dans un terminal, saisissez la commande suivante pour exécuter le code (votre robot ne se déplacera pas, mais il va contrôler le code à la rechercher d’erreurs) :

sudo python3 4-driving.py



8. Ajoutez le mouvement

Raspberry Pi Box Bot Step 8

Pour déplacer votre robot, vous devez modifier le code que vous avez saisi à l’étape précédente. Ajoutez les lignes suivantes, juste avant la dernière ligne de code, GPIO.cleanup() :

Forwards()

time.sleep(1)

Backwards()

time.sleep(1)

StopMotors()

Exécutez à nouveau le script avec python3 4-driving.py. Votre robot va avancer pendant une seconde puis reculer pendant une seconde. Assurez-vous que le câble d’alimentation du Raspberry Pi est assez long pour que votre robot soit libre de ses mouvements.



9. Prenez le contrôle

Raspberry Pi Box Bot Step 9

Vous aurez besoin d’adapter le code pour ajouter le mouvement à gauche et à droite. Modifiez le script driving.py une dernière fois en ajoutant ces lignes avant les lignes de l’étape 8 :

# Tourner à gauche

def Left():

    GPIO.output(pinMotorAForwards, 0)

    GPIO.output(pinMotorABackwards, 1)

    GPIO.output(pinMotorBForwards, 1)

    GPIO.output(pinMotorBBackwards, 0)

 

# Tourner à droite

def Right():

    GPIO.output(pinMotorAForwards, 1)

    GPIO.output(pinMotorABackwards, 0)

    GPIO.output(pinMotorBForwards, 0)

    GPIO.output(pinMotorBBackwards, 1)

 

Left()

time.sleep(0.5)

 

Right()

time.sleep(0.5)

 

Exécutez à nouveau le code (avec Python3 4-driving.py) et votre robot devrait serpenter sur le sol.

Maintenant, modifiez les nombres saisis dans la dernière section du code, à côté des time.sleep. Ces chiffres déterminent la durée, en secondes, des mouvements de votre robot dans les différentes directions.

En modifiant ce code, vous pouvez tracer une route pour votre robot.

Rendez-vous sur le site Web CamJam (camjam.me) si vous voulez aller encore plus loin avec le Box Bot !