miércoles, 8 de diciembre de 2021

Motor paso a paso unipolar

 https://www.youtube.com/watch?v=2-nVV9S7leM&ab_channel=BitwiseAr

El motor paso a paso está diseñado para dar pequeños pasos con gran precisión y torque, es decir que el conjunto de engranajes disminuye la velocidad pero aumenta la fuerza


El motor tiene un consumo de corriente por bobina que es demasiado elevado para conectarlo de forma directa a un pin digital de arduino. Para ello es necesario un drive



Conexión. 

  1. Mediante 4 cables conectaremos Arduino al módulo controlador
  2. Alimentamos al controlador desde Arduino con 5V


El giro del motor se genera a través de la energización de las bobinas y aquí tenemos 3 tablas que muestran la relación de las bobinas activadas y la dirección que va tomando el motor y las diferentes secuencias de paso


Programación

  1. Señalar las variables de los pines del módulo controlador
  2. Declaramos la variable "demora" con el número indicado que representará los milisegundos de demora entre pasos lo cual tiene un límite de 10ms
  3. En el setup señalamos todos los pines como salida del Arduino

void loop

Recordemos que el engranaje tiene una reducción de 1:64 y si utilizamos la secuencia de paso simple debemos considerar que el rotor requiere 8 ciclos.

  1. Como en esta secuencia de paso completo simple tenemos 4 pasos, debemos representarlos en el digitalWrite encendiendo con HIGH el pin según corresponda en la tabla 
  2. Agregamos el delay con al variable demora
  3. Luego debemos meterlo en un bucle for donde la condición es llegar a 512 que corresponderían a cada paso, ya que si multiplicamos 512*4 nos da 2048
  4. Finalmente, agregamos una detención del motor apagando todos los pines por 20 ms

Matriz array bidimensional

Si visualizamos una matriz de 4 pasos podemos ver que tanto las filas como las columnas comienzan con el número 0

Lo primero que hacemos es agregar la variable paso tipo array donde indicamos la cantidad de filas y columnas, de las llaves generamos la tabla tal cual 

Luego dentro del bucle que completa los 2048 pasos agregamos un bucle que recorre cada fila con la condición de llagar a la cuarta columna 

Si queremos cambiar a la secuencia con dos bobinas simplemente cambiamos los valores en el Array de paso
Ahora para la secuencia de medio paso simplemente agregamos las 4 filas adicionales y señalamos los valores

ahora debemos cambiar el número de pasos simplemente que es reemplazar el 4 por el 8



lunes, 6 de diciembre de 2021

joystick analógico KY-023

El joystick tiene 5 pines

  1. El VCC para recibir la energía y el GND para tierra
  2. El VRX y el VRY que son dos potenciómetros que representan el eje X y el eje Y
  3. El SW representa el switch que funciona cuando presionamos el joystick 

Conexión

  1. Vcc al 5V de Arduino
  2. GND a GND del arduino
  3. VRX y VRY a dos pines análogos como A0 y A1
  4. SW a un pin digital como el 7

Programación con buzzer

Variables

  1. Declaramos las variables para señalar las conexiones a los pines análogos a VRX y VRY
  2. La variable del SW 
  3. La variable para el buzzer
  4. Variables para lectura de valores en Serial (xVal - yVal)
  5. Variable para el delay

Setup

  1. Señalamos como entradas los pines del VRX, VRY y SW
  2. Señalamos como entrada el switch
  3. Señalamos como encendido el switch
  4. Señalamos como salida el buzzer
  5. Llamamos al Serial
void Loop
  1. La variable de valores X e Y se iguala a la lectura de los potenciómetros
  2. Luego la variable de lectura del botón se iguala a la lectura del switch 


Programar el buzzer

Simplemente, agregamos un condicional if, else que señala que si el valor de la señal digital del switch es cero se activará el buzzer (1), de lo contrario, permanecerá apagado (0)

Monitor Serial

El eje X y el eje Y se mantienen entre los 510 y 515.
  • Si muevo el joystick a la izquierda el valor de X es 0
  • Si muevo el joystick a la derecha el valor de X es el 1023
  • Se muevo el joystick hacia abajo el valor de Y es 0
  • Si muevo el joystick hacia arriba el valor de Y es 0
  • Si presiono el joystick el valor del botón es 0




viernes, 3 de diciembre de 2021

Teclado keypad

 






Hay copiar el siguiente código donde:
  1. Señalamos las filas y columnas correspondientes  
  2. Señalamos los números símbolos correspondientes al teclado
  3. Señalamos el número del pin correspondiente a cada fila y columna con ARRAY
  4. Para crear el mapa de la distribución cargamos todos los valores ya definidos al objeto llamado "teclado"

Para comprobar desde monitor serial

Clave secreta
  1. Debemos agregar una variable llamada clave con array 7, es decir 7 caracteres
  2. Luego agregamos la clave maestra con array 7 y le cargamos la contraseña
  3. Luego necesitamos un INDICE para cargar el array con cada


En void loop vamos a cargar el array clave con los caracteres que nos devuelva la función getKey agregando un if . Si se presiona una tecla, en el array clave se colocará el caracter correspondiente a la tecla presionada en el índice cero. Para ello incrementamos el valor del INDICE en uno. 
Luego agregamos otro if para que reconozca la clave maestra cuando se presione




domingo, 7 de noviembre de 2021

Gráficos

Las librerías más usadas para visualización de datos en phyton son:

  • MATPLOTLIB: Para importarla usamos: import matplotlib.pyplot as plt
  • SEABORN: Para importarla usamos: import seaborn as sns

Visualizar los datos nos identificará de manera sencilla patrones existentes en los datos que más adelante nos servirán para construir modelos de predicción 

Gráfico de dispersión 

Nos muestra el comportamiento de los datos de acuerdo con dos variables distintas

En matplotlib 

Usando la abreviatura plt seguido del atributo scatter podemos generar un gràfico de dispersión utlizando dos variables a comparar
con atributo "title" el título, con atributo "xlabel" el nombre del eje X, con atributo "ylabel" el nombre del eje Y.

Mapa de calor

Función: heatmap()

Función de matriz de correlación: .corr

Diagrama de cajas y bigotes

Función: boxplot()

Nos sirve para estudiar el comportamiento de la variable que queremos predecir vs distitos valores de variables categóricas

Histograma

Función: sns.displot()

Nos permite ver como está distribuida nuestra variable


miércoles, 27 de octubre de 2021

Librería pandas en jupiter notebook

Esta librería permite acceder, manipular y trabajar con bases de datos grandes y hacer análisis de una manera eficiente y sintacticamente efectiva

Debemos traspasar el acrhivo csv en la misma carpeta en que está guardada el archivo de Jupìter notebook

  1. Importamos la librería pandas usando as pd
  2. Luego para importar un archivo CSV usamos pd.read_csv('NOMBRE DLE ARCHIVO')
  3. Luego guardamos esto en un dataframe llamado df 

Atributo head

Se utiliza para imprimir las primeras filas del dataframe. Simplemente entre parentesis señalamos la cantidad de filas que deseamos imprimir

Atributo shape

Nos sirve para saber cuantos datos tenemos en nuestro dataframe y nos dará la cantidad de filas primeramente y de columnas



Atributo columns

Nos sirve para imprimir el nombre de cada columna

Imprimir los datos de una columna en específico

Simplemente usamos la variable correspondiente al csv que hemos llamado "df". y entre corchetes el nombre de la columna

y para limitar la cantidad de filas se utiliza seguidamente corchetes con el rango usando dos puntos

Imprimir dos o más columnas

Se utiliza doble corchetes y dentro los nombres de las columnas separadas por cola


Iloc

Con esta opción podemos ubicar un valor de acuerdo a coordenadas


Función describe

Facilita el análisis preliminar de los datos. Cálcula las estadisticas descriptivas básicas de cada columna: el conteo, el promedio, la desviación estandar, el mínimo, el máximo y los percentiles 25, 50  y 75

Función sort_value

Si organizamos los datos en base a una variable podemos ver si hay algún tipo de corelación. Vamos a usar. Entre parentesis se coloca la columna con la cuál vamos a organizar nuestro dataframe y lo hará en orden ascendente


Para cambiarlo a orden descendente agregamos el ascending = False

Si queremos ordenar el data frame de a cuerdo a dos columnas debemso dentro del parentesis crear una lista de las columnas

Para filtrar por condiciones

Entre corchetes debemos escoger las filas con las que quedemos quedarnos. Por ejemplo queremos las filas en las que rio es igual a 1

Para agregar dos condiciones simplemente usamos el &

Agregar una columna nueva a partir de las ya existentes

Por ejemplo si queremos crear una columna nueva que sea la suma de dos columnas, entre corchetes llamamos a la nueva columna y decimos que es igual a la suma de las dos columnas

Si quisieramos agrupar nuestro dataframe de acuerdo con la variable rio y agregando la función "mean" nos saca los promedios de todas las variables 

También podemos usar dos variables pasandole una lista 
Podemos sacar el valor total de las variables con sum. Suma el total de todas las variables separados 


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...