Etape 47 : Cou - servo pour déplacer la tête
L’axe passe à travers le carton, puis un engrenage en plastique est ajouté. J’ai enregistré un un morceau de carton sur l’engrenage en plastique. La tête se fera enregistrée à cela.
Servos sont faciles avec arduino.
3 fils de servo-
Jaune - position - s’adapte sur la broche 11 (pwm) sur arduino
Rouge - 5V - 5V arduino approvisionnement
Black - sol - sol arduino.
La partie délicate seulement doit comprendre les angles qui sont utiles.
Avéré pour être :
5Deg - visages à gauche
80Deg - fait face vers l’avant
155 deg - fait face à gauche
Ce sera différent en fonction de comment le servo est monté.
J’ai adapté ce code d’exemple servo à la sortie de la position via le port USB.
Aussi, les mouvements sont tous dans une fonction appelée moveHead()
Doit être capable de cette purée avec l’autre code de test et exécutez-le à partir du port série.
Vidéo :
[cou]
Vidéo :
[la tête]
////////////////////// ARDUINO CODE /////////////////////
Coupe-bise
par BARRAGAN < http://barraganstudio.com>
Cet exemple de code est dans le domaine public.
pin 9 à pin11
angles a changé
#include < Servo.h >
Servo myservo ; Créez l’objet servo pour contrôler un servo
vous pouvez créer un maximum de huit objets de servo
int pos = 0 ; variable pour stocker la position du servo
int posFront = 81 ;
void setup()
{
myservo.Attach(11) ; attache le servo sur la broche 11 à l’objet de servo
Serial.Begin(9600) ;
}
void loop()
{
moveHead() ; appelez la fonction déplacer la tête
}
void moveHead() {//create fonction déplacer tête / / tête aller en arrière
pour (pos = 5; pos < 145; pos += 1) //goes de 5 à 145degrees
{/ / par incréments de 1 degré
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Serial.println(POS) ;
Delay(15) ; attend 15 ms pour le servo atteindre la position
if(pos == posFront) {}
Delay(600) ;
}
}
pour (pos = 145; pos > = 5; pos-= 1) / / va de 145 degrés à 5 degrés
{
myservo.Write(POS) ; dire de servo pour aller à positionner dans la variable « pos »
Delay(15) ; attend 15 ms pour le servo atteindre la position
if(pos == posFront) {}
Delay(600) ;
}
}
}