domingo, 17 de abril de 2011

HCS08 - Motorola Freescale - Controlar Motor a pasos

CONTROLAR UN MOTOR A PASOS BIPOLAR
CON HCS08 y DRIVER L293B

* Micro HCS08
* Open Source BDM (o con lo que programes el micro)
* Driver (puente H) L293B
* Resistencias
* Motor a pasos (stepper motor) bipolar
*4 diodos

NOTA: puedes no usar los diodos (pero si hay una fuerte corriente inversa debido a los devanados del motor no me heches la culpa)

Controlaremos un motor a pasos bipolar usando nuestro micro motorola freescale, las conexionas son tal y como se muestra:





Es logico que al micro se alimenta con 5v, mientras que al motor lo alimentas CON UNA FUENTE APARTE de mayor voltaje, ni se te ocurra alimentarl los dos con la misma fuente

Yo por ejemplo para el micro use la que me proporcionaba la Open source bdm, directa de la USB, y para el motor use un cargador de 10v


El programa hace que motor de 10 vueltas hacia un lado, despues hacia el otro y despues se detenga

NOTA: el numero de vueltas siempre varia por el motor que se use, debido a la relacion step/revolution, o paso vuelta, es decir, el numero de pasos necesarios para el motor gire una vuelta completa, que varia con cada motor.

codigo:



mainLoop:
LDA   #$FF
STA   $03

;$F1 10 vueltas
;$DC 9 vueltas
;$C4 8 vueltas
;$AC 7 vueltas
;$94 6 vueltas
;$7D 5 vueltas
;$64 4 vueltas
;$4B 3 vueltas
;$32 2 vueltas
;$19 1 vuelta

LDA   #$F1
STA   $81
STA   $80

DER:        

feed_watchdog
LDA   #$09
STA   PTBD
BSR   DELAY
LDA   #$0A
STA   PTBD
BSR   DELAY
LDA   #$06
STA   PTBD
BSR   DELAY
LDA   #$05
STA   PTBD
BSR   DELAY

DBNZ $80,DER 
BRA   IZQ

IZQ:        

feed_watchdog
LDA   #$05
STA   PTBD
BSR   DELAY
LDA   #$06
STA   PTBD
BSR   DELAY
LDA   #$0A
STA   PTBD
BSR   DELAY
LDA   #$09
STA   PTBD
BSR   DELAY

DBNZ  $81,IZQ            

BRA  fuera   





DELAY       
LDHX  #$0000
RET1        
feed_watchdog
AIX   #$01
CPHX  #$0500
BNE   RET1

RTS

fuera:      feed_watchdog      
bra fuera

HCS08 - Motorola Freescale - Convertidor Analogico Digital

HCS08 y su Convertidor Analogico Digital
Sensor de Temperatura

Ahora les presento el codigo del convertidor analogico - digital:

REQUERIMIENTOS:

* Coloca 8 leds en el puerto B, es decir uno por pata, estos se encenderan de acuerdo a lo que reciba el convertidor.

* Coloca un potenciometro de forma divisor de voltaje en la entrada PTA1 (pata 25) del micro HCS08



En esta imagen se aprecia un divisor de voltaje hecho con
dos resistencias
En esta imagen, por medio de un potenciometro creamos el
divisor de voltaje de arriba
El chiste de crear un divisor de voltaje con el potenciometro es que al girar la perilla el voltaje por Vout (de la imagen de arriba) varie, asi se consigue comtrolar el voltaje que entra a PTA1 para poder muestrearlo en los leds.

Como habras entendido, Vout va conectado a la para 25 del micro (PTA1).

Esquematico:


Codigo:
; Insert your code here

;Entrada Analogica por PTA1            

;cabecera del programa
;*********************               
cabecera:
;declaracion puerto B coomo salida
LDA #$FF          ;cargamos $11111111=$FF
STA $03           ;lo colocamos en PTBDD para hacer PTBD de salida

;Configuracion del ADC
LDA #$90          ;Cargamos $90=10010000
STA ADCCFG        ;Colocamos en ADCCFG=bajo poder, clock /1,largo tiempo muestreo, resolucion 8 bits, 

LDA #$00
STA ADCSC2        

LDA     #$21        ;$21=00100001, COCO y AIEN desactivados, Activada conversion continua, Canal 1 seleccionado
STA     ADCSC1

;Inicia el main
;**************************
main:
LDA     ADCSC1          ;Se carga el contenido de ADCSC1 para verificar COCO
CMP     #$A1            ;Comparamos con $A1=%10100001 si igual Z=1,(COCO activado, AIEN desactivado, Conversion continua activada, Canal 1), 
BNE     main            ;si COCO no esta activado (Z=0), regresa (Branch) a main, con COCO debe ser: 

LDA ADCRL               ;cargamos la conversion
STA $02                 ;la colocamos en el puerto B
feed_watchdog
BRA main
;*************
;Termina el main

HCS08, LM35 Y DISP 7 SEGMENTOS
SENSOR DE TEMPERATURA

Se aprecia todo el circuito en si, junto con la HCS08 open source BDM


Esquematico


Un sensor de temperatura muy sencillo, se trata de desplegar la temperatura en dos dsiplay de 7 segmentos por medio de 2 drivers 7448.

REQUERIMIENTOS:
* 2 display 7 segmentos catodo comun
* 2 driver 7448 BCD a display 7 segmentos
* micro HCS08
* HCS08 open source BDM (o con lo que programes al micro

Conexiones:
* Del micro: PTB0 a PTB3 van al driver 7448 que controla las unidades
PTB4 a PTB7 van al driver 7448 que controla las decenas
(no hace falta decir que cada driver va a un display de 7 segmentos)
* La salida del LM35 va al PTA1 (pata 25) del micro




Codigo:




En la seccion de variables colocan esto:
; variable/data section
;
ORG    RAMStart         ; Insert your data definition here
ExampleVar: DS.B   1
arreglado:  equ     $83
convertido: equ     $84
i:          equ     $85
tope:       equ     $86

Y esto va como codigo principal del programa:

; Insert your code here
;Entrada Analogica por PTA1            

;cabecera del programa
;*********************               
cabecera:
;declaracion puerto B coomo salida
LDA #$FF          ;cargamos $11111111=$FF
STA $03           ;lo colocamos en PTBDD para hacer PTBD de salida

;Configuracion del ADC
LDA #%10010000          ;Cargamos $90=10010000
STA ADCCFG        ;Colocamos en ADCCFG=bajo poder, clock /1,largo tiempo muestreo, resolucion 8 bits, 

LDA #$00
STA ADCSC2        

LDA     #$21        ;$21=00100001, COCO y AIEN desactivados, Activada conversion continua, Canal 1 seleccionado
STA     ADCSC1

;inicializamos variables
LDA #$00
STA arreglado
STA convertido
STA i
STA tope

;main                                
;********************* 

main:
BSR convierte                    
BSR arregla
LDA arreglado
STA $02
BSR retardo
feed_watchdog
BRA main
;*********************

;convierte
;*********************
convierte:
LDA     ADCSC1          ;Se carga el contenido de ADCSC1 para verificar COCO
CMP     #$A1            ;Comparamos con $A1=%10100001 si igual Z=1,(COCO activado, AIEN desactivado, Conversion continua activada, Canal 1), 
BNE     convierte       ;si COCO no esta activado (Z=0), regresa (Branch) a main, con COCO debe ser: 

LDA ADCRL               ;cargamos la conversion
STA convertido          ;la colocamos en el puerto B
feed_watchdog
RTS
;*********************



;arregla
;*********************
arregla:
LDA convertido
ADD #$A
STA tope 

LDA #$00
STA arreglado
STA i

for:
feed_watchdog
LDA i
CMP tope
BEQ salirfor
LDA arreglado
ADD #$01
DAA
STA arreglado
INC i
BRA for

salirfor:
RTS                      
;*********************



;comenzamos con el codigo del retardo
;*************************                   
retardo:
LDA #$A            ;cargamos FF en la mem 100 y 101
STA $100
STA $101
STA $102

retardomain:

feed_watchdog
LDA $100             ;verificamos que la 100 llegue a 0 para asi terminar el retardo
CMP #$00
BEQ regreso

DECA                ;si no es cero, decrementamos en uno a A, cargamos FF en $91 y comenzamos el bucle del subretardo
STA $100

LDA #$78             ;reinicio del anidado
STA $101

subretardo:
feed_watchdog 

LDA $101
CMP #$00
BEQ retardomain

DECA
STA $101

LDA #$78
STA $102            ;renicio del anidado


subretardo1:

LDA $102
CMP #$00
BEQ subretardo

DECA
STA $102

BRA subretardo1

regreso:
RTS            
;**********************************
;Termina el retardo            

HCS08 - Motorola Freescale - Comunicacion Serial

HCS08, SERIAL, HIPERTERMINAL
Es lo que Necesitas


En este tutorial creare comunicacion por puerto serial con la computadora

primero necesitaremos que tu pc tenga instalada hiperterminal, si es windows XP

ya la trae por default, si tienes alguna version mas reciente (Vista, 7) puedes descargarte

el programa que yo uso como hiperterminal:

viernes, 8 de abril de 2011

Crea tu Mini Maquina de CNC con Arduino, Easy Driver y Ubuntu (Basada en Contraptor)


Estructura sugerida en la pagina de Contraptor http://www.contraptor.org/mini-cnc


Esta entrada esta dedicada a mis queridos compañeros de FIME

En muchas otras Universidades le llaman tambien Robot Cartesiano, o demas nombres.

Primero, si desean saber que es una maquina de CNC, o especificamente lo que haremos aqui

es una fresadora de CNC, aqui explico un poco:

http://es.wikipedia.org/wiki/Fresadora


domingo, 3 de abril de 2011

Como cambiar el Color de BackGround del Plot o Scope en Matlab


Buen dia amigos y lectores

Super cansados del MALDITO color negro de fondo en el Plot y/o Scope (Simulink) en Matlab

para cambiarlo libremente a tu gusto sigue estos sencillos pasos:

viernes, 1 de abril de 2011

Sensor de Fuerza con PIC, en CCS

Muy bien amigos y publico en General
142fc496eac1104b24ae30fdcb1cffa1.12746009667
Hace ya un rato realice un proyecto para una clase en mi universidad, crear un sensor de presion

aqui comparto mi diagrama, por si alguien necesita ayuda para elaborar uno.

LISTA DE MATERIALES:
* Amplificador Operacional LM741
* PIC16f877a (Con el mismo codigo sirve igual el PIC16f887)
*4 Resistencias de 1 Mega ohm
*1 Resistencia de 1 Kohm
*1 Potenciomentro de 5kohm
*2 capacitor de 22 pico Faradios
*Cristal de 4Mhz oscilador para el Pic
*1 Push Button
*1 Led
* 1 Resistencia de 330 ohm
* Pantalla LCD 16x2 (De la que tiene el driver Hitachi HD 44780 "que es ahora de las mas comunes"
*Galga de presion Flexiforce (http://www.tekscan.com/flexible-force-sensors)

->Si pueden alimentar al Opamp con una fuente de 8v en lugar de la de 5v da mejor resultado
->LA LCD y el PIC se alimentan con 5v, no alimentar con mas voltaje o las quemas

La galga, aqui en Monterrey Mexico yo la compre en: http://www.5hz-electronica.com/sensordepresinflexiforce-100lbs.aspx

El diagrama lo muestro a continuación:

Elgg, Crea tu Propia Red Social Libre, Como Instalar en UBUNTU


ELGG, LA RED SOCIAL LIBRE
142fc496eac1104b24ae30fdcb1cffa1.12746009667
Elgg es una plataforma de Servicios de red social de código abierto que ofrece Blogueo, trabajo en red, comunidad, recolección de noticias vías feeds e intercambio de archivos. Todo puede ser compartido entre los usuarios, utilizando los controles de acceso y puede ser catalogado mediante tags (etiquetas).






Como se puede ver, puedes tu tambien crear tu propia red social con Elgg, de una forma muy sencilla, solo debes tener una computadora destinada para ello bajo un dominio (que puede ser gratuito), y ya no necesitas si quiera una ip fija, puedes hacerle seguimiento a tu ip dinamica con no-ip.

Voy a colocar un mini TUTO de como crear tu red social de manera muy sencilla para UBUNTU, y albergando Elgg en APACHE, por tanto se debera tener LAMP perfectamente instalado