SADbot : le robot touchés selon les saisons de dessin (6 / 11 étapes)

Étape 6: Moteurs et cellules photoélectriques

Maintenant, nous allons essayer un code qui utilise les cellules photoélectriques pour déplacer le stepper
les moteurs. Tapez le code suivant, vérifier et transférez-le sur l’Arduino.  Une fois cela fait, essayez de dissimuler les photocellules un à la fois.
• Quand vous couvrez la photocellule du haut, le moteur gauche doit tourner vers la gauche
et le moteur droit doit tourner vers la droite.
• Quand vous couvrez la photocellule vers le bas, le moteur gauche doit tourner vers la droite
et le moteur droit doit tourner vers la gauche.
• Quand vous couvrez la photocellule de gauche, les deux moteurs devraient tourner
dans le sens antihoraire.
• Quand vous couvrez la photocellule droite, les deux moteurs doivent tourner vers la droite.

/*
À l’aide de cellules photoélectriques à deux moteurs pas à pas
avec un Arduino par le biais EasyDriver v4.3 de Sparkfun
CC-GNU GPL par Ben Leduc-Mills et Fab Roberts
Créé : 2010.06
*/

#include //import bibliothèque de stepper
#define 200 étapes / / 360/1.8 (angle de pas) = 200 pas/tour

déclarer les nouveaux objets de moteurs pas à pas de la bibliothèque de stepper (un par moteur)
Stepper right_motor (marches, 6, 7) ; 6 = DIR, 7 = ÉTAPE
Stepper left_motor (marches, 11, 12) ; 11 = DIR, 12 = ÉTAPE

distance de l’int ; jusqu’où doivent aller moteurs
int le plus bas ; variable pour stocker la valeur de la cellule photoélectrique plus faible
int i ; pour une boucle
variables pour 4 valeurs de cellule photoélectrique
int photo_up ;
int photo_down ;
int photo_left ;
int photo_right ;

void setup() {}
Serial.Begin(9600) ; lancer imprimé série alors nous pouvons voir les choses
régler les vitesses du moteur (en tr/min)
right_motor.setSpeed(200) ;
left_motor.setSpeed(200) ;
}

void loop() {}
lire et imprimer toutes les valeurs de cellule photoélectrique des broches analogiques 0-3
photo_up = analogRead(0) ;
Serial.Print("up") ;
Serial.println(photo_up) ;

photo_down = analogRead(1) ;
Serial.Print("Down") ;
Serial.println(photo_down) ;

photo_left = analogRead(2) ;
Serial.Print("left") ;
Serial.println(photo_left) ;

photo_right = analogRead(3) ;
Serial.Print("Right") ;
Serial.println(photo_right) ;

Delay(1000) ; Donnez-moi le temps de les lire dans le moniteur

stocker les valeurs de cellule dans un tableau
int photoValues [] = {photo_down, photo_left, photo_up, photo_right} ;
plus bas = 9999 ; Ceci réglé plus haut que les valeurs de cellule photo-électrique possible

boucle pour trouver la plus petite valeur de la cellule photoélectrique
pour (i = 0; j’ai 4 <; i ++) //4 = nombre de cellules photoélectriques
{
Serial.println(photoValues[i]) ; imprime les photoValue tableau
assigner des cellule réelle valeur à la variable « plus basse » si elle est inférieure
que tout ce qui est « plus bas » est défini sur (commence à 9999)
Si (le plus bas > = photoValues [i]) {}
plus bas = photoValues [i] ;
}

Imprimez-le pour confirmer que la valeur la plus faible est sélectionnée
Serial.Print("lowest:") ;
Serial.println(lowest) ;
Delay(1000) ; attendre une seconde avant une boucle de sorte que nous pouvons lire les valeurs
} //end pour

distance = plus bas ; Set de voyage distance variable = valeur la plus basse
trouver le capteur qui correspondait à l’aller plus bas, cette direction
Voir ci-dessous pour ce que le haut, bas, gauche, droite fonctions faire
Si (plus bas == {photoValues[0])}
(distance) ;
}
ElseIf (plus bas == {photoValues[1])}
vers le bas (à distance) ;
}
ElseIf (plus bas == {photoValues[2])}
gauche (distance) ;
}
ElseIf (plus bas == {photoValues[3])}
droit (à distance) ;
}
} //end boucle

/*
Voici les fonctions directionnelles. Taille de boucle = distance.
Numéros de mesure positive sont dans le sens horaire, négatif dans le sens antihoraire
*/

Sub (distance int) {}
pour (i = 0; i < distance; i ++) {}
right_motor.Step(10) ;
left_motor.Step(-10) ;
}
}

Sub vers le bas (distance int) {}
pour (i = 0; i < distance; i ++) {}
right_motor.Step(-10) ;
left_motor.Step(10) ;
}
}

vide laissé (distance int) {}
pour (i = 0; i < distance; i ++) {}
right_motor.Step(-10) ;
left_motor.Step(-10) ;
}
}

Sub droit (distance int) {}
pour (i = 0; i < distance; i ++) {}
right_motor.Step(10) ;
left_motor.Step(10) ;
}
}

Articles Liés

Comment transformer les bras robot axée sur les Adunio en une imprimante 3D et l’iphone 6 s dans un PTZ camara

Comment transformer les bras robot axée sur les Adunio en une imprimante 3D et l’iphone 6 s dans un PTZ camara

Après jour et dur travail nuit de, nous sommes finalement arrivés Dobot armer une imprimante 3D de haute précision ! Il est différent de l'imprimante 3D traditionnel Delta et XYZ. C'est peut-être le premier bras robotique Bureau qui peut être utilisé
Kit Robot pédagogique pour les débutants

Kit Robot pédagogique pour les débutants

mBot est un kit de robot pédagogique pour les débutants d'acquérir une expérience pratique sur la programmation graphique, électronique et robotique. C'est une solution tout-en-un pour l'apprentissage de la robotique et conçu pour l'éducation de la t
Pizza Happy Face pour toutes les saisons

Pizza Happy Face pour toutes les saisons

Qui pourrait dire non à une succulente tranche de pizza maison ? C'est le fast food plus populaire dans le monde. Notre dîner de famille de week-end préférée est la pizza. Il existe de nombreuses variétés de pizzas, mais mon favori de la famille est
4 commandes essentielles pour faire des dessins dans AutoCAD : les utiliser pour dessiner une étoile

4 commandes essentielles pour faire des dessins dans AutoCAD : les utiliser pour dessiner une étoile

Ce Instructable est écrit pour ceux juste apprendre et débutent avec AutoCAD, avec le but en passant sur quelques bons conseils. Il suppose que quelque facilité avec l'ordinateur.Je vais montrer comment faire l'étoile ci-dessus à l'aide de quatre com
Bras de Robot en carton pour les Robots bon marchés

Bras de Robot en carton pour les Robots bon marchés

C'est probablement l'Instructable j'ai hâte du meilleur parti de ma série "Pour les Robots bon marché". Il est le plus cool que j'ai fait jusqu'ici et par là même les plus difficiles.Robotique ne commence vraiment à se refroidir jusqu'à ce que v
ROBOT contrôlé par les doigts humains

ROBOT contrôlé par les doigts humains

Cette innovation vient les mouvements de la main qui peuvent contrôler un robot. Dans ce projet, j'utilise flex capteur et je prends le capteur flex lire et mettre cette lecture sur intel edison. comme une valeur analogique et manipuler ces valeurs e
Robot contrôlé manuellement les mouvements

Robot contrôlé manuellement les mouvements

Dans ce tutoriel nous allons construire un petit arduinobot que nous pouvons contrôler les mouvements de la main. Nous interfacer avec le robot à l'aide d'une webcam qui est pointée à un écran blanc. Nous passons notre doigt, qui est encapsulé dans u
Toutes les saisons, tous les jours fériés, dirigé les boucles d’oreilles électroniques

Toutes les saisons, tous les jours fériés, dirigé les boucles d’oreilles électroniques

OK, donc nous sommes sur le point de faire des boucles d'oreilles très poussées.Ce n'est pas un projet débutant, et je recommande à ceux qui veulent prendre cela, commencez par petits projets et travailler vos compétences jusqu'à présent.Donc d'abord
Construire un Habitat de toutes les saison extérieure Cat

Construire un Habitat de toutes les saison extérieure Cat

[début novembre 2012 - M. Max lit dans la maison de l'habitat]C'était au printemps de 2007 quand notre bien-aimé M. Spanky (alias Houdini) s'est échappé une fois de plus ; Cette fois-ci en sautant d'une fenêtre ouverte à l'étage. Heureusement, une se
Mixage de couleurs RGB LED touch jouet pour les enfants

Mixage de couleurs RGB LED touch jouet pour les enfants

je veux créer un jouet interactif pour mes enfants à jouer avec moi. Nous tenir mains ensemble, puis le RGB LED montre différentes couleurs. Maintenez serré ou plus léger, ou toucher différentes parties du corps de l'autre montrera des couleurs diffé
Ligne simple robot qui suit pour les débutants

Ligne simple robot qui suit pour les débutants

Suiveur de ligne est une machine qui peut suivre un chemin d'accès. Le chemin peut être visible comme un blackline sur une surface blanche (ou vice versa), ou il peut être invisible comme un champ magnétique-wikipedia.COMPOSANTS :1. dc motors-2 (vous
Peluches piège d’un 5 Gallon seau d’eau pour toutes les saisons

Peluches piège d’un 5 Gallon seau d’eau pour toutes les saisons

ventiler l'air humide chaud dans votre maison de la sécheuse. N'envoyez pas votre belle air chaud à l'extérieur. Quand il se réchauffe à l'extérieur, rapidement configurer le piège de la charpie pour évacuer vers l'extérieur et enregistrer votre syst
Une cuisine savoureuse et Camping pour toutes les saisons

Une cuisine savoureuse et Camping pour toutes les saisons

Quand j'ai été engagé dans l'étude travaille pour la nouvelle construction de routes dans le nord-est de l'Inde, deux de mes collègues ingénieurs et moi-même eu du mal à porter le déjeuner à emporter avec nous. Déjeuner ne pourrait pas être établie à
Comment faire toucher n' aller les patins de votre hélicoptère RC

Comment faire toucher n' aller les patins de votre hélicoptère RC

faire une unité de masse ou de voler avec ces skis pour hélicoptères rc! + comment faire les skis !Étape 1: matériaux Tapeciseauxchoix de la denthélicoptère RCet fiche ou carton légerÉtape 2: Faire 2 triangles Découper 2 triangles avec lumière m de c