Vistas de página en total

jueves, 17 de mayo de 2012

Donde comprar material

Lugares para comprar material:

- Componentes electrónicos: Onda Radio y Diotrónic (Barcelona).

- Lego: Palau (Barcelona) y http://www.ro-botica.com/ (tienen tienda física en Barcelona).

- Arduino y componentes varios: http://www.bricogeek.com/, http://www.sparkfun.com/, http://www.adafruit.com/, http://www.cooking-hacks.com/ (hay que tener en cuenta que las tiendas de fuera de Europa sus productos pasan por aduana y cobran (roban) un 20% adicional).

- Picaxe (microcontroladores): http://www.techsupplies.co.uk/
- Placas electrónicas (robot seguidor Picaxe): http://www.robolot.org/

- Material diverso: http://www.conrad.com/ (sevomotores a buen precio, antes estaban muy baratos).

miércoles, 8 de febrero de 2012

Robot Hiperion (Parte 1)

El siguiente robot es un vehiculo multipropósito que sirve como pequeño robot explorador como seguidor de líneas, evitar obstáculos, etc.



El robot está construido sobre una plataforma mixta de Meccano de plástico con elementos estructurales de Meccano metálico. Dispone de dos servomotores modificados pra convertirlos en motores de CC con caja reductora y acoplados a sendas ruedas de modelismo que gracias a la goma que las recubre tienen una excelente tracción. La alimentación se realiza mediante 8 pilas AA o mediante un transformador 9-12 V. Dispone de dos interruptores uno para desconectar la parte de potencia y otro para la de control, lo que nos permite reprogramarlo sin que todo el sistema esté consumiendo energía.

Por lo que se refiere al control este recae sobre un Picaxe 28X montado sobre una placa comprada (http://www.robolot.org/). Esta placa es muy versatil y permite desde contruir un robot, montar un ascensor, etc.
Dispone de un driver de potencia (ULN2803) con ocho salidas con indicador led, 4 de las cuales también están conectadas a un driver de potencia específico para motores (L298N) que permite una entrega mayor de corriente. También dispone de 8 entradas (con indicador led) de las cuales 4 se pueden simular mediante pulsadores incorporados en la porpia placa. Tenemos también un emisor y receptor de infrarrojos, puerto de comunicaciones, entradas analógicas, 8 sensores CNY70 en la parte inferior, conectores de ampliación, conector para servomotor, etc. También se han colocado dos sensores analógicos Omron E3S-CD11 con ajuste y un sensor Sharp GP2D120 sobre el servomotor para darle movimiento y permitir barridos de la zona delantera del robot.

En esta placa he realizado una pequeñas modificaciones para poder implementar todo el hardware que necesitaba.

martes, 7 de febrero de 2012

Robot 3 patas (Parte 2)

Adjunto otras fotografías para poder apreciar mejor los detalles del diseño, tanto del cuerpo, las patas y la cabeza del robot.







En cuanto a la programación, es una programación muy sencilla que únicamente lo que hace es generar secuencia de movimientos a los motores y encender y apagar leds para que parezca que el robot baila.

El programa es el siguiente:

'Programa Robot CEO
'*****************************
'
'  PLACA Propia
'
'*****************************
'Sortides: Servo: 7-6-5-4-3-2
'  7: pota esq.
'  6: pota dre.
'  5: pota tra.
'  4: cap
'  1: led ull dre.
'  0: led ull esq.
'Entrades: In0: infrarojos
'
symbol t=300
symbol t1=10
inicio:
servo 4, 130
servo 7, 90
pause t1
servo 6, 150
pause t1
servo 5, 90
wait 3
high 0
high 1
'Estable
servo 7,130
pause t1
servo 6,110
pause t1
servo 5,130
pause t
servo 7,180
pause t1
servo 6,60
pause t1
servo 5,180
wait 1
servo 7,130
pause t1
servo 6,110
pause t1
servo 5,130
pause t

low 0
low 1
'Mou el cap
for b0=0 to 3
 servo 4, 80
 high 1
 pause 200

 servo 4, 180
 low 1
 high 0
 pause 200
 low 0
next b0
'Cap posicio central
servo 4, 130

high 0
high 1
'Puja i baixa seq.
b2=170
b3=90
for b1=0 to 100
 let b0=b2-b1
 servo 7,b0
 let b0=b3+b1
 servo 6,b0
 let b0=b2-b1
 servo 5,b0
 pause t1
next b1
'Puja i baixa
for b1=0 to 2
 servo 7, 170
 pause t1
 servo 6, 90
 pause t1
 servo 5, 170
 pause t

 servo 7, 150
 pause t1
 servo 6, 190
 pause t1
 servo 5, 150
 pause t

 servo 7, 130
 pause t1
 servo 6, 110
 pause t1
 servo 5, 130
 pause t

 servo 7, 150
 pause t1
 servo 6, 90
 pause t1
 servo 5, 150
 pause t
next b1
servo 7, 120
pause t1
servo 6, 120
pause t1
servo 5, 120
pause t
'Es mou per balanceix
for b1=0 to 2
 servo 7, 130
 pause t1
 servo 6, 130
 pause t

 servo 7, 100
 pause t1
 servo 6, 100
 pause t
next b1
servo 7, 140
pause t1
servo 6, 100
pause t1
servo 5, 100
pause t
'Camina
servo 5,160
pause 300
servo 5,130
pause 300
servo 5,160
pause 300
servo 5,130
pause 300
servo 5,160
pause 300
servo 5,130
goto inicio

Robot 3 patas (Parte 1)

El siguiente robot es un gracioso robot que mueve su cabeza y las tres patas, realizando graciosos bailes. Su aplicación práctica es un "poco tonta" pero resulta entretenido para empezar en el mundo de la robótica.



Está realizado sobre una estructura de Meccano y posee tres patas controladas por sendos servomotores, una cabeza que contiene otro servomotor, dos indicadores led que simulan ojos, un sistema de alimentación mediante 4 pilas AA con su portapilas plano, interruptor de alimentación con indicador led, receptor de infrarrojos, conector de programación y todo ello controlado por un Picaxe 18X.



Como se puede apreciar en la foto el diseño del robot es de lo más simple, así como su tarjeta de control que es de desarrollo propio. En la placa quedan dos salidas libre para poder conectar dos servomotores más si es necesario.

El esquema de la placa es el siguiente:



El servomotor de la cabeza está conectado en la salida 7 y los otros tres de las patas en la 6-5-4. Los leds de los ojos están conectados a las salida 0 y 1. Y el receptor de infrarrojos (LED4 en la placa) está conectado en la entrada 0 (entrada Infrain).

domingo, 5 de febrero de 2012

Proyectos en marcha (Parte 2)

- Coche teledirigido con Picaxe y Xbee.
- Hexapodo con Picaxe.
- GPS Datalogger con aduino.
- Robot orugas con arduino.
- Robot con ruedas 3D.
- RFID.
- Guante biónico con Flex Sensor.
- Robot Lego NXT Explorer 1 programado con Labview y NXT-G.
- Pantalla táctil con Arduino.
- Mando Wii con Arduino.
- Seguidor de líneas con Picaxe 08M y estructura de CD's.
- Brazo robótico Catherine.
- Ascensor 4 plantas con Picaxe 28x (Placa PLC).
- Brujula electrónica con Arduino.
- Robot con placa PLC.
- Robot explorador inteligente multifunción con Lego NXT + Vehiculo 4x4 + Placa propia I2C con sensores e indicadores: Programado con Labview.

Proyectos en marcha (Parte 1)

Hola a tod@s.

A continuación os pongo una lista con todos los proyectos que he empezado o que voy a empezar y tengo en mente. Haré una descripción muy breve y si alguien quiere colaborar y compartir información.... ya sabe... mensaje ... y a colaborar.

- Programación robots Moway: Ya he hecho algún programa con el Moway Gui y en C
- Programación del robot Pololu 3 PI Arduino: tengo varios programas en C basados en las librerias de Pololu.
- Interconexión del Pololu 3 PI Arduino con un Arduino Nano: Pendiente de comenzar aunque tengo el hardware a punto.
- Programación del  robot Pololu M3PI: Ya tengo montado sobre un Pololu un microcontrolador LPC1768 Cortex M3 pero falta realizar la programación.
- Robot 4 patas: Acabado y publicado en el blog.
- Potter: Acabado y publicado en el blog.
- Cámara web robotizada: Acabada y publicada en el blog.
- Robot 3 patas con cabeza. Acabado pero falta publicar en el blog.
- Robot basado en placa de sumo Robolot.org. Acabado pero falta publicar en el blog.
- Robots zipi y zape: Dos robots identicos que se comunican por infrarrojos y disponen de un microcontrolador Picaxe 18x. Tienen dos motores, una cabeza con un servomotor y un sensor analógico. La placa es de diseño propio. Falta revisar la electrónica y programar.
- Humanoide: Falta terminar y programar. Ya está preprogramado pero falta reprogramarlo.

viernes, 3 de febrero de 2012

Robot 4 patas (Parte 3)

A continuación está el programa del robot. Este programa genera movimientos a los motores que unidos a las patas simula el movimiento de un animal.

'Programa robot OCEANO
'*****************************
'
'        PLACA Propia
'
'*****************************
'Salidas:    Servo: 7-6-5-4-3-2-1-0           PataAbajo   PataCentro  PataArriba
'        7: pata delantera izquierda        160        130        100       
'        6: pata delantera derecha        100        130        160
'        5: pata trasera izquierda        100        130        160
'        4: pata trasera derecha            160        130        100
'        3: libre
'        2: libre
'        1: libre
'        0: libre
'       

symbol t=3

inicio:

'Equilibrio
servo 7, 130
servo 6, 130
servo 5, 130
servo 4, 130
wait t

'Baja las patas (sube el robot)
for b0=0 to 30
    b1=130+b0
    b2=130-b0
    servo 7,b1
    servo 6,b2
    servo 5,b2
    servo 4,b1
    servo 3,130    'evita saltos
    pause 100
next b0 

'Equilibrio
servo 7, 130
servo 6, 130
servo 5, 130
servo 4, 130
wait t

'Subir patas despacio
for b0=0 to 60
    b1=130-b0
    b2=130+b0
    servo 7,b1
    servo 6,b2
    servo 5,b2
    servo 4,b1
    servo 3,130    'evita saltos
    pause 80
next b0 

'Patas tocando horizontal
servo 7, 70
servo 6, 190
servo 5, 190
servo 4, 70
wait t

'Patas tocando horizontal
servo 7, 100
servo 6, 160
servo 5, 160
servo 4, 100
pause 1500

'Patas tocando horizontal
servo 7, 130
servo 6, 130
servo 5, 130
servo 4, 130
pause 1500

servo 7, 160
servo 6, 100
servo 5, 100
servo 4, 160
pause 1500

servo 7, 110
servo 6, 150
servo 5, 150
servo 4, 110
pause 1500

servo 7, 160
servo 6, 100
servo 5, 100
servo 4, 160
pause 1500

servo 7, 110
servo 6, 150
servo 5, 150
servo 4, 110
pause 1500

servo 7, 160
servo 6, 100
servo 5, 100
servo 4, 160
pause 1500

goto inicio


Para más información sobre la realización de la placa o sobre la programación ponerse en contacto a través del blog.

Robot 4 patas (Parte 2)

En las siguientes imágenes se pueden ver los detalles del robot:







Como se puede ver en las fotos las patas del robot pueden desplazarse verticalmente y según se realicen los movimientos de ellas el robot se "desplaza".

Robot 4 patas (Parte 1)

Este robot está construido sobre una estrectura realizada con Meccano y posee 4 patas accionadas por sendos motores.

Los motores son 4 servomotores Hitec HS-311.

El cerebro es un Picaxe 18x:

Dispone además del conector de comunicaciones con el PC, un interruptor para poner encender/apagar el robot, un indicador led de alimentación, un sistema de alimentación con 4 pilas AA, 8 salidas servomotor (quedan 4 libres con una resistencia en serie de 330 ohmios). Si se quiere ampliar con sensores se pueden conectar hasta 5 de ellos.

Los motores estan conectados a las salidas 4 a 7 del microcontrolador.

La placa es tan sencilla que no hice ningún esquema sino que la realice directamente.

A continuación se pueden ver las fotos del resultado final:

lunes, 30 de enero de 2012

Y el resultado final es el siguiente, en el que pueden ver los diferentes elementos del plotter.









Aquí se pueden apreciar las dos placas de control, así como la alimentación de ellas. Para realizar el conexionado se ha utilizado cable paralelo con terminales de fabricación propia (y un poco laborioso).



A continuación sólo falta diseñar la parte de software que realizará el control del plotter. Debe poder manejarlo en manual mediante un joystick y con un regulador de velocidad, limitando los movimientos a los extremos de los ejes del plotter. El eje Z se mueve pulsando el joystick que contiene un microinterruptor. En automatico he diseñado diferentes subrutinas para poder coger y dejar los 7 bolígrafos de colores de los que disponen y toto referenciado sobre un punto de coordenadas (0,0) que está situado en la esquina superior izquierda.

El programa está a continuación:

'****************************************************
'
'    APLICACION PARA EL CONTROL DE UN PLOTTER
'
'    Autor: Fernando Hernandez
'
'****************************************************

'Definicion de simbolos:
symbol t=2
'symbol tiempo=100
symbol tiempo1=50
'****************************************************

'Definicion e inicializacion de variables:
b0=0        'leer teclas bit0 a bit 7
b1=0        'reserva
b2=0        'eje X manual
b3=0        'eje Y manual
b4=0        'pulsador manual
b5=0        'velocidad manual

b6=0        'FC1 eje Y
b7=0        'FC2 eje X
b8=0        '0 Manual / 255 Automatico
b9=0        'Contador
b10=0        'Cotador eje X: w5
b11=0
b12=0        'Contador eje Y: w6
b13=0       

b14=0        'w7 variable X secuencia puntas
b15=0
b16=0        'w8 variable Y secuencua puntas
b17=0
b18=0
b19=0

'****************************************************

'Incicializacion bus I2C indicadores leds pulsadores del panel:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (000000)    'apaga los leds
pause tiempo1
'****************************************************

'Parpadean los leds Alarm y Pen
for b9=0 to 10
    gosub led_alarm_on    'enciende el led ALARM
    gosub led_pen_on        'enciende el led PEN
    pause 200
    gosub led_alarm_off
    gosub led_pen_off
    pause 100
next b9
'****************************************************

'***************************   PROGRAMA PRINCIPAL   *****************************
main:

readadc 7, b8

if b8>128 then gosub automatico
if b8<128 then gosub manual

goto main
'********************************************************************************

'************* MODOS DE FUNCIONAMIENTO: MANUAL / AUTOMATICO *********************

'************************************** MODO MANUAL
manual:
high portc 7        'led indicador modo de funcionamiento
low portc 6

if pin0=1 then gosub entrada0    'arriba
if pin1=1 then gosub entrada1    'abajo
if pin2=1 then gosub entrada2    'derecha
if pin3=1 then gosub entrada3    'izquierda
if pin4=1 then gosub entrada4    'P2
if pin5=1 then gosub entrada5    'P1
if pin6=1 then gosub entrada6    'Enter
if pin7=1 then gosub entrada7    'Pen

if pin0=0 and pin1=0 and pin2=0 and pin3=0 and pin4=0 and pin5=0 and pin6=0 and pin7=0 then gosub entrada_off
 
readadc 0,b2    'eje X manual
readadc 1,b3    'eje Y manual
readadc 2,b4    'pulsador manual
readadc 3,b5    'velocidad manual

readadc 5,b6    'FC1    eje Y (254 tope)
readadc 6,b7    'FC2    eje X (254 tope)

if b2>200 then gosub motor_pap1iz    'izquierda eje X
if b2<100 then gosub motor_pap1de    'derecha eje X
if b3<100 then gosub motor_pap2ar    'arriba eje Y
if b3>200 then gosub motor_pap2ab    'abajo eje Y

if b4>128 then gosub sube_ejeZ    'sube eje Z
if b4<128then gosub baja_ejeZ        'baja eje Z

'debug

return
'****************************************************


'************************************** MODO AUTOMATICO
automatico:
high portc 6        'led indicador modo de funcionamiento
low portc 7

gosub origen
gosub lapiz1_coger
gosub origen
gosub lapiz1_dejar
gosub origen
'gosub lapiz2_coger
'gosub origen
'gosub lapiz2_dejar
'gosub origen
'gosub lapiz3_coger
'gosub origen
'gosub lapiz3_dejar
'gosub origen
'gosub lapiz4_coger
'gosub origen
'gosub lapiz4_dejar
'gosub origen
'gosub lapiz5_coger
'gosub origen
'gosub lapiz5_dejar
'gosub origen
'gosub lapiz6_coger
'gosub origen
'gosub lapiz6_dejar
'gosub origen
'gosub lapiz7_coger
'gosub origen
'gosub lapiz7_dejar
'gosub origen

end

return
'****************************************************

'************************ SUBRUTINAS **************************

entrada0:
bit0=1
gosub led_tecla0
return

entrada1:
bit1=1
gosub led_tecla1
return

entrada2:
bit2=1
gosub led_tecla2
return

entrada3:
bit3=1
gosub led_tecla3
return

entrada4:
bit4=1
gosub led_tecla4
return

entrada5:
bit5=1
gosub led_tecla5
return

entrada6:
bit6=1
gosub led_tecla6
return

entrada7:
bit7=1
gosub led_tecla7
return

entrada_off:
b0=0
gosub led_tecla_apaga
return
'****************************************************

'***** LEDS- TECLAS *****
led_tecla_apaga:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (000000)
return

led_tecla0:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (%10000000)
pause tiempo1
return

led_tecla1:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (%01000000)
pause tiempo1
return

led_tecla2:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (100000)
pause tiempo1
return

led_tecla3:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (010000)
pause tiempo1
return

led_tecla4:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (001000)
pause tiempo1
return

led_tecla5:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (000100)
pause tiempo1
return

led_tecla6:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (000010)
pause tiempo1
return

led_tecla7:
i2cslave %01000000,i2cslow,i2cbyte    'Define PFC8574 barra leds I/O Expander
writei2c (000001)
pause tiempo1
return

led_pen_on:
low portc 0
return

led_pen_off:
high portc 0
return

led_alarm_on:
low portc 1
return

led_alarm_off:
high portc 1
return


'****************************************************




'******* MOTOR PASO A PASO 1 ********
motor_pap1iz:
gosub step_1a
gosub step_1a1
gosub step_1b
gosub step_1b1
gosub step_1c
gosub step_1c1
gosub step_1d
gosub step_1d1
w5=w5-1
return

motor_pap1de:
gosub step_1d1
gosub step_1d
gosub step_1c1
gosub step_1c
gosub step_1b1
gosub step_1b
gosub step_1a1
gosub step_1a
w5=w5+1
return

step_1a:
high 7
low 6
low 5
high 4
pause t
return

step_1a1:
high 7
high 6
low 5
high 4
pause t
return

step_1b:
low 7
high 6
low 5
high 4
pause t
return

step_1b1:
low 7
high 6
high 5
high 4
pause t
return

step_1c:
low 7
high 6
high 5
low 4
pause t
return

step_1c1:
high 7
high 6
high 5
low 4
pause t
return

step_1d:
high 7
low 6
high 5
low 4
pause t
return

step_1d1:
high 7
low 6
high 5
high 4
pause t
return
'****************************************************

'******* MOTOR PASO A PASO 2: con pasos intermedios ********
motor_pap2ar:
gosub step_2a
gosub step_2a1
gosub step_2b
gosub step_2b1
gosub step_2c
gosub step_2c1
gosub step_2d
gosub step_2d
w6=w6-1
return

motor_pap2ab:
gosub step_2d1
gosub step_2d
gosub step_2c1
gosub step_2c
gosub step_2b1
gosub step_2b
gosub step_2a1
gosub step_2a
w6=w6+1
return

step_2a:
high 3
low 2
low 1
high 0
pause t
return

step_2a1:
high 3
high 2
low 1
high 0
pause t
return

step_2b:
low 3
high 2
low 1
high 0
pause t
return

step_2b1:
low 3
high 2
high 1
high 0
pause t
return

step_2c:
low 3
high 2
high 1
low 0
pause t
return

step_2c1:
high 3
high 2
high 1
low 0
pause t
return

step_2d:
high 3
low 2
high 1
low 0
pause t
return

step_2d1:
high 3
low 2
high 1
high 0
pause t
return
'****************************************************

parar_motores:
b6=254
b7=254

w7=0
w8=0

high 7
high 6
high 5
high 4
high 3
high 2
high 1
high 0
return

'********* ELECTROIMAN EJE Z ********
sube_ejeZ:
high portc 5
return

baja_ejeZ:
low portc 5
return
'****************************************************

'********* COORDENADAS ********
origen:    '(0,0)
readadc 5,b6
readadc 6,b7

do while b6<254 or b7<254
readadc 5,b6
readadc 6,b7
if b6<200 then gosub motor_pap2ar
if b6>200 and  b7<200 then gosub motor_pap1iz
if b6>200 and b7>200 then gosub parar_motores
loop 

wait 1
return

'*********************************
lapiz1_coger:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 62 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=62 to 87 step 1
gosub motor_pap2ab
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz1_dejar:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 87 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=87 to 62 step -1
gosub motor_pap2ar
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7

return

'*********************************
lapiz2_coger:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 148 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=148 to 173 step 1
gosub motor_pap2ab
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz2_dejar:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 173 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=173 to 148 step -1
gosub motor_pap2ar
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz3_coger:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 244 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=244 to 269 step 1
gosub motor_pap2ab
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz3_dejar:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 269 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=269 to 244 step -1
gosub motor_pap2ar
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz4_coger:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 332 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=332 to 357 step 1
gosub motor_pap2ab
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz4_dejar:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 357 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=357 to 332 step -1
gosub motor_pap2ar
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz5_coger:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 419 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=419 to 444 step 1
gosub motor_pap2ab
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz5_dejar:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 444 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=444 to 419 step -1
gosub motor_pap2ar
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz6_coger:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 508 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=508 to 533 step 1
gosub motor_pap2ab
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz6_dejar:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 533 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=533 to 508 step -1
gosub motor_pap2ar
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz7_coger:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 597 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=597 to 622 step 1
gosub motor_pap2ab
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

'*********************************
lapiz7_dejar:
for w7=0 to 60 step 1
gosub motor_pap1de
next w7
for w8=0 to 622 step 1
gosub motor_pap2ab
next w8
for w7=60 to 10 step -1
gosub motor_pap1iz
next w7
for w8=622 to 597 step -1
gosub motor_pap2ar
next w8
for w7=10 to 60 step 1
gosub motor_pap1de
next w7
return

Si alguien necesita los esquemas de las placas los tengo diseñados con Crocodile.

martes, 24 de enero de 2012

Plotter (Parte 3)

Una vez desmontado todo el plotter comienza la tarea de identificación de componentes. Para esta tarea necesitamos un multimetro (tester), una hoja para apuntar todos los datos y mucha, mucha paciencia.

Después de dedicar muchas horas probando todos los elementos tenemos toda la información.

Los resultados obtenidos se pueden ver en el siguiente esquema:




Con estos resultados asignamos a nuestro microcontrolador Picaxe las entradas y salidas que vamos a utilizar.

Entradas:
joystick manual eje X
joystick manual eje Y
pulsador eje Z
potencimetro velocidad manual
Final de Carrera eje Y (posición 0)
Final de Carrera eje X (posición 0)
Interrptor manual/automático
Pusadores del panel de control del plotter (8 teclas)

Salidas:
led PEN
led ALARM
bus i2c (2 lineas)
relé eje Z
led automático
led manual
4 salidas motor paso a paso Eje X
4 salidas motor paso a paso Eje Y



Para no complicar mucho el montaje y ahorrar dinero y tiempo utilizaremos la fuente de alimentación interna que viene con el plotter y su interruptor de puesta en marcha.

Esta fuente nos servirá para alimentar a los motores y la parte de control (por seguridad) la alimentaremos a parte mediante 4 pilas AA.

Plotter (Parte 2)

Primero debemos realizar Ingenieria inversa, es decir, determinar como funcionan y como está conectado todo el plotter.

Para ello debemos desmontar el plotter. A continuación se detallan los pasos:












Desmontamos todas las tapas: posterior, inferior y lateral....
Y, por último, el panel de pulsadores.




Ya tenemos todo desmontado y a punto para empezar a montar el nuevo hardware y software que hemos diseñado!

Plotter (Parte 1)

El siguiente proyecto consiste en convertir un plotter antiguo y que no funciona su sistema de control en un plotter nuevo en el que hemos substituido todo su hardware y software de control por uno propio.
Para ello utilizaremos una placa de Picaxe, en concreto la placa para el Picaxe 40X.

A esta placa le hemos añadido una placa de control propia que nos permite controlar el plotter en manual (mediante un joystick) o automático mediante un programa predeterminado. En esta placa tambien estan los drivers de potencia para los motores paso a paso, finales de carrera, electroimán para subir y bajar el lápiz, diodos indicativos, control para el panel táctil propio del plotter, etc.

El plotter que vamos a utilizar es un plotter que tiene dos servomotores para los ejes X e Y y un electroimán para el eje Z.