Día 6. Comunicación Serie

Día 6 del curso Aprendiendo Arduino. Comunicación Serie.

Este sexto día de curso empezamos conociendo a fondo la memoria de Arduino y pasamos a la comunicación serie, elemento muy importante para manejar Arduino.

3.9 – Funciones definidas por usuario

4.2 – Memoria Flash, SRAM y EEPROM

4.3 – Uso de Memoria en Arduino

4.4 – Comunicación Serie Arduino

2 comentarios en «Día 6. Comunicación Serie»

  1. Puntos a revisar del día anterior:
    * Ejercicio de calibración, uso de los operadores de control, como depurar un código y al comprar sensores hay que ver sus características y adaptar la señal para que Arduino la pueda manejar.
    * Funciones definidas por usuario. Para aclarar los conceptos descargar https://github.com/cosmopaco/ArduinoDomoticExcontrol, al menos uno de los .ino debe tener el mismo nombre que que el directorio, pero las funciones setup() y loop() pueden estar en cualquier fichero, incluso en los .h llamados.
    Desde las nuevas versiones del IDE, ya no es necesario añadir en los .h la instrucción #include “Arduino.h”
    * Software para visualizar dependencias de ficheros:
    – C/C++ Depedency Graphing: https://www.flourish.org/cinclude2dot/
    – Sourcenav: http://sourcenav.sourceforge.net/ (no reconoce los fichero .ino)
    – Boosdependency: http://www.meetingcpp.com/index.php/br/items/boost-dependency-analyzer.html
    – Include Manager: http://www.profactor.co.uk/includemanager.php (de pago)
    – Cpp depend: http://www.cppdepend.com/ (de pago)
    * Puntos interesantes de EXcontrol:
    – Las funciones setup() y loop() están en Common_functions.h
    – La función setDateDs1307() guarda la hora en un RTC DS1307 vía I2C
    – En setup() llama a las funciones para inicializar los periféricos. Ver directivas de preprocesamiento. Y también define un userSetup()
    – En Loop() ejecuta cada segundo una función llamada LoopNewSecond() que es una temporización y luego un SystemLoop() que son funciones más críticas y este llama a UserLoop()
    – Función RecepcionPaqueteUDP(), tiene muchos if encadenados para comprobar el paquete recibido con la función strncmp. Usan la variable packetBuffer para almacenar lo recibido por red.
    – Función ComproRespuestaHTTP(), funciona igual que el serie
    – Los ficheros .ino solo hacen los include de las librerías, declaraciones de variables y algunas funciones generales y definiciones de constantes
    – En Excontrol_def.h define las constantes principales
    * El compilador de avr-gcc cuando detecta lineas iguales de Serial.print() no aumenta la memoria del static data porque lo reconoce y la guarda una sola vez en RAM y la repite al llamarla.
    * Para saber más de la comunicación serie ver http://perso.wanadoo.es/pictob/comserie.htm
    * Codificación Manchester: https://es.wikipedia.org/wiki/Codificaci%C3%B3n_Manchester
    * Librerías para simular multitarea:
    https://github.com/ivanseidel/ArduinoThread
    https://github.com/jlamothe/mthread
    * Protothreads: http://dunkels.com/adam/pt/ y librería https://github.com/justone/arduino-smoker/tree/master/arduino/libraries/protothreads

Deja una respuesta