Github Alumnos:
- Enrique: https://github.com/jecrespo
- David: https://github.com/Frigopie
- Kapa: https://github.com/macasero
- César Rufo: https://github.com/CesarRufo
- Javi: https://github.com/baldalejos
- Lucian: https://github.com/lucian2003
- Roberto Ausín: https://github.com/robertoausin
- Alex: https://github.com/Almena-III
- Erik: https://github.com/erikvillarrealinfrp12
- Andrea: https://github.com/Andreamt93
- Valentín: https://github.com/ValentinJR
- César Galdeano: https://github.com/echarri
- Marcos: https://github.com/marcuatch
- Iñaki: https://github.com/iniakus
- Jorge: https://github.com/JorgeAmaro02
- Noelia: https://github.com/noelia-olmos
- Arturo: https://github.com/bacterio3000/
- Nacho: https://github.com/iherrerosm
Repositorios del curso Alumnos
- Enrique: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019
- David: https://github.com/Frigopie/Curso_Programacion_Arduino_19
- Kapa: https://github.com/macasero/Curso-Arduino-Programacion
- César Rufo: https://github.com/CesarRufo/Curso_Programacion_Arduino_2019
- Javi: https://github.com/baldalejos/Curso_Programacion_Arduino_2019
- Lucian: https://github.com/lucian2003/Curso_Programacion_Arduino_2019
- Roberto Ausín: https://github.com/robertoausin/Curso_Programacion_Arduino_2019
- Alex: https://github.com/Almena-III/Curso_Programacion_Arduino_2019
- Erik: https://github.com/erikvillarrealinfrp12/Curso_Programacion_Arduino_2019
- Andrea: https://github.com/Andreamt93/Curso_Programacion_Arduino_2019
- Valentín: https://github.com/ValentinJR/CURSO-PROGRAMACION-ARDUINO-2019
- César Galdeano: https://github.com/echarri/Curso_Programacion_Arduino_2019
- Marcos: https://github.com/Marcuatch/Curso_Programacion_Arduino_2019
- Iñaki: https://github.com/iniakus/Curso_Programacion_Arduino_2019
- Jorge: https://github.com/JorgeAmaro02/Curso_Programaci-n_Arduino_2019
- Noelia: https://github.com/noelia-olmos/Curso-programar-con-arduino-2019
- Arturo: https://github.com/bacterio3000/CursoProgramacionArduino2019
- Nacho: https://github.com/iherrerosm/Curso_Programacion_Arduino_2019
Slack: https://aprendiendoarduino.slack.com, enlace de invitación: link invitación
Día 1: “Presentación del Curso”
Capítulos Vistos Día 1:
- Presentación Curso Programación Arduino
- Kit de Prácticas
- Instalación Software Arduino
- Control de Versiones con GIT
Día 2: “Repositorios Github”
Saber más:
- Certificación Arduino:
- https://blog.arduino.cc/2019/05/22/the-first-ever-arduino-certification-is-now-available/
- Examen: https://store.arduino.cc/digital/cert_fundamentals
- Como funciona la certificación: https://www.youtube.com/watch?v=qNj7sQP_jaA
- Guia: https://create.arduino.cc/edu/courses/local/certification/guide.pdf
- FAQ: https://create.arduino.cc/edu/courses/local/certification/faq.html
- Demo: https://create.arduino.cc/edu/courses/local/quiz/index.php
- Como funciona slack: http://www.naiarafernandez.com/tutorial-slack-que-es-para-que-sirve-y-como-funciona/, cada uno puede hacerse su grupo: https://magiacharly.slack.com/
Resumen git:
- Sourcetree herramienta gráfica para usar git. Demo entorno consola.
- Cuenta de Attlasian y Bitbucket solo para registrar Sourcetree
- Repositorios en Sourcetree: Local y Remote
- Clonar un Repositorio: hacer una copia y poder sincronizarlo. No puedo hacer cambios. «git clone«
- Crear un repositorio: preparar una carpeta donde hacer control de versiones. «git init«
- Añadir Archivos al Área de trabajo (Stash): Son los cambios que voy a guardar. «git add» (git status para ver los cambios realizados)
- Registrar Cambio en el Historial (Commit): guardar una foto del estado del código en el historial. «git commit«
- Comandos git básicos: https://www.hostinger.es/tutoriales/comandos-de-git
- Para seguir, tener el repositorio de blink con al menos 2 commits.
- Modificar el archivo blink.ino para que parpadee un led colocado en el pin 4 y hacer un commit
- Añadir un fichero README.md en el directorio raiz del repositorio, escribiendo la información de nuestro primer repositorio. Hacer commit.
- Editor MarkDown Online: https://stackedit.io/
Capítulos Vistos Día 2:
- Continua de día 1: Control de Versiones con GIT
- Repositorios Públicos en Github
Día 3: “Programación Básica Arduino”
Saber más:
- Operadores en C++ y Arduino: https://aprendiendoarduino.wordpress.com/2018/04/08/operadores-5/
- Evaluación operadores C++: http://c.conclase.net/curso/?cap=014
- Stack Exchange Arduino: https://arduino.stackexchange.com/
- Stack Overflow: https://stackoverflow.com/search?q=arduino
- Stack Overflow Español: https://es.stackoverflow.com/search?q=arduino
- En Stack Overflow se puede buscar por etiquetas, por ejemplo «arduino» o «C++»
Resumen de Github:
- Cuenta de Github
- Crear Repositorio del curso con el nombre “Curso_Programacion_Arduino_2019”
- Configurar SourceTree con Github
- Operaciones básicas: Pull, Push, Fetch, Branch, Merge
- Clonar repositorio en local: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019
- Hello World Github: https://guides.github.com/activities/hello-world/
- Crear un repositorio local con Github desde Sourcetree:
- Para sincronizar en Github un repositorio local a un repositorio remoto desde SourceTree. Es necesario git pull –allow-unrelated-histories origin en caso que en el remoto haya commits.
- No hace falta dar permisos a terceros, podremos colaborar con los pull request: https://github.com/macasero/Curso-Arduino-Programacion/graphs/contributors
Capítulos Vistos Día 3:
- Continua de día 2: Repositorios Públicos en Github (Fork, Pull Request)
- Montaje de Prácticas
Día 4: “Programación Arduino”
Saber más:
- PLCs basados en Arduino, Industrial Shields: https://www.industrialshields.com/
- Screw shield: https://www.seeedstudio.com/Screw-Shield.html
- Screw shield: http://www.doctormonk.com/2012/01/arduino-screw-shield-review.html
- Nano screw shield: https://www.sensorae.com/es/inicio/1717-arduino-nano-screw-shield-soldado-expansion-board-breakout-shield-expansione-per.html
- Bornas para Arduino Mega: https://cl.rsdelivers.com/product/phoenix-contact/2291561/phoenix-contact-m3-screw-expansion-module-for-use/8037192
Cambiar pin en un shield:
Resumen:
- Clonar el repositorio del profesor para tener la versión de los ejercicios: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019
- ¿Tiene sentido hacer fork del repositorio del profesor?
- Hacer commit y push de los dos primeros ejercicios en el repositorio de cada alumno.
- Instalar librerías necesarias para cada código
- Instalar el soporte para placas basadas en ESP8266: https://www.aprendiendoarduino.com/2018/01/27/video-preparacion-ide-arduino-para-esp8266/
- Comprobar como funciona cada componente y ver el código
- Mandar mensaje por slack u otro medio de material que falte o que no funcione para poder solucionarlo o reponerlo.
Capítulos Vistos Día 4:
- Control de material, firma de hoja.
- Continua del día 3: Montaje de Prácticas
- Prácticas: Ejemplos Sencillos Programación Arduino
Día 5: “Estructuras de Programación”
Saber más:
- Aplicaciones Arduino:
- Dispositivos Sigfox: https://www.sigfox.es/dispositivos
- Productos comerciales Sigfox: https://www.invoxia.com/es
- Geolocalización GPRS: https://www.cooking-hacks.com/blog/geolocate-your-luggage-during-holidays-with-our-tracking-iot-kits
- Geolocalización LoRa: https://es.aliexpress.com/item/33005791757.html
- PLC basado en Raspberry Pi: https://www.unipi.technology/
- Arduino para Retrofit de elementos existente: https://blog.arduino.cc/2016/05/05/retrofit-your-old-appliances-with-new-controls/
- Retrofit HVAC system: https://create.arduino.cc/projecthub/desbiensl/hvac-controller-retrofit-0f36c8
- Prototipo de zapatillas John Luck ciclismo con medida de potencia con Arduino:
- UPS para Arduino:
- Sincronizar un fork: https://help.github.com/en/articles/syncing-a-fork o https://stackoverflow.com/questions/7244321/how-do-i-update-a-github-forked-repository
Resumen:
- Material que no funciona o falta y firma de kit de material.
- Actualizar repositorio en github de cada alumno con los 3 ejercicios
- Repaso de Ejercicio03-LDR
- Fichero con passwords y que no suba a github
- Pantalla Oled: http://www.esp8266learning.com/wemos-oled-shield-example.php
- Librerías para pantalla OLED: https://github.com/adafruit/Adafruit_SSD1306 y https://github.com/adafruit/Adafruit-GFX-Library
- Poner los shields de Wemos y no conectar con cables.
- Resistencia Pullup en pin D3 Wemos D1 mini. Esquema corregido en github, comprobar repositorio y hacer pull.
- Schematic Wemos D1 Mini: https://wiki.wemos.cc/_media/products:d1:sch_d1_mini_v3.0.0.pdf
- Más información: https://www.luisllamas.es/detalles-del-esp8266-diferencias-con-arduino/
Capítulos Vistos Día 5:
- Continua de día 4: Prácticas: Ejemplos Sencillos Programación Arduino
- IDE Arduino y Configuración
- Entradas y Salidas en Arduino
- Qué es la Programación
- Programación Arduino
- Estructura de un Sketch Arduino
- Tipos de Datos
- Variables en Arduino
- Prácticas: Variables y Tipos de Datos en Arduino
Día 6: “Operadores y Estructuras”
Saber más:
- Dispositivo prototipado con Arduino y un acelerómetro: https://www.yankodesign.com/2019/09/06/the-nike-baton-minds-your-step-and-gives-real-time-feedback-while-running/
- Arduino y mbed-os: https://blog.arduino.cc/2019/07/31/why-we-chose-to-build-the-arduino-nano-33-ble-core-on-mbed-os/
- Nuevo Chip ESP32-S2: https://www.espressif.com/en/news/espressif-announces-%E2%80%A8esp32-s2-secure-wi-fi-mcu
Resumen:
- ¿Es necesario profundizar en estos capítulos?:
- Ejercicio04: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019/tree/master/Ejercicio04-Cuenta_Pulsos
- Ejercicio05: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019/tree/master/Ejercicio05-Servo
- Ejercicio06 mejorado muestra oled y con servidor: https://github.com/jecrespo/aprendiendoarduino-Curso_Programacion_Arduino_2019/tree/master/Ejercicio06-Cuenta_Pulsos_Wifi
- Tutorial uso pantalla oled: https://lastminuteengineers.com/oled-display-arduino-tutorial/
- Servidor web en ESP8266: https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/server-class.html
- Documentación: https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WebServer
Capítulos Vistos Día 6:
- Continua de día 5: Prácticas: Variables y Tipos de Datos en Arduino
- Operadores en Arduino
- Estructuras de Control en Arduino
- Prácticas: Operadores y Estructuras de Control con Arduino
Día 7: “Estructuras Propias de Arduino”
Saber más:
- digitalWrite: https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/wiring_digital.c
- Tipos de variables en ESP8266: https://github.com/esp8266/Arduino/blob/master/tools/sdk/include/c_types.h
- Actividades para el viernes: pushbullet, blynk y bot de Telegram
- Práctica no vistas: Prácticas: Variables y Tipos de Datos en Arduino
- Ejercicio interactivo: https://codeshare.io/ay9VAo
Capítulos Vistos Día 7:
- Continua de día 6: Prácticas: Operadores y Estructuras de Control con Arduino
- Estructuras Propias de Arduino
Día 8: “Funciones y Librerías”
Saber más:
- Actualizar librerías y placas
- IFTTT y Arduino: https://programarfacil.com/blog/arduino-blog/como-ifttt-arduino-nodemcu/
- Ejercicio interactivo: https://codeshare.io/5vQRn7
Capítulos Vistos Día 8:
- Continúa de día 7: Prácticas: Estructuras Propias Arduino
- Funciones Definidas por Usuario Avanzado
- Prácticas: Funciones Definidas por Usuario
- Clases y Objetos
- Prácticas: Clases y Objetos
Día 9: “Programación Avanzada”
Saber más:
- ESP-EYE: https://cdn-shop.adafruit.com/product-files/4095/4095_Getting_Started_Guide.md_at_master____espressif_esp-who____GitHub.pdf
- ESP-IDF: https://docs.espressif.com/projects/esp-idf/en/latest/
- Librería USB Host: https://www.arduino.cc/en/Reference/USBHost solo para Arduino Due
- USB Host Shield: https://tienda.bricogeek.com/arduino/288-arduino-usb-host-shield-602258451711.html y librería: https://github.com/felis/USB_Host_Shield_2.0
- Rubber Ducky: http://www.elladodelmal.com/2014/05/usb-rubber-ducky-un-teclado-malicioso.html
- WifiManager ESP8266: https://github.com/tzapu/WiFiManager
- WifiManager ESP32: https://github.com/zhouhan0126/WIFIMANAGER-ESP32
- Tutorial: https://www.instructables.com/id/ESP8266-and-ESP32-With-WiFiManager/
- Uso de exit(0) en Arduino
- Explicación porque se retrasa Arduino: Como el ciclo de reloj es de 16 MHz, entonces tenemos que cada ciclo de reloj dura 1/16*10e6 segundos. Como el timer 0 está alimentado por el divisor de reloj de 64, entonces el valor del registro del timer 0 que es de 8 bits aumenta cada 1/16*10e6 * 64 = 0.062 microsegundos y dado que desborda cuando cuenta 256 y entonces incrementa el valor de timer0_overflow_count, esto ocurre cada 1,024 milisegundos, lo que significa que cada valor de millis no es un milisegundo son 1,024 milisegundos, y eso supone que el reloj de Arduino se retrasa. Ver https://www.cibomahto.com/2008/04/analysis-of-the-millis-function/
- Curso completo: enlaces acabados…
Capítulos Vistos Día 9:
- Continúa de día 8: Prácticas: Funciones Definidas por Usuario
- Clases y Objetos
- Prácticas: Clases y Objetos
Día 10: “Comunicaciones y Servicios Avanzados”
Saber más:
- Documentación final del curso
- Recomendaciones para seguir programando
- Actualización ESP32
- Notificaciones:
- Pushbullet: https://www.pushbullet.com/
- Pushover: https://pushover.net/
- Blynk
- Getting Started Guide -> https://www.blynk.cc/getting-started
- Documentation -> http://docs.blynk.cc/
- Sketch generator -> https://examples.blynk.cc/
- Latest Blynk library -> https://github.com/blynkkk/blynk-library/releases/download/v0.6.1/Blynk_Release_v0.6.1.zip
- Bot de Telegram: https://github.com/witnessmenow/Universal-Arduino-Telegram-Bot
- IFTTT Webhooks: https://ifttt.com/maker_webhooks
- Envío de datos a servidor/base de datos: https://github.com/jecrespo/aprendiendoarduino-servicios
Capítulos Vistos Día 10:
Pingback: Presentación Curso Programación Arduino | Aprendiendo Arduino