LEGO Nerf Arduino tourelle (16 / 17 étapes)

#include < Servo.h >
/ * par Gabe Magnuson
pour : Lego Nerf Arduino tourelle
24/07/2013
*/
/*
démarrer cette place et de tester la gamme des numéros sur votre stick analogique,


mes valeurs de stick ps1 variaient entre 0 - 1000 et définissez-les comme sensorMin et sensorMax
Vérifiez également que toutes les broches de servo et goupilles de pot sont corrects
*/

const int numReadings = 10 ;    const ne peuvent pas être modifiées
const int sensorMin = 0 ;       valeur minimale du stick analogique, test à l’aide de terminal série
const int sensorMax = 1000 ;    valeur maximale du stick analogique, tester la même manière
byteRead octet ;
Servo servo1 ;                  démarrer une instance du servo et donnez-lui un nom
Servo servo2 ;
Servo servoFire ;
int pos = 0 ;
int servo1Readings [numReadings] ;      les lectures de l’entrée analogique
int servo2Readings [numReadings] ;
int index = 0 ;                  l’index de la lecture courante
int servo1total = 0 ;                  le total cumulé
int servo1Average = 0 ;                la moyenne
int servo2total = 0 ;                  le total cumulé
int servo2Average = 0 ;                la moyenne
pos1 int = 90 ;
pos2 int = 90 ;
int pos1Old = 90 ;
int pos2Old = 90 ;
int inputVertical = A0 ;     broches d’entrée pour le câble de signal de pot
int inputHorizontal = A1 ;
int sensorRange = 0 ;        variables utilisées pour déterminer la plage de mouvement
int topRange = 0 ;
int bottomRange = 0 ;

void setup()
{
pinMode(OUTPUT,A5) ; initialiser ces broches comme sorties de sticks analogiques de puissance
pinMode(OUTPUT,A4) ;
pinMode(INPUT,inputVertical) ;      broche pour pots d’entrer la valeur
pinMode(INPUT,inputHorizontal) ;
Serial.Begin(9600) ;             initialiser la communication série avec ordinateur :
pour (int thisReading = 0; thisReading < numReadings ; thisReading ++) / / initialiser toutes les lectures à 0 dans les deux tableaux (pour lisser les valeurs, si confus checkout « lissage » au site arduino)
{servo1Readings [thisReading] = 0 ;
servo2Readings [thisReading] = 0;}
SERVO1.Attach(10) ;            Il s’agit d’A2, la numnering des broches numériques continuent de l’analogique à partir de A0
Servo2.Attach(11) ;            Il s’agit d’A3
servoFire.attach(16) ;
sensorRange = sensorMax - sensorMin ;  Cela côtelettes de la gamme des pots en six morceaux et prend ensuite le haut et le bas 2 à utiliser dans la requête des servos
sensorRange = sensorRange / 6 ;
bottomRange = sensorRange * 2 ;
topRange = sensorMax - bottomRange ;
servoFire.write(0) ;
SERVO1.Write(90) ;
Servo2.Write(90) ;
}

void loop() {}
pos1Old = pos1 ;  empêche le pos de changement si aucun mouvement n’est détecté
pos2Old = pos2 ;
analogWrite(A5,168) ;  ces deux broches sont utilisées pour alimenter les sticks analogiques
analogWrite(A4,168) ;
digitalWrite(12,HIGH) ;
soustraire la dernière lecture :
servo1total = servo1total - servo1Readings [index] ;         lisse les données provenant des pots
lecture de la sonde :
servo1Readings [index] = analogRead(inputHorizontal) ;
Ajouter la lecture au total :
servo1total = servo1total + servo1Readings [index] ;
calculer la moyenne :
servo1Average = servo1total / numReadings ;
soustraire la dernière lecture :
servo2total = servo2total - servo2Readings [index] ;
lecture de la sonde :
servo2Readings [index] = analogRead(inputVertical) ;
Ajouter la lecture au total :
servo2total = servo2total + servo2Readings [index] ;
avancer vers la position suivante dans le tableau :
index = index + 1 ;

Si nous sommes à la fin du tableau...
Si (index > = numReadings)
.. Wrap autour du début :
index = 0 ;
calculer la moyenne :
servo2Average = servo2total / numReadings ;

Si (servo1Average > topRange)
{pos1 ++ ;

Si (pos1 > 180)
{pos1 = 180;}
Serial.println ("servo1 vers le haut") ;
}

ElseIf (servo1Average < bottomRange)
{pos1--;

Si (pos1 < 0)
{pos1 = 0;}
Serial.println ("servo1 vers le bas") ;
}

d’autre
{pos1 = pos1Old ;
Serial.println ("servo1 nulle part") ;
}
Si (servo2Average > topRange)
{pos2 ++ ;

Si (pos2 > 110)
{pos2 = 110;}  limite les mouvements servo

Serial.println ("servo2 vers le haut") ;
}

ElseIf (servo2Average < bottomRange)
{pos2--;

Si (pos2 < 75)
{pos2 = 75;}   limite les mouvements servo

Serial.println ("servo2 vers le bas") ;
}

d’autre
{pos2 = pos2Old ;
Serial.println ("servo2 nulle part") ;
}

/ * Serial.println(pos2) ;   vous pouvez utiliser ce bit pour debug et trace à quel degré les servos sont sur
Serial.println(POS1); * /
Servo2.Write(POS2) ;
SERVO1.Write(POS1) ;

/ * vérifier si les données ont été envoyées de l’ordinateur: * /
Si (Serial.available()) {}
/ * lire la plus récente octets * /
byteRead = Serial.read() ;
/ * La valeur qui a été lu, retour au port série de l’écho. */
Si (byteRead = « F ») ;
{Serial.println("fire") ;
pour (pos = 0; pos < 120; pos += 1) / / va de 0 degrés à 120 degrés
{/ / par incréments de 1 degré
servoFire.write(pos) ;              dire de servo pour aller à positionner dans la variable « pos »
Delay(15) ;                       attend 15 ms pour le servo atteindre la position
}
pour (pos = 120; pos > = 1; pos-= 1) / / va de 120 degrés à 0 degrés
{
servoFire.write(pos) ;              dire de servo pour aller à positionner dans la variable « pos »
Delay(15) ;                       attend 15 ms pour le servo atteindre la position
}
}
}

/ * Serial.println(analogRead(inputVertical)) ;
Serial.println(analogRead(inputHorizontal)); * /
Ceci peut être utilisé pour tester la min/max de pots

Delay(5) ;        délai entre les deux pour donner le temps de servo pour déplacer

}

Articles Liés

Microduino mCookie lecteur de musique - relie magnétiquement, LEGO® & compatible Arduino

Microduino mCookie lecteur de musique - relie magnétiquement, LEGO® & compatible Arduino

Je voudrais partager avec vous ce facile à faire mCookie lecteur de musique de Microduino. L'ensemble du projet nécessite seulement 5 modules de mCookie, qui relie magnétiquement pour s'assurer que la bonne connexion est toujours. Il peut être progra
LEGO nerf dart

LEGO nerf dart

je suis fan de gros lego et aussi un grand fan de pistolets nerf, donc j'ai dû trouver un moyen de mélanger les deux et puis est venu avec cette étonnante dart.Etape 1: obtenir les pièces 1 lego peg connecteur1 petite entretoise de lego1 cheville peu
Auto-tourelle avec Pixy et Nerf Gun

Auto-tourelle avec Pixy et Nerf Gun

Avec le projet de la tourelle-Auto, vous pouvez automatiquement traquer et tirer sur vos ennemis ! Ce projet utilise un module de caméra Pixy, une base RobotGeek pan/tilt, un pistolet à fléchettes mousse et un Geekduino pour coordonner les composants
Twitter de surveillance jouet construit avec LEGO & Arduino

Twitter de surveillance jouet construit avec LEGO & Arduino

Il s'agit d'un jouet LEGO animé qui surveille twitter et célèbre chaque fois qu'il détectera une nouvelle occurrence du hashtag #BLOCKSHELL en sonnant une cloche, un clignotant et l'envoi d'un petit mec activiste minfigure vers le haut de la superstr
Traqueur solaire Arduino & Lego (biaxiale)

Traqueur solaire Arduino & Lego (biaxiale)

J'ai fait un suiveur solaire avec lego et arduino.C'est un projet très agréable et simple, si vous voulez apprendre l'arduino et l'électronique. Aucune soudure requise.Son but est seulement éducatif car les moteurs ne sont pas assez solides pour supp
LEGO voiture/réservoir, arduino répond android

LEGO voiture/réservoir, arduino répond android

Qu'est-ce que c'est?Lego-voitures contrôlées par le capteur d'acceleremoter sur un périphérique android via bluetooth.Quel est nécessaire ?1. lego-voiture avec deux moteurs, une conduite deux roues ou suivre sur le côté gauche et l'autre moteur de co
Tourelle laser sans fil Arduino

Tourelle laser sans fil Arduino

Très facile à construire arduino, tourelle laser sans fil, composants également très bon marchés, vous pouvez acheter sur ebay par exemple.Étape 1 :Pour rendre ce projet j'ai utilisé des modules d'émetteur/récepteur RF 2,4 GHz qui est intégré dans le
R/C LEGO® Dart Shooter Droid

R/C LEGO® Dart Shooter Droid

Toy implique interaction ! Mais quand je construis LEGO® Track Bot il manquait de toute interaction. Au moment où que j'ai construit le Bot de piste de LEGO je n'étais pas penser à la partie de l'interaction de celui-ci à tous. J'ai donc décidé de co
Construire un minuscule clavier électronique avec LEGO et faya-pépite

Construire un minuscule clavier électronique avec LEGO et faya-pépite

Dans mon dernier Instructable, j'ai démontré comment utiliser Lego, un Arduino board et faya-pépite modules pour construire un fan : http://goo.gl/brQ9tR,Cette fois, je vais vous montrer comment utiliser faya-pépites pour créer un petit clavier élect
LEGO:: Portail

LEGO:: Portail

dans cette instruction, je vais vous montrer comment créer des personnages hors de Portal 2. J'ai essayé d'utiliser ne pas de modification des pièces, alors vous pourriez construire les modèles sans destroing vos pièces.Je pense que les photos devrai
Compteur de vitesse B-Daman

Compteur de vitesse B-Daman

« Papa, y a-t-il quelque chose nous pouvons bâtir pour mesurer la vitesse d'une bille de B-Daman? »Maintenant que c'est le genre de question un papa geek aime.Ce projet est construit avec Arduino, un ordinateur bon marché programmable sur un circuit.
Auto équilibrage Robot avec écran LCD

Auto équilibrage Robot avec écran LCD

La version modifiée de mon mpu6050 équilibrage robot plus stable avec écran LCD et exemple de connecter 2 i2c sur le même NIPvidéo 1vidéo 2Étape 1: Étape 1: carte de ◾L298N moteur double dérivationCarte de ◾L298N moteur double dérivation12 V BATTARY9
Arduino / Wii contrôlé tourelle de fusée de Lego Star Wars

Arduino / Wii contrôlé tourelle de fusée de Lego Star Wars

carte Arduino An reçoit des données d'un Wii Nunchuck et l'envoie au rois servos: x, y et détente. Un laser indépendant a été ajouté pour le ciblage. Actuellement très bancale à cause des servos bon marché utilisés.Etape 1: Construction La tourelle d
Tourelle de boule de gomme Arduino

Tourelle de boule de gomme Arduino

La tourelle de boule de gomme est le projet que j'ai fait à HKU aux Pays-Bas. Ce projet a été conçu comme une introduction aux fonctionnalités de l'Arduino et était très libre dans la forme.J'ai pris mon inspiration des tourelles que vous voyez dans