sábado, 18 de septiembre de 2021

Componentes basicos de ardunio Arduino UNO

Arduino es una placa de desarrollo hecha en torno a un microcontrolador con una plataforma opensource que nos permite interactuar con la electronica 


Especificaciones Arduino UNO

El microcontrolador ATmega328p

Es una computadora de muy baja potencia, es un circuito integrado que quiere decir que tiene toda la electrónica dentro en tamaño microscópico que está encapsulado. Es programable y es capás de ejecutar instrucciones, hacer calculos simples y guardarlas en su memoria

¿Que contiene este microcontrolador?

1. Lecturas de entrada: Todos los pines de este microcontrolador los podemos leer tanto digitalmente como analógicamente

2. CPU (Memoria): Hace las operaciones matemáticas y calculos. Podemos guardar datos en una memoria propia, tiene su memoria ram para hacer las instrucciones

3. Puertos de comunicación: Tiene un puerto de hilo C, SPI y Ward que son protocolos que se usan para comunicarse con otros modulos

4. Control de pines: Los pines o puertos son el medio de comunicacion del microcontrolador para sacar o recibir información. La mayor{ia de los puertos peuden ser multifunciones, pueden ser analogos, digitales, seriales, cpi, etc. Estos est{an conectados con las entradas pines de arduino 


Voltaje: Entre 2.6 a 5.5 V. En un pin de la placa sale que el arduino funciona a 5 V ya que es el voltaje que ha sido elegido para el funcionamiento de la placa. La entrada de alimentación es entre 7 y 16V pero al lado cuenta con un chip integrado que regula el voltaje a 5V. 

Entrada USB: Desde el puerto usb enlazaremos a la computadora y podremos recibir el programa que queremos que se ejecute y también podremos alimentar a la placa pero es para aplicaciones de bajo consumo ya que estamos drenando corriente de nuestra computadora y un consumo exesivo puede generar problemas 



Pines Analog IN: Estos pines solo pueden leer información analógica y nos brindan un total de 6 entradas analógicas para los datos provenientes de sensores activos y componentes pasivos como potenciometros o resistencias variables 
Pines Power: Estos pines nos brindarán acceso conveniente para alimentar dispositivos externos con diversas tensiones. 
Pines de 3V3 y 5V: Sirven para proveer de energía a la placa 
GND: Son dos entradas de tierra. Todos los circuitos para poderse completar deben llegar a tierra

Pines digitales: Son capaces de enviar y recibir informacón digital. nos permitiran activar luces, motores, reles y comandar otros componentes electrónicos. Algunas salidas denominada PWM (que tienen el símbolo señalado) tienen una capacidad única que es la modulación por ancho de punto 
Los primeros 2 (0 y 1) son los pines que tuiliza el arduino para el puerto ward pero también para hacer la conexión entre este chip y el  ATmega328p



martes, 14 de septiembre de 2021

Señal analógica

PWM (Modulación por ancho de pulso)

La modulación por ancho de pulso nos permite simular mayor o menor intensidad


Salidas analógicas

La diferencia entre una señal analoga y digital es que en una onda de voltaje la señal digital solo leería los puntos azules y la señal analoga puede leer las amarillas. Valores análogos son de 0 a 255 y digital solo tenemos 0 y 255.




Vamos a realizar el siguiente corcuito y vamos a conectar las salidas analogas que son las que tienen el simbolo

Las instrucciones de salidas analogas (analogWrite) no necesitan definir los puertos como salida en void setup. La instrucción analogWrite te define el puerto y el valor del voltaje


Veamos un ejemplo de como se entienden los valores. 
* Si trabajamos a 0% nuestro valor será cero y el voltaje cero
* Si trabajamos al 100% nuestro valor será 255 y el voltaje será 5
*Si trabajamos al 25% nuestro valor será 64 y el voltaje tendrá un promedio bajo teniendo un tren de pulso oscilante
*Si trabajmos a un 50% nuestro valor será de 127 y el voltaje será en promedio 2,5 teniendo un tren de pulso constante
* Si trabajamos a un 75% nuestro valor será de 191 y el voltaje promedio mayor y un tren de pulso más ancho
* Si trabajamos a un 90% nuestro valor será de 229 y el voltaje promedio será muy alto


Vamos a usar el for con una variable entera "i" que podemos usar sin el void setup. Lo que va a ser el void es irá aumentando el brillo de 0 a 255 y como a los tres puertos le vamos a dar la variable i entonces todos van a funcionar igual, y le vamos a dar un delay 9 para que puede ser más visible


También podemos agregar un osciloscopio para poder visualizar las oscilaciones 



sábado, 11 de septiembre de 2021

Protoboard

Columnas y filas. De todos los agujeros que tenemos en esta zona los que estan de izquierda a derecha son las filas y los que estan de arriba hacia a bajo son las columnas


Rieles. Lo que hacen es llevar la energia de arriba hacia a bajo. Tenemos uno negativo y otro positivo. Cada columna positiva está conectada entre si, al igual que las negativas
Si usas cualquier agujero del riel + automaticamebre estará conectado con otro que también esté conectado a ese riel
Pero no al que esté conectado en el riel -

Si yo quiero dare energía a varias cosas  conecto el emisor de energía (en este caso la salida 5v) al riel positivo y sacando salidas de los mismos agujeros del riel alimento a otros elementos que estén en las filas

Luego si quiero volver varios a tierea entro a los agujeros del riel negativo y salgo de uno del mismo rieo al GND

Si yo le doy energía de 5v a un agujero de la fila 9 todos los demás agujeros tandrán la misma energía ya que están conectadas

Y si salimos de un agujero de las filas a un agujero del riel negativo todo el riel estará conectado

Aquí podemos ver un ejemplo de como saco 5v a la entrada de resistencia la cual se conecta a la pata positiva del led y saliendo por el negativo volviendo al GND



Arduino con tinterkad

Para comenzar vamso a https://www.tinkercad.com/ y entramos a circuito


En esta opción podemos ver las caracetristicas de acda componente

Comencemos arrastrando una resistencia y cambiandoe l valor a 220 ohms

En un diodo led el Catodo es negativo y anodo en negativo

La salida va desde el pin 13 a la entrada positiva que pasa por al resistencia entra pro el anodo, sale por catodo y se devuelve al GND 


Para comenzar a programar vamso a código en modo texto y borramos los datos de setup y de loop.
En void setup se escriben los parámetros iniciales y en void loop se escribe el bucle de programa 

Programación por texto

En el parámetro inicial de void setup vamos a definir que el pin 13 será una salida
En void loop vamos a definir que el led se va a encender y se va a apagar usando digitalWrite dos veces, uno con HIGH y el otro LOW

Cuando ejecutamos la simulación nos damos cuenta de que el led permanece encendido y esto se debe a que la transición es muy rápido por lo que debemos agregar un delay con un valor entre parentesis 

Programación en bloque

Podemos desechar los codigos arrastrandolos al bote de basura

Luego podemos ir arrastrando bloques desde aquí
Luego tenemos la opción de descargar el código

También podemos ver la lista de componentes y tenemos la opción de descargar aquella lista

Variables

Si conectamos 3 led y salimos desde el catodo (negativo) de cada uno a la linea negativa del portoboard podemos salir de otro punto negativo al GND de Arduino. Con ello tendríamos todos los negativos conectados al mismo puerto Luego conectamos los positivo a cada puerto independiente que vendrían a ser salidas desde el pin de Arduino pasando por su resistencia devolviendose al GND

Yo podría definir en los parámetros inciales del código que cada pin es una salida pero los numeros no nos dicen nada acerca de los elementos que yo tengo conectado...


...por lo tanto vamos a hacer una definición de nombre con variables enteras (int)

Luego agregamos al programación de cada uno


También para ahorrarnos tiempo si queremos tener el mismo tiempo de delay en el encendido y apagdo de todos los led y no sea trabajoso cambiarle el tiempo uno por uno podemos usar una variable para eso

BucleFor

Comenzamos con este circuito conectando cada pin a los anodos, saliendo por los catodos y volviendo al GND

En la programación tenemos la variable Tiempo y la variable Pin. En los parámetros iniciales de void setup vamos a agregar el for. Primero colocamos pin=8 que vendría a ser la primera salida de leds, luego colocamos pin<=12 para considerar el ultimo numero del rango que tenemos y finalmente colocamos pin=++ para que vaya acrecentandose. Finalmente definimos entre llaves que los pines erán de salida colocando pinMode (pin,OUTPUT)
Ahora realizamos la programación para que se enciendan usando el mismo for. Lo que hacemos es que cada en cada led se aplique el programa de apagado, tiempo de espera, encendido, tiempo de espera. Eso se porgrama con digitalWrite y delay. El for nos ahorra el trabajo de tener que estar repitiendo tel mismo código para los 5 led



Subrutinas

Lo primero que hacemos es crear el código similar al que hicimos anteriormente incorporando for para generar una secuancia de encendido y apagado acendente 

Ahora para crear una subrutina en la que pretendemos que el orden de encendido cambie de dirección lo que debemos hacer es cortar la programación y pegarla a bajo con un comentario de subrutina  //.

Le agregamos como etiqueta de void secuencia_uno()


¿Como ejecutamos esa subrutina?
 

En void lopp tenemos el programa principal y dentro de el tenemos las dos subrutinas. Cuando se ejecuta la secuencia_uno() se produce el llamado de la subrutina 1 por lo tanto salat a ese nombre y ejecuta esa subrutina 1 (lo que está entre las llaves) y se devuleve a la siguiente linea de código para ejecutar la secuencua_dos() y hace el llamado a la subrutina 2



Instalar paquetes de phyton en blender

Para agregar nuevos paquetes o mpdulos al phyton que tiene blender tenemos dos opciones según la documentación de blender   1. Reemplazar el...