Este es un tutorial básico de scilab explicando el uso de la función de graficación xrect
domingo, 20 de mayo de 2012
miércoles, 16 de mayo de 2012
Como instalar driver de Pinguino para windows 7
Pinguino necesita LibUsb para comunicarse con el PC. En windows 7 si LibUsb es mal instalado deshabilita los puertos USB del computador.
La mas reciente guía de instalación de pinguino describe el procedimiento para la instalación de los archivos necesarios para la cumunicacion.
En la guía recomiendan descargar la version 1.2.1, pero ya hay una mas actual que es la 1.2.6.
Estos son los enlaces de descarga.
Version 1.2.1
http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.1.0/libusb-win32-bin-1.2.1.0.zip/download
Version 1.2.6
http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip/downloadguia
Procedimiento:
- Descomprimir el archivo libusb-win32-bin-1.2.1.0.zip
- Desconectar la tarjeta Pinguino.
- Verificar si su sistema operativo es de 32 o 64 bits
- Si es de 32 bits, hacemos lo siguiente:
- Ir a la carpeta libusb-win32-bin-1.2.1.0\bin\x86
- Renombrar el archivo libusb0_x86.dll con el nombre de libusb0.dll
- Copiar el archivo renombrado en la carpeta c:\Windows\system32\
- Copiar el archivo libusb0.sys en la carpeta c:\Windows\system32\drivers\
6. Descomprimir y copiar los archivos en la carpeta examples de libusb-win32-bin-1.2.1.0
7. Conectar la tarjeta e ir a panel de control, sistema, administrador de dispositivos
8. Aparece una advertencia indicando que la tarjeta no es reconocida
9. Dar click derecho en el dispositivo y dar click en propiedades
10. Instalar el driver dando click en actualizar driver y buscamos la carpeta donde dejamos los drivers.
11 Damos click para seleccionar el driver.
12 Pinguino debe aparecer como dispositivo reconocido
Para mas información de como instalarlo en sistemas de 64 bits, recomiendo leer esta guía.
lunes, 2 de abril de 2012
Instaladores Nuevo Pinguino IDE
Pinguino esta creciendo!!!!
Pinguino ya lanzo su IDE para trabajar con el microcontrolador de 32 bits
Se ha actualizado la pagina principal de pinguino, aqui dejo los enlaces mas relevantes.
Pagina nueva de pinguino
http://pinguino.cc/
Guias
Lenguaje http://pinguino.cc/download/doc/Pinguino_Cheat_Sheet.pdf
Datas de los micros http://pinguino.cc/download/doc/Datasheet/
Display gráfico http://pinguino.cc/download/doc/GLCD/
Esquemáticos http://pinguino.cc/download/schematics/
Que están en kicad http://kicad.sourceforge.net/wiki/Main_Page
Ejemplos
- Concurso 2010 http://pinguino.cc/download/doc/Examples/Contest/2010/
Linux
Software windows7
Antes de instalar leer la guía de instalación- Guia de instalacion de la libreria USB en win7 http://pinguino.cc/download/doc/libusb-windows7.pdf
- Libreria USB para win7 http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.1.0/libusb-win32-src-1.2.1.0.zip/download
- Driver de pinguino http://www.hackinglab.org/pinguino/download/driver%20pinguino%20windows/driver%20pinguino%20w7.zip
- El Ide http://code.google.com/p/pinguino32/downloads/list
- Bootloader http://pinguino.cc/download/bootloader/
miércoles, 28 de marzo de 2012
Introducción a SCILAB segunda parte
Este es el enlace de un vídeo introductorio muy bueno de SCILAB
Como calcular la derivada de una función http://www.youtube.com/watch?v=GvoNzep77jQ&feature=related/watch?v=GvoNzep77jQ&feature=related
Interfaz de usuario en SCILAB aquí hay un ejemplo http://www.frsn.utn.edu.ar/tl/
Este es de como se utiliza el GUI Builder para hacer interfaces de usuario
http://www.youtube.com/watch?v=A6bMURCVfb0&feature=related
sábado, 17 de marzo de 2012
Montaje De Sistemas Secuenciales Empleando Memorias
SISTEMAS SECUENCIALES DIGITALES
Una de las tantas formas de implementar un sistema digital, es por medio de una memoria tipo EEPROM o FLASH para allí hacer la parte lógica combinatoria. La parte digital secuencial es manejada por flip flop tipo D, que como se observara en el diagrama esquemático realimenta el circuito.
EJEMPLO DE UN SISTEMA SECUENCIAL
Problema
Hacer
un contador cíclico de 1 a 4. El sistema operara de la siguiente
manera:
Contara con dos pulsadores que
generaran las estradas digitales al sistema tal como se muestra en la
tabla. sean P0 y P1 los pulsadores.
Entradas del sistema
Contara con 3 bits de salida
para indicar los números de la cuenta en formato bcd (binario codificado decimal).
Salidas digitales
Diagrama De Estados
El contador propuesto es un contado cíclico, es decir que cuenta de 1 a 4 y nuevamente inicia en uno si la cuenta es de uno en uno.
Según como se propone en la primer tabla donde están las entras y la acción a realizar, se tiene el siguiente diagrama de estados.
Diagrama de estados
Asignación Binaria A Los Estados
Cada estado tendrá un valor binario único para distinguirlo de los demás.En este ejemplo tenemos 4 estados.
Tabla De Estados
La tabla de estados es una síntesis del diagrama de estados, la tabla tal como se representa en este ejemplo esta dada para se llevada a la memoria.
Tabla de estados
Mapa De Memoria
El mapa de memoria corresponde a los datos binarios que serán guardados, estos corresponden a la tabla de estados. El mapa de memoria es una transcripción de la tabla de estados para representar la parte combinatoria del sistema.
Mapa de memoria
Diagrama Esquemático
En el montaje real las entradas no utilizadas se conectan a tierra, no pueden quedar flotantes.
Diagrama esquemático
Montaje
Este es el esquema de montaje para implementar un sistema secuencial digital, empleando una memoria como dispositivo lógico programable y un flip flop D, para la realimentación de estados. En este circuito por el momento el ADC no cumple función alguna, pues no esta conectado a la memoria.
Recientemente un estudiante me dijo que el 74LS379 no es fácil de conseguir, así que le sugerí reemplazarlo por el 74LS175.
martes, 13 de marzo de 2012
Control de sentido de giro y velocidad para un motor DC
En este esquema utilizamos la entrada análoga 13 para leer el valor entregado por el potenciometro y así asignar este valor a la salida PWM del terminal 11.
Se lee el estado del pulsador en el terminal 21 configurado como entrada.
Con las salidas 0 y 1 controlamos el sentido de giro del motor.
Se utiliza para este ejemplo el puente H L298.
#define PIC18F4550 int velocidad; void setup(){ pinMode(21,INPUT); pinMode(0,OUTPUT); pinMode(1,OUTPUT); } void loop(){ velocidad=analogRead(13); if(digitalRead(21)){ digitalWrite(0,LOW); digitalWrite(1,HIGH); analogWrite(11,velocidad); }else{ digitalWrite(0,HIGH); digitalWrite(1,LOW); analogWrite(11,velocidad); } }
viernes, 2 de marzo de 2012
Pinguino Bot
| Pinguino Bot |
Solo utilizo cuatro terminales configurados como salidas digitales.
![]() |
| Modo de operación |
Aquí esta el código utilizado:
//Prototipos de las funciones utilizadas void adelante(); void atras(); void parar(); void giroDerecha(); void giroIzquierda(); //Configuracion void setup(void){ pinMode(0,OUTPUT); pinMode(1,OUTPUT); pinMode(2,OUTPUT); pinMode(3,OUTPUT); } //prueba de los diferentes movimientos void loop(void){ adelante(); delay(5000); giroDerecha(); delay(3000); adelante(); delay(3000); giroIzquierda(); delay(3000); atras(); delay(3000); parar(); delay(5000); } //funciones utilizadas void adelante(){ digitalWrite(0,LOW); digitalWrite(1,HIGH); digitalWrite(2,HIGH); digitalWrite(3,LOW); } void atras(){ digitalWrite(0,HIGH); digitalWrite(1,LOW); digitalWrite(2,LOW); digitalWrite(3,HIGH); } void parar(){ digitalWrite(0,LOW); digitalWrite(1,LOW); digitalWrite(2,LOW); digitalWrite(3,LOW); } void giroDerecha(){ digitalWrite(0,LOW); digitalWrite(1,HIGH); digitalWrite(2,LOW); digitalWrite(3,HIGH); } void giroIzquierda(){ digitalWrite(0,HIGH); digitalWrite(1,LOW); digitalWrite(2,HIGH); digitalWrite(3,LOW); }
sábado, 18 de febrero de 2012
viernes, 17 de febrero de 2012
Marcha Imperial Con Pinguino!!!
Para estrenar mi nueva tarjeta pinguino he colocado algo de música.
Gracias al siguiente enlace http://yeisoneng.blogspot.com/2011/09/marcha-imperial-con-pinguino_06.html.
Hice algunas modificaciones al código para la visualización utilizando en puerto B. En mi código la salida para el parlante esta en el terminal 11.
![]() |
| Montaje basico se puede emplear un parlante normal de 8 ohm y el transistor puede ser el popular 2n2222 |
#define RunLed PORTAbits.RA4 int speakerPin = 11; #define c 261 #define d 294 #define e 329 #define f 349 #define g 391 #define gS 415 #define a 440 #define aS 455 #define b 466 #define cH 523 #define cSH 554 #define dH 587 #define dSH 622 #define eH 659 #define fH 698 #define fSH 740 #define gH 784 #define gSH 830 #define aH 880 #define vua 255 #define vub 127 #define vuc 63 #define vud 31 #define vue 15 #define vuf 7 #define vug 3 long delayAmount; long loopTime; int x; void setup() { pinMode(speakerPin, OUTPUT); TRISB = 0; //establece speakerPin como salida } void beep (unsigned char speakerPin, int frequencyInHertz, long timeInMilliseconds, int vuLed) { frequencyInHertz; timeInMilliseconds; RunLed=LOW; PORTB = vuLed; delayAmount = (long)(1000000/frequencyInHertz); loopTime = (long)((timeInMilliseconds*1000)/(delayAmount*2)); for (x=0;x<loopTime;x++) { digitalWrite(speakerPin,HIGH); delayMicroseconds(delayAmount); digitalWrite(speakerPin,LOW); delayMicroseconds(delayAmount); } RunLed=HIGH; PORTB = 0; delay(20); //una pequeña pausa para que las notas suenen por separado } void march() { //una traducción de una partitura a frecuencia / tiempo (en milisegundos) //se usa 500 ms para un cuarto de nota beep(speakerPin, a, 500,vua); beep(speakerPin, a, 500,vua ); beep(speakerPin, a, 500,vua ); beep(speakerPin, f, 350,vuf ); beep(speakerPin, cH, 150,vuc ); beep(speakerPin, a, 500,vua ); beep(speakerPin, f, 350,vuf ); beep(speakerPin, cH, 150,vuc ); beep(speakerPin, a, 1000,vua ); //first bit beep(speakerPin, eH, 500,vue ); beep(speakerPin, eH, 500,vue ); beep(speakerPin, eH, 500,vue ); beep(speakerPin, fH, 350,vuf ); beep(speakerPin, cH, 150,vuc ); beep(speakerPin, gS, 500,vug ); beep(speakerPin, f, 350,vuf ); beep(speakerPin, cH, 150,vuc ); beep(speakerPin, a, 1000,vua ); //second bit... beep(speakerPin, aH, 500,vua ); beep(speakerPin, a, 350,vua ); beep(speakerPin, a, 150,vua ); beep(speakerPin, aH, 500,vua ); beep(speakerPin, gSH, 250,vug ); beep(speakerPin, gH, 250,vug ); beep(speakerPin, fSH, 125,vuf ); beep(speakerPin, fH, 125,vuf ); beep(speakerPin, fSH, 250,vuf ); delay(250); beep(speakerPin, aS, 250,vua ); beep(speakerPin, dSH, 500,vud ); beep(speakerPin, dH, 250,vud ); beep(speakerPin, cSH, 250,vuc ); //start of the interesting bit beep(speakerPin, cH, 125,vuc); beep(speakerPin, b, 125,vub); beep(speakerPin, cH, 250,vuc); delay(250); beep(speakerPin, f, 125,vuf); beep(speakerPin, gS, 500,vug ); beep(speakerPin, f, 375,vuf); beep(speakerPin, a, 125,vua ); beep(speakerPin, cH, 500,vuc ); beep(speakerPin, a, 375,vua ); beep(speakerPin, cH, 125,vuc ); beep(speakerPin, eH, 1000,vue ); beep(speakerPin, aH, 500,vua ); beep(speakerPin, a, 350,vua); beep(speakerPin, a, 150,vua); beep(speakerPin, aH, 500,vua); beep(speakerPin, gSH, 250,vug); beep(speakerPin, gH, 250,vug); beep(speakerPin, fSH, 125,vuf); beep(speakerPin, fH, 125,vuf); beep(speakerPin, fSH, 250,vuf); delay(250); beep(speakerPin, aS, 250,vua); beep(speakerPin, dSH, 500,vud); beep(speakerPin, dH, 250,vud); beep(speakerPin, cSH, 250,vuc); //repeat... repeat beep(speakerPin, cH, 125,vuc); beep(speakerPin, b, 125,vub); beep(speakerPin, cH, 250,vuc); delay(250); beep(speakerPin, f, 250,vuf); beep(speakerPin, gS, 500,vug); beep(speakerPin, f, 375,vuf); beep(speakerPin, cH, 125,vuc); beep(speakerPin, a, 500,vua); beep(speakerPin, f, 375,vuf); beep(speakerPin, c, 125,vuc); beep(speakerPin, a, 1000,vua); } void loop() // se ejecuta una y otra vez... { march(); }
Suscribirse a:
Entradas (Atom)
















