Polulu Micro Maestro 6 Guía De Usuario página 32

Tabla de contenido
58 54 50 47 44 42 41 40 40 41 43 46 49 52 56
all_frames
repeat
sub all_frames
begin
depth
while
100 times
0 servo
100 delay
repeat
return
En este código hemos escrito FRAME como subrutina usando el comando DEPTH que
automáticamente las lee desde la pila mientras no trabaja. Este programa usa 34 bytes para
almacenar 31 frames con una media de 1,2 bytes por frame. Puedes almacenar una secuencia con
900 posiciones diferentes en memoria usando el rey del script.
Secuencias suaves con GET_MOVING_STATE
Velocidad y aceleración pueden usarse para hacer las secuencias suaves. Sin embargo, un problema
común es que no sabes la cantidad de retardo entre frames para permitir que el servo pueda alcanzar
su posición final. Un ejemplo de cómo utilizar la función integrada de GET_MOVING_STATE
para hacer una secuencia de suave movimiento, en lugar de usar DELAY.
# This example uses speed y acceleration to make a smooth
# motion back y forth between 1 y 2 ms.
3 0 acceleration
30 0 speed
begin
4000 0 servo # set servo 0 to 1.00 ms
moving_wait
8000 0 servo # 2.00 ms
moving_wait
repeat
sub moving_wait
begin
get_moving_state
while
# wait until it is no longer moving
repeat
return
GET_MOVING_STATE devuelve un 1, siempre y cuando haya al menos un servo en movimiento,
lo que se puede utilizar cuando quieras esperar a que todos los movimiento se detengan antes de
proceder al siguiente paso del script.
Entrada analógica para controlar servos
Una característica importante del maestro es que puede ser usado para leer entradas de sensores, in-
terruptores y otros dispositivos. Como ejemplo, supongamos que queremos usar un potenciómetro
para controlar la posición de un servo. Conectar un potenciómetro para formar un divisor de tensión
entre 5 V y 0, con la toma central conectada al canal 1. Configurar el canal 1 como entrada, y exa-
minar la señal en la pestaña
ción que varía de 0 hasta 255 us cuando giras el potenciómetro de un lado a otro. En el script, este
rango corresponde a los números de 0 a 1023. Podemos ampliar este número hasta el rango del ser-
vo, cuando la posición llegue a este numero, todo en el bucle:
# Ajusta servo 0 a la posición basada en una entrada analógica.
begin
1 get_position
4 times 4000 plus # scale it to 4000-8092, approximately 1-2 ms
0 servo
# set servo 0 based to the value
repeat
Por otra parte, tal vez desees que el servo vaya otras posiciones en función del valor de entrada:
# Set the servo to 4000, 6000, or 8000 depending on an analog input.
begin
del Centro de Control Maestro. Debes ver el indicador de posi-
Status
# get the value of the pot, 0-1023
32
Tabla de contenido
loading

Este manual también es adecuado para:

Mini maestro 12Mini maestro 18Mini maestro 24

Tabla de contenido