Robot serpent (3 / 16 étapes)

Étape 3: Combiner les moteurs et les capteurs de la photocellule

Description

Dans cette étape nous prendre les trois capteurs de photocellule et en les utilisant pour conduire les vitesses du moteur.  Dans notre code, nous allons être référant les moteurs à moteur A ou B de moteur, basé sur où ils sont branchés sur le flasque arrière du moteur, et les capteurs seront Sensor 3, Sensor 4 et 5 capteur, basé sur où ils sont attachés à la lecture analogique.  Capteur 3 et 4 capteurs seront les capteurs directionnels et capteur 5 sera le capteur de lumière ambiante.

Algorithme de

Pour commander les moteurs, nous obtiendrons la base de la lecture de tous les trois capteurs premiers (ceux-ci sont stockés dans photocellReading #).

Ensuite, nous prennent les différences entre le capteur 3 et 5 capteur (et stockez-la dans photocellDifference1) ainsi que la différence entre capteur 4 et 5 de capteur (et stockez-le dans photocellDifference2).  Il nous dira comment beaucoup plus lumineux les capteurs directionnels sont du capteur ambiant.  Puisque la lumière va être shinning sur ces capteurs, les lectures de la différence devraient nous dire la quantité de lumière est dirigé à chaque capteur.

Nous avons ensuite soustraire photocellDifference1 et photocellDifference2 les uns des autres et stockez-le dans lrValue.  En prenant cette différence, nous sommes en mesure de dire combien plus de lumière de chaque capteur directionnel est détection.  Si ce nombre est négatif, que signifie Sensor 4 a moins de lumière que le capteur 3 et plus de vitesse doivent être adressées à moteur B.  Si le lrValue est positif que cela signifie que le capteur 3 a plus de lumière que le capteur 4 et plus de vitesse doivent être adressées à moteur A.

Code

/*
int photocellReading3 ; l’analogue de lecture à partir du diviseur de résistance analogiques
int photocellReading4 ; l’analogue de lecture à partir du diviseur de résistance analogiques
int photocellReading5 ; l’analogue de lecture à partir du diviseur de résistance analogiques

int photocellDifference1 ;
int photocellDifference2 ;
int lrValue ;

void setup(void) {}
Serial.Begin(9600) ;

pinMode (sortie 12,) ; Broche initiés moteur canal
pinMode (sortie 9) ; Broche initiés frein canal

pinMode (13, sortie) ; Goupille d’initiés moteur canal B
pinMode (sortie 8) ; Goupille d’initiés frein canal B

digitalWrite (13, faible) ; Établit l’orientation vers l’avant du canal A
digitalWrite (8, faible) ; Débloquer le frein de chaîne A

digitalWrite (12, faible) ; Établit l’orientation vers l’avant du canal B
digitalWrite (9, faible) ;   Débloquer le frein pour le canal B
}

void loop(void) {}
photocellReading3 = analogRead(3) ; lumière de lecture de base
photocellReading4 = analogRead(4) ; lumière de lecture de base
photocellReading5 = analogRead(5) ; lumière de lecture de base

obtenir des différences entre les capteurs pour les moteurs et capteur de lumière ambiante
photocellDifference1 = (photocellReading3 - photocellReading5) ;
photocellDifference2 = (photocellReading4 - photocellReading5) ;

obtenir la différence entre les deux lectures
lrValue = photocellDifference2 - photocellDifference1 ;

contrôler la vitesse de chaque moteur basé sur lrValue
Si (lrValue < = -120) {}
analogWrite (11, 255) ;
analogWrite (3, 100) ;
} ElseIf (lrValue < = -90) {}
analogWrite (11, 224) ;
analogWrite (3, 100) ;
} ElseIf (lrValue < = -60) {}
analogWrite (11, 193) ;
analogWrite (3, 100) ;
} ElseIf (lrValue < = -40) {}
analogWrite (11, 162) ;
analogWrite (3, 100) ;
} ElseIf (lrValue < = -25) {}
analogWrite (11, 131) ;
analogWrite (3, 100) ;
} ElseIf (lrValue < 25) {}
analogWrite (11, 100) ;
analogWrite (3, 100) ;
} ElseIf (lrValue < 40) {}
analogWrite (11, 100) ;
analogWrite (3, 131) ;
} ElseIf (lrValue < 60) {}
analogWrite (11, 100) ;
analogWrite (3, 162) ;
} ElseIf (lrValue < 90) {}
analogWrite (11, 100) ;
analogWrite (3, 193) ;
} ElseIf (lrValue < 120) {}
analogWrite (11, 100) ;
analogWrite (3, 224) ;
} else {}
analogWrite (11, 100) ;
analogWrite (3, 255) ;
}
}

Vidéo des capteurs contrôlant les moteurs

Décomposent la vitesse

Dans le code, vous pouvez le voir nous avons une longue liste d’if instructions else contrôlant la vitesse de chaque moteur.  Ce code fonctionne pour notre serpent et notre combinaison de capteur/moteur photocellule.  Si vous avez modifié les matériaux pour votre serpent ou constate que ces valeurs ne fonctionnent pas pour vous, alors n’hésitez pas à modifier les valeurs jusqu'à ce que vous trouverez le régulateur de vitesse qui fonctionne pour vous.  Notre serpent est censé travailler en basse lumière et à une vitesse assez rapide.  Si vous souhaitez que votre serpent plus lent, par exemple, vous pouvez élargir votre gamme de lrValues dans le cas des instructions else, ainsi qu’il faudra une grande puissance lumière dirigée vers un capteur avant les moteurs atteignent la vitesse plus élevée.

Nous avons également constaté que chaque moteur nécessaires une valeur minimum de vitesse (la nôtre était 100) pour être en mesure de tirer le poids du serpent.  Il ne pourrait jamais être une valeur de vitesse de 0 à un moteur.  Si un moteur s’arrêter complètement, il faudrait alors trop de travail pour obtenir le moteur se déplaçant à nouveau.

Nous avons trouvé que c’était plus facile de planifier les contrôles de vitesse dans un tableau avant d’écrire des instructions else if.  Il s’agissait de notre table :
Moteur moteur A B
lrValue Analog 3 analogique 11
-∞ →-120 225 100
-119 →-90 224 100
-89 →-60 193 100
-59 →-40 162 100
-39 →-25 131 100
-24 → 24 100 100
25 → 39 100 131
→ 40 59 100 162
→ 60 89 100 193
90 → 119 100 224
∞ → 120 100 225

Articles Liés

Électromyographie bricolage

Électromyographie bricolage

Électromyographie (EMG) est la mesure des impulsions nerveuses à vos muscles. L'appareil consommateur plus populaire à l'aide de EMG est probablement le Myo, qui est un brassard qui vous permet de le geste contrôle – Découvrez leur site pour voir que
Imperméable à l’eau de votre servo-moteurs

Imperméable à l’eau de votre servo-moteurs

si vous utilisez des servo-moteurs pour toute activité sous-marine, bien que ces hitec servos étanches sont super sympa, vous n'avez pas à dépenser 50 dollars par servo. Voici comment imperméabiliser servos vous-même en quelques étapes. Je n'ai pas t
3D imprimés serpent robot

3D imprimés serpent robot

Quand j'ai eu mon imprimante 3D j'ai commencé à penser ce que je peux faire avec elle. J'ai imprimé un tas de choses, mais j'ai voulu faire une construction toute en utilisant l'impression 3D. Puis j'ai pensé à faire animal robot. Ma première idée ét
Robots douces : Faire un Muscle artificiel bras et pince

Robots douces : Faire un Muscle artificiel bras et pince

À l'aide de muscles air artificiel, un bras robotisé très flexible et pince est possible.Ce robot mou est alimenté par air comprimé et chacun des 11 muscles peut être contrôlé par une télécommande universelle infrarouge standard ou une LED infrarouge
À l’aide de la chaîne du bras robotique Mobile Ctrl tronc BT

À l’aide de la chaîne du bras robotique Mobile Ctrl tronc BT

Le bras robotique de tronc est un art en robotique moderne. Il peut en mesure de faire tourner et tricoter comme artistique. Tous les robotique inspirée s'inspirent des choses vivant, dans cette robotique de tronc ordre inspirée de l'éléphant et le s
Les queues pour les jumeaux de Serpent

Les queues pour les jumeaux de Serpent

pour Burning Man de cette année, nous avons jeté dedans avec nos bons amis Jon & Kystren de forme et la réforme . Vous beaucoup eux savent de leur impressionnant « comment faire une voiture escargot » Instructable ils ont fait un certain temps.Jon et
Faire une piscine Robo-serpent

Faire une piscine Robo-serpent

Sneel est le nom de mon serpent / anguille natation robot. Il s'agit de la documentation du matériel, de logiciels et de conception mécanique de Sneel_003.uréthane flex tubing, microcontrôleurs, radio sans fil Zigbee, colliers de serrage, fils, servo
Costume de robot avec LEDs

Costume de robot avec LEDs

les raisons pourquoi j'ai voulu faire un robot costume sont complexes. Pour faire une histoire courte, j'ai voulu un costume que je pourrais utiliser pour connaître mes camarades alors qu'ils ont soigneusement préparaient pour les examens finaux. Mai
Costume de Robot géant professionnel & Durable de Kaiju !

Costume de Robot géant professionnel & Durable de Kaiju !

Pour la plupart d'entre nous, de plus en plus en regardant des films de monstres a été un aliment de base de notre enfance. Nous avons aimé regarder les énormes bêtes atomique-cracheur de feu, traque un paysage urbain tout en écrasant les bâtiments e
Capteur sans contact Robot commandé

Capteur sans contact Robot commandé

Ce projet est un simple robot contrôlé depuis un PC par un clavier ou un robinet capteur de mouvement de saut. Le robot fonctionne sur un PICAXE 20M 2 puce, un microcontrôleur qui est programmé à l'aide d'un formulaire de base. J'ai choisi la puce PI
Mignon petit Robot d’argile

Mignon petit Robot d’argile

J'aime toujours faire des mignonnes petites choses d'argile. C'est pourquoi je suis j'ai fais une mignonne petite fille robot. J'espère que vous apprécierez.Étape 1: fournitures Dans les approvisionnements, vous aurez besoin est argile argent (facult
Costume de robot 2014

Costume de robot 2014

Cette année j'ai décidé de faire quelques costumes de robots pour les enfants. Mon but était de créer un robot boxy assez classique, mais je voulais aussi ajouter quelques éléments pour le rendre un peu plus crédible. J'ai été en mesure d'ajouter un
Le robot de tapis - un Robot de faisceau.

Le robot de tapis - un Robot de faisceau.

Le robot de tapis est un petit robot qui va shuffle serpente à travers de votre plancher.  Regardez la vidéo, et vous verrez comment il a obtenu son nom (ça et je suis un vieux fan de rock prog à cœur!).Faisceau est synonyme de biologie, électronique
Fromage Snack serpents - cette morsure retour

Fromage Snack serpents - cette morsure retour

Nous avons souvent des soirées de cinéma d'horreur sur les fins de semaine, et quand nous le faisons, nous aimerions avoir des collations qui vont avec le thème. Un de nos favoris est fromage craquelins. Cette version de snack de serpent est craqueli