Étape 1: Arduino sujets traités dans ce Instructable (Inc. le Arduino Sketch)
http://Arduino.cc/en/main/arduinoBoardUno
J’ai essayé d’inclure les questions de choses sérieuses qui se posent dans la pratique. Ce projet a porté sur deux grands défis de l’Arduino :
- Servo control - comment faire pour utiliser des scripts de l’Arduino pour convertir une entrée physique dans quelque chose qui contrôle mécaniquement la position d’un objet physique en 2 dimensions (yeux!)
- Une lampe simple circuit - comment obtenir l’Arduino pour convertir le signal d’entrée et faire allumer une lumière et régler sa luminosité (gradation)
La communauté Arduino est immense (en taille et en utilité!). Ce projet reconnaît toutes les personnes qui sont à elle.
Le servo de script est basé sur "Servo.h - Bibliothèque de Servo interrupt-driven pour Arduino utilisant 16 bits minuteries-Version 2"
par Michael Margolis. Respect !
http://code.google.com/p/Arduino/source/Browse/Trunk/Libraries/servo/servo.h?r=1088
Le sketch Arduino complet est inclus ici pour référence. Il a traversé 10 versions pour arriver à cela.
Il n’y a rien de très sophistiqué. Les observations de script expliquent ce qu’il fait.
Dans les étapes ultérieures de ce Instructable, j’ai ajouté des commentaires très développés sur le code dans le contexte des mesures précises (par exemple pour les commandes de servo pour les yeux)
Il s’agit d’une esquisse de « .ino ». Il s’agit d’un format plus tard de l’Arduino. Il a commencé comme un « .pde »
/*
Tête de lampe - sketch arduino pour contrôler une télécommande lecture tête de lampe
Andrew Lewis janvier 2012
Ce code se trouve dans le domaine public.
Le servo de script est basé sur Servo.h - interrompre bibliothèque de Servo moteur pour Arduino utilisant 16 bits minuteries-Version 2 par Michael Margolis. Respect !
http://code.google.com/p/Arduino/source/Browse/Trunk/Libraries/servo/servo.h?r=1088
Version 10
Cette version utilise trois potentiomètres (pots) comme entrées câblées sur les rails de tension (variant de 0 à 5V).
La variable de sortie tension de chaque séparément contrôler 2 servos et 2 LEDs (faisant affaire sous une paire)
La tension est lu par l’arduino par 3 entrées analogiques (1 par pot)
Les sorties de l’Arduino pour les servos sont des broches numériques, qui utilisent la modulation par impulsions pour contrôler la tension de sortie.
L’alimentation est un standard 5V, 2 a. Il doit avoir cette intensité de courant pour alimenter les servos et LEDs de haute puissance
*/
DÉFINIR DES LAMPES
définir les codes pin de lampe
const int lampPin = 5 ; déclare le nombre de broches d’entrée analogique pour signal - en
const int ledPinEyes = 3 ; le nombre de l’axe de sortie de LED pour le globe oculaire LEDs - OUT
int valLamp = 0 ; variable pour lire les entrées analogiques de l’interrupteur pour déclencher des lumières
LAMPES DE FIN
DÉFINIR LES SERVOS
#include < Servo.h > / / includes classe servo standard arduino
int delay_val = 5 ; assigne le décalage d’incrément de servo (délai entre l’application de valeurs) pour les deux servos
SERVO 1
Servo myservo ; Créez l’objet servo pour contrôler un servo
const int potPin1 = 0 ; déclare quelle broche analogique est utilisé pour connecter la sortie analogique de tension variable de potentiomètre 1 (servo de contrôles 1)
int valPot1 ; variable pour lire la valeur de la broche analogique pour servo 1
FIN SERVO 1
SERVO 2
Servo myservo2 ; créer le second objet de servo pour contrôler un second servo
const int potPin2 = 1 ; déclare quelle broche analogique est utilisé pour connecter la sortie analogique de tension variable de potentiomètre 2 (servo 2 de contrôles)
int valPot2 ; variable pour lire la valeur de la broche analogique pour servo 2
FIN SERVO 1
SERVOS
void setup() {}
pinMode (lampPin, entrée) ; configure la broche numérique comme une entrée pour le signal d’entrée marche/arrêt LED (pour les yeux)
pinMode (ledPinEyes, sortie); / / il s’agit de la sortie qui transforme les lampes allumé ou éteint
fixer les servos
myservo.Attach(5) ; attache le servo sur la broche 5 à l’objet de servo
myservo2.Attach(9) ; servo deuxième s’attache à la broche 9 au deuxième objet de servo
}
void loop() {}
lampCheck(); / / vérifier la lampe entrée et régler la luminosité
servoCheck() ; Recherchez les entrées servo et ajuster en conséquence les position
}
void servoCheck() {}
servocommandes
Servo 1---
valPot1 = analogRead(potPin1) ; lit la valeur du potentiomètre (valeur comprise entre 0 et 1023)
digitalWrite (ledPinJoystick, HIGH) ;
valPot1 = carte (valPot1, 50, 1000, 0, 179) ; redimensionnez-la pour l’utiliser avec le servo (valeur comprise entre 0 et 180)
myservo.Write(valPot1) ; définit la position du servo selon la valeur à l’échelle
Delay(delay_val) ;
---fin de servo 1
// servo 2 ------------------------
valPot2 = analogRead(potPin2) ; lit la valeur du potentiomètre (valeur comprise entre 0 et 1023)
digitalWrite (ledPinJoystick, HIGH) ;
valPot2 = carte (valPot2, 50, 1000, 179, 0) ; redimensionnez-la pour l’utiliser avec le servo (valeur comprise entre 0 et 180)
myservo2.Write(valPot2) ; définit la position du servo selon la valeur à l’échelle
Delay(delay_val) ;
---fin de servo 2
fin des servocommandes * /
}
fonctions de la lampe * /
void lampCheck() {}
valLamp=analogRead(lampPin) ;
valLamp = carte (valLamp, 20, 1023, 0, 255) ; redimensionnez-la pour l’utiliser avec le servo (valeur comprise entre 0 et 180)
valLamp = contraindre (valLamp, 0,255) ;
analogWrite (ledPinEyes, valLamp) ;
}