Paso 3: Extensiones y conclusiones
Tal como se presenta aquí la trayectoria programada se pierde cuando se quita la energía. Tan una extensión posible a este proyecto sería almacenar la ruta en la EEPROM para que se mantenga a través de energía ciclismo.
También, en este bosquejo, el menú muestra la posición actual en el texto pronto en la parte inferior de la pantalla. Por ejemplo, a la posición 3 de 10. Otra extensión sería cambiar color de fondo de la posición actual de verde, < bg g > a algún otro color, por ejemplo amarillo < gb y > , como el brazo se mueve a través de esa posición.
Uso de isRefresh()
Este es el primer proyecto a utilizar la nuevasRefresh() función de pfod.
Desde la primera versión, pfod tenía un menú actualizar instalación construida. Cuando una pfodDevice, como este brazo robótico, envía una carta a la pfodApp puede incluir un intervalo de volver a solicitar. El pfodApp entonces nuevamente solicitará el menú en este intervalo para obtener las últimas actualizaciones. En versiones de pfodApp antes de V1.2.84, no había forma de pfodDevice saber si al solicitar el menú fue la primera solicitud o una solicitud de nuevo. Por lo que el pfodDevice tuvo que enviar de vuelta el menú completo cada vez.
Menús largos y velocidades de transmisión lenta, esto puede tomar una cantidad notable de tiempo. Por ejemplo en este proyecto el menú principal tiene unos 540 bytes que lleva más de medio segundo para enviar a 9600 baudios. Debido a que Arduino utiliza bloqueo conexiones serie, esto significa el loop() principal parece dejar de trabajar cada segundo más o menos cuando se está enviando la actualización del menú.
Esto es notable cuando el brazo está en marcha, como una pausa en el movimiento de brazos cada segundo. La función de isRefresh() supera este problema. Si el pfodDevice envía el intervalo vuelve a solicitar como un número negativo, entonces el pfodApp usa el nuevo mensaje de actualización, {:< cmd >} , para volver a solicitar el menú y pfodParser establece la bandera de isRefresh() antes de pasar el comando para solicitar el menú se resienten. Código de pfodDevice ahora puede comprobar esta bandera por la llamada isRefresh() y si se encuentra, devolver sólo las actualizaciones de menú en lugar del menú completo. Las actualizaciones del menú son mucho más cortas, alrededor de 100 bytes y no den lugar a cualquier pausa notable del movimiento del brazo.
Esta característica de isRefresh() es una optimización y como tal no debe utilizarse a menos que el refresco normal es causa de problemas notables.
Conclusión
El proyecto proporciona una manera simple de caminos complejo programa para su brazo robótico. El MeArm fue utilizado como el ejemplo pero lo mismo puede aplicarse a otros brazos robóticos.