Introducción a la programación de microcontroladores con Arduino

De m1w1k1
Ir a la navegaciónIr a la búsqueda

Seminario: Introducción a la Progamación de Microcontroladores con Tecnologias Libres (aka Arduino)

12 reuniones, 4 horas cada una = 48 horas - clases
4 reuniones,  4 horas cada uno = 16  horas - evaluaciones
Lista de la materia: @listas.unq.edu.ar

Proyectos finalizados

Estos son los proyectos que se han hecho para concluir y aprobar esta materia.

1er semestre 2012

Dado digital númerico en Arduino

Dado electrónico, al tocar pulsador muestra un número con leds

  1. Video
  2. Instructivo
  3. Código Fuente


Paperduino + Simon Says

Clásico juego "Simon" hecho con Arduino.

  1. Video
  2. Instructivo + Código Fuente


Mini Editor de Texto

Un teclado y un lcd conectado a Arduino que funciona como editor de texto.

  1. Video
  2. Instructivo
  3. Código Fuente
  4. Bibliotecas necesarias


Manipulación de objetos 3d con Arduino

Moviendo cubo físico modifica movimiento de cubo grafico 3d en animación.

  1. Video
  2. Instructivo
  3. Código Fuente


Incrementador digital con Arduino

Dos pulsadores que decrementan e incrementar display de 7 segmentos a distancia.

  1. Video


1er semestre 2013

Vehículo inteligente

Vehículo con sensores que evita obstáculos del terreno y envía información del posicionamiento a la PC.

  1. Instructivo+Código Fuente


Persistencia de la visión

Línea de leds que se prenden a pequeños intervalos de tiempo dibijando columnas de letras. Al moverlo se muestran letras y palabras.

  1. Instructivo
  2. Código Fuente


Jarduino

Regador automático de plantas a partir de variables que sensa del ambiente como húmedad en tierra, temperatura, etc.

  1. Instructivo+Código Fuente


Matriz RGB Arduino

Matriz RGB conectada a una entrada de audio, que interpreta el audio mostrando diferentes graficas.

  1. Instructivo+Código Fuente


Arduino Punk Console

Un secuenciador de tonas con 8 pasos programables.

  1. Instructivo+Código Fuente


1er semestre 2014

Batería Electrónica

  1. Instructivo+Código Fuente


Paper Robot

  1. Instructivo+Código Fuente


Paper Piano

  1. Instructivo
  2. Código Fuente


Cubo Led 4x4x4

  1. Instructivo+Código Fuente


Radar

  1. Instructivo+Código Fuente


1er semestre 2015

ArduPong

  1. Instructivo+Código Fuente

Robotic hand

  1. Instructivo+Código Fuente]

Impresora 3d

  1. Instructivo+Código Fuente]

Catapulta

  1. Instructivo+Código Fuente]

Tacometro para bicicleta

  1. Instructivo+Código Fuente
  2. fotos/videos


1er semestre 2016

Domótica

  1. Instructivo+Código Fuente


Sistema de riego

  1. Instructivo+Código Fuente


Robot Seguidor de lineas

  1. Instructivo
  2. Código Fuente


Dispenser de agua para mascotas

  1. Instructivo+Código Fuente


Arduino-bomba

Juego de ingenio, con tabla de posiciones online y multijugador.

  1. [1]
  2. [2]


Sistema de alarma

  1. Instructivo+Código Fuente


Sensor de estacioamiento

  1. Instructivo+Código Fuente


Caja fuerte

  1. Instructivo+Código Fuente


Guante

  1. Instructivo+Código Fuente


Disparador remoto e intervalómetro para cámara DSLR.

  1. Instructivo
  2. Código fuente


Plantduino

  1. Instructivo+Código Fuente

Bibliografía

Evaluación

  • Proyecto a elección
  • Descripción del proyecto
  • Materiales utilizados (tanto componentes electrónicos, como placas, soldador, etc)
  • ¿Cómo y dónde se consiguieron lo materiales?( ¿se compraron? ¿a quien? ¿datos? ¿precio? )
  • Código fuente del programa del microntrolador
  • Código fuente del programa es pc o móvil si es necesario
  • Esquemático
  • Problemas que surgieron y como se resolvieron
  • Paso a paso del armado, si hay una manualidad involucrada
  • Fotos del armado
  • Si es necesario videos explitivo
  • Software necesario para el proceso y sus versiones (ej Arduino IDE ver X.X, Processing X.X, librerias/bibliotecas externas)

Clases

  1. Presentción de la materia
    1. Historia de la materia
    2. ¿Quien soy? ¿Soy experto?
    3. ¿Qué vamos a hacer durante las clases?
    4. ¿Para qué sirve? Salir de la virtualidad, interactuar con el mundo de las cosas
    5. Forma de evaluación
    6. ¿Porque usamos Software Libre?
    7. Bibliografía
  1. Formamos grupos para tranajar y para trabajo final
    1. Hay que fracasar mucho para tener algo éxitos
    2. Lo normal es muchas veces lo raro repetido
  1. Conocimientos mínimos de electrónica
    1. Ley de Ohm - ( I Corriente (amperes) = V Diferencia de potencia (Volts) / R Resistencias(ohms)
      1. calculos básicos y diagrama básico [4]
      2. Probamos lamparita o led en celular o con pila
      3. Componentes básicos: pag 579 capacitor, diodo, led, octocoplador, photoresistencia, potenciometro, relay, resistencia, motor paso a paso, swithc, transistor
    2. Videos Collin Lab en inglés
      1. Piezo
      2. Breadboard o Protoboard
      3. Switches
      4. Pulse with modulation PWM
      5. multimetro-tester
      6. Resistencias (limitar el valor de la corriente ó para fijar el valor de la tensión.) código de colores [5]
  1. Computación Física
  1. Microcontroladores
    1. ¿Qué son? Computadoras, Chips, IC, CPU etc
    2. Los más comunes: PIC (Microchip), AVR (Atmel) Pic vs AVR (hay otros picaxe, TI, etc)
    3. ¿Cómo los uso? Me tengo que construir mi circuito específico
    4. Problematicas comunes: software para cada micro, precio
  1. Arduino
    1. Ver Documental http://arduinothedocumentary.org/
    2. ¿Qué es? Plataforma para desarrollo de prototipos electrónicos (IDE/LIB/HW)
    3. ¿Por qué? Redudir complejidad, Barreras de entrada
    4. ¿Para quienes? Artistas, diseñadores, investigadores, hobistas, Usuarios que quieren comenzar, y hasta usuarios más avanzados
    5. ¿Aceptación?¿Popular? Mucho código, Muchos diagramas, Es Barato
    6. Funcionamiento mínimo (grabar a la placa programa)
  1. Arduino Hardware: Placas
    1. Hardware Libre
    2. Multiples hardware según necesidad Placas Ej: lilypad
    3. Más usado y último modelo: ArduinoUNO
      1. Ver especificaciones y hablar de ellas, además de verlos directamente en la placa [6]
      2. Alimentación
    4. Entradas [7]
    5. Concepto de Shields/Escudos [8]
    6. ¿Dondé lo compro? [SparkFun http://www.sparkfun.com/], Adafruit, Openhacks


  1. Arduino Software
    1. Software Libre
    2. IDE (necesita java) Automatiza todo el proceso
    3. Bibliotecas/Librerias
    4. Instalación de IDE Download/Bajar
    5. Concepto de Sketch (fuente en C/C++)
    6. Compilación con gcc-avr usando avr-libc (.hex, .c , .bin) ¿Donde están los archivos? /tmp
    7. Upload con avr-dude vía Puerto serial sobre USB
    8. Otras opciones: gnoduino, vim arduino plugin, arscons, arduino-builder [9]


  1. Otros programas
    1. Fritzing: Documentar prototipos, compartir diagramas, enseñar, crear PCB
      1. Bajar e instalar
    2. simavr, pysimavrgui
    3. DUINOS Sistema operativo
    4. minibloq
    5. ardugate
    6. codebender
    7. S4A
    8. noduino
    9. https://github.com/rwaldron/johnny-five
    10. http://breakoutjs.com/
    11. http://inotool.org/
    12. http://123d.circuits.io/
      1. Bajar, instalar y probar


  1. Debug
    1. Herramientas Avr-*
      1. ¿Me quede sin memoria? ¿Cual memoria? ¿SRAM, Flash,EEPROM?
    2. Imprimir vía Serial o a LCD


  1. Controlando Placa desde computadora en vivo
    1. Vía Comunicación Serial
      1. Series en Gnu/Linux
      2. Baudios
    2. Vía Protocolo FIRMATA
    3. Vía WEB Seriality php-serial makibot
    4. Con Python, OF, Processing circle graph physicalpixel colormixer
  1. http://pinguino.cc/
  1. Programación
    1. Probar firmata, python, cyclon
    2. http://cylonjs.com/
    3. http://nodered.org/
    4. http://fritzing.org/
    5. http://123d.circuits.io/
    6. https://github.com/sbstjn/noduino noduino
    7. https://github.com/rwaldron/johnny-five
    8. https://github.com/MartinMelo/DomiticTIP


  1. Tiempo para comentar o buscar proyectos por internet
  2. A probar - Prácticas
    1. Esquematicos, Diagramas
    2. Protoboard, cables, soldaduras
    3. Enchufar y Hacer parpadear un led [10] [11] [12] MORSE
    4. Varios leds, semaforo, persecusión, POV (Persistencia de la visión) 6 leds en fila y mover, hacer aparecer palabra [13] [14]
    5. Serial a paralelo (registro shift) [15]
    6. Usando un elemnto Piezo [16]
    7. Usando Pushbutton [17] (pull-up resistencias)
    8. Usando Potenciometros [18]
    9. Usando fotos resitencias [19]
    10. Sensor de temperatura [20]
    11. Motor [21]
    12. Servos [22]
    13. LEDs RGB [23]
    14. LCDs [24] [25]
    15. Construir un SIMON [26] [27]
    16. Construir un MIDI INTERFAZ CON GUANTE [28]
    17. http://www.instructables.com/id/Turn-your-Arduino-into-a-4-voice-wavetable-synth-w/#step1
    18. http://www.instructables.com/id/Turn-a-pencil-drawing-into-a-capacitive-sensor-for/#step1
    19. http://hackaday.com/2012/08/06/yet-another-arduino-blinkenlight-thing-actually-pretty-cool/
    20. http://www.instructables.com/id/Arduino-Vocal-Effects-Box/?ALLSTEPS
    21. http://www.spikenzielabs.com/Catalog/index.php?main_page=product_info&cPath=17&products_id=281
    22. http://conectarlab.com.ar/ramon-2/
    23. http://www.instructables.com/id/Arduino-Optical-Theremin/
    24. http://www.instructables.com/id/Make-a-giant-LED-sign/
    25. http://www.instructables.com/id/Twitter-Enabled-Text-to-Speech/
    26. http://www.automatismos-mdq.com.ar/blog/2012/11/nanino-un-simple-arduino-diy.html
    27. http://dalpix.com/mariamole
    28. http://xdevelopers.net/2012/10/garageuino/
    29. http://hackaday.com/2013/02/04/space-invaders-played-on-a-16x2-character-display/
    30. SiriArduino: http://hackaday.com/2013/02/01/siri-controlled-arduino-using-ruby/
    31. http://bleeplabs.com/store/the-bleep-drum/
    32. trackuino
    33. Impresoras 3d (makerbot)
    34. Led painting (grafiti research lab)
    35. Reactable TUIO
    36. http://www.zolmeister.com/2012/10/back-light-music-leds.html
    37. http://hackaday.com/2013/03/19/diy-arduino-pro-mini-quadcopter/
    38. http://hackaday.com/2013/02/26/simple-to-build-programmable-foot-switches/
    39. http://hackaday.com/2013/02/25/using-a-flashing-lcd-monitor-to-transfer-data/
    40. http://hackaday.com/2013/03/04/a-longboard-speed-and-distance-computer/
    41. http://diyhacking.com/diy-android-home-automation/
    42. http://diyhacking.com/make-android-controlled-robot/
    43. http://diyhacking.com/diy-head-mounted-display/
    44. http://diyhacking.com/getting-started-with-internet-of-things-raspberry-pi/
    45. https://github.com/vheun/ArduinoPlaysTimberman http://hackaday.com/2014/07/26/pwning-timberman-with-electronically-simulated-touchscreen-presses/
    46. http://anuragmishracse.github.io/
    47. http://hackaday.com/2015/01/31/a-single-pixel-digital-camera-with-arduino/
    48. http://www.instructables.com/id/DIY-bike-tachometer/
    49. http://fritzing.org/projects/fichina
    50. OBD2 - datos de autos
    51. Packet radio
    52. https://www.youtube.com/watch?v=S-0MsbzVEl8&feature=iv&src_vid=PyMK_UGlGIw&annotation_id=annotation_1933785237
  1. Otros
    1. http://arduserver.com/
    2. http://atmega32-avr.com/projects/
    3. http://tecnodacta.com.ar/gira/projects/physical-etoys/arduino/
    4. http://emulare.sourceforge.net
    5. http://www.buildinginternetofthings.com/2012/03/25/arduino-simulators/
    6. http://docs.spacebrew.cc/
    7. http://tavendo.com/blog/post/arduino-yun-with-autobahn/
    8. https://github.com/konsumer/arduinoscope
    9. https://github.com/jjg/RESTduino
    10. http://belogic.com/uzebox/index.asp
    11. http://inventorartist.com/rolly-bot/
    12. http://www.instructables.com/id/Motion-Sensing-LEDs/
    13. http://www.inventable.it/PAGES/LedResCalculator/LedResCalculator.html
    14. http://viper.thingsoninternet.biz/
    15. http://snap.berkeley.edu/ http://s4a.cat/snap/ https://github.com/MrYsLab/s2a_fm
    16. http://www.openhab.org/
    17. http://dataviz.com.au/robot_guitar.html
    18. https://github.com/jpmens/mqttwarn#twitter
    19. https://f-droid.org/repository/browse/?fdfilter=bluetooth&fdid=ru.sash0k.bluetooth_terminal
    20. http://lanus.elarteylatecnologia.com.ar:8081/pardo.bsso/taller_arduino_misiones/tree/master
    21. http://makezine.com/2016/02/27/arduino-leds-transform-your-fan-video-game-display/
    22. [29]
    23. http://involt.github.io/
    24. platformio
    25. s4a, snap4arduino
    26. https://www.indiegogo.com/projects/malduino-badusb-arduino-usb#/
    27. http://ventilagon.protocultura.net/
    28. http://www.instructables.com/id/Arduino-VGA-Game-Console/
    29. https://blog.arduino.cc/2017/06/21/arduino-uno-driven-plotter-uses-rulers-for-arms/
    30. https://blog.arduino.cc/2017/06/22/a-fidget-spinning-robot/