Robot de nettoyage maison avec Bluetooth (4 / 5 étapes)

Étape 4: Le Code

LES BIBLIOTHÈQUES :

Le « SweeperBot » se sert de fil, I2Cdev, TimerOne (pour les interruptions), bibliothèques Adafruit Sensor, HMC5883 et l’écran LCD. Vous pouvez télécharger le fichier Zip, qui contient le code pour l’Arduino et toutes les bibliothèques. Contient également le projet de Bluetooth pour Windows Phone.

LE CODE DE TÉL 8.1 DE WINDOWS :

Le projet qui contrôle le robot via Bluetooth de la Windows Phone est une adaptation de l’exemple disponible sur internet. Elle a été modifiée pour avoir quatre boutons, un pour chaque direction. Haut, bas, gauche et droite. Chaque bouton envoyer une lettre au robot, respectivement U, D, L et R. Lorsque le robot reçoit ces, il fait de la manière suivante :

  • U - le robot définira la direction à suivre tout droit vers l’avant ;
  • D - le robot se tournent vers le dos et aller tout droit ;
  • L - le robot définira la direction à suivre exactement de 90 degrés à gauche d’où il est actuellement « la recherche » ;
  • R - le robot définira la direction à suivre exactement 90 degrés à partir d’où il est actuellement « la recherche » ;

La manière dont le robot traite ces commandes peut être modifiée avec le code sur l’Arduino. Il est possible d’ajouter plus de boutons à tourner le robot, ou de l’arrêter ou même à faire revenir en arrière. Ce code est juste un exemple. Il est également possible de faire des programmes semblables à d’autres appareils, tels que les androïdes une pour IOS. La seule chose que vous devez envoyer le robot sont ces lettres - U, D, L ou R.

Pour déployer ce code sur votre Windows Phone, vous aurez besoin de Visual Studio et un téléphone débloqué développeur. Cela peut être fait en suivant les instructions sur ce lien.

LE CODE DE L’ARDUINO :

En résumé, la logique principale du robot est comme suit :

  1. Distance au plus près de l’objet trouvé dans chacun des capteurs 6 possibles ;
  2. Comportement des lignes de processus robot et point souhaité direction avec un vecteur X, Y (Cependant, si un message est reçu du smartphone, étape 2 est remplacée par la directive envoyée de l’appareil;)
  3. Donne boussole numérique la direction le robot va, afin de contrôler ses roues ;
  4. Informations X', Y' de la boussole est normalisée à l’espace [-1,1] ;
  5. Produit vectoriel entre le vecteur de direction désirée et réelle direction trouve erreur entre eux ;
  6. La méthode PID calcule PWM (puissance) pour chaque moteur à courant continu pour les deux roues (2 roues motrices) ;
  7. Interruption active PWM ;

Comme le projet a évolué, j’ai découvert la bibliothèque standard disponible sur GitHub pour les capteurs à ultrasons étaient contradictoires avec l’activation de PWM des moteurs, car ils ont tous deux utilisaient le même timer. Comme ce projet utilise 5 broches pour configurer le PWM des trois moteurs DC (et cela n’est possible que parce que le balai ne tourne que pour un seul sens) et plus de 7 pour les capteurs, dont le microcontrôleur à constamment vérifier si la lecture a été reçue, ce n’était pas possible d’utiliser le matériel disponible sur internet.

Donc, pour éviter tout conflit, il a été configuré uniquement l’interruption du timer 1. Par le biais de cette interruption, l’Arduino peut vérifier s’il y avait des lectures sur chaque capteur : si pas, il augmente d’une variable pour chacun d’eux, qui va être utilisé comme paramètre pour trouver la distance à l’objet.

Aussi, à l’intérieur de cette interruption, elle lève toute la puissance du moteur. Si il y a eu un certain nombre d’interruptions qui dépasse le nombre de variables PWM_R ou PWM_L, puis il jette zéro puissance à celle donnée à moteur.

Au cours de la boucle principale, le robot reste la recherche d’obstacles et de calcul d’itinéraires pour les éviter, ou changer sa trajectoire. Si le développeur souhaite configurer la méthode de contrôle de champs potentiels, ou changer le comportement du robot, il suffit de travailler à un meilleur fonctionnement de obst(). Les autres parties du programme sont nécessaires et n’avez pas besoin d’être changé. Lorsque le robot reçoit un message par l’intermédiaire de Bluetooth, il arrête en évitant les obstacles et il suffit d’écouter pour les entrées de l’utilisateur.

De toutes les parties du code, tous d'entre eux sont assez basiques, la seule fonction qui est intéressante de prendre note ici, est le readings(). À l’intérieur, le robot obtient la valeur X, Y et Z de la position actuelle sur la boussole numérique. Alors, comment faire que la lecture en quelque chose qui rend le robot sais à quelle direction il est à la recherche ?

Tout d’abord, vous obtenez les valeurs brutes :

Puis vérifier si le robot est sur le plan du droit. Cela peut être de voir si le Z (axe vertical) est la valeur entre une certaine petite plage

Il est maintenant temps pour normaliser les valeurs X et Y d’un espace entre [-1,1], afin de calculer sin() et cos() de ces valeurs.

Nous faisons maintenant vectorOBJ [n] un vecteur bidirectionnelles pointant vers où, sur le plan, nous voulons que le robot d’aller. Ainsi, pour trouver l’erreur entre deux vecteurs, nous devons faire le produit vectoriel entre les deux. La valeur résultante est un autre vecteur, mais perpendiculaire à la fois, pointant vers le haut ou vers le bas, selon son signe.

			
          

Articles Liés

Arduino - contrôle de la maison avec Bluetooth et voix en utilisant le module Bluetooth HC-06.

Arduino - contrôle de la maison avec Bluetooth et voix en utilisant le module Bluetooth HC-06.

Salut tout le monde! Aujourd'hui, j'ai fait un dispositif de contrôle domestique avec 2 relais et un module Bluetoothpour l'utiliser comme un système de commande vocale. Vous pouvez utiliser ce soft pour lutter contre elle -> (Cliquez ici pour l'APP)
Robot Attiny2313 avec Bluetooth HC06 et moteurs pas à pas

Robot Attiny2313 avec Bluetooth HC06 et moteurs pas à pas

Ici, je voulais présenter une ébauche du robot véhicule. Le coeur du robot est le microcontrôleur ATtiny2313. Le robot en voiture sont les 2 moteurs pas à pas. Autres projets ont été l'inspiration pour la construction de mon robot. Dans la plupart de
Débutants guident de construction de robots Arduino avec Bluetooth et Android

Débutants guident de construction de robots Arduino avec Bluetooth et Android

dans ce tutoriel, nous allons aller au cours de la construction d'un robot Arduino qui peut être contrôlé via bluetooth avec une téléphone/tablette Android. Il s'agit d'un guide de débutants qui va franchir brièvement le processus de câblage et de pr
Geste car(robot) de contrôle avec Arduino et Android(bluetooth)

Geste car(robot) de contrôle avec Arduino et Android(bluetooth)

Salut les gens,Voici un projet intéressant pour tout ce que vous les esprits créatifs là-bas. Nous allons construire une voiture RC de Téléphone android contrôlée.Rien ne pouvait être plus fascinant que de voitures télécommandées. Celui-ci utilise le
BRICOLAGE de Robot bras robotique 3D imprimante traceur dessiner image maison avec 2 moteur pas à pas

BRICOLAGE de Robot bras robotique 3D imprimante traceur dessiner image maison avec 2 moteur pas à pas

BRICOLAGE de Robot bras robotique 3D imprimante traceur dessiner image maison avec 2 moteur pas à pas2 pcs Stepper Motor montage L support de montage pour 57 moteur pas à pas90 x 12 mm en alliage d'aluminium de pcs 1 250 mm2 pièces 57 mm Stepper mote
BRICOLAGE Robot bras robotique tirage cadre fait maison avec 2 moteur pas à pas

BRICOLAGE Robot bras robotique tirage cadre fait maison avec 2 moteur pas à pas

BRICOLAGE Robot bras robotique dessiner image fait maison avec 2 moteur pas à pasMatériaux :2 pièces 57 mm moteur pas a pas 1,8 degrés4 pcs FL08 2 boulon 8mm alésage roulement à rotule sur billes bride2 pièces en aluminium alliage 22 x 12 mm 150 mm1
PANDA-le ROBOT de nettoyage ultime

PANDA-le ROBOT de nettoyage ultime

Salut, ce projet est dédié à mon fils qui va naître dans le mois à venir, donc j'ai nommé d'après le Pseudo de mon fils « Panda ». Il s'agit d'une version améliorée du robot avec des fonctionnalités robustes de nettoyage tels que brosse à air aspirat
3 lecteurs audio à la 1 framboise Pi avec Bluetooth - une installation HiFi Multiroom facile

3 lecteurs audio à la 1 framboise Pi avec Bluetooth - une installation HiFi Multiroom facile

Notre environnement sonore populaire de Squeezebox sur Max2Play a été tenté de connecter plusieurs lecteurs audio facilement et de créer un système HiFi smart. Avec l'ajout de quelques nouveaux plugins incroyables à nos images de carte SD, nous pouvo
Robot de nettoyage de sol

Robot de nettoyage de sol

dans ce instructable vous bâtirez un plancher simple robot de nettoyage.A similaires instructable a été publié avant : Le robot se déplace comme montré dans les vidéos :http://YouTube.com/watch?v=BoFnqoZEKX8http://YouTube.com/watch?v=Ug7GfbCNehsVous
Robot crabe (nettoyage de la plage)

Robot crabe (nettoyage de la plage)

Le but de ce projet est le développement d'un robot de service qui est utilisé pour le nettoyage des environnements extérieurs, plus précisément des lieux côtiers comme les plages. Un des éléments clés dans le développement de ce projet est la concep
Refroidir votre maison avec la Ventilation à pression négative - pas a/c

Refroidir votre maison avec la Ventilation à pression négative - pas a/c

Faisons-facelui, quand il fait chaud et vous n'avez pas la climatisation peut être borderline homicide. Pire, c'est quand la température commence à tremper à l'extérieur et votre maison se sent comme un four. La plupart d'entre nous allume un ventila
Comment au fil de votre maison avec Cat-5 (ou 6) pour les réseaux Ethernet

Comment au fil de votre maison avec Cat-5 (ou 6) pour les réseaux Ethernet

bien que sans fil est plus simple pour beaucoup de personnes, en raison de partage multimédia, de bande passante sur mon réseau domestique et ma paranoïa légère sur la sécurité sans fil, je tenais vraiment à utiliser un dur filaire solution pour les
Appareil photo fait maison avec Webcam CCTV et vieil appareil photo

Appareil photo fait maison avec Webcam CCTV et vieil appareil photo

Appareil photo fait maison avec Webcam CCTV et vieil appareil photo très bon marché et facileÉtape 1: Bricolage viseur LCD DIY viseur LCD électronique prendre du vieil appareil photo (avec couleur viseur LCD) être soigneusementÉtape 2: Faire batterie
Compteur de fun avec Bluetooth et capteur à ultrasons

Compteur de fun avec Bluetooth et capteur à ultrasons

Hey, je veux montrer une façon simple de compter quoi que ce soit et affichez-le sur votre système. Ici nous utilisons Bluetooth si vous pouvez afficher les résultats sur un écran plus grand (au lieu de LCD) sans fil en temps réel. Pour ceux qui conn