Arduino Robot V2 (rapide) également contrôlée voix (10 / 11 étapes)

Étape 10 : Code

Le code se trouvent dans les pièces jointes. N’hésitez pas à modifier le code, mais il suffit de laisser un commentaire sur ce qui vous est venu avec elle.


Code

#include

Servo servoMain ;

temp de flotteur ;

int tempPin = 0 ;

int r_motor_n = 2 ; Commande PWM moteur droit-

int r_motor_p = 4 ; Commande PWM moteur droit +

int l_motor_p = 5 ; Commande PWM moteur gauche +

int l_motor_n = 7 ; Commande PWM moteur gauche-

activez int = 3 ;

int lumière = 9 ;

int enable2 = 6 ; VITESSE DE COMMANDE PWM

speed1 int = 0 ; Vitesse de contrôle PWM

int incomingByte = 0 ; pour les données entrantes de série

#include

#define TRIGGER_PIN 12 / / goupille de Arduino lié à déclencher la broche sur le capteur à ultrasons.

#define ECHO_PIN 11 / / goupille de Arduino liée à la broche sur le capteur à ultrasons d’écho.

#define MAX_DISTANCE 200 / / distance maximale que nous voulons faire un ping pour (en centimètres). Distance maximum sensor est évalué à 400-500cm.

NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE) ; NewPing configuration des broches et distance maximale.

void setup()

{

servoMain.attach(10) ;

pinMode (r_motor_n, sortie) ; Broches de contrôle pour être sorties

pinMode (r_motor_p, sortie) ;

pinMode (l_motor_p, sortie) ;

pinMode (l_motor_n, sortie) ;

pinMode (active, sortie) ;

pinMode (enable2, sortie) ;

pinMode (lumière, sortie) ;

digitalWrite (r_motor_n, basse) ; partent les deux moteurs pour démarrage

digitalWrite (r_motor_p, basse) ;

digitalWrite (l_motor_p, basse) ;

digitalWrite (l_motor_n, basse) ;

digitalWrite (enable, faible) ;

digitalWrite (enable2, basse) ;

digitalWrite (lumière, HIGH) ;

Serial.Begin(9600) ;

Serial.Print ("Whats up im ATOM, orientée vers le haut!!! \n");

Serial.Print ("w = avant \n") ;

Serial.Print ("s = descendante \n") ;

Serial.Print ("d = droite \n") ;

Serial.Print ("a = gauche \n") ;

Serial.Print (« f = Stop \n ") ;

Serial.Print ("freaks boiteux robotique") ;

}

void loop()

{

Si (Serial.available() > 0) {}

lire les octets entrants :

incomingByte = Serial.read() ;

}

Switch(incomingByte)

{

de cas ': / / commande pour arrêter le robot

digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 bas, 2 faible

digitalWrite (r_motor_p, basse) ;

digitalWrite (l_motor_p, basse) ;

digitalWrite (l_motor_n, basse) ;

analogWrite (enable, 0) ;

analogWrite (enable2, 0) ;

Serial.println("Stop\n") ;

incomingByte ='* ' ;

rupture ;

case « R »: //control droit

digitalWrite (r_motor_n, HIGH) ; Définir la direction moteur, 1 grande, 2 faible

digitalWrite (r_motor_p, basse) ;

digitalWrite (l_motor_p, HIGH) ;

digitalWrite (l_motor_n, basse) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("right\n") ;

incomingByte ='* ' ;

rupture ;

case « L »: //control à gauche

digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 basse, 2 de haut

digitalWrite (r_motor_p, HIGH) ;

digitalWrite (l_motor_p, basse) ;

digitalWrite (l_motor_n, HIGH) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("left\n") ;

incomingByte ='* ' ;

rupture ;

case « F »: //control pour la marche avant

digitalWrite (r_motor_n, HIGH) ; Définissez la direction moteur, 1 haut, 2 de haut

digitalWrite (r_motor_p, basse) ;

digitalWrite (l_motor_p, basse) ;

digitalWrite (l_motor_n, HIGH) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("forward\n") ;

incomingByte ='* ' ;

rupture ;

affaire « B »: //control pour en arrière

digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 bas, 2 faible

digitalWrite (r_motor_p, HIGH) ;

digitalWrite (l_motor_p, HIGH) ;

digitalWrite (l_motor_n, basse) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("backwards\n") ;

incomingByte ='* ' ;

rupture ;

case « f » :

digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 bas, 2 faible

digitalWrite (r_motor_p, basse) ;

digitalWrite (l_motor_p, basse) ;

digitalWrite (l_motor_n, basse) ;

analogWrite (enable, 0) ;

analogWrite (enable2, 0) ;

Serial.println("Stop\n") ;

incomingByte ='* ' ;

rupture ;

affaire aurait ":

digitalWrite (r_motor_n, HIGH) ; Définir la direction moteur, 1 grande, 2 faible

digitalWrite (r_motor_p, basse) ;

digitalWrite (l_motor_p, HIGH) ;

digitalWrite (l_motor_n, basse) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("right\n") ;

incomingByte ='* ' ;

rupture ;

case « a » :

digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 basse, 2 de haut

digitalWrite (r_motor_p, HIGH) ;

digitalWrite (l_motor_p, basse) ;

digitalWrite (l_motor_n, HIGH) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("left\n") ;

incomingByte ='* ' ;

rupture ;

case « w » :

digitalWrite (r_motor_n, HIGH) ; Définissez la direction moteur, 1 haut, 2 de haut

digitalWrite (r_motor_p, basse) ;

digitalWrite (l_motor_p, basse) ;

digitalWrite (l_motor_n, HIGH) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("forward\n") ;

incomingByte ='* ' ;

rupture ;

de l’affaire ":

digitalWrite (r_motor_n, basse) ; Définissez la direction moteur, 1 bas, 2 faible

digitalWrite (r_motor_p, HIGH) ;

digitalWrite (l_motor_p, HIGH) ;

digitalWrite (l_motor_n, basse) ;

analogWrite (enable, speed1) ;

analogWrite (enable2, speed1) ;

Serial.println("backwards\n") ;

incomingByte ='* ' ;

rupture ;

case « r »: / / angles de servo

servoMain.write(0) ;

rupture ;

affaire ' t » :

servoMain.write(45) ;

rupture ;

affaire « y » :

servoMain.write(90) ;

rupture ;

case « u » :

servoMain.write(135) ;

rupture ;

affaire « i » :

servoMain.write(180) ;

rupture ;

cas ' o ': / / valeurs de vitesse PWM

Speed1 = 0 ;

rupture ;

affaire « 1 » :

Speed1 = 155 ;

rupture ;

affaire « 2 » :

Speed1 = 165 ;

rupture ;

affaire « 3 » :

Speed1 = 175 ;

rupture ;

affaire « 4 » :

Speed1 = 185 ;

rupture ;

affaire « 5 » :

Speed1 = 195 ;

rupture ;

affaire « 6 » :

Speed1 = 205 ;

rupture ;

affaire « 7 » :

Speed1 = 215 ;

rupture ;

affaire « 8 » :

Speed1 = 225 ;

rupture ;

cas « 9 » :

Speed1 = 235 ;

rupture ;

case « q » :

Speed1 = 255 ;

rupture ;

cas suis ' :

Temp = analogRead(tempPin) ; Lire la température

Temp = temp * 0.48828125 ;

Serial.Print ("TEMPRATURE =") ;

Serial.Print(temp) ;

Serial.Print("*C") ;

Serial.println() ;

Delay(1000) ;

rupture ;

affaire « p »: / / temps de capteur d’ultasonic thr ping

Delay(50) ; Attendre 50ms entre les pings (environ 20 pings/sec). 29ms devrait être le délai le plus court entre les pings.

unsigned int nous = sonar.ping() ; Envoyer des ping, ping temps en microsecondes (nous).

Serial.Print ("Ping:") ;

Serial.Print(US / US_ROUNDTRIP_CM) ; Convertir les temps de ping à distance en cm et résultat d’impression (0 = distance définie hors plage)

Serial.println("cm") ;

rupture ;

Delay(5000) ;

}

}

Me soutenir et voter, si je gagne, je vous garantis que vous verrez beaucoup de projets tels que celui-ci et si vous avez des problèmes de se sentir libre de PM me.

Articles Liés

Projets des Carlitos : Sans fil discours contrôlé par Arduino Robot

Projets des Carlitos : Sans fil discours contrôlé par Arduino Robot

Nous rêvons tous d'avoir des appareils et machines qui peuvent obéir à nos commandes vocales. Eh bien, nous allons faire le premier pas vers ce qui en fait se produire et construire un discours contrôlé par Arduino-basé robot mobile.Vous pensez peut-
Comment programmer un accéléromètre Arduino pour les molettes de contrôle

Comment programmer un accéléromètre Arduino pour les molettes de contrôle

Commande de mouvement est toujours quelque chose qui a atteint un sommet de mon intérêt. Il s'agit surtout si récemment quand j'ai découvert combien il est facile Arduino rend au programme. Une fois mis en place correctement, cela peut facilement dev
Rana : Inspiré d’un arduino robot biologique

Rana : Inspiré d’un arduino robot biologique

Rana (grenouille en italien) est un robot inspiré biologique. C'est le résultat de mois de recherche et développement. L'un des directeurs appliqués vient un autre insolubles que j'ai fait appelé « arduino robot bipède ». Ce robot utilise les méthode
Bras de Robot de validation et contrôles (Lego nxt)

Bras de Robot de validation et contrôles (Lego nxt)

Voici un petit projet de validation de principe que j'ai fait. L'idée est d'avoir un robot qui est capable d'imiter les mouvements de l'utilisateur.Pour l'instant le robot et le contrôle se composent uniquement du bras. Les bras et les contrôles sont
Arduino Robot pour le coût le plus bas

Arduino Robot pour le coût le plus bas

ME VOIR À LA MAKER FAIRE DE NYC !Tout a commencé avec ceci :Le défi Arduino Robot : Comment économiquement pouvez-vous créer un robot en utilisant un Arduino pour élèves de 5e année ?J'espère que cette instructable revêt une certaine élégance pour sa
Ben - une lumière suivant Breadboard Arduino Robot

Ben - une lumière suivant Breadboard Arduino Robot

Ben la lumière suivant Breadboard Arduino Robot est le deuxième robot j'ai fait pour aider à enseigner la robotique pour les élèves du secondaire dans une classe que j'enseigne volontairement. Le premier robot a aussi ses propres Instructable qui peu
Robot de PC sous contrôlée

Robot de PC sous contrôlée

Bonjour les gars, aujourd'hui j'ai passé un spectacle vous comment construire votre robot de pc sous contrôle...vous pouvez contrôler le robot à l'aide de n'importe quel ordinateur portable ou pc, mais je dois avoir le bluetooth...Il suffit de suivre
Comment à griffe bricolage grue compatible Arduino Robot ?

Comment à griffe bricolage grue compatible Arduino Robot ?

Salut, les gars ! La grue Makeblock griffe compatible Arduino Robot a terminé aujourd'hui. Ses structureset les caractéristiques sont similaires, comme ces machines de grue qui sont communes à voir dans le marché.Pour plus d'informations, veuillez vi
Canon à eau arduino robot IR

Canon à eau arduino robot IR

Canon à eau arduino robotÉtape 1 : Arduino Uno R2Arduino MotorshieldPompe à eautube flexible6 piles AA NiMhBoîte à piles pour 2 AABoîte à piles pour 4 AAServo 9 g x 2Châssis de Robot 2RMRelais 5VTélécommande IRIR RecivierfilsÉtape 2 :
Rendre un véhicule contrôlé de voix !

Rendre un véhicule contrôlé de voix !

Pour rendre ce véhicule de commande vocale, vous avez besoin d'une plate-forme robotique, une carte Arduino et certains modules mp3.Étape 1: Faire une plate-formeLa plate-forme, que j'ai utilisé pour construire ce robot a été la plate-forme Cherokey
Contrôlé par Arduino robotique tambour

Contrôlé par Arduino robotique tambour

Ans que j'ai dit quiconque écoute que j'allais construire un tambour robotique. La plupart des gens peu haussa les épaules indifféremment. Alors même que je l'ai construit, la plupart des gens peu regarda au-dessus et véhiculée fuis. Il semblait que
Distant Arduino Robot contrôlée à l’aide d’émetteurs-récepteurs Wixel

Distant Arduino Robot contrôlée à l’aide d’émetteurs-récepteurs Wixel

mise à jour JAN 2012 : ce projet a été présenté sur le site de Pololu au titre des projets de ressources et de la collectivité.  http://www.Pololu.com/resources/communityprojectsINTRODUCTIONDans ce projet, j'utilise deux Pololu Wixel émetteurs-récept
Un Shield Arduino qui convertit votre Radio contrôlée voiture en un Robot

Un Shield Arduino qui convertit votre Radio contrôlée voiture en un Robot

J'ai vu un tas de Instructables qui décrivent comment une voiture radiocommandée peut être convertie en un robot. La plupart d'entre elles nécessite que la carte réceptrice de la voiture R/C soit modifiée afin que la section RF du récepteur est conto
Contrôle du programme & Arduino + robot PHIRO simultanément avec poche Code smartphone app

Contrôle du programme & Arduino + robot PHIRO simultanément avec poche Code smartphone app

PHIRO Pro est un robot éducatif qui aide les enfants à apprendre au code. Une des façons de programmer et de contrôler PHIRO est via une application Android appelée Pocket Code disponible sur le jeu de Google pour libre. Code de poche a la capacité d