domingo, 13 de mayo de 2018

Control en Lazo Cerrado de una Máquina DC Operación en 4 Cuadrantes

.
El motivo del presente proyecto es realizar la implementación del control en cascada de la maquina DC para demostrar las ventajas que nos proporciona realizar dicho control frente a perturbaciones mecánicas de valor significativo
El programa se implemento en la tarje TEXAS C 2000 DELIFINO para más información clic en el siguiente enlace:  

http://prograyec.blogspot.com/2018/04/manual-de-programacion-texas-launchpad.html



sábado, 12 de mayo de 2018

Robot Péndulo Invertido Mindstorms NXT - Control de equilibrio


Este articulo trata de la aplicación de un controlador por estructura variable al péndulo invertido de dos ruedas Lego Mindstroms. Un modelo no lineal es tomado para su análisis y es validado con el modelo real, también se realizara la sintonización de las variables de control mediante la implementación de algoritmos genéticos y así lograr obtener una respuesta optima en la planta. Aplicación de algoritmos genéticos con diferentes funciones de costo para LQR y aplicación de algoritmos genéticos para un VSC, para los parámetros de la parte discontinua. Keywords: Robot Lego, Péndulo invertido, Control VSC, LQR, Algoritmos Genéticos.



jueves, 12 de abril de 2018

MANUAL DE PROGRAMACION TEXAS LAUNCHPAD DELFINO C2000

Hola amigos, les traigo un manual simple de como programar la tarjeta Texas launchpad c2000 Delfino, es posible usarlo para otras tarjetas de similares características. El manueal está enfocado en el control de máquinas, espero que les sea de ayuda.
La programación se la hace en VisSim, y usa Code Composer Studio


miércoles, 7 de marzo de 2018

MANUAL DE USO DE PANTALLA LCD 128X64

Pantalla LCD gráfica monocromo de 128x64 píxeles con interfaz serie. Permite controlar todas las funcionalidades de la pantalla de un modo muy sencillo utilizando comandos serie.
Además de escribir texto, esta pantalla LCD gráfica serie permite  dibujar líneas, círculos, rectángulos y establecer los píxeles individuales, borrar bloques específicos de la pantalla, control de la luz de fondo y ajustar la velocidad de transmisión. Además, todo el código fuente para el procesador ATMega168 se compila utilizando el compilador WinAVR libre y es gratuito para descargar. Es ideal para utilizarla con cualquier modelo de Arduino, PIC o AVR en general.

EAGLE 7.6, manual de uso

EAGLE 7.6
Contents
1.   INSTALACIÓN 1
2.   MANUAL DE USO 8
2.1 Abrir Eagle 8
2.2 Crear nuevo Proyecto 9
2.3 Añadir un nuevo elemento 10
2.4 Realizar conexiones entre elementos 15
2.5 Etiquetar conexiones 17
2.6 Generar PBC 18
2.7 Desplazar o mover elementos 19
2.7 Reemplazar un elemento 22
2.8 Routear pistas 22
2.9 Para imprimir 27




martes, 7 de marzo de 2017

DISEÑO Y CONSTRUCCIÓN DE CONVERTIDOR DC/DC ELEVADOR, CONTROL PI

Aqui les dejo la construccion de un convertidor dc dc elevador BOOST CONVERTER, el diseño de su inductancia, y diseño del controlador PI, e implementación.


Enviar un vector, cadena de datos de Matlab a Arduino, comunicacion serial


Este es un programa que permite enviar datos desde Matlab a Arduino, pude enviar 4 datos pero vale con más
Se puede enviar con hasta dos decimales cada dato



Código Matlab
clear all
clc

answer=[1;1;1;1]; % this is where we'll store the user's answer
arduino=serial('COM1','BaudRate',9600); % create serial communication object on port COM1

fopen(arduino); % initiate arduino communication
 %%
while answer
   % fprintf(arduino,'%s %s %s',char(answer)); % send answer variable content to arduino
  
  % x=fscanf(arduino,'%f')
   fprintf(arduino,'%f,%f,%f,%f',answer);
    answer=input('Ingresa en el siguiente formato:[1;2;3;4]':); % ask user to enter value for variable answer
end
%%
fclose(arduino); % end communication with arduino
%%
Código Arduino
 #include 


float var1,var2,var3,var4;

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //
 

 void setup(){
  pinMode(5, OUTPUT);
 // initialize the serial communications:
 Serial.begin(9600);
 lcd.begin(16, 2); // Fijar el numero de caracteres y de filas
}

void loop()
{
 lcd.setCursor(0, 1);  // set the cursor to column 0, line 1
  lcd.print(var2);
  lcd.setCursor(5, 1);  

  lcd.print(var3);
  lcd.setCursor(10, 1);   

 lcd.print(var4);
  lcd.setCursor(0, 0);  

 lcd.print(var1);


}

 void serialEvent()
 {
if(Serial.available()>0)
 {
 
     var1=Serial.parseFloat();
    var2=Serial.parseFloat();
    var3=Serial.parseFloat();
     var4=Serial.parseFloat();
}
  
 }

//