Arduino animatronique yeux (7 / 8 étapes)

Étape 7: programmation

C’est peut-être la seule partie plus confuse du projet donc j’ai essayé d’écrire autant de code que j’ai pu pour minimiser idéalement les questions que vous pourriez avoir.

Tous les fichiers se trouvent dans le sketchbook.zip.

Tout d’abord, voici le code pour obtenir vos servos centrées. Le problème que vous rencontrez devient la position du servo correct. Gardez à l’esprit que ces servos vont de 0 à 180 degrés.

Donc en résumé, nous voulons mettre les servos à 90 et 90 donc sa dans le Centre des servos « amplitude de mouvement ». Ensuite, nous pouvons définir l’horizontale (axe des x) et Vertical (axe y) limite. Pour cela, vous pouvez utiliser l’eyes_servo_single_test changer de horServo.write() ; et vertServo.write() ;

[eyes_servo_single_test CODE]

#include < Servo.h >

Servo horServo ;
Servo vertServo ;

void setup() {}
horServo.attach(8) ;
vertServo.attach(9) ;
}

void loop() {}
horServo.write(80) ;
vertServo.write(40) ;
}

[FIN DU CODE]

Ensuite, je voudrais utiliser eyes_full_servo_test encore une fois brancher vos valeurs haute et basse pour les servos de cette façon vous pouvez voir si vous avez n’importe quelle attache. J’ai intégré un clignotement de la touche donc vous pouvez visualiser ce que l’étape votre sur. Vous pouvez toujours arrêter à mi-chemin en tirant sur le cordon USB.

[eyes_full_servo_test CODE]

//==================
Il s’agit d’un test de position servo rapide que j’ai fait pour mon projet de Eye
Les servos se déplacent des postions set pour les axes X et Y
Ensembles de test un que clignotent les LED haute 20 secondes, longs.
Test deux définit les servos au poste 40,0 pour 6,5 secondes, deux clignotements.
Test de trois définit les servos au poste 80,0 pour 7,5 secondes, trois clignotements.
Test de quatre définit les servos au poste 0,70 pour 8,5 secondes, quatre clignotements.
Tester cinq sets les servos en position 0,110 9,5 secondes, cinq clignotements.

IL FALLAIT APPUYER SUR RESET, UNE FOIS QUE LE TEST EST TERMINÉ

#include < Servo.h > //servo bibliothèque

Servo horServo ; servo de l’axe des abscisses
Servo vertServo ; y-asxis servo
int mené = 13 ;

void setup() {}
horServo.attach(8) ; broche de servo axe x 8
vertServo.attach(9) ; broche de servo axe y 9
pinMode (led, sortie) ;
}

void loop() {}
//==================TEST ONE=============//

Servos en position de repos ou de centre.
horServo.write(80) ;
vertServo.write(40) ;

clignote une fois
digitalWrite (conduit, en haut) ;
Delay(20000) ;
digitalWrite (led, faible) ;

//============Test Two=================//

test deux clignote deux fois

horServo.write(20) ; x gauche limite
vertServo.write(40) ;

clignote deux fois
digitalWrite (conduit, en haut) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(5000) ;

//=================Test Three==================//

tester trois clignote trois fois

horServo.write(80) ; x limite droite
vertServo.write(40) ;

clignote trois fois
digitalWrite (conduit, en haut) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(5000) ;


//==================Test four==================//

Test quatre clignote quatre fois

horServo.write(80) ;
vertServo.write(0) ; limite supérieure y

clignotent quatre fois
digitalWrite (conduit, en haut) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(5000) ;

//=================Test Five===================//

Tester cinq clignotements cinq fois

horServo.write(80) ;
vertServo.write(110) ; limite de fond y

clignote 5 fois
digitalWrite (conduit, en haut) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(500) ;
digitalWrite(led,HIGH) ;
Delay(500) ;
digitalWrite (led, faible) ;
Delay(5000) ;

//=====================END======================//

Servos retour au repos ou centre. Test terminé Appuyez sur RESET ou attendre pour toujours

horServo.write(80) ;
vertServo.write(40) ;
digitalWrite (conduit, en haut) ;
{while(1)}


}

[FIN DU CODE]

Le code utilise PI pour déplacer les yeux dans un rayon. Vous devez vous assurer que vous avez vos servos sur la broche 8 et 9 ou le modifier dans le code. Une fois que vous êtes confiant, que vous avez tout bien réglé, vous pouvez définir les connecteurs EZ en place.

[eyes_sketch CODE]


#include < math.h >

#define pi 3,14159265358979323846
#define twopi (2 * pi)
float circleradius = 50 ; 50 de chaque côté - faire sans plus aucun de vos valeurs limite max
float stepnumber = 360 ;
float stepangle ;

#include < Servo.h > //include bibliothèque de servo de commande de servo

Servo horServo ; servo pour mouvement gauche/droite
Servo vertServo ; servo pour haut/bas mouvement

randomhor octet ; définir la variable aléatoire position horizontale
randomvert octet ; définir la variable aléatoire de position verticale
int randomdelay ; Définissez la variable de délai aléatoire

#define HLEFTLIMIT 40 //define limite gauche horizontal (gauche/droite) servo
#define HRIGHTLIMIT 80 //define limite droite horizontale (gauche/droite) servo

#define VTOPLIMIT 70 / / définit la limite supérieure sur la verticale (haut/bas) servo
#define VBOTLIMIT 110 //define limite de fond horizontal (haut/bas) servo

void setup()
{
horServo.attach(8) ; servo horizontaux sur la broche 8
vertServo.attach(9) ; servo verticale sur la broche 9
randomSeed(analogRead(0)) ; Créer des valeurs aléatoires à l’aide d’une broche analogique non-connectée

stepangle = twopi/stepnumber ;
pour (int i = 0; i < stepnumber; i ++) {}
angle de flotteur = i * stepangle ;
float x = sin (angle) * circleradius ;
float y = cos (angle) * circleradius ;

x = carte (x, 1-circleradius, circleradius, 0, 2 * circleradius) ;
y = plan (y, 1-circleradius, circleradius, 0, 2 * circleradius) ;

horServo.write(x) ; écrire à l’asservissement horizontal
vertServo.write(y) ; écrire à l’asservissement horizontal

Delay(10) ;
}
}

void loop()
{
randomhor = random (HLEFTLIMIT, HRIGHTLIMIT) ; fixer des limites
randomvert = random (VTOPLIMIT, VBOTLIMIT) ; fixer des limites
randomdelay = random(1000, 4000) ; déplace toutes les 1 à 4 secondes

horServo.write(randomhor) ; écrire à l’asservissement horizontal
vertServo.write(randomvert) ; écrire à l’asservissement vertical
Delay(randomdelay) ; retarder une quantité aléatoire de temps (à moins de valeurs définies ci-dessus)
}

[Fin du CODE]

Articles Liés

Animatronic yeux et Wii Nunchuck partie 2 - lui donner une voix

Animatronic yeux et Wii Nunchuck partie 2 - lui donner une voix

Après que j'ai construit les yeux animatronique dans la partie 1, j'ai voulu remplissez le visage avec une voix et éventuellement déplacement sourcils. Si vous revenez à ma partie 1, vous verrez que pour la base, j'ai utilisé un modèle de Thingiverse
Animatronic yeux et Wii Nunchuck

Animatronic yeux et Wii Nunchuck

J'ai trouvé ce fichier 3D sur Thingiverse par Micropuller. J'ai vite compris que le fichier crée une unité oeil surdimensionné. Mais j'ai toujours voulu explorer la création d'un visage animatronique que je pouvais contrôler avec un Arduino.Plus j'y
Arduino animatronique main Mark 1

Arduino animatronique main Mark 1

il s'agit d'une main d'animatronic j'ai construit. Les doigts, la paume et l'avant-bras sont entièrement en bois (peuplier pour être exact). Les doigts sont articulés par des tendons (ligne de pêche) tirés par des moteurs. À l'heure actuelle, les 5 s
Animatronic yeux

Animatronic yeux

cette instructable montre comment j'ai fait une série des yeux pour un personnage de robot animatronique. Seulement, ils se déplacent d'un côté à l'autre, mais ont travail paupières. (18 +)En fait, j'ai modifié un ensemble contrôlé manuellement des y
Arduino énorme animatronique LED globe oculaire

Arduino énorme animatronique LED globe oculaire

Je suis actuellement en train de faire un engin de Halloween qui comporte quelques éléments qu'il convient de documenter. L' Énorme Arduino animatronique LED globe oculaire est l'un d'entre eux.Arrière-planLa plupart des projets globe oculaire animat
Candy monstre livraison

Candy monstre livraison

Le Candy monstre de livraison est le module final dans un plus grand Halloween sur le thème système de Rube Goldberg-like que membres de l' Makerspace Marin déploie pour le Bon Air Center Halloween Bash 2014. Enfants viennent au centre commercial et,
Arduino contrôlées Animatronic squelette Rock Band - en cours

Arduino contrôlées Animatronic squelette Rock Band - en cours

Pour l'Halloween cette année, j'ai décidé de construire un animatronic squelette Rock. C'est un travail en cours à ce stade, mais je suis assez content de comment il est à venir le long. Presque tout est fait de matériaux que j'avais sur la main (je
Nouveaux yeux animatronique : Rock On !

Nouveaux yeux animatronique : Rock On !

Quelqu'un avait vu Peter Penguin ou mon Instructables animatronique Penguin torse ou yeux animatronique et travaillait sur une sculpture. Il voulait animer la sculpture quand quelqu'un entra dans la chambre et a demandé si je pouvais le faire. J'y ai
Les yeux de monstre roulant (animatronique simple)

Les yeux de monstre roulant (animatronique simple)

C'est très bon marché et simple animatronique, habitué à un seul contrôleur de domaine moteur boîte de vitesses et 1battery AA opération. pouvez utiliser pour figurer parmi les accessoires d'Halloween.Étape 1: matériel 1. 5mm contre-plaqué2. pistolet
Arduino sans fil Animatronic main

Arduino sans fil Animatronic main

BTW!!! Cette instructable est awsomeeeeeeC'est un très simple mais en même temps un projet très difficile selon votre niveau de compétence. Permet d'obtenir à bâtiment !Ce qu'il s'agit, est un coup de main animatronique sans fil qui ne nécessite pas
Arduino « Cligner des yeux pour parler » à l’aide de Charlieplexing

Arduino « Cligner des yeux pour parler » à l’aide de Charlieplexing

Ce projet peut être classifié comme périphérique d'AAC (Communication améliorée et Alternative), qui sont utilisés comme un moyen de communication pour ceux qui souffrent de maladies comme ALS débilitantes, qui provoquer une paralysie complète et per
Arduino Steve - un Minecraft Animatronic

Arduino Steve - un Minecraft Animatronic

RésuméJe fais souvent introduction à l'électronique pour les groupes - et une fois la théorie de la route - ce qui est amusant projet de voir la théorie en pratique. Avec un peu de préparation (pré imprimés) il peut être complété en moins d'une heure
Arduino contrôlée animatronique tête en bois (lampe de lecture)

Arduino contrôlée animatronique tête en bois (lampe de lecture)

cette tête est une lampe de lecture qui peut être ajustée pour la direction de l'éclairage et estompée au besoin.Ce Instructable combine Arduino programmation, certains électronique simple, sculpture avec des outils manuels et électriques, contrôle m
Yeux fous de matrice Arduino 8 x 8

Yeux fous de matrice Arduino 8 x 8

c'était quelque chose que j'ai commencé pour mon fils. Il est maintenant en vélos et patinage donc j'ai proposé de lui faire un vieux casque pour ne pas gâcher ses cheveux tout en essayant les cascades qu'il a vu les autres enfants faire.De toute faç