Arduino 4wd robot avec capteur de ping « J-Bot » (5 / 6 étapes)

Étape 5: Étape 5 - temps maintenant au programme !


C’est vraiment le fun partie ; le ciel est la limite quand il s’agit de la programmation de votre Bot-J. Vous pouvez pré-programmer la route vers la machine de bureau candy ou cafetière à votre copain de bureau faire un pick-up. Ajouter une web-cam à pair entre les parois de la cabine haute, ajouter des enceintes pour diffuser des airs, ajouter des membres et une télécommande pour aller chercher vos gadgets préférés. J-Bot attend votre imagination exécuter simplement bouras.

Tout d’abord, vous devrez télécharger le logiciel Arduino. Ensuite télécharger la bibliothèque du logiciel Arduino pas à pas/Servo et suivre les indications sur la façon de mettre la bibliothèque dans son dossier respectif.

Ensuite, ouvrez le logiciel Arduino et collez le code.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#include < AFMotor.h > / / permet de la bibliothèque de moteur
#include < Servo.h > / / permet de la bibliothèque de Servo

Servo PingServo ;
AF_DCMotor motor1(1) ; Moteur 1 est connecté au port 1 sur le flasque arrière
AF_DCMotor motor2(2) ; Moteur 2 est connecté au port 2 sur le flasque arrière
int minSafeDist = 11 ; Distance minimale pour capteur de ping savoir quand il faut tourner
int pingPin = A0 ; Capteur de ping est connecté au port A0
int centerDist, leftDist, rightDist, backDist ; Définir les variables Centre, gauche, droite et retour à distance
longue durée, pouces, cm ; Définir des variables pour capteur de Ping

void setup() {}
PingServo.attach(10) ; Servo est attaché à la broche 10 dans le flasque arrière
PingServo.write(90) ; Centrez le capteur de Ping (met à 90 degrés)
motor1.setSpeed(215) ; Règle la vitesse du premier moteur (à 0, les moteurs sont tournés OFF. 255 est le paramètre le plus rapide que vous pouvez utiliser, j’ai utilisé 215 pour les moteurs ne poussez pas trop fort.)
motor2.setSpeed(215) ; Règle la vitesse du moteur deuxième (à 0, les moteurs sont tournés OFF. 255 est le paramètre le plus rapide que vous pouvez utiliser, j’ai utilisé 215 pour les moteurs ne poussez pas trop fort.)

Serial.Begin(9600) ; Active le Serial monitor pour des fins de débogage
Serial.println ("Serial test!") ; Tester la communication sérielle

}

void AllStop() {}
motor1.Run(Release) ; S’éteint le moteur 1
motor2.Run(Release) ; S’éteint le moteur 2
}
void AllForward() {/ / rend le robot à aller de l’avant
motor1.Run(Forward) ; Moteur 1 se met en marche
motor2.Run(Forward) ; Moteur 2 se met en marche
Serial.println ("aller de l’avant") ; Imprime une ligne dans le moniteur de la série
}
void turnRight() {/ / rend le robot tourner à droite
motor2.Run(Backward) ; S’éteint le moteur 2
motor1.Run(Forward) ; Moteur 1 se met en marche
Delay(1600) ; Temps nécessaire pour tourner à droite (1,6 secondes)
Serial.println ("Motors va à droite") ; Imprime une ligne dans le moniteur de la série
}
void GoBack() {/ / rend le robot à revenir en arrière
motor2.Run(Backward) ; Moteur 2 remonte
motor1.Run(Backward) ; Moteur 1 remonte
Delay(1600) ; Temps nécessaire pour revenir en arrière (1,6 secondes)
Serial.println("backward") ; Imprime une ligne dans le moniteur de la série
}
void turnLeft() {/ / rend le robot aller à gauche
motor2.Run(Forward) ; Moteur 2 se met en marche
motor1.Run(Backward) ; s’éteint le moteur 1
Delay(1600) ; Temps nécessaire pour tourner à gauche (1.6) secondes
Serial.println ("moteurs va de gauche"); / / affiche une ligne dans le moniteur de la série
}

Commence la boucle pour décider quoi faire
void loop()
{
LookAhead() ;
Serial.Print(inches) ;
Serial.println ("inches") ; Imprime une ligne dans le moniteur de la série
Si (pouces > = minSafeDist) / * si les pouces devant un objet est supérieure ou égale à la distance de sécurité minimale (11 pouces), react * /
{
AllForward() ; Toutes les roues vers l’avant
Delay(110) ; Attendez 0,11 secondes
} else / / sinon :

{
AllStop() ; Arrêter tous les moteurs
LookAround() ; Vérifier votre environnement pour le meilleur itinéraire
if(rightDist > leftDist) / / si la bonne distance est supérieure à la distance de gauche, tourner à droite
{
turnRight() ;
} else if (leftDist > rightDist) / / si la distance de gauche est supérieure à la distance droite, tourner à gauche
{
turnLeft() ;
} ElseIf (leftDist & & rightDist < minSafeDist) / / si la distance de gauche et de droite est plus petite que le min sûr distance (11 pouces) revenir en arrière
{
GoBack() ;
}
}
}

{unsigned long ping()
pinMode (pingPin, sortie) ; Faire la Pingpin à la sortie
digitalWrite (pingPin, basse) ; Envoyer une impulsion faible
delayMicroseconds(2) ; attendez deux microsecondes
digitalWrite (pingPin, HIGH) ; Envoyer une impulsion de haute
delayMicroseconds(5) ; attendez 5 secondes micro
digitalWrite (pingPin, basse) ; Envoyer une impulsion faible
pinMode(pingPin,INPUT) ; passer la Pingpin à l’entrée
durée = pulseIn (pingPin, HIGH) ; Ecoute pour echo

/ * Convertir micro secondes en pouces
-------------------------------------*/

po = microsecondsToInches(duration) ;
cm = microsecondsToCentimeters(duration) ;
}

long microsecondsToInches (longs microsecondes) / / convertit l’heure à une distance
{
retourner les microsecondes / 74 / 2 ;
}
long microsecondsToCentimeters (longs microsecondes) / / convertit l’heure à une distance
{
retourner les microsecondes / 29 / 2 ;
}

void LookAhead() {}
PingServo.write(90); / / angle de regarder vers l’avant
Delay(175) ; Attendez 0,175 secondes
ping() ;
}

void LookAround() {}
PingServo.write(180) ; angle de 180°
Delay(320) ; Attendez 0,32 secondes
ping() ;
rightDist = pouces ; obtenir la bonne distance
PingServo.write(0) ; regarder de l’autre côté
Delay(620) ; Attendez 0,62 secondes
ping() ;
leftDist = pouces ; obtenir la distance gauche
PingServo.write(90) ; angle de 90°
Delay(275) ; Attendez 0,275 secondes

Imprime une ligne dans le moniteur de la série
Serial.Print ("RightDist:") ;
Serial.println(rightDist) ;
Serial.Print ("LeftDist:") ;
Serial.println(leftDist) ;
Serial.Print ("CenterDist:") ;
Serial.println(centerDist) ;
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Articles Liés

Arduino ventilateur à commande personnelle avec capteur de Ping / ATtiny2313

Arduino ventilateur à commande personnelle avec capteur de Ping / ATtiny2313

que cela fait-il?Il s'agit d'un ventilateur qui s'allume automatiquement quand je suis assis à mon établi et éteint quand je partirai.Il utilise un Capteur de Distance à ultrasons, ou communément appelé un capteur "Ping" pour la détection.Un ATt
Arduino voix de Robot avec LED RGB commandé

Arduino voix de Robot avec LED RGB commandé

Salut c'est mon premier projet en instructable. Il s'agit d'un robot arduino contrôlé dans trois ways.you pourra être piloté à l'aide de la voix, le contrôle button et commande de direction à l'aide d'applications android. Nous pouvons également cont
Arduino nano 7segment 4digit display capteur de ping par sarigiannis

Arduino nano 7segment 4digit display capteur de ping par sarigiannis

dans ce instructable nous connecter l'arduino nano à un capteur de ping et nous exporter les résultats vers un affichage de chiffres de 7 segments 4.Étape 1: Rassembler toutes les pièces dont vous avez besoin1 - maquette2 - fils de raccordement3 - ar
Bras robotique avec des gants, téléphone Android et Arduino

Bras robotique avec des gants, téléphone Android et Arduino

Aujourd'hui, nous avons presque 2 techniques pour jouer avec le bras robotisé, soit par les boutons , par exemple comme le bouclier de jeu ou en utilisant des gants qui incluent les capteurs. Pourtant, aujourd'hui je vais vous montrer une nouvelle te
Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Pour mon autre projet pour le travail, j'ai dû mesurer la vitesse de rotation du rotor en révolutions par Minute (tr/min) d'un ventilateur d'ordinateur mis à jour le. Il avait trois fils qui sortent et qui fait TIC TAC moi que peut-être qu'il a un mo
Commande de porte de Garage Bluetooth Arduino avec capteurs et personnalisable Android App

Commande de porte de Garage Bluetooth Arduino avec capteurs et personnalisable Android App

Utilisez un arduino pour activer le relais pour l'ouverture des portes de garage et serrures électriques.Une application Android personnalisable, se connecte à l'arduino via mot de passe bluetooth appairage.Un module de hc-05 bluetooth reçoit des com
Activés par mouvement lumière avec capteur Arduino et HC-SR04

Activés par mouvement lumière avec capteur Arduino et HC-SR04

J'ai fait ce projet longtemps à la lumière jusqu'à la cuisine quand j'ai ouvert la porte arrière.L'idée a été quand j'ai ouvert la porte arrière, ce voyant s'allume pendant 15 secondes, ce qui me donnera assez de temps pour atteindre l'interrupteur s
Arduino Nano avec capteur DHT & OLED

Arduino Nano avec capteur DHT & OLED

Dans ce tutoriel, je vais décrire comment utiliser un capteur DHT sur un affichage Arduino Nano et OLED.Étape 1: IntroSalutMon nom est Nick Hendriks et j'habite aux Pays-Bas. Je n'ai aucune expérience avec Arduino ou les composants utilisés, mais ave
Pupitre de commande de Robot Arduino de programme avec visual basic

Pupitre de commande de Robot Arduino de programme avec visual basic

Nous ferons notre console de robot pour gérer ce projet avec Visual Basic.Nous gérerons notre robot via Bluetooth.Outils nécessaires à notre formulaire :Touche de numéro 13Combobox numéro 21 pièce texbox1 pièce GroupBox1 pièce SerialPorthttp://Make.r
Mikey, le Robot avec Vision

Mikey, le Robot avec Vision

Mikey le Robot « voit la grenouille » en utilisant le système de vision de caméra Pixy. Pixy coûte environ 70 $. et facilement des interfaces avec un câble inclus pour Arduino. Pixy peut être « formé » pour reconnaître jusqu'à sept différentes couleu
Arduino 4WD rover bluetooth contrôlée par téléphone/tablette Android

Arduino 4WD rover bluetooth contrôlée par téléphone/tablette Android

Arduino 4WD bluetooth contrôlé roverIl s'agit d'une rover 4WD simple que j'ai fait avec Arduino.le rover est contrôlé avec un téléphone android ou la tablette via bluetooth. Avec cette app que vous pouvez contrôler la vitesse (à l'aide de pwm de l'Ar
Comment faire des petits robots avec nRover Conseil

Comment faire des petits robots avec nRover Conseil

Le nRover, est une petite planche conçue pour construire des petits robots comme UGV (véhicules sans pilote au sol), suiveur de ligne ou à la domotique, il peut être contrôlé par wifi, Bluetooth ou radio de contrôle. L'objectif principal est le dével
Arduino Bluetooth et ultrason capteur tutoriel

Arduino Bluetooth et ultrason capteur tutoriel

Bonjour à nouveau,Comme promis, j'ai téléchargé mon prochain instructable. Celui-ci va couvrir sensor(HC-SR04) Bluetooth et ultrasons.Pourquoi ces deux. J'ai fait une voiture de roue RC 2 pour mon projet scolaire. Il ' contrôlée avec une application
Blumcaw Cupcake (clignotant, LED, ultrasons, motorisé, Hutchins, Arduino, sorcière) avec les pièces imprimées en 3d

Blumcaw Cupcake (clignotant, LED, ultrasons, motorisé, Hutchins, Arduino, sorcière) avec les pièces imprimées en 3d

Cette vieille sorcière a une verrue clignotante sur son nez.  Si vous montez trop près (tel que déterminé par un transducteur à ultrasons Ping), elle sera caquettent à une salutation, va tourner son chapeau et ses yeux clignotent sept couleurs.Blumca