Paso 5: Intro Software
Al final de la sesión de jam de Arduino, el software para el goniómetro fue un trabajo en progreso. Partes básicas trabajaron y analizaron: la matriz de Led, la 'ola mexicana' autocomprobación, conexión serie a un módulo GPS, latitud y longitud de extracción, almacenamiento y obtención de flotador tipos de datos en la EEprom. También, se inició el trabajo para descargar Waypoints de Google maps.Desde entonces, os pongo un montón de trabajo en el desarrollo de dos dibujos separados para el juego reverse geocache:
-un bosquejo de menú waypoint editor: Geocache_menu
-el boceto de juego: Geocache
Ver los pasos a seguir.
Combinando ambos bocetos en un sketch solo sería posible, sino los mantuvo separados por razones siguientes:
- ambos dibujos son ya bastante grandes (12 a 15 kbytes)
- Agregar complejidad innecesaria
- los bocetos son ejecutados por diferentes personas de todos modos.
Como ambos programas tienen casi 400 líneas, había dividido les en partes más pequeñas, manejables.
Por ejemplo, el bosquejo de Geocache tiene una parte de la lógica del juego, una parte del manejo de LED, un controlador de memoria del punto de referencia, un controlador de módulo GPS.
Escribir y depurar los bocetos se realizó metódicamente:
- Un pequeño bosquejo fue preparado para cada elemento de la sub
- Se incluyeron un montón de mensajes de controles seriales para seguir el flujo del programa, control de variables de entrada y salidas etc..
- Todos los posibles valores de entrada se presentaron el dibujo y se evaluó la reacción
- El bosquejo fue depurado hasta el resultado dependía de expectativa
Luego, integrado las partes separadas uno por uno en el bosquejo general, pruebas y depuración cuando fui a lo largo.
Finalmente, el producto final fue "campo de pruebas".
Esto todavía reveló deficiencias, por ejemplo reacción en cambios de dirección era demasiado lenta (tuve que aumentar la frecuencia de actualización GPS--volver a la mesa de dibujo).
Quitar la mayor parte de la materia de depuración y añade comentarios para facilidad de mantenimiento.
No intento optimizar los bocetos para velocidad, tamaño de la memoria o belleza general.
Medio utilizado: Arduino 1.0
Se incluyeron los siguientes bibliotecas:
SoftwareSerial.h, usado para la interfaz serial para el GPSmodule, al lado de la interfaz estándar serial a la PC.nmea.h para la recogida de información GPS.
Esta biblioteca ofrece más posibilidades que él más simple TinyGPS biblioteca. Especialmente el método de "course_to" nesesario para clalculate el título para una determinada latitud y longitud.
La biblioteca no funcionaba como tal. Un parche es necesario para el uso de WProgram.h. Después de parche de Bill Ho fue introducido en nmea.h y nmea.ccp, el bosquejo había compilado OK. Ref: http://arduino.cc/forum/index.php?action=profile;u=11017;sa=showPosts
EEPROM.h para almacenar la información del waypoint en la Arduino EEprom.
La información del waypoint, consisten en una latitud longitud viene en tipos de datos float. Romper un flotador para el almacenamiento y reconstrucción después de recuperar de la eeprom demostró para ser un asunto complicado. Especialista en Arduino SW, C y C++, tuvo que ser llamado para ayudarnos.