Existen plataformas de hardware libre, como lo es el Arduino, una
placa con un controlador y un entorno de desarrollo, su sencillez y bajo
costo nos permiten hacer múltiples diseños y múltiples tipos de uso de
éste.
Recurrimos al uso del Arduino puesto que permite realizar muchas
tareas, ahorrando elementos electrónicos y en sustitución, el uso de un
lenguaje de programación, lo que hace que sea de muy fácil uso.
Debido a que fuimos asignados a un experimento que usara elementos
electrónicos, y tocamos el tema de Arduino, decidimos hacer algo que
involucrara los elementos electrónicos que vimos en clase, además que
fuera algo novedoso y singular.
Nos pareció un proyecto excepcional, motivador y que nos sirvió de
mucha experiencia, aumentar nuestro grado de trabajo en equipo, solución
de problemas usando conocimientos previamente adquiridos e
investigación de cosas que el equipo desconocía. Este tipo de proyectos
nos ayudan a aumentar nuestras capacidades, y más desde primer semestre
5. CONCLUSIONES
EL proyecto nos muestra el tipo de plataforma de desarrollo que se
puede emplear, utilizando Arduino y sus distintas aplicaciones de uso..
Tener conocimientos básicos de electrónica y electricidad para las
conexiones , considerando que hacemos uso dispositivos , es importante
tener conocimientos de programación en lenguaje java y lenguaje C, para
el desarrollo de la lógica de encendido y apagado de leds que
interpretara la placa Arduino.
No nos quedemos con los conocimientos que se presentan en este sitio, es recomendable hacer uso de diferentes fuentes.
Existen plataformas de hardware libre, como lo es el Arduino, una
placa con un controlador y un entorno de desarrollo, su sencillez y bajo
costo nos permiten hacer múltiples diseños y múltiples tipos de uso de
éste.
Recurrimos al uso del Arduino puesto que permite realizar muchas
tareas, ahorrando elementos electrónicos y en sustitución, el uso de un
lenguaje de programación, lo que hace que sea de muy fácil uso.
Debido a que fuimos asignados a un experimento que usara elementos
electrónicos, y tocamos el tema de Arduino, decidimos hacer algo que
involucrara los elementos electrónicos que vimos en clase, además que
fuera algo novedoso y singular.
Nos pareció un proyecto excepcional, motivador y que nos sirvió de
mucha experiencia, aumentar nuestro grado de trabajo en equipo, solución
de problemas usando conocimientos previamente adquiridos e
investigación de cosas que el equipo desconocía. Este tipo de proyectos
nos ayudan a aumentar nuestras capacidades, y más desde primer semestre
5. CONCLUSIONES
EL proyecto nos muestra el tipo de plataforma de desarrollo que se
puede emplear, utilizando Arduino y sus distintas aplicaciones de uso..
Tener conocimientos básicos de electrónica y electricidad para las
conexiones , considerando que hacemos uso dispositivos , es importante
tener conocimientos de programación en lenguaje java y lenguaje C, para
el desarrollo de la lógica de encendido y apagado de leds que
interpretara la placa Arduino.
No nos quedemos con los conocimientos que se presentan en este sitio, es recomendable hacer uso de diferentes fuentes.
Existen plataformas de hardware libre, como lo es el Arduino, una
placa con un controlador y un entorno de desarrollo, su sencillez y bajo
costo nos permiten hacer múltiples diseños y múltiples tipos de uso de
éste.
Recurrimos al uso del Arduino puesto que permite realizar muchas
tareas, ahorrando elementos electrónicos y en sustitución, el uso de un
lenguaje de programación, lo que hace que sea de muy fácil uso.
Debido a que fuimos asignados a un experimento que usara elementos
electrónicos, y tocamos el tema de Arduino, decidimos hacer algo que
involucrara los elementos electrónicos que vimos en clase, además que
fuera algo novedoso y singular.
Nos pareció un proyecto excepcional, motivador y que nos sirvió de
mucha experiencia, aumentar nuestro grado de trabajo en equipo, solución
de problemas usando conocimientos previamente adquiridos e
investigación de cosas que el equipo desconocía. Este tipo de proyectos
nos ayudan a aumentar nuestras capacidades, y más desde primer semestre
5. CONCLUSIONES
EL proyecto nos muestra el tipo de plataforma de desarrollo que se
puede emplear, utilizando Arduino y sus distintas aplicaciones de uso..
Tener conocimientos básicos de electrónica y electricidad para las
conexiones , considerando que hacemos uso dispositivos , es importante
tener conocimientos de programación en lenguaje java y lenguaje C, para
el desarrollo de la lógica de encendido y apagado de leds que
interpretara la placa Arduino.
No nos quedemos con los conocimientos que se presentan en este sitio, es recomendable hacer uso de diferentes fuentes.
Existen plataformas de hardware libre, como lo es el Arduino, una placa con un controlador y un entorno de desarrollo, su sencillez y bajo costo nos permiten hacer múltiples diseños y múltiples tipos de uso de éste.
Recurrimos al uso del Arduino puesto que permite realizar muchas tareas, ahorrando elementos electrónicos y en sustitución, el uso de un lenguaje de programación, lo que hace que sea de muy fácil uso.
Debido a que fuimos asignados a un experimento que usara elementos electrónicos, y tocamos el tema de Arduino, decidimos hacer algo que involucrara los elementos electrónicos que vimos en clase, además que fuera algo novedoso y singular.
Nos pareció un proyecto excepcional, motivador y que nos sirvió de mucha experiencia, aumentar nuestro grado de trabajo en equipo, solución de problemas usando conocimientos previamente adquiridos e investigación de cosas que el equipo desconocía. Este tipo de proyectos nos ayudan a aumentar nuestras capacidades, y más desde primer semestre
5. CONCLUSIONES
EL proyecto nos muestra el tipo de plataforma de desarrollo que se puede emplear, utilizando Arduino y sus distintas aplicaciones de uso..
Tener conocimientos básicos de electrónica y electricidad para las conexiones , considerando que hacemos uso dispositivos , es importante tener conocimientos de programación en lenguaje java y lenguaje C, para el desarrollo de la lógica de encendido y apagado de leds que interpretara la placa Arduino.
No nos quedemos con los conocimientos que se presentan en este sitio, es recomendable hacer uso de diferentes fuentes.
Existen plataformas de hardware libre, como lo es el Arduino, una placa con un controlador y un entorno de desarrollo, su sencillez y bajo costo nos permiten hacer múltiples diseños y múltiples tipos de uso de éste.
Recurrimos al uso del Arduino puesto que permite realizar muchas tareas, ahorrando elementos electrónicos y en sustitución, el uso de un lenguaje de programación, lo que hace que sea de muy fácil uso.
Debido a que fuimos asignados a un experimento que usara elementos electrónicos, y tocamos el tema de Arduino, decidimos hacer algo que involucrara los elementos electrónicos que vimos en clase, además que fuera algo novedoso y singular.
Nos pareció un proyecto excepcional, motivador y que nos sirvió de mucha experiencia, aumentar nuestro grado de trabajo en equipo, solución de problemas usando conocimientos previamente adquiridos e investigación de cosas que el equipo desconocía. Este tipo de proyectos nos ayudan a aumentar nuestras capacidades, y más desde primer semestre
5. CONCLUSIONES
EL proyecto nos muestra el tipo de plataforma de desarrollo que se puede emplear, utilizando Arduino y sus distintas aplicaciones de uso..
Tener conocimientos básicos de electrónica y electricidad para las conexiones , considerando que hacemos uso dispositivos , es importante tener conocimientos de programación en lenguaje java y lenguaje C, para el desarrollo de la lógica de encendido y apagado de leds que interpretara la placa Arduino.
No nos quedemos con los conocimientos que se presentan en este sitio, es recomendable hacer uso de diferentes fuentes.
Funciones de lectura y escritura digital en Arduino
Arduino está formado basicamente por pines de entrada, un
microcontrolador en el medio y pines de salida. Los pines de entrada
sirven para escuchar y capturar información del exterior, ejem: pulsadores,
sensores, lectoras, etc.; el microcontrolador sirve para procesar el programa
cargado y finalmente los pines de salida sirven para enviar información desde
la tarjeta Arduino hacia el exterior.
Al hablar de Entradas o Salidas digitales se entiende que
tanto la información que escuchan como las respuestas pueden tener solamente
dos estados: +5voltios o O voltios. OJO: Esto es solamente cuando se habla de
señales digitales. En la lógica Arduino las señales digitales pueden
manejar los siguientes valores o estados:
TODO programa en Arduino debe tener dos funciones
básicas: setup() y loop(). La sintaxis (forma de escribir)
es la siguiente:
void setup(){ }
void loop(){ }
La función setup() sirve para definir el
comportamiento inicial de mi placa Arduino, es decir cuando la a una fuente de
alimentación (pila, batería). Algunos ejemplos de uso de la función setup() son:
Que pines voy a utilizar, cuáles serán entradas y cuáles salidas, iniciar
alguna variable, etc
La función loop() sirve para definir todas las
tareas que Arduino ejecutará repetidamente mientras esté conectada. Por
ejemplo: Leer el valor de las entradas, escribir en los pines de salida, enviar
alertas, emitir sonidos, enviar mensajes por el puerto serial, etc.
Estructura de un programa en Arduino
La estructura básica de programación de Arduino es bastante
simple y divide la ejecución en dos partes: setup y loop. Setup() constituye la
preparación del programa y loop() es la ejecución. En la función Setup() se
incluye la declaración de variables y se trata de la primera función que se
ejecuta en el programa. Esta función se ejecuta una única vez y es empleada
para configurar el pinMode (p. ej. si un determinado pin digital es de entrada
o salida) e inicializar la comunicación serie. La función loop() incluye el
código a ser ejecutado continuamente (leyendo las entradas de la placa,
salidas, etc.).
Como se observa en este bloque de código cada instrucción
acaba con ; y los comentarios se indican con //. Al igual que en C se pueden
introducir bloques de comentarios con /* ... */.
La función bucle (loop) siguiente contiene el código que se
ejecutara continuamente (lectura de entradas, activación de salidas, etc) Esta
función es el núcleo de todos los programas de Arduino y la que realiza la
mayor parte del trabajo.
setup()
La función setup() se invoca una sola vez cuando
el programa empieza. Se utiliza para inicializar los modos de trabajo de los
pins, o el puerto serie. Debe ser incluido en un programa aunque no haya
declaración que ejecutar. Así mismo se puede utilizar para establecer el estado
inicial de las salidas de la placa.
void setup(){
pinMode(pin, OUTPUT); // configura el 'pin'
como salida
digitalWrite(pin, HIGH); // pone el ‘pin’ en estado HIGH
}
loop()
Después de llamar a setup(), la función loop() hace
precisamente lo que sugiere su nombre, se ejecuta de forma cíclica, lo que
posibilita que el programa esté respondiendo continuamente ante los eventos que
se produzcan en la placa.
void loop()
{
digitalWrite(pin,
HIGH); // pone en uno (on, 5v) el 'pin'
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin,
LOW); // pone en cero (off, 0v.) el 'pin'
delay(1000);
}
funciones
Una función es un bloque de código que tiene un nombre y un
conjunto de instrucciones que son ejecutadas cuando se llama a la función. Son
funciones setup() y loop() de las que ya se ha hablado. Las
funciones de usuario pueden ser escritas para realizar tareas repetitivas y
para reducir el tamaño de un programa. Las funciones se declaran asociadas a un
tipo de valor “type”. Este valor será el que devolverá la función, por ejemplo
'int' se utilizará cuando la función devuelve un dato numérico de tipo entero.
Si la función no devuelve ningún valor entonces se colocará delante la palabra
“void”, que significa “función vacía”. Después de declarar el tipo de dato que
devuelve la función se debe escribir el nombre de la función y entre paréntesis
se escribirán, si es necesario, los parámetros que se deben pasar a la función
para que se ejecute.
type nombreFunción(parámetros)
{
instrucción;
}
La función siguiente devuelve un número entero, delayVal() se
utiliza para poner un valor de retraso en un programa que lee una variable
analógica de un potenciómetro conectado a una entrada de Arduino. Al principio
se declara como una variable local, 'v' recoge el valor leído del potenciómetro
que estará comprendido entre 0 y 1023, luego se divide el valor por 4 para
ajustarlo a un margen comprendido entre 0 y 255, finalmente se devuelve el
valor 'v' y se retornaría al programa principal. Esta función cuando se ejecuta
devuelve el valor de tipo entero 'v'.
int delayVal()
{
int v; // crea una variable
temporal 'v'
v=
analogRead(pot); // lee el valor del
potenciómetro
v /= 4; // convierte 0-1023 a 0-255
return v; // devuelve el valor final
}
{} entre
llaves
Las llaves sirven para definir el principio y el final de un
bloque de instrucciones. Se utilizan para los bloques de programación setup(),
loop(), if.., etc.
type funcion()
{
instrucciones;
}
Una llave de apertura
“{“ siempre debe ir seguida de una llave de cierre “}”, si no es así el
programa dará errores.
El entorno de programación de Arduino incluye una
herramienta de gran utilidad para comprobar el total de llaves. Sólo tienes que
hacer click en el punto de inserción de una llave abierta e inmediatamente se
marca el correspondiente cierre de ese bloque (llave cerrada).
; punto y
coma
El punto y coma “;” se utiliza para separar instrucciones en
el lenguaje de programación de Arduino. También se utiliza para separar
elementos en una instrucción de tipo “bucle for”.
int x = 13; /* declara la variable 'x' como tipo entero
de valor 13 */
Nota: Olvidaos de poner fin a una línea con un punto y coma
o se producirá en un error de compilación. El texto de error puede ser obvio, y
se referirá a la falta de una coma, o puede que no. Si se produce un error raro
y de difícil detección lo primero que debemos hacer es comprobar que los puntos
y comas están colocados al final de las instrucciones.
/*… */ bloque de comentarios
Los bloques de comentarios, o comentarios multi-línea son
áreas de texto ignorados por el programa que se utilizan para las descripciones
del código o comentarios que ayudan a comprender el programa. Comienzan con / *
y terminan con * / y pueden abarcar varias líneas.
/* esto es un bloque
de comentario no se debe olvidar
cerrar los
comentarios estos deben estar equilibrados */
Debido a que los comentarios son ignorados por el compilador
y no ocupan espacio en la memoria de Arduino pueden ser utilizados con
generosidad. También pueden utilizarse para "comentar" bloques de
código con el propósito de anotar informaciones para depuración y hacerlo mas
comprensible para cualquiera.
Nota: Dentro de una misma línea de un bloque de comentarios
NO se puede escribir otro bloque de comentarios (usando /*..*/).
// línea de comentarios
Una línea de comentario empieza con // y terminan con la siguiente
línea de código. Al igual que los comentarios de bloque, los de línea son
ignoradas por el programa y no ocupan espacio en la memoria.
// línea de comentarios
Una línea de comentario se utiliza a menudo después de una
instrucción, para proporcionar más información acerca de lo que hace ésta o
para recordarla más adelante.
Diferencias y similitudes entre PIC y Arduino
PIC es un
microcontrolador de Microchip, es un microcontrolador muy popular hasta hace un
par de años era el microcontrolador mas vendido en el mundo , sin embargo los
nuevos microcontroladores ARM Cortex han ido adquiriendo popularidad. Si
de Arduino hay cientos o miles de aplicaciones de PIC hay millones, y esta
diferencia es de esperarse pues los microcontroladores PIC tienen mucho mas
tiempo en el mercado que Arduino.
Arduino es una plataforma de
código abierto con la cual un entusiasta de la electrónica puede crear
proyectos de electrónica digital, domótica, robótica , etc. de forma rápida y
sencilla ademas de económica, es decir tiene las tres "B" Bueno Bonito
y Barato, y es que los cientos de proyectos que andan circulando por la red son
realmente increíbles. Su placa mas popular el Arduino UNO, se basa en el
microcontrolador Atmega328 de Atmel.
En mi opinión ambos son dispositivos excelentes, pero en mi opinión el microcontrolador
Arduino es utilizado por estudiantes de secundaria, los cuales se encuentran
llevando una formación vocacional para el cual es perfecto, debido a que no
tiene gran complejidad con los comando y tiene la facilidad de que puede
programarse en la plataforma Scrach que es mucho más dinámica.
Por el contrario PIC es una marca más comercial y como tal, tiene una mayor
complejidad al momento de programarlo, debido a que puede programarse en C++, o
en lenguaje ensamblador el cual a mi parecer son más acondicionados para un
nivel universitario, este tipo de controlador a diferencia del arduino es más
utilizado a nivel comercial, y si de aprender se trata este microcontrolador le
garantizará un dinamismo absoluto en las cataratas de codigo ensamblador que
deben montarse para hacer una sencilla aplicación.
3. EVIDENCIA DEL LABORATORIO
VÍDEO
CHALECO DE CICLISTA
MODIFICACIÓN DE CHALECO DE CICLISTA
4. OBSERVACIONES
La actividad me ha resultado bastante interesante. Me he
quedado con ganas de aprender más sobre este proyecto y de comprarme una placa
Arduino. Debería dedicársele más tiempo, ya sea mediante una práctica adicional
o incluso una asignatura optativa.
Las sesiones
dedicadas a este proyecto han sido interesantes y muy divertidas. Además, hay
que tener en cuenta el trabajo que conlleva desarrollar cada uno de los
prototipos de circuito por los profesores.
Me ha servido mucho
el proyecto de el chaleco porque soy
inexperto en la programación. Gracias a la aplicación práctica del lenguaje del
arduino al diseño de circuitos con Arduino, me ha costado menos su estudio. Es
alentador poder aprender de forma práctica ya desde el primer curso.
5. CONCLUSIONES
Se ha logrado desarrollar un dispositivo utilizando un
Sistema programable a través de las grandes ventajas que nos proporciona la
Plataforma de Arduino, con la variedad de dispositivos disponibles se pueden
crear no solo este tipo de prototipos sino que puede desarrollarse todo una
gama de buenos proyectos.
Interesante resulta el hecho que no es necesario grandes
cantidades de energía eléctrica, ni de grandes costos, con una inversión
bien planificada se puede realizar un diseño similar al que se presenta.
El grupo de trabajo agradece la oportunidad de haber
conocido y aprendido de las grandes ventajas de Arduino y sus múltiples funcionalidades
Cuando cargamos un programa en Arduino desde el USB con el
IDE, estamos haciendo uso del bootloader, se trata de un pequeño programa que
ha sido guardado previamente en el microcontrolador de la placa y que nos
permite cargar código sin necesidad de hardware adicional. El bootloader solo
está activo unos segundos cuando se resetea el Arduino y después comienza el
sketch que está cargado en la flash de Arduino y que hemos programado y subido
a la placa.
El bootloader se ejecuta cuando el microcontrolador se enciende
o se pulsa el botón reset, durante un corto espacio de tiempo espera que le
llegue por el puerto serie un nuevo sketch desde el IDE de Arduino (este
distingue un sketch de otra cosa porque tiene un formato definido). Si llega un
sketch, este es guardado en la memoria flash y ejecutado, en caso contrario
ejecuta el sketch anteriormente cargado.
La mayoría de los Arduinos tienen la función autoreset que
permite al IDE de Arduino subir el código sin tener que pulsar el botón de
reset.
El bootloader hace que parpadee el pin 13 (led integrado en
la placa) cuando se ejecuta.
La mayoría de los microcontroladores de AVR pueden reservar
una zona de la memoria flash (entre 256B a 4 KB) para el bootloader. El
programa bootloader reprograma el microcontrolador para guardar en la memoria
flash el código binario a través de cualquier interface disponible.
El bootloader de Arduino está programado en la memoria flash
del ATMega328p y ocupa 0,5 KB de los 32KB disponibles. Este bootloader viene
precargado en la memoria flash del microcontrolador y es lo que diferencia el
ATMega328p de Arduino de otro que viene de fábrica.
El Arduino UNO viene con el microcontrolador ATMega328p
precargado con un bootloader que permite cargar nuevo código sin un
programador. El bootloader se comunica usando el protocolo STK500.
FUNCIONAMIENTO DEL uC
El Atmega328 AVR8-bit es un Circuito integrado de alto rendimiento que
está basado un microcontrolador RISC, combinando
32 KB ISPflash una
memoria con la capacidad de leer-mientras-escribe, 1 KB de memoria EEPROM,
2 KB de SRAM, 23 líneas de E/S de
propósito general, 32 registros de proceso general, tres
temporizadores flexibles/contadores con modo de
comparación, interrupciones internas y externas, programador de
modo USART, una interfaz serial orientada a
byte de 2 cables, SPI puerto
serial, 6-canales 10-bit Conversor A/D (canales
en TQFP y QFN/MLF packages),
"watchdog timer" programable con oscilador interno,
y cinco modos de ahorro de energía seleccionables por software. El dispositivo
opera entre 1.8 y 5.5 voltios. Por medio de la ejecución de poderosas
instrucciones en un solo ciclo de reloj, el dispositivo alcanza una respuesta
de 1 MIPS,
balanceando consumo de energía y velocidad de proceso.
3. EVIDENCIA DEL LABORATORIO
Video del programa
Video de notas
4. OBSERVACIONES
Existen plataformas de hardware libre, como lo es el
Arduino, una placa con un controlador y un entorno de desarrollo, su sencillez
y bajo costo nos permiten hacer múltiples diseños y múltiples tipos de uso de
éste.
Recurrimos al uso del Arduino puesto que permite realizar
muchas tareas, ahorrando elementos electrónicos y en sustitución, el uso de un
lenguaje de programación, lo que hace que sea de muy fácil uso.
Debido a que fuimos asignados a un experimento que usara
elementos electrónicos, y tocamos el tema de Arduino, decidimos hacer algo que
involucrara los elementos electrónicos que vimos en clase, además que fuera
algo novedoso y singular.
Nos pareció un proyecto excepcional, motivador y que nos
sirvió de mucha experiencia, aumentar nuestro grado de trabajo en equipo, solución
de problemas usando conocimientos previamente adquiridos e investigación de
cosas que el equipo desconocía. Este tipo de proyectos nos ayudan a aumentar
nuestras capacidades, y más desde primer semestre
5. CONCLUSIONES
EL proyecto nos muestra el tipo de plataforma de
desarrollo que se puede emplear, utilizando Arduino y sus distintas aplicaciones de uso..
Tener
conocimientos básicos de electrónica y electricidad para
las conexiones , considerando que hacemos uso
dispositivos , es importante tener
conocimientos de programación en lenguaje java y lenguaje C, para el
desarrollo de la lógica de encendido y apagado de leds que
interpretara la placa Arduino.
No nos quedemos con los conocimientos que se presentan en
este sitio, es recomendable hacer uso de diferentes fuentes.