Oreilles de chat Necomimi Arduino (4 / 8 étapes)

Étape 4: Détails sommaires

Voici le code de l’esquisse.

Il suffit de couper et coller comme le téléchargement d’un fichier à ibles ne peut pas retenir le nom de fichier et sera source de confusion.

=== début des croquis ===
/*
Ce programme est basé Arduino croquis exemples et ce qui suit :
ADXL345_Example.PDE - croquis de l’exemple de l’intégration avec un ADXL345 triple accéléromètre axes.
Copyright (C) 2011 amour Electronics (loveelectronics.co.uk)

Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier
elle aux termes de la version 3 de licence publique générale de GNU comme
publiée par la Free Software Foundation.

Ce programme est distribué dans l’espoir qu’il sera utile,
mais sans aucune garantie ; sans même la garantie implicite de
Qualité marchande ou ADEQUATION a un usage particulier. Voir le
GNU General Public License pour plus de détails.

Vous devriez avoir reçu une copie de la GNU General Public License
avec ce programme. Si non, voir < http://www.gnu.org/licenses/>.

*/

Inclure la bibliothèque de fils afin que nous puissions commencer à l’aide de I2C.
#include < Wire.h >

Inclure la bibliothèque de ADXL345 Electronics amour donc nous pouvons utiliser l’accéléromètre.
#include < ADXL345.h >

inclure la bibliothèque de servo pour contrôler le servo
#include < Servo.h >

Servo myservoA ; Créez l’objet servo pour contrôler un servo
vous pouvez créer un maximum de huit objets de servo

Servo myservoB ; Créez l’objet servo pour contrôler un servo
vous pouvez créer un maximum de huit objets de servo

posA int = 0 ; variable pour stocker la position du servo
posB int = 0 ;

Déclarez une instance globale de l’accéléromètre.
ADXL345 accel ;

Mettre en place une épingle, que nous allons utiliser pour indiquer notre statut à l’aide d’une LED.
int statusPin = 2 ; J’utilise la broche numérique 2.

//------------------------------------------------------

void setup()
{
myservoA.attach(7) ; attache le servo sur la broche 6 à l’objet de servo
myservoB.attach(6) ; s’adapte sur le servo sur la broche 7 l’objet servo

Commencez par configurer le Port série afin que nous puissions sortir de nos résultats.
Serial.Begin(9600) ;
Démarrer la bibliothèque I2C fils donc nous pouvons utiliser I2C pour parler à l’accéléromètre.
Wire.Begin() ;

Une LED pour indiquer notre statut est prêt.
pinMode (statusPin, sortie) ;

Créez une instance de l’accéléromètre sur l’adresse par défaut (0x1D)
Accel = ADXL345() ;

Vérifier que l’accéléromètre est enfait connecté.
if(Accel. EnsureConnected())
{
Serial.println ("connecté à ADXL345. ») ;
digitalWrite (statusPin, HIGH) ; Si nous sommes connectés, allumer notre statut LED.
}
d’autre
{
Serial.println ("connexion impossible à ADXL345.") ;
digitalWrite (statusPin, basse) ; Si nous ne sommes pas connectés, éteindre nos LED.
}

Définissez la plage de l’accéléromètre à un maximum de 2G.
Accel. SetRange (2, true) ;
Prévenez l’accéléromètre pour commencer à prendre des mesures.
Accel. EnableMeasurements() ;
}

//----------------------------------
void loop()
{

if(Accel. IsConnected) / / si nous sommes reliés à l’accéléromètre.
{
Lire les données brutes de l’accéléromètre.
AccelerometerRaw brute = accel. ReadRawAxis() ;
Ces données sont accessibles comme ceci :
int xAxisRawData = raw. XAxis ;

Lire le * échelle * les données de l’accéléromètre (cela fait sa propre lecture de l’accéléromètre
Si vous n’avez pas à ReadRawAxis avant d’utiliser cette méthode).
Cette méthode utile vous donne la valeur en G grâce à la librairie électronique de l’amour.
AccelerometerScaled échelle = accel. ReadScaledAxis() ;
Ces données sont accessibles comme ceci :
float xAxisGs = mise à l’échelle. XAxis ;

Nous sortie nos données reçues.
Sortie (raw, à l’échelle) ;

}

}

Copiez les données sur le port série.
Sortie Sub (AccelerometerRaw crue, AccelerometerScaled mis à l’échelle)
{
initialiser les broches de la LED en tant que sortie :
pinMode (sortie 8) ;
pinMode (sortie 9) ;
pinMode (sortie 11) ;
pinMode (sortie 12,) ;

Signalez-nous les valeurs brutes provenant de l’accéléromètre.
Serial.Print("Raw:\t") ;
Serial.Print (raw. XAxis) ;
Serial.Print("") ;
Serial.Print (raw. YAxis) ;
Serial.Print("") ;
Serial.Print (raw. ZAxis) ;

Parlez-nous de cette données, mais il adapte en unités utiles (G).
Serial.Print ("\tScaled:\t") ;
Serial.Print (mise à l’échelle. XAxis) ;
Serial.Print ("G") ;
Serial.Print (mise à l’échelle. YAxis) ;
Serial.Print ("G") ;
Serial.Print (mise à l’échelle. ZAxis) ;
Serial.println("G") ;

Voir la led pour axe
Si (mise à l’échelle. XAxis > 0) {}
digitalWrite (8, HIGH) ; la valeur de la LED sur
}
d’autre
{
digitalWrite (8, faible) ; déclencher la LED

}
//
Si (mise à l’échelle. YAxis > 0) {}
digitalWrite (9, HIGH) ; la valeur de la LED sur
}
d’autre
{
digitalWrite (9, faible) ; déclencher la LED

}
//
Si (mise à l’échelle. ZAxis > 0,8) {}
digitalWrite (11, haute) ; la valeur de la LED sur
}
d’autre
{
digitalWrite (11, faible) ; déclencher la LED

}

faire bouger selon conditions senties---les servo

Si (mise à l’échelle. ZAxis < 0,8) {}
Serial.println ("*** soulever plus bas---relance inférieure") ;
RaiseLower() ;
Delay(265) ;
}

//
Si (mise à l’échelle. YAxis < 0) {}
Serial.println ("*** secousse moyen---secousse Middle") ;
twitchMiddle() ;
Delay(400) ;

}

//
Si (mise à l’échelle. XAxis < 0 graduées. YAxis > 0 et à l’échelle. ZAxis > 0) {}
Serial.println ("*** clin d’oeil clin d’oeil droite droite---") ;
winkRight() ;
Delay(265) ;
}

}

//-------------------------------
sous-routine pour soulever et inférieur
Sub RaiseLower()
{

twitchshort() ;
Twitch() ;

pour (posA = 0; posA < 135 ; posA += 1) / / va de 0 degrés à 135 degrés
{/ / par incréments de 1 degré
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(12) ; attend 15 ms pour le servo atteindre la position
}
pour (posA = 135 ; posA > = 1; posA-= 1) / / passe de 135 degrés à 0 degrés
{
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(12) ; attend 15 ms pour le servo atteindre la position
}

}

sous-routine pour secousse---
Sub twitch()
{
pour (posA = 0; posA < 45 ; posA += 1) / / va de 0 degrés à 45 degrés
{/ / par incréments de 1 degré
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(8) ; attend 15 ms pour le servo atteindre la position
}
pour (posA = 45 ; posA > = 1; posA-= 1) / / va de 45 degrés à 0 degrés
{
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(8) ; attend 15 ms pour le servo atteindre la position
}
}
sous-routine pour courte secousse---
Sub twitchshort()
{
pour (posA = 0; posA < 25 ; posA += 1) / / va de 0 degrés à 25 degrés
{/ / par incréments de 1 degré
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(5) ; attend 15 ms pour le servo atteindre la position
}
pour (posA = 25 ; posA > = 1; posA-= 1) / / va de 25 ° à 0 degrés
{
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(5) ; attend 15 ms pour le servo atteindre la position
}
}

sous-routine pour secousse moyen---
Sub twitchMiddle()
{
pour (posA = 0; posA < 100 ; posA += 1) / / va de 100 degrés à 0 degrés
{/ / par incréments de 1 degré
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(10) ; attend 15 ms pour le servo atteindre la position
}
pour (posA = 100 ; posA > = 1; posA-= 1) / / va de 100 degrés à 0 degrés
{
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(10) ; attend 15 ms pour le servo atteindre la position
}
Delay(250) ;
pour (posA = 0; posA < 120 ; posA += 1) / / va de 100 degrés à 0 degrés
{/ / par incréments de 1 degré
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(10) ; attend 15 ms pour le servo atteindre la position
}
}

sous-routine pour clin d’oeil droite---
Sub winkRight()
{
pour (posA = 0; posA < 120 ; posA += 1) / / va de 0 degrés à 120 degrés
{/ / par incréments de 1 degré
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(10) ; attend 15 ms pour le servo atteindre la position
}
pour (posA = 120 ; posA > = 1; posA-= 1) / / va de 180 degrés à 0 degrés
{
myservoA.write(posA) ; dire de servo pour aller à positionner dans la variable « pos »
myservoB.write(180-posA) ;
Delay(10) ; attend 15 ms pour le servo atteindre la position
}
myservoB.write(180) ; soulever l’autre oreille si au repos pour correspondre à la position verticale
}
=== fin de croquis ===

Si vous inclinez votre tête vers l’avant, les oreilles devraient faire un plein de haut en bas.

Si vous inclinez votre tête vers la droite, l’oreille gauche doit monter et descendre.

Il faudrait une légère agitation si une légère inclinaison.  Les oreilles goutte à une position basse.

Jouer avec les valeurs de retard et les boucles de minutage de servo d’action réaliste.

N’oubliez pas, vous devrez peut-être savoir où vos servos sont placées au début de 0 degré et de quelle façon elles tournent.  Vous devrez ensuite accueillir le mouvement avec les commandes de servo dans le croquis.

X, Y, Z et servo mouvement dans mon prototype ne corresponde pas la vôtre.

Articles Liés

Oreilles de chat animatronique

Oreilles de chat animatronique

j'ai vu la vidéo de démonstration pour les oreilles de chat neurowear « necomimi » cerveau contrôlée et j'ai pensé qu'ils étaient assez impressionnants.  Je viens juste de commencer à apprendre Electronique et j'ai pensé un amusant projet commencer a
Chat fait main bijoux idée-comment faire les boucles d’oreilles de chat Adorable fils bricolage avec perles oeil de chat

Chat fait main bijoux idée-comment faire les boucles d’oreilles de chat Adorable fils bricolage avec perles oeil de chat

Fil enveloppés techniques peuvent être un peu difficiles pour les débutants à gérer, aujourd'hui que je vais vous montrer un moyen facile de faire les boucles d'oreilles de chat adorable fil avec perles oeil de chat utilisant un simple câble gainé de
Très simple bandeau d’oreille de chat pense de Halloween.

Très simple bandeau d’oreille de chat pense de Halloween.

It's Halloween tomorrow! Woo !Voici comment faire des oreilles de chat de blingy de dernière minute si vous avez oublié que vous avez besoin d'un costume !Ils prennent environ 20 minutes à faire. Il suffit d'ajouter la peinture de visage et une tenue
Oreilles de chat !

Oreilles de chat !

Ma marionnette bête Thursenberger bascule ces oreilles de chat !Ces petites oreilles sont utiles si vous êtes cosplay comme Miaouss ou Pusheen ou quelque autre caractère de chat.Étape 1: matériel Vous aurez besoin-Papier cartonné-Fourrure tissu de n'
Oreilles de chat Kitty

Oreilles de chat Kitty

Voici les oreilles de chat qui correspond à mon chaton chat patte gants !Matériaux : tissu fourrure, tissu extensible, bandeau ou pince à cheveux.Outils : machine à coudre/fil et aiguille, colle pistolet, marqueur, ciseaux, papier.Étape 1: Aperçu et
Oreilles de chat/loup musical violon !

Oreilles de chat/loup musical violon !

Cela comment faire chat/loup oreilles pour concerts, parties et bien plus encore !Étape 1: matériaux-Mousse (mousse de lit est très bien)-Bandeau-Peindre la couleur de votre choix-Pistolet à colle chaude-Ciseaux-Sèche-cheveux (facultatif)Étape 2: ore
Traîner les boucles d’oreilles de chat Kitty

Traîner les boucles d’oreilles de chat Kitty

Fun et facile traîner Kitty cat boucles d'oreilles.Étape 1: Matériaux nécessaires j'ai oublié d'ajouter earring posts combat Désolé qui !Étape 2: Former la tête j'ai toujours commencer par rouler mon argile en forme de boule. J'ai ensuite former la t
Arduino Sew Easy bouclier portable

Arduino Sew Easy bouclier portable

Wearable computing, e-textiles, de circuits souples ou de ce que vous voulez appeler, est un domaine en pleine croissance de l'application de la technologie aux vêtements ou accessoires comme les sacs, les chaussures ou les sacs à dos.  C'est un plai
Jeux avec les pensées/Mindwaves (w / Arduino)

Jeux avec les pensées/Mindwaves (w / Arduino)

Ce que vous pensez pourquoi nous aimons les jeux vidéo ? La réponse n'est pas difficile : les jeux vidéo nous montre, extrêmement bon défis. J'ai jouer jeux vidéo rarement, mais mes préférés sont les courses de voitures et jeux de monde ouvert tout c
Utiliser la Force... Ou vos ondes cérébrales ? (pensée de multifonctions contrôlé système)

Utiliser la Force... Ou vos ondes cérébrales ? (pensée de multifonctions contrôlé système)

Comme un gamin j'ai toujours voulu avoir une capacité spéciale, comme la hampe d'or, déplacement d'objets avec des pensées. J'ai essayé de déplacer des objets avec « the power of my mind », avec bien sûr sans succès. Eh bien, oui, j'ai été et je suis
Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Couvre-feu pour animaux de compagnie : Un Arduino contrôlée chatière

Le problème: vous voulez restreindre le temps lorsque votre animal de compagnie est autorisé à aller à l'extérieur. C'est peut-être parce que le quartier n'est pas sans danger pour votre chat ou votre petit chien pendant la nuit (maraude coyotes vien
Comment coudre un oreiller de lit & traversin chat rond

Comment coudre un oreiller de lit & traversin chat rond

lits d'animal de compagnie peuvent être chers dans les magasins pour animaux de compagnie. Si vous aimez coudre, il s'agit d'un moyen rapide et facile lit pour chien et nos chats l'aime tout simplement. Mon chat Tommy semble savoir quand je suis à co
Géodésique chat oreilles bijoux accessoire

Géodésique chat oreilles bijoux accessoire

Cette belle pièce de cheveux bijoux accessoire, inspiré par Himmeli sculpture et de la structure géodésique, est amusant et unique. Fabriqué à partir de simple tuyaux de cuivre et le câblage de la perle, ces oreilles de chat déconstruite sont super f
Fil adorable chat boucles d’oreilles bricolage

Fil adorable chat boucles d’oreilles bricolage

Amoureux de chat devrait essayer cette adorable fil enveloppé boucles d'oreilles !Étape 1: Matériaux nécessaires dans les boucles d'oreilles de chat de fil :2 mm doré perles de rocaille8mm Blue Cat Eye perlesFil de cuivre argenté 4. OCM-0. 8 mmFil d'