Arduino contrôlée Bluetooth-bot (4 / 4 étapes)

Étape 4: Code

Ce code peut être téléchargé depuis le site du livre :
https://sites.google.com/site/arduinorobotics/Arduino-Robotics/free_project

Bluetooth-bot v1
Arduino robotique officieux chapitre 14
Adaptateur série Bluetooth Mate permet de recevoir des commandes de PC
Arduino décode les commandes dans les mouvements du moteur
Crée le haut-débit liaison série sans fil pour la commande de robot à l’aide du clavier
Utilise les touches « i » = vers l’avant, « j » = gauche, « k » = marche arrière et « l » = droite
régulateur de vitesse est également implémentée à l’aide ","= vitesse vers le bas,"" = vitesse vers le haut, et « / » = vitesse max.

Variables de contrôle moteur L298
int M1_A = 12 ;    Si vous utilisez Ardumoto, changer à la broche 13
int M1_PWM = 11 ;
int M1_B = 10 ; Si vous utilisez Ardumoto, supprimer cette variable

int M2_A = 4 ;   Si vous utilisez Ardumoto, changement d’axe de 12
int M2_PWM = 3 ;
int M2_B = 2 ;    Si vous utilisez Ardumoto, supprimer cette variable

Broche de LED attaché à Arduino D13
int LED = 13 ;

variable pour stocker des données en série
int incomingByte = 0 ;

variable pour stocker la valeur de la vitesse
int speed_val = 255 ;

//////////////////////////////

void setup() {}

TCCR2B = TCCR2B & 0b11111000 | 0 x 01 ; changer de fréquence PWM pour broches 3 et 11 et 32kHz afin qu’il n’y aura pas pleurnicher moteur

Démarrez l’analyseur de série à 115 200 bits/s
Serial.Begin(115200) ;

déclarer les sorties
pinMode (LED, sortie) ;

pinMode (M1_A, sortie) ;
pinMode (M1_PWM, sortie) ;
pinMode (M1_B, sortie) ;

pinMode (M2_A, sortie) ;
pinMode (M2_PWM, sortie) ;
pinMode (M2_B, sortie) ;

désactiver les moteurs par défaut
M1_stop() ;
M2_stop() ;

Delay(500) ;

}

////////////////////////////////////

void loop() {}

cocher pour les données série
Si (Serial.available() > 0) {}
lire les octets entrants :
incomingByte = Serial.read() ;
le cas échéant, clignoter la LED et imprimer des données série reçues.
digitalWrite (LED, haute) ;
dire ce que tu as :
Serial.Print ("J’ai reçu:") ;
Serial.println(incomingByte) ;
retard de 10 millisecondes pour laisser le temps de mise à jour de série
Delay(10) ;

vérifier les octets entrants pour la direction
Si l’octet est égal à « 46 » ou «, » - augmenter la vitesse
Si (incomingByte == 46) {}
speed_val = speed_val + 5 ;
test_speed() ;
Serial.println(speed_val) ;
}
Si l’octet est égal à « 44 » ou "."-baisser la vitesse
ElseIf (incomingByte == 44) {}
speed_val = speed_val - 5 ;
test_speed() ;
Serial.println(speed_val) ;
}
Si l’octet est égal à « 47 » ou « / » - Vitesse max
ElseIf (incomingByte == 47) {}
speed_val = 255 ;
test_speed() ;
}

Si l’octet est égal à « 105 » ou « i », aller de l’avant
ElseIf (incomingByte == 105) {}
M1_forward(speed_val) ;
M2_forward(speed_val) ;
Delay(25) ;
}
Si l’octet est égal à « 106 » ou « j », tourner à gauche
ElseIf (incomingByte == 106) {}
M1_reverse(speed_val) ;
M2_forward(speed_val) ;
Delay(25) ;
}
Si l’octet est égal à « 108 » ou « l », aller à droite
ElseIf (incomingByte == 108) {}
M1_forward(speed_val) ;
M2_reverse(speed_val) ;
Delay(25) ;
}
Si l’octet est égal à « 107 » ou « k », allez inverse
ElseIf (incomingByte == 107) {}
M1_reverse(speed_val) ;
M2_reverse(speed_val) ;
Delay(25) ;
}
Sinon, arrêter les deux moteurs
else {}
M1_stop() ;
M2_stop() ;
}

}

else {}
M1_stop() ;
M2_stop() ;
digitalWrite (LED, faible) ;
}
}

void test_speed() {}
limiter la valeur de la vitesse à entre 0 et 255
Si {(speed_val > 250)
speed_val = 255 ;
Serial.println ("MAX") ;
}
Si (speed_val < 0) {}
speed_val = 0 ;
Serial.println ("MIN") ;
}

}

fonctions motrices / / /

void M1_reverse(int x) {}
digitalWrite (M1_B, basse) ;
digitalWrite (M1_A, élevé) ;
analogWrite (M1_PWM, x) ;
}

void M1_forward(int x) {}
digitalWrite (M1_A, basse) ;
digitalWrite (M1_B, élevé) ;
analogWrite (M1_PWM, x) ;
}

void M1_stop() {}
digitalWrite (M1_B, basse) ;
digitalWrite (M1_A, basse) ;
digitalWrite (M1_PWM, basse) ;
}

void M2_forward(int y) {}
digitalWrite (M2_B, basse) ;
digitalWrite (M2_A, élevé) ;
analogWrite (M2_PWM, y) ;
}

void M2_reverse(int y) {}
digitalWrite (M2_A, basse) ;
digitalWrite (M2_B, élevé) ;
analogWrite (M2_PWM, y) ;
}

void M2_stop() {}
digitalWrite (M2_B, basse) ;
digitalWrite (M2_A, basse) ;
digitalWrite (M2_PWM, basse) ;
}

Articles Liés

Accelero Android servo d’arduino contrôle via bluetooth (inventeur de l’app)

Accelero Android servo d’arduino contrôle via bluetooth (inventeur de l’app)

Ce bref didacticiel vidéo montrent la manière facile de contrôler votre servo avec l'accéléromètre du téléphone android.Application créée avec App Inventor 2.Désolé pour la dernière partie de la vidéo, ma webcam peu ralenti.
PC sous contrôle Robot Bluetooth (avec une interface graphique utilisateur!)

PC sous contrôle Robot Bluetooth (avec une interface graphique utilisateur!)

Dans ce Instructable je vais vous montrer comment construire un robot qui est contrôlé par l'intermédiaire de Bluetooth à l'aide d'un clavier, dispose d'une interface utilisateur graphique construite avec traitement qui affiche l'entrée au clavier et
Piraté Hexbug araignée Arduino contrôle

Piraté Hexbug araignée Arduino contrôle

Ce projet a hexbug araignée robot Arduino-basé vais vérifier. Le système de contrôle complétera notre projet en fournissant aussi bien par téléphone et ordinateur.http://Make.robimek.com/Arduino-Control-Hexbug-Spider/Étape 1: matériaux :Hexbug araign
Arduino contrôle voiture rc mod

Arduino contrôle voiture rc mod

Sur plusieurs site internet sur peut voir des voiture télécomander par bluetooth, sa ma donner envie den construire une petite qui peut être commandant par bluetooth via un smartphone ou tablette, je suis tomber sur ce petit 4x4 dans un magasin d'occ
Arduino contrôlée hélicoptère

Arduino contrôlée hélicoptère

Cette instructable a été créée dans l'accomplissement de l'exigence de projet de la Makecourse à l'Université de Floride du Sud (www.makecourse.com). L'objectif de ce cours était pour nous enseigner la créativité, l'ingéniosité et l'application prati
Laser Galvo - Arduino contrôlée

Laser Galvo - Arduino contrôlée

Arduino contrôlée laser galvo. La servocommande de miroirs diriger le laser UV laissant une traînée phosphorescente sur la feuille de vinyle glow-in-the-dark.Posté sur notes.robives.comÉtape 1 :À partir d'une feuille de vinyle lumineux d'eBay et poin
Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Le problème: vous voulez restreindre le temps lorsque votre animal de compagnie est autorisé à aller à l'extérieur. C'est peut-être parce que le quartier n'est pas sans danger pour votre chat ou votre petit chien pendant la nuit (maraude coyotes vien
Arduino contrôlée de fenêtre pour chat

Arduino contrôlée de fenêtre pour chat

je soumets cette instructable le défi de l'Arduino. N'oubliez pas de voter !Mon voisin a eu un petit problème avec son chat. Il veulent de sortir et de revenir trop souvent à l'intérieur. Habituellement, il ouvre juste la fenêtre de sa cuisine et nou
Autocollant de fenêtre numérique (Arduino contrôlée)

Autocollant de fenêtre numérique (Arduino contrôlée)

un autocollant de taille matrice de LED qui affiche des images en séquence à partir d'une carte SD, pour produire une animation signe ou « vitrophanie ». Arduino contrôlée ! Inclut également le code de Windows, Mac et Linux pour la conversion des fic
GOduino II = Arduino + contrôleur de moteur à Vitesse Variable L293D

GOduino II = Arduino + contrôleur de moteur à Vitesse Variable L293D

mises à jourGOduino II a été présenté sur dangerousprototypes.com07/04/2012, j'ai ajouté une diapositive de budget pour les lecteurs qui sont demandent où j'ai obtenu mon budget < 20 $ pour le GOduino II.INTRODUCTIONLe GOduino II est un contrôleur pr
Arduino contrôlée CNC / 3D imprimante hybride

Arduino contrôlée CNC / 3D imprimante hybride

Dame Nature fait... Nous construisons des.BuildersBot fusibles impression 3D & fraisage CNC dans rêve d'un générateur "3dprintingindustry.com"Le BuilderBot est une machine de conception ouverte, qui utilise OpenLogiciels et matériels ouvert.
Capteur infrarouge guidée Arduino contrôlée L293D Robot (partie 2)

Capteur infrarouge guidée Arduino contrôlée L293D Robot (partie 2)

Voici la partie 2 de l'Arduino contrôlée Robot L293D.Partie 2 comprend Sensors.This infrarouge fait partie d'une série d'instructables conduisant à un adepte de la ligne Robot.QRD1114 capteur infrarouge reliée à ArduinoÉtape 1: Câblage du capteur inf
Arduino contrôlée variateur de lumière

Arduino contrôlée variateur de lumière

Avertissement : Certaines personnes essaient de construire ce avec un opto-coupleur avec zerocrossing coz droit « c'est mieux » ? Certains sont même dit, dans les magasins d'électronique, il est préférable d'utiliser tel un opto-coupleur. MAL. Ceci f
Arduino contrôlée Servo Robot (Serbes)

Arduino contrôlée Servo Robot (Serbes)

quoi de mieux pour commencer à expérimenter avec open source microcontrôleurs ( Arduino ), puis en construisant votre propre robot source ( CC (SA-de)) ?Que faire avec votre serbe ?(Voici) - comment connecter votre serbe à l'internet et le lecteur su