Mesa juego de Futbol (7 / 9 paso)

Paso 7: Código de Arduino

DEFINIR
entrada (pernos)
#define sensor1 5 / sensor de arquero a la izquierda
#define sensor2 0 / / sensor derecho del portero
#define centro 8

#define motor1 10
#define motor2 11

#define distThresh 50

Declaraciones de variables globales
int s1Baseline;
int s1Tolerance;
const int numRecRead = 10;
int recReading [numRecRead];
int recReadCur;

void setup () {}
Serial.Begin(9600);           Biblioteca Serial a 9600 bps

pinMode (sensor1, entrada);

pinMode (motor1, salida);
pinMode (motor2, salida);

resetRecVal();

generador de números aleatorios de semilla por dificultad
randomSeed(analogRead(0));

Calibrar sensores y sistema de referencia y tolerancias
int s1Cal [2];
calibrateSensor (sensor1, s1Cal);
s1Baseline = s1Cal [0];
s1Tolerance = s1Cal [1];

}

void loop() {}
int s1Val, s1ValAvg;
doble s1Dist;
Serial.println(digitalRead(Center));
Obtener valores de los sensores
s1Val = checkSensor (sensor1, s1Baseline, s1Tolerance);
s1ValAvg = averageReading(s1Val);
Serial.println(s1Val);
Si (s1ValAvg > distThresh) {}
s1Dist = sensorToDistance(s1Val);

Si moveGoalie(5) (s1Dist < 14);  moverse a la derecha
else if (s1Dist > 18 & & s1Dist < 32) moveGoalie(-5);  mover a la izquierda

resetRecVal();
}
}

Devuelve el valor del sensor si hubiera lectura (es decir, bola pasada enfrente)
o 0,0 si ninguna lectura fue tomada (es decir, la pelota no pasó)
sensorPin - el pin del sensor para comprobar
línea de base - que los sensores "no lectura" valor
tolerancia - el umbral de la línea de fondo que se debe considerar una lectura
(es decir, si el valor está dentro (base +-umbral no informe
una lectura)
int checkSensor (int sensorPin, base doble, doble tolerancia) {}
sVal doble = analogRead(sensorPin);  Valor reportado por el sensor
Si (abs (línea de base - sVal) < tolerancia) / / si la lectura está dentro de tolerancia
return 0;                          no volver "lectura"
volver sVal;                          lo contrario, devuelve el valor
}

Devuelve la distancia correspondiente a la lectura del sensor
sensorVal - valor leído por el sensor
doble sensorToDistance (int sensorVal) {}
doble escala = 2050;
doble expon = 1.0/0,85;
doble dist = pow((scale/sensorVal), expon);

Si (dist > 35) dist = 35; //normalize dist

volver dist;
}

Calibra el sensor (funcionamiento en la configuración)
Toma los puntos de calibración del sensor para encontrar el valor medio de
y el ruido en las lecturas de sensor
sensorPin - Pin del sensor a calibrar
calData - int [] valores a almacenar en la
void calibrateSensor (int sensorPin, int calData[]) {}
int numReadings = 300;  300 puntos de calibración
int datos [numReadings];  utilizado para almacenar los puntos de calibración
int i;
minVal int = 10000;  inicializar el valor mínimo de alta
int maxVal = -1;  inicializar el valor máximo bajo

para (i = 0; i < numReadings; ++ i) {}
int t = analogRead(sensorPin);  leer datos de la muestra
datos [i] = t; rellenar la matriz de datos

Récord min y max sensor lecturas
Si (t < minVal) //if t es menor que la actual minVal
minVal = t;  reemplazar el minVal
Si (t > maxVal) //if t es mayor que maxVal
maxVal = t; reemplazar el maxVal
}

Buscar la difusión de los datos
int extensión = maxVal - minVal;

Encontrar la media de los datos de ejemplo
doble media = 0;
para (i = 0; i < numReadings; ++ i)
significa datos += [i];
significa / = numReadings;

calcular std dev
stddev doble = 0;
para (i = 0; i < numReadings; ++ i)
StdDev += pow ((datos [i] - promedio), 2);
StdDev = numReadings;
StdDev = sqrt(stddev);

retorno [media, extensión]
calData [0] = media;
calData [1] = stddev * 2;
retorno;

}

parada de 0
10 - rápido
< 0 izquierda
> Derecho 0
void moveGoalie (int dir) {}
int mag = map(abs(dir), 10, 0, 0, 255);
int retMag = mapa (abs ((dir + 4)/4.0), 4, 14, 100, 255); volver más despacio

Si (dir > 0) {}
analogWrite (motor1, mag);
analogWrite (motor2, 0);
Delay(100);
analogWrite (motor1, 0);
analogWrite (motor2, 0);
Delay(1000);
analogWrite (motor1, 0);
analogWrite (motor2, retMag);
Delay(200);
}
else if (dir < 0) {}
analogWrite (motor1, 0);
analogWrite (motor2, mag);
Delay(300);
analogWrite (motor1, 0);
analogWrite (motor2, 0);
Delay(1000);
analogWrite (motor1, retMag);
analogWrite (motor2, 0);
Delay(300);
}

parada de portero
analogWrite (motor1, 0);
analogWrite (motor2, 0);
}

int averageReading (int newVal) {}
% recReadCur = (numRecRead - 1);

recReading [recReadCur ++] = transfondo;

int suma = 0;
válido de int = 0;
para (int i = 0; i < numRecRead; ++ i) {}
Si (recReading [i] > 0) ++ válido;
suma += recReading [i];
}

Si (válido < 7) return 0;

volver (suma/válido);
}

void resetRecVal () {}
para (int i = 0; i < numRecRead; ++ i) //initialize recRead
recReading [i] = 0;
recReadCur = 0;
}

Artículos Relacionados

Mesa de juego de futbol con tapones de botella

Mesa de juego de futbol con tapones de botella

En nuestra escuela, donde enseño nuestros especiales niños discapacitados, a menudo jugamos este juego. Incluso son capaces de hacer los componentes (a veces con una pequeña colaboración de adultos), y después de unos minutos todo el mundo puede juga
Juego de Futbol K'nex

Juego de Futbol K'nex

aquí es un juego que hice hace tiempo sobre el papel. Ahora lo hice en K'nex y en 3D. Tu objetivo es disparar la bola en la red. Usted está a cargo de todos los miembros de su equipo como se turnan con su oponente y lugar abajo de tarjetas que le dir
Slide simple juego de futbol.

Slide simple juego de futbol.

Una versión sencilla de la vida Real de la aplicación de fútbol increíble deslice.Paso 1: Lo que usted necesitaSe necesita:Seis piezas de cada equipo y una pieza que representa a la bolaAproximadamente la mitad de cartel verde tablero de papelDos de
Plataforma mesa juego de tronos - Tutorial DIY

Plataforma mesa juego de tronos - Tutorial DIY

¿Quieres saber cómo se puede convertir en una mesa con un mapa de Poniente en la parte superior una plataforma? Pues bien, en suerte!Elementos necesarios:SierraMartilloPata de cabraConjunto PlazaPlumaLápizDestornilladorCintaMapa de Poniente en el tam
Cómo hacer un juego de mesa de mesa Rpg

Cómo hacer un juego de mesa de mesa Rpg

Hola, soy nuevo en Instructables y quisiera compartir que algo que se llama un juego de mesa de rol de mesa una mesa rpg es básicamente un rol de juego donde finges que eres algo y cosas y misiones y cosas así. La razón que esto sucedió fue porque me
Actualización de mesa

Actualización de mesa

Una mesa de futbolito torneo tamaño, el tipo que ves en bares o galerías son 56" largo X 30" ancho X 36" de alto. Éstos son generalmente robustos y lo suficientemente resistente para hacer frente a áspero juego sin moverse o viajar a través
Creación de un personaje mediante el sistema de juego de rol Pathfinder

Creación de un personaje mediante el sistema de juego de rol Pathfinder

El sistema de juego de rol Pathfinder, publicado por Paizo, es increíblemente similar a Dungeons & Dragons 3.5 en la mayoría de los respectos. En general, sin embargo, el jugador se le da más opciones y se han simplificado muchas reglas confusas. Est
Como hacer un Vuvuzela barato!

Como hacer un Vuvuzela barato!

Las ocasiones son si vieron la Copa del mundo este año, has escuchado Vuvuzelas. Para los que no saben, son esos fuertes cuernos que hacen un ensordecedor sonido. Al parecer, se originó en África del Sur pero son populares alrededor del mundo. Todos
Miss La Sen quilling papel

Miss La Sen quilling papel

Miss La Sen es el personaje aquí story juego de mesa, juego para móviles, Hi La Sen-Hi Life bonita canción...Paso 1: Utilizar este patrón. Imprimirlo o dibujarlo en papel de tamaño A4.Paso 2: Utilice la aguja quilling y las tiras de quilling, pegamen
Dados personalizados

Dados personalizados

Mi marido juega mucho de mesa juegos, así que decidí hacerle algún encargo dados para su cumpleaños y un conjunto personalizado de unos amigos que se casan. Mientras estaba en él, he probado algunos materiales alternativos frescos en algunos dados po
Arco iris Krispies

Arco iris Krispies

Arroz krispies trata parecía hacer una aparición en casi cada juego de futbol, potluck, función de la escuela y cumpleaños a lo largo de mi infancia. Eran un fácil y rápido ir a tratar que todo el mundo. Con muchos cereales que hay ahora, parecía cas
Construir una pipa de "Tuned" para un 2 tiempos

Construir una pipa de "Tuned" para un 2 tiempos

2 motores tiempos me fascinan.  Son tan simple y divertido que siempre he disfrutado jugando con ellas.  Hay muchas maneras de aumentar la potencia, uno de los cuales es mediante la instalación de una tubería "afinada".  La forma de un dos tiemp
GUANTERA madera (A.K.A Busy niños estación)

GUANTERA madera (A.K.A Busy niños estación)

Recuerdo esos días de infancia cuando guardamos nuestros tesoros fundadas en granpa´s caja de puros o incluso en la guantera madera. También me gustaría mantener esa buena tradición con mis hijos. En mi Son´s undécimo cumpleaños que decidí darle un e
Así que quieres escribir

Así que quieres escribir

Instrucciones y comentarios para escribir.Panelistas en este panel de GottaCon 2012 incluyen escritores de una variedad de medios de comunicación:-Joanna Gaskell: Webseries (medidas estándar).-Rob Hunt: la película (Phasefirefilms).-Karl Johanson: im