Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Robot à commande gestuelle utilisant Raspberry Pi

Vous en avez déjà marre de tout contrôler avec des boutons ? Vous avez pensé à contrôler quelque chose avec de simples mouvements de la main en vous asseyant sur votre canapé paresseux ? Si oui, alors vous êtes sur le bon site. Dans ce tutoriel, nous allons contrôler un robot entraîné par deux moteurs à courant continu en utilisant simplement des mouvements de la main. Il existe différents types de capteurs pour détecter le mouvement de votre main, tels que des capteurs de flux, des accéléromètres et d'autres capteurs basés sur la gravité. Donc, pour la transmission sans fil, nous allons utiliser le module RF 434 qui transmet des données à 4 bits. Les données 4 bits signifient que vous pouvez transmettre 16 combinaisons différentes, c'est-à-dire 0000 à 1111. Plus loin dans ce didacticiel, nous utiliserons un encodeur et un décodeur pour éviter les interférences dans l'interface radio. Un pilote de moteur empêchera les moteurs d'utiliser les données du décodeur.

Robot à commande gestuelle utilisant Raspberry Pi

Nous utilisons notre Raspberry pi à l'extrémité de l'émetteur pour analyser les données du capteur et pour transmettre une combinaison de données au pilote du moteur pour piloter les moteurs en conséquence afin que le robot puisse survoler. Nous utiliserons une batterie 12 V sur le robot pour alimenter le module décodeur, le module récepteur et les moteurs. À l'extrémité de l'émetteur, les capteurs et le module d'encodeur de l'émetteur sont alimentés par Raspberry Pi lui-même.

Composants

Affichage de 1 à 9 sur 9 entréesPrécédentSuivant

Robot à commande gestuelle utilisant Raspberry Pi - Schéma fonctionnel

Fin de l'émetteur

Robot à commande gestuelle utilisant Raspberry Pi - Fin de l'émetteur

Du côté de l'émetteur, nous avons un accéléromètre, un raspberry pi, un module d'encodeur et un émetteur RF. Les données de geste circulent de l'accéléromètre au raspberry pi et là, elles sont traitées pour décider du mouvement du robot et les données de mouvement sont transférées au module d'encodeur via les broches GPIO. Le module d'encodeur encode les données et les transmet dans l'interface aérienne à l'aide d'un émetteur RF.

Robot à commande gestuelle utilisant Raspberry Pi - Côté récepteur

Robot à commande gestuelle utilisant Raspberry Pi - extrémité du récepteur

Le récepteur RF du côté récepteur obtient les données de l'interface radio et les transmet au module décodeur. Le module décodeur décode les données reçues et les fournit au pilote de moteur L293D. Depuis le pilote de moteur, les moteurs sont entraînés en fonction des données de geste.

Accéléromètre

L'accélération est la mesure du changement de vitesse, ou vitesse divisée par le temps. Par exemple, si une voiture passe de 0 à 60 km/h de repos en 10 secondes, la voiture accélère à 6 km/h. Alors qu'est-ce que cela a à voir avec mon geste de la main ?

Un accéléromètre est un appareil électromécanique utilisé pour mesurer les forces d'accélération. De telles forces peuvent être statiques, comme la force continue de la gravité ou, comme c'est le cas avec de nombreux appareils mobiles, dynamiques pour détecter les mouvements ou les vibrations. En mesurant la quantité d'accélération statique due à la gravité, vous pouvez connaître l'angle d'inclinaison de l'appareil par rapport à la terre. En détectant la quantité d'accélération dynamique, vous pouvez analyser la façon dont l'appareil se déplace.

Certains accéléromètres utilisent l'effet piézoélectrique - ils contiennent des structures cristallines microscopiques qui sont sollicitées par des forces d'accélération, ce qui provoque la génération d'une tension. Une autre façon de le faire est de détecter les changements de capacité. Si vous avez deux microstructures côte à côte, elles ont une certaine capacité entre elles. Si une force d'accélération déplace l'une des structures, la capacité changera. Ajoutez des circuits pour convertir la capacité en tension et vous obtiendrez un accéléromètre.

Les accéléromètres sont des dispositifs de faible puissance qui produisent une accélération sous forme de tension analogique et certains accéléromètres sous forme numérique. Les accéléromètres analogiques comme l'ADXL 335 vous offrent 3 sorties analogiques basées sur X,Y,Z sur l'axe de votre mouvement. Vous pouvez convertir ces tensions analogiques en tensions numériques au moyen d'un CAN. Les accéléromètres numériques tels que ADXL345 communiqueront via les protocoles SPI ou I2C. Cela a moins de bruit et plus fiable

Il y a un autre capteur MPU6050 qui contient à la fois un accéléromètre et un gyroscope. Cela peut également être utilisé à la place de l'accéléromètre. L'adresse de ADXL345 et MPU6050 diffère lors de la connexion en mode I2C avec raspberry pi, pour ADXL 0x53 et MPU c'est 0x68. Dans ce tutoriel, je vais expliquer comment utiliser à la fois ADXL345 et MPU6050.

Accéléromètre d'interfaçage

Nous allons maintenant interfacer notre accéléromètre ADXL 345 et MPU 6050 à notre raspberry pi et vérifier les lectures du capteur. Je crois que votre raspberry pi est installé avec le dernier système d'exploitation et python, puisque nous allons utiliser du code python ici.

Connectons ADXL345/MPU6050 à notre raspberry pi. Ici, nous allons utiliser le protocole I2C pour communiquer entre les appareils. Dans le protocole I2C, les données sont transférées via SDA (Serial Data) et l'horloge en SCL (Serial Clock). C'est un protocole de communication asynchrone semi-duplex. Le maître contrôle l'ensemble du processus et les esclaves répondent en fonction des commandes du maître. Le débit de données est déterminé par la fréquence capable de l'esclave. Il n'y a que 4 connexions entre maître et esclave ici 3V, Gnd, SCL et SDA .

Accéléromètre numérique ADXL345

À partir du schéma de brochage GPIO, vous pouvez voir les broches SDA et SCL sur Rpi et le connecter respectivement aux broches ADXL345/MPU6050 SDA et SCL. Alimentez le capteur en utilisant RPi lui-même. Maintenant, les connexions sont faites.

En-tête GPIO Raspberry pi 3

Avant de tester le capteur, installons python-smbus pour le protocole I2c dans rpi et activons le protocole I2C dans notre RPi.

Installation de smbus :
sudo apt-get install python-smbus i2c-tools
Activation de l'I2C dans RPi :
sudo raspi-config
Allez dans les options de l'interface et activez le protocole I2c.

Incluez ensuite les lignes de spécification i2c par ces commandes.
sudo nano /etc/modules
Ajoutez ces lignes
i2c-bcm2708
i2c-dev

Si vous utilisez un ancien rpi, supprimez i2c de la backlist en utilisant ces commandes
sudo nano  /etc/modprobe.d/raspi-blacklist.conf
Commentaire (#) liste noire i2c-bcm2708
redémarrage sud
Testez la connexion à l'aide de cette commande. Cela affichera l'adresse du capteur connecté à notre pi.
sudo i2c detect -y 1
Adxl sera trouvé en 0x53 et Mpu sera trouvé en 0x68 ou 0x69

Nous allons maintenant télécharger une bibliothèque pré-écrite pour ADXL345 pour pi en python à partir de Github et tester la sortie du capteur. Utilisez ces commandes.
git clone https://github.com/pimoroni/adxl345-python
cd adxl345-python
sudo python example.py

Example.py est le programme qui affiche les valeurs X,Y et Z comme indiqué ci-dessous.

Nous pouvons modifier ce programme ou l'utiliser pour notre projet.

Pour MPU6050, le programme pimoroni ne fonctionnera pas, nous utiliserons donc un module python différent de github.

En utilisant ces commandes.
git clone https://github.com/Tijndagamer/mpu6050.git

cd mpu6050

installation de python setup.py
Pour vérifier la connexion de notre capteur et l'adresse, ouvrez le terminal et tapez la commande ci-dessous. Il affichera l'adresse du capteur à 0x68 ou 0x69 comme indiqué ci-dessous.

Et pour tester nos données de capteur, allez dans l'éditeur python et tapez ces commandes par une seule pour voir la sortie du capteur.
depuis mpu6050 import mpu6050

mympu=mpu6050(0x69 )

Data=mympu.get_accel_data()

Un pas plus loin, vous pouvez maintenant déterminer les valeurs de seuil de 4 positions différentes pour le mouvement de droite, gauche, avant et arrière et les noter. L'étalonnage peut être effectué en fonction des valeurs de votre capteur à différentes positions, par exemple le maintenir dans une position que vous souhaitez pour le mouvement vers l'avant et noter 5 valeurs similaires et l'arrondir à un seuil, de sorte que si le capteur franchit la valeur arrondie, un L'instruction de condition dans le programme peut être activée. Calibrez-le de la même manière pour tous les autres mouvements comme la gauche, la droite, l'arrière et l'arrêt.

Lire plus d'informations….

Robot à commande gestuelle utilisant Raspberry Pi

Le projet/post en cours peut également être trouvé en utilisant :


Processus de fabrication

  1. Profil de température Raspberry Pi avec LabVIEW
  2. Aquaponie contrôlée Raspberry Pi
  3. Enregistreur de données professionnel multicanal sur Raspberry Pi – Partie 1
  4. Capteur de température Python et Raspberry Pi
  5. Surveillance à distance de la météo à l'aide de Raspberry Pi
  6. Tag de capteur à Blynk à l'aide de Node-RED
  7. Capteur de mouvement utilisant Raspberry Pi
  8. Robot utilisant Raspberry Pi &Bridge Shield
  9. Robot boîtier CD Raspberry Pi