Amigo de esquí: La capa que le enseña a esquiar. (4 / 6 paso)

Paso 4: El código

Está bien dos tipos de personas:

1. codificadores que realmente quieren entender el código.

2. las personas que no conocen un lick de codificación y sólo desean el archivo de origen de materia prima.

Buenas noticias para usted, esta página cubre!

Tenga en cuenta que este código está bajo licencia GPL v3.

Así que para aquellos de ustedes que solo quiero el archivo de origen de materia prima, es en Github:

** Pero antes de hacer clic en ese enlace, por favor Desplácese hacia abajo y lea el código settings.* *

Archivo completo

Para aquellos de ustedes que quieren entender el código, gracias por apreciar el tiempo que pasé escribiéndolo! Vamos a saltar a la derecha en:

Lo primero que tenemos que incluir estas tres bibliotecas. ¿Confundir lo que son los dos últimos? Eso está bien. Aparecieron en el anterior tutorial de costura que unía. Si ya sabes cómo agregar bibliotecas de Arduino al IDE, sin embargo, aquí está el enlace directo a los repositorios Github:

Biblioteca de Adafruit Sensor

Biblioteca de Adafruit LSM303

A continuación iré sobre las funciones que uso en el código:

Flash destella dos LED juntos.

alterna alterna ambos LED.

parpadea parpadea ambos LED una vez.

toDegrees convierte a un par de lecturas magnéticas x e y en un rumbo en grados.

por ciento toma dos números y crea un por ciento con el primero como 100% y el segundo como la fracción.


CÓDIGO CONFIGURACIÓN ***

turnTime es la cantidad de tiempo que se estima que llevaría al usuario a girar en milisegundos. Por ejemplo, puede reducir la turnTime para ayudar a enseñar vueltas vinculados vs alargando el tiempo de vuelta para dejar espacio para explicaciones sobre la forma de esquí entre vueltas.

desaceleración es esencialmente cuánto desea que el usuario para reducir la velocidad al final de cada turno. Por ejemplo, el valor a 2 asume que el usuario se reducir a la mitad su velocidad antes de girar. Si usted le está enseñando al usuario entrar en una pizza gradual, puede disminuir el valor que vamos a decir 1.3 para que el usuario tenga que reducir su velocidad en 1/4 antes de dar vuelta.

maxLearnCount es un número de vueltas que el dispositivo utiliza para aprender el curso antes de comenzar a decir al usuario donde esquiar con el LED. Esto es útil si una colina tiene bordes con diferentes longitudes y desea obtener el tiempo promedio que toma cruzar esas longitudes.

skiPercent es el porcentaje de tiempo que desea que el dispositivo que esperar antes de decirle al usuario para reducir la velocidad. Por ejemplo, bajar el porcentaje permite vueltas más graduales, mientras que lo contrario generalmente más abrupta se convierte.

readyTime es la cantidad general de tiempo que crees que tarda en subir y bajar el ascensor en milisegundos.

Ahora vamos a inicializar el acelerómetro:

A continuación nos dirigiremos a través del código de instalación. Hay dos partes.

1. inicializar el LED en la chaqueta.

2. cargar el acelerómetro. Si no, sólo alternan el LED para mostrar la falta.

Ahora para las diferentes variables.

learnCount se utiliza para realizar un seguimiento de cuántas vueltas el dispositivo ha pasado aprendizaje, parando una vez alcanza la cantidad máxima de aprendizaje conjunto de vueltas arriba.

lastTurn se utiliza para recordar la última vez que ocurrió una vez, lo que permite la medición del tiempo de vuelta.

lastDir se utiliza para mantener la dirección general del usuario.

lastAcc se utiliza para mantener la aceleración global general del usuario.

dir es una matriz que contiene las dos direcciones sugeridas de cada turno.

dirTime es el tiempo promedio que tarda el usuario en la Cruz el camino.

currentDir se utiliza para mantener la pista de que el usuario debe ir en la dirección.

liftMode se usa para ahorrar batería cuando un ascensor o "alfombra mágica".

Por último, el código loop() . Hay varias partes:

1. medio de leer datos de acelerómetro.

El código toma cinco lecturas y les un promedio hacia fuera para mejor precisión.

Hay 3 variables importantes aquí:

magAvg es la dirección que el usuario se enfrenta a grados. Se utiliza para ayudar a guiar al usuario.

accAvg es la aceleración total de x e y del usuario. Esto se utiliza para detectar cuando el usuario se retrasa.

liftAvg es la aceleración z general del usuario. Esto se utiliza para detectar "levante" el movimiento (hacia arriba)

2. Verifique si el usuario se puede esquiar por la montaña, ha superado la cantidad de vueltas de máximo aprendizaje (maxLearnCount) por encima de y se puede esquiar cuesta abajo.

3. sabiendo lo que sabemos, compruebe primero si el usuario ha terminado un turno basado en cuánto les costó a la montaña cruzada en el proceso de aprendizaje, por lo tanto, la variable dirTime . Transferir a través de a la otra vuelta y retraso basado en cuánto tiempo creemos que es tiempo entre vueltas, por lo tanto, la variable turnTime .

4. Si no hemos llegado a la fase de inflexión todavía, comprobar si debemos decir al usuario para reducir la velocidad después de cierto tiempo basado en cuando el usuario debe detener, por lo tanto la variable skiPercent definida anteriormente. Si no, entonces tenemos que guiar al usuario en qué dirección debe ser van. Puesto que nadie es perfecto, les daremos 10 grados de holgura a cada lado.

5. la única opción de izquierda en cuanto a lo que sucede es que hemos alcanzado el tiempo para contar el usuario para reducir la velocidad. Lo haremos por la alternancia de las luces y hacia atrás hasta que el usuario ha llegado a la fase de rodaje.

6. esta declaración más es en lo que respecta a si el usuario va cuesta abajo, significa que el usuario debe ser subida en este punto, por lo que pondremos el usuario en el modo elevación para que podamos ahorrar batería y luego retrasar para que el usuario dispone de tiempo para llegar a la alfombra del ascensor/magia.

7. esta declaración lo es en cuanto a si el usuario es más allá de aprender el modo, lo que significa que el usuario debe estar en modalidad de aprendizaje en este punto. Esto es importante porque si el usuario está tomando su aprendizaje de la primera vuelta, no queremos estropear la variable dirTime , porque obviamente su primer viaje a través de la ruta tomará más tiempo ya que tienen que ganar velocidad. Con eso, primero lo compruebe para asegurarse de que se trata no es la 1ª grabación de datos, porque eso significaría que no tendríamos los datos anteriores para construir. A continuación nos promedio hacia fuera de la dirección del usuario con su dirección pasada para que podamos conseguir una lectura exacta en cuanto a donde queremos que el usuario a modo de aprendizaje para este giro particular.

8. a fin de detectar vueltas, esperamos hasta que el usuario comienza vertimiento de velocidad hasta el punto que queremos que, por lo tanto, el conjunto de desaceleración variable anterior. Luego asignaremos la dirección que el usuario ha ido 1 de las 2 direcciones sugeridas queremos el usuario ir pulg (tenemos una dirección sugerida para la izquierda a través de la montaña y otro para ir derecho a través de). También tenemos que registrar la cantidad de tiempo que tardó la montaña y escribir en la variable dirTime .

9. esta declaración lo es en cuanto a si se trata de la primera grabación de datos, es decir, tan sólo asignamos los datos actuales a sus respectivas variables, para que en el lazo siguiente podemos empezar con un promedio de los datos.

10. esta declaración lo es en cuanto a si el usuario está en modo de elevación, lo que significa que son. Para ahorrar batería, sólo comprobamos para movimiento hacia abajo solamente una vez por segundo y flash de lo LED para indicar al usuario que en el modo elevación.

11. retrasando 50 milisegundos, no sobrecarga el código y ahorrar batería, ya que incluso revisando lecturas cada 50 milisegundos, equivale a lectura de datos 20 veces por segundo.

			

          

Artículos Relacionados

Pruebas y depuración (cosas que no enseñan en la escuela)

Pruebas y depuración (cosas que no enseñan en la escuela)

Por lo tanto, tiene algún tipo de dispositivo, ya sea un producto adquirido o algo que ha construido y desea saber si está funcionando correctamente. Aquí están algunas ' semi obvio pero no siempre ' reflexiones sobre el proceso.Paso 1: ¿Funciona?Par
El mejor Cap que Can't Buy

El mejor Cap que Can't Buy

este es un divertido proyecto de costura de sombreros con un elegante diseño aerodinámico, una costura rápida imitación talado y el brazalete más lujoso. En la posición vertical tendrá 3 capas de protección para los oídos. Doblado hacia abajo, el man
¿Cómo hacer que un amigo

¿Cómo hacer que un amigo

amigos son una parte importante de la vida, no estás de acuerdo? Pero algunas personas pueden ser un poco confuso o nervioso a la hora de hacer amigos. Pero estoy seguro que si sigues este Instructable, usted tiene toneladas de amigos!Paso 1: Elije t
Cómo crear una bicicleta de descenso esquí 2.0

Cómo crear una bicicleta de descenso esquí 2.0

Una bicicleta de esquí es un artilugio magnífico que utiliza los elementos básicos de una bicicleta a esquís cuesta abajo para bajar una pendiente de nieve.Mi primer intento de crear una moto de esquí alpino dio lugar a un prototipo completamente fun
Recurvado moderno de esquís!

Recurvado moderno de esquís!

Esto es mi Instructable primera, bien, cualquier cosa. Yo he estado construyendo arcos de tubo de PVC hace casi dos años y después de ver este instructable por Yoshinok, estaba realmente inspirada para tratar de construir uno de madera y esquís la pr
X país esquí Kit para remolque de bici Chariot

X país esquí Kit para remolque de bici Chariot

carro vende un kit de esquí campo a través para sus remolques de bicicleta. Son spendy - alrededor de $200. Decidí hacer mi propia. El kit de que compra consiste en dos esquís, sus monturas y un arnés para tirar de la plataforma. Decidí copiar prácti
Electrónica para principiantes, estudio guía, capítulo 1

Electrónica para principiantes, estudio guía, capítulo 1

Hola,Soy Kareen, soy estudiante y estoy cursando la Licenciatura en tecnología de la electrónica. Decidí que la mejor manera de aprender es compartiendo lo que me acabo de enterar; me da una oportunidad para realmente entender al tema si tengo que ex
Cómo esquí acuático descalzo

Cómo esquí acuático descalzo

Esquí acuático descalzo es uno de los deportes acuáticos más intimidante y gratificante en la práctica hoy. Estos esquiadores viajan a altas velocidades en sólo la piel de sus pies! Para algunos esto es atractivo; sin embargo, debido a los obstáculos
Photoshop 101: Lo que usted necesita saber!

Photoshop 101: Lo que usted necesita saber!

Desde los albores de los tiempos, el hombre ha fascinado y confundido por la tecnología. Una tal maravilla tecnológica incomprendida en el mundo de hoy se conoce como "Photoshop". En este Instructable, voy a intentar enseñar las herramientas bás
Cómo hacer que su piel una textura diferente para efectos escalofriantes con Pixlr o Photoshop

Cómo hacer que su piel una textura diferente para efectos escalofriantes con Pixlr o Photoshop

¿Alguna vez ha tenido una foto de ti mismo que usted deseaba miraba un poco más único, diferente o creepy? Con Halloween a la vuelta de la esquina usted probablemente habrá dijo que sí. Suerte para usted se utilizo el siguiente tutorial para enseñart
Consejos de seguridad de esquí para principiantes

Consejos de seguridad de esquí para principiantes

uno de los más populares y tal vez el más necesario equipo de seguridad es casco pero uno de los mejores consejos de seguridad de esquí es realmente una cuestión de elección personal, para usar o no usar.  Aunque realmente no es mandato, se animan a
Multi capa / Color signo de LED, con temas de Bioshock

Multi capa / Color signo de LED, con temas de Bioshock

por lo tanto, estoy seguro que muchos de ustedes sienten esto como bueno, los temas de infinitos bioshock fueron profundas e incluso inspirador. Cuando algo hace me siento inclinado a Oda a él (es decir, el altavoz de mi xbox, daft punks signos y un
Haciendo sus hijos parecen que proceden de la red.

Haciendo sus hijos parecen que proceden de la red.

Durante la siguiente serie de pasos, voy a mostrar cómo hacer que tus hijos mira como vinieron de Tron Uprising.Paso 1: Dar su Tron el tratamiento de los niños. Paso 1, tener hijos. Si necesito decirte cómo hacerlo, entonces probablemente tiene más p
Filipina sushi... Mejor que cualquiera en un restaurante

Filipina sushi... Mejor que cualquiera en un restaurante

Ok... para ser perfectamente honesto, no estoy seguro si esta receta es Filipino o si incluso hacen sushi en Filipinas para que mater. Sé que mi abuela de amigos, que me enseñó a hacerlos, era directa de Manila, así que le tomaré en su palabra. las f