Rendre une vie taille parler tête humanoïde (13 / 16 étapes)

Étape 13 : Code Arduino, partie 1

Définir certaines broches sur l’Arduino :

broches numériques

 const int LEDPIN=13; // light up when audio detected const int PIN_STROBE=4; // spectrum shield const int PIN_RESET=5; // spectrum shield const int PIN_MOTOR_L=3; //PWM to motor open mouth const int PIN_MOTOR_R=6; //PWM to motor close mouth const int PIN_MOTOR_SLEEP=7; //sleep fxn on motor board const int PIN_MOTOR_STALL=8; //stall warning on motor board 
 //analog pins const int PIN_LEFT=0; // L analog from spectrum shield const int PIN_RIGHT=1; // R analog from spectrum shield const int PIN_MOTOR_POT=3; //analog potentiometer on motor 

Il s’avère que vous n’avez vraiment pas besoin de « fermer » la bouche avec le moteur-la boîte de vitesses apparaît pour se détendre à la position fermée par lui-même. Cela rend contrôle des mouvements encore plus facile puisque nous avons seulement besoin de « ouvrir » la bouche, c'est-à-dire, laisser tourner le moteur dans un sens. Pourtant, pourrait aussi bien fil it up et programme pour cela juste au cas où.

Nous avons besoin de mettre en place deux tableaux s’accrocher le signal de chacun des sept bandes canaux L et R

 // spectrum shield band arrays int left[7]; int right[7]; 

Définissez le min et max pour le mouvement de la mâchoire :

 int minRotation = 400; //approximate reading when mouth closed int maxRotation = 600; //approximate reading when mouth open 

Initialiser :

 void setup() {<br> pinMode(LEDPIN, OUTPUT); // LED //initialize spectrum board related pins pinMode(PIN_RESET, OUTPUT); // reset pinMode(PIN_STROBE, OUTPUT); // strobe digitalWrite(PIN_RESET,LOW); // reset low digitalWrite(PIN_STROBE,HIGH); //pin 5 is RESET on the shield } 

L’analyseur de spectre, utilisation appel lire ce qui suit :

 void readMSGEQ7()<br>{ //reset the data digitalWrite(PIN_RESET, HIGH); digitalWrite(PIN_RESET, LOW); //loop thru all 7 bands int sumRight = 0; int sumLeft = 0; for(int band=0; band < 7; band++) { digitalWrite(PIN_STROBE,LOW); // go to the next band delayMicroseconds(20); //gather some data left[band] = analogRead(PIN_LEFT); // store left band reading //right[band] = left[band]; //use this only for MONO! right[band] = analogRead(PIN_RIGHT); // store right band reading digitalWrite(PIN_STROBE,HIGH); // reset the strobe pin sumRight = sumRight+right[band]; // get the sum from all bands sumLeft = sumLeft+left[band]; // get the sum from all bands if(left[band] > 100 || right[band] > 100) { digitalWrite(LEDPIN,HIGH); // sound detected } else { digitalWrite(LEDPIN,LOW); // reset low } } } 

Cette routine crée un retard de 7 x 20 msec (140 millisecondes). Il suffit de dire. Lorsque vous exécutez des moteurs, il est toujours bon à retenir tout retard dur (puisque vous n’aurez aucun contrôle du moteur tout en retard actif, qu'il pourrait être en cours d’exécution à pleine vitesse).

Après avoir appelé readMSGEQ7, nous pouvons fixer le moteur à une position fondée sur le signal audio. Dans cet exemple, j’utilise le signal total de 7 pour toutes les bandes, mais seul le canal gauche (donc le mouvement de la bouche ne sera pas affecté par audio sur le canal de droite). Le signal max de chaque canal est 1024, donc la somme max théorique est de 7 chaînes x 1024 = 7168. Pratiquement le max n’obtiendra pas plus de 5000-6000. Vous pourriez obtenir un signal d’entrée moyens et la valeur min/max de celle, mais je préfère quelque chose de plus simple. Tout d’abord j’ai obligera la somme de « sumLeft »

 if (sumLeft > 1024) {sumLeft = 1024}; //constrain to 1024 max 

Et puis j’ai carte sumLeft pour le min et max de la position de la mâchoire. Simple.

 int mouthPosition = map(sumLeft, 0, 1024, minRotation, maxRotation); 

Mettre quelques limites pour la position de la bouche comme cible haute et cible faible (cela empêche le moteur de tenter d’atteindre la position exacte et permet au contraire une gamme (+/-"posError").

 targetH = target_mouthPosition + posError;<br>targetL = target_mouthPosition - posError; 

Articles Liés

Créer une vie taille Minecraft torche

Créer une vie taille Minecraft torche

dans ce tutoriel vous allez découvrir combien il est facile et bon marché, c'est de créer votre propre flambeau de Minecraft de taille de vie.  Le modèle est si facile ses pas appeler d'explication.Simplement télécharger et modèle de chalumeau impres
Comment faire une vie taille Halo 3 Battle Rifle

Comment faire une vie taille Halo 3 Battle Rifle

il s'agit de mon tutoriel sur comment faire un grandeur nature Halo 3 Battle Rifle hors bande de carton et de la gaine. C'est une des nombreuses armes de Halo de taille de vie que j'ai faite. Toutes les armes à feu/armes que j'ai faite sont faites en
Rendre une clé USB parlant pour « protéger » de vos données.

Rendre une clé USB parlant pour « protéger » de vos données.

Tout d'abord, j'ai besoin de faire une mise en garde avant de commencer ' ILVE.  Ce concept est, en aucun cas, un moyen de sécurisation ou de protection de vos données sur une clé USB (qui est pourquoi j'ai mis "protect" entre guillemets dans le
Comment vivre une vie esthétique de Wearing, habitudes alimentaires, vous voyagez par et écouter les couleurs spécifiques pendant une semaine

Comment vivre une vie esthétique de Wearing, habitudes alimentaires, vous voyagez par et écouter les couleurs spécifiques pendant une semaine

pendant sept jours consécutifs, nous avons choisi une seule couleur et tenté de robe dans cette couleur, manger uniquement des aliments de cette couleur, écoutez de la musique liée à cette couleur et généralement de faire des choix autant que possibl
Vie Taille papier Travis Touchdown

Vie Taille papier Travis Touchdown

si vous avez les mêmes problèmes peu comme moi, vous êtes maintenant droite * fixement sur une place vide dans votre chambre et je me demandais de « homme, je suis un grand fan de No More Heroes et j'ai un espace libre d'environ 60 x 80 cm dans mon A
Lot Backup System - pour rendre la vie plus facile peu !

Lot Backup System - pour rendre la vie plus facile peu !

Ce Instructable va vous montrer le raisonnement derrière et les bons codes pour créer un système de sauvegarde, sauvegarde d'un disque externe (carte SD, USB Drive etc..)Ce système devrait être utilisé entièrement pour votre propre usage personnel et
IPad Stand polyvalent Portable infinie Position conçu pour durer toute une vie / AKA: Rite-idée prêt A main Stand de Tablet

IPad Stand polyvalent Portable infinie Position conçu pour durer toute une vie / AKA: Rite-idée prêt A main Stand de Tablet

The Rite idée prêt A main Tablet Stand a été mis à jour à:   iPad Stand polyvalent Portable infinie Position conçu pour durer toute une vieCe projet a été inspiré par Zero Gravity Tablet Instructable de la mademoisellelek. Ce que j'aime le plus au su
Pirater votre vie : Un Guide pour vivre une vie plus saine et plus heureuse

Pirater votre vie : Un Guide pour vivre une vie plus saine et plus heureuse

Quand j'ai vu qu'il y avait un concours sur life hacks, j'ai immédiatement pensé à ces idées de génie incroyablement pour rendre les choses simples encore plus simple. Mais ensuite j'ai réalisé que ces peu « ah ha! "moments ne pas vraiment avoir un i
Jardin de la FLOPPYTY du BioShock vie taille rassembleur

Jardin de la FLOPPYTY du BioShock vie taille rassembleur

c'est de loin l'un de mes plus grandes oeuvres et le deuxième prop de jeu vidéo que j'ai fait et il m'a fallu du temps et travail et ce n'était pas cher à c'est 7 pieds de haut et 2 pieds de large avec une profondeur de 10 pouces et je pense que j'ai
Cerf de dissuasion / répulsif pour votre jardin en utilisant un solar powered lecteur mp3 pour jouer une personne qui parle

Cerf de dissuasion / répulsif pour votre jardin en utilisant un solar powered lecteur mp3 pour jouer une personne qui parle

Je me souviens comme un gamin voir une radio sous un seau dans mon jardin des grands-parents. C'était leur méthode éprouvée de dissuader les cerfs... et cela a fonctionné ! J'ai été en utilisant cette même méthode moi-même et j'ai eu quelques personn
Rendre une application simple à l’aide de l’API Win32

Rendre une application simple à l’aide de l’API Win32

souvent la meilleure façon d'apprendre à utiliser une interface de programmation est en codant un exemple simple. Dans ce cas, nous apprendront l'API Win32 en programmant une calculatrice simple entier avec l'aide de Visual Studio 2010.  Puisque chaq
Instructables Podcast Vol. 2 - construire une vie plus verte : électricité éolienne de mdavis19 produisant

Instructables Podcast Vol. 2 - construire une vie plus verte : électricité éolienne de mdavis19 produisant

mission des partie de Instructables est d'inspirer notre communauté pour créer et partager de grands projets. Nous faisons cela, bien que les concours, mois du thème et des défis qui sont en saison a lieu, partie d'une plus grande tendance culturelle
Pourquoi votre entreprise 40 heures une vie de travail semaine sucks ! (et comment vous pourriez sortir)

Pourquoi votre entreprise 40 heures une vie de travail semaine sucks ! (et comment vous pourriez sortir)

arrive-t aller pour travailler, faire glisser mais??? .. vous glisser hors du lit avec un réveil et d'attendre jusqu'à la dernière minute, andgetting dans le trafic de tout ce que même avec tout le monde reste en attente jusqu'à la dernière minute de
Vivre une vie simple gren

Vivre une vie simple gren

Une vie vert simple à bord d'un bus de vieux et de conseils sur la façon d'échapper à la ratracemon petit blog cliquez ici