miércoles, 15 de junio de 2011

EJERCICIO Nº 5: Timbres y zumbadores electrónicos

Los timbres emiten un sonido cuando están conectados a una fuente de alimentación. Este sonido normalmente es “fijo” a una frecuencia determinada; así, los timbres sólo pueden emitir un solo “tono”. Los zumbadores electrónicos usan un tipo de sistema diferente para emitir sonidos y pueden ser utilizados para emitir sonidos en diferentes tonos al proveerlos de una salida “pulsada”.


Para probar este programa se debe instalas un zumbador electrónico (SPE002) en el tablero tutorial. Para hacer esto, se instalan los conectores del zumbador, en la entrada marcada con la palabra PIEZO, ubicada aproximadamente en el centro del tablero tutorial. Luego, se suelda el cable rojo en el agujero marcado “+” y el cable negro en el agujero marcado con “-”.
El sistema PICAXE puede crear automáticamente sonidos de diferentes frecuencias utilizando el comando sound.


main:

sound 6, (50,100) `emitir un sonido en salida 6 con tono 50 y duración 100
sound 6, (100,100) `emitir un sonido en salida 6 con
sound 6, (120,100) `emitir un sonido en sali

pause 1000 `esperar 1 segundo
goto main `saltar al inicio del programa (main)

En el programa, el primer número indica el número de pin (en el tablero tutorial el pin de salida 6 es el utilizado). El siguiente número es el tono, seguido por último de la duración del sonido. Mientras más alto sea el número de tono, mayor será la “altura tonal” del sonido (hay que tener precaución porque algunos zumbadores no pueden reproducir sonidos mayores de 127 y puede que no sean escuchados).
El siguiente programa utiliza un bucle for…next para producir 120 sonidos diferentes.

main:

for b0 = 1 to 120 `iniciar un bucle for.next

sound 6, (b0,50) `emitir sonido en la salida 6 con tono b0 y duración 50

next b0 `siguiente b0

end

El número almacenado en la variable b0 aumenta 1 unidad en cada bucle (1-2-3, etc.). Por consiguiente, al utilizar la variable b0 para asignar el tono, el mismo puede ser cambiado en cada bucle.
El siguiente programa realiza la misma función pero cambiando el tono en orden descendente, es decir de 120 a 1.

main:

for b0 = 120 to 1 step -1 `iniciar bucle for.next (en cuenta regresiva)

sound 6, (b0,50) `emitir sonido salida 6 (tonob0- durac.50)

next b0 `siguiente b0

end

El siguiente programa emite todos los 256 sonidos posibles:

main:

sound 6, (b0,50) `emitir sonido en la salida 6

let b0 = b0 + 1 `sumar 1 al valor de la variable b0

goto main `ir a inicio del programa (main)

En este último caso el programa es ejecutado indefinidamente. Sin embargo, es importante comprender como el PICAXE ejecuta las operaciones matemáticas.
El PICAXE sólo interpreta números bytes, o sea números enteros del 0 al 255. No pude interpretar fracciones, ni números negativos, ni números mayores de 255. Así, si se trata de sumar 1 a 255, el PICAXE saltará de nuevo a 0. Por consiguiente, en el programa anterior, el valor de la variable b0 se comportará de la siguiente manera mientras el programa se ejecuta: …252-253-254-255-0-1-2-etc.

EJERCICIO Nº 4: Controlando la velocidad de un motor

Debido a que el sistema PICAXE opera muy rápidamente, es posible controlar la velocidad de motores, encendiéndolos y apagándolos muy rápidamente. Este tipo de control se conoce como PWM (Pulse Width Modulation- Modulación de la anchura del impulso). La PWM es una buena técnica de control ya que permite a los motores operar a bajas velocidades manteniendo un alto par motor (fuerza de giro). La PWM se utiliza con frecuencia en muchas aplicaciones, por ejemplo, para controlar la velocidad de taladros y destornilladores eléctricos. Para que la PWM funcione correctamente, se necesitan motores de alta calidad. Los programas aquí mostrados están diseñados para motores solares y pueda que no funcionen correctamente si se utilizan con motores de juguetes baratos.




symbol mark1 = b6 `renombrar variables
symbol space1 = b7
symbol mark2 = b8
symbol space2 = b9

let mark1 = 2 `precargar mark1/space1 relación 2:10 (1:5)
let space1 = 10

let mark 2 = 20 `precargar mark2/space2 relación 20:10 (2:1)
let space 2 = 10

main:
for b2 = 1 to 200 `iniciar un bucle for.next
high 0 `encender motor
pause mark1 `esperar timepo indicado por mark1
low 0 `apagar motor
pause space1 `esperar tiempo indicado por space1
next b2 `siguiente b2
pause 2000 `detener motor por 2 segundos
for b2 = 1 to 200 `iniciar un bucle for.next
high 0 `encender motor
pause mark2 `esperar tiempo indicado por mark2
low 0 `apagar motor
next b2 `siguiente b2
pause 2000 `detener motor por 2 segundos
goto main

viernes, 18 de marzo de 2011

Testeamos el sensor de luz

'En este programa testeamos el valor del sensor de luz.
'En función del intervalo de intensidad donde se encuentre visualiza
'un número del 0 al 9

main:

low 7,6,5,4,3,2,1,0
readadc 2,b0

if b0 > 150 then nueve
if b0 > 135 then ocho
if b0 > 120 then siete
if b0 > 105 then seis
if b0 > 90 then cinco
if b0 > 75 then cuatro
if b0 > 60 then tres
if b0 > 45 then dos
if b0 > 30 then uno
if b0 < 30 then cero

goto main

nueve:
high 6,5,2,1,0
goto main

ocho:
high 6,5,4,3,2,1,0
goto main

siete:
high 2,1,0
goto main

seis:
high 6,5,4,3,2
goto main

cinco:
high 6,5,3,2,0
goto main

cuatro:
high 6,5,2,1
goto main

tres:
high 6,3,2,1,0
goto main

dos:
high 6,4,3,1,0
goto main

uno:
high 1,2
goto main

cero:
high 5,4,3,2,1,0
goto main

Visualizamos el nº del pulsador presionado

'Este programa visualiza un 6 o un 7 mientras sean pulsados los interruptores
'6 o 7 (pin6 o pin7) respectivamente
'No visualiza nada si no se pulsan

main:

low 6,5,4,3,2,1,0

if pin7 = 1 then enciende7
if pin6 = 1 then enciende6

goto main

enciende7:

high 2,1,0
low 6,5,4,3

goto main

enciende6:

high 6,5,4,3,2
low 1,0

goto main

Emitimos un sonido controlado por bucle y frecuencia

'En este programa emitimos un sonido por el buzzer conectado a la salida 6 (PIEZ0)
'El sonido aumenta de frecuencia dentro de la escala propia de Picaxe
'Repite una y otra vez el sonido en un bucle infinito
'Doy saltos de 5 en 5 en la frecuencia para que vaya algo más rápido

main:

for b0 = 1 to 127 step 5
sound 6,(b0,1)
next b0

goto main

Programa CONTADOR infinito. Sustituto del EJERCICIO Nº 8 para la PICAXE-18M2

'Este programa permite visualizar los números del 0 al 9 en un bucle infinito

'Substituye la instrucción - let pins=%* - porque en Picaxe-18 no funciona


main:

high 5,4,3,2,1,0 'dibuja el 0

pause 500 'espera medio segundo

low 7,6,5,4,3,2,1,0 'borra todo

high 1,2 'dibuja el 1

pause 500

low 7,6,5,4,3,2,1,0

high 6,4,3,1,0 'dibuja el 2

pause 500

low 7,6,5,4,3,2,1,0

high 6,3,2,1,0 'dibuja el 3

pause 500

low 7,6,5,4,3,2,1,0

high 6,5,2,1

pause 500

low 7,6,5,4,3,2,1,0

high 6,5,3,2,0

pause 500

low 7,6,5,4,3,2,1,0

high 6,5,4,3,2

pause 500

low 7,6,5,4,3,2,1,0

high 2,1,0

pause 500

low 7,6,5,4,3,2,1,0

high 6,5,4,3,2,1,0

pause 500

low 7,6,5,4,3,2,1,0

high 6,5,2,1,0

pause 500

low 7,6,5,4,3,2,1,0

goto main

viernes, 4 de marzo de 2011

EJERCICIO Nº 3: Bucles For…Next

Con frecuencia es útil repetir una parte del programa varias veces, por ejemplo, al encender/apagar sucesivamente un diodo LED (Light Emitting Diode – Diodo Emisor de Luz). Para estos casos podemos utilizar un bucle for…next.

Este programa puede encender y apagar 15 veces el diodo LED conectado al pin de la salida 7. El número de veces que el código debe ser repetido es almacenado, usando la variable b0 (el PICAXE tiene 14 variables de 1 byte para uso general, nombrados de b0 a b13), en la memoria RAM del chip PICAXE. Estas variables pueden ser renombradas usando el comando symbol con el fin de hacerlas más fáciles de recordar.

symbol counter = b0 `definir la variable “counter” como b0

symbol dp = 7 `asignar al pin 7 con el “dp”

main:

for counter = 1 to 15 `iniciar un bucle for.next

high dp `encender pin 7

pause 500 `esperar 0.5 segundos

low dp `apaga pin 7

pause 500 `esperar 0.5 segundos

next counter `siguiente counter (b0)

end `fin del programa

Si nos fijamos, estamos usando los espacios en blanco para mostrar claramente todos los comandos contenidos entre los comandos for y next.

EJERCICIO Nº 2: Utilizando el comando Symbol

Algunas veces es difícil recordar qué pines están conectados a qué dispositivos. El comando symbol puede en estos casos ser utilizado al inicio del programa para renombrar a entradas y salidas. Conectaremos un timbre externo al pin de salida 7.

symbol dp = 7 `renombrar salida 7 “dp” (punto decimal)

symbol buzzer = 1 `renombrar salida 1 “buzzer” (timbre)

main: `hacer una etiqueta llamada “main”

high dp `LED encendido

low buzzer `timbre apagado

wait 1 `esperar 1 segundo

low dp `LED apagado

high buzzer `timbre encendido

wait 1 `esperar 1 segindo

goto main `regresar a main

Como habrás observado los comentarios se colocan tras un apóstrofe (`), esto facilita mucho la comprensión del programa, solamente sirven para eso, son ignorados por el ordenador al descargar el programa.

La etiqueta “main” puede ser cualquier palabra (con la excepción de palabras clave como por ejemplo “switch) pero deben empezar con una letra. La etiqueta definida por primera vez debe llevar al final dos puntos (:), esto indica al ordenador que la palabra es una nueva etiqueta.

Este programa utiliza el comando wait. Los comandos wait y pause se utilizan para crear retardos o tiempos muertos. Sin embargo el comando wait puede ser utilizado únicamente con segundos enteros, mientras que pause se puede utilizar para retardos más cortos, éstos se asignan en milésimas de segundo. Al comando wait se le pueden asignar números del 1 al 65, los cuales deben escribirse posteriormente al comando. Al comando pause se le pueden asignar números entre 1 y 65535.

Para usar una buena técnica de programación debemos usar tabulaciones (o espacios) al inicio de líneas sin etiquetas, de manera que los comandos estén alineados. El término “espacios en blanco” es utilizado por programadores para definir tabulaciones, espacios y líneas en blanco. Dichos “espacios en blanco”, utilizados correctamente, hacen al programa mucho más fácil de leer y entender.

Nota:

Algunas versiones antiguas de lenguaje BASIC utilizan “número de línea” en vez de etiquetas para trabajar con los comandos goto. Desafortunadamente, este sistema puede presentar serios inconvenientes ya que si el programa necesita ser modificado con posterioridad, agregando o eliminando líneas, todos los números de líneas posteriores deben ser modificados. El sistema de etiquetas que se utiliza actualmente en las versiones modernas de BASIC supera este problema automáticamente.

jueves, 3 de marzo de 2011

EJERCICIO Nº 1: Nuestro primer programa

Vamos a realizar un programa que encienda y apague la salida 7 cada segundo. Cuando se descarga el programa se encenderá el punto decimal del display de 7 segmentos del tablero, debe encenderse y apagarse cada segundo y el LED que se la ha conectado a la salida 7.






























main:
high 7
pause 1000
low 7
pause 1000
goto main
Este programa utiliza los comandos high y low para controlar el pin 7 de salida 7, y utiliza el comando de pause para causar un retardo (1000 ms= 1 segundo).
El último comando el goto hace que el programa salte a la etiqueta main, que es el comienzo del programa. Esto significa que el programa es un bucle perpetuo. Atención a que tras la palabra main hay dos puntos, esto indica al ordenador que la palabra es una etiqueta.
Instrucciones detalladas:
1. Conecte el cable PICAXE al puerto USB (que hayamos configurado).
2. Ejecute el programa PICAXE Programming Edition.
3. En Opciones en la pestaña modo PICAXE-18. En la pestaña puerto serie, escoger el puerto configurado.
4. Escribir el programa anterior.
5. Hay que asegurarse de que la tarjeta está conectada a las baterías.
6. Se selecciona PICAXE>Ejecutar. Una barra de descarga de programa debe aparecer mientras se descarga el programa. Al terminar el programa comienza a ejecutarse automáticamente.
Si todo va bien habéis conseguido controlar una pequeña luz con un programa de ordenador, el primer paso para controlar nuestros proyectos reales de Tecnología desde el ordenador. Estamos conectando el mundo virtual de nuestro ordenador con el mundo real.
Suerte y saludos.

Lo segundo instalar el Editor de Programa PICAXE y configurar el cable USB

Cuando insertéis el CD saldrá:









Le dáis al botón "Install de PICAXE Programming Editor" y el editor se instalará automáticamente. Luego reiniciáis el ordenador.
Lo siguiente es poner la placa conextada al ordenador mediante el cable USB, bien conectada a las pilas y luego abrimos el editor y nos saldrá una ventana de "Opciones" como esta:









En "Modo" seleccionáis "PICAXE-18M2", y le dáis a "Aplicar".
Luego:


En "Puerto Serie" clickáis es botón de "Device Manager" os saldrá el "Administrador de Tareas" y pinchando sobre "AXE27USB" que os aparecerá en "Otros Dispositivos" o en "Puertos COM y LPT", pincháis sobre ella con el botón derecho y actualizáis el controlador utilizando el "USB_ Drivers _AXE027" que viene en el CD. Volvéis a actualizar el ordenador.
Y esto último no sé si es estrictamente necesario, pero debéis instalar el driver que viene en la carpeta del CD "USB_Drivers_USB010". Y Reiniciáis de nuevo.
Con todo esto podemos empezar con nuestras prácticas de programación en BASIC para PICAXE.
Saludos y contadme en colabor@ cómo os va.

martes, 22 de febrero de 2011

Lo primero soldar las clemas

Os remito a una entrada de la página de Santiago en donde explica muy bien como se sueldan.
La tutorial también es conveniente etiquetarla, yo en lugar de cinta de carrocero he utilizado etiquetas normales y las he recortado poniéndolas en el lateral de las clemas.



jueves, 27 de enero de 2011

Recursos interesantes

He encontrado dos recursos que nos pueden ayudar.

Uno es un curso que organizarón un Centro de Formación de profesores de Galicia en Lugo:


Otro es una página del un Cep de Castilla-La Mancha en Ciudad Real: