You are on page 1of 41

Pololu Maestro servocontrol desde USB

Gua de usuario
Pololu Maestro servocontrol.................................................................................................................1 Gua de usuario.................................................................................................................................1 1. Informacin general......................................................................................................................2 1.a. Micro Maestro pins y componentes.......................................................................................4 1.b. Mini Maestro pins y componentes........................................................................................ 5 1.c. Indicadores !"s.................................................................................................................. # 1.d. $istemas operativos soportados.............................................................................................% 2. &ontactando con Pololu................................................................................................................% '. Primeros pasos..............................................................................................................................% '.a. Instalacin de los drivers y soft(are en )indo(s................................................................ % '.b. Instalacin de drivers y soft(are en inu*............................................................................+ '.c. ,so del Maestro sin ,$-.................................................................................................... 1. 4. ,so del Maestro &ontrol &enter.................................................................................................1. 4.a. !stado y control en tiempo real........................................................................................... 1. 4.b. !rrores................................................................................................................................. 11 4.c. $ecuencias............................................................................................................................1' 4.d. &rear un script..................................................................................................................... 14 4.e. /0uste de canales................................................................................................................. 14 4.f. /ctuali1acin del 2irm(are.................................................................................................13 5. &omunicacin serie.................................................................................................................... 1# 5.a. /0ustes................................................................................................................................. 1# 5.b. 44 $erie.............................................................................................................................1% 5.c. Protocolos de comandos...................................................................................................... 1+ 5.d. &ontrol de redundancia cclica 5&6&7 "eteccin de errores.............................................. 2. 5.e. &omandos para servos.........................................................................................................21 5.f. &omandos serie para $cript..................................................................................................2' 5.g. !ncadenamiento.................................................................................................................. 24 5.8. !0emplo de cdigo de transmisin...................................................................................... 25 5.8.1. PI&1%2455.......................................................................................................................25 3. engua0e de scripts de Maestro..................................................................................................23 3.a. engua0e b9sico para scripts................................................................................................23 3.b. 6eferencia de comandos......................................................................................................2% 3.c. !0emplo de $cripts...............................................................................................................'. 3.d. !specificaciones para los scripts......................................................................................... '# #. !0emplos de circuitos................................................................................................................. '# #.a. /limentacin de Maestro.....................................................................................................'# #.b. &one*in de servos y Perif:ricos........................................................................................ '% #.c. &onectar un microcontrolador.............................................................................................4. %. !scribir soft(are para el control de Maestro..............................................................................4. +. Maestro limitaciones de a0ustes..................................................................................................41

1. Informacin general
os controladores Maestro son la segunda generacin Pololu de controladores ,$- servo. a familia maestro consiste en cuatro controladores disponibles de manera ensamblado o en ;it parcial< Micro Maestro 3 Mini Maestro 12 Mini Maestro 1% Mini Maestro 24 &on tres modos de control< ,$- para cone*in directa al P&= 44 serie para usar con sistemas embebidos y mediante scripts internos para su funcionamiento autnomo= control 8ost de aplicaciones libres y canales >ue pueden configurar las salidas para servos de uso en radio control o control electrnico de velocidad 5!$&s7= salidas digitales o entradas analgico?digitales. os Maestro son dispositivos vers9tiles para control de servos y con entradas y salidas analgico?digitales dentro de una placa muy compacta. $u gran precisin y alta resolucin de pulsos en un margen de menos de 2..ns= 8acen >ue la familia Maestro sea adecuada para un alto rendimiento mec9nico y electrnico= con un e*acto control de aceleracin y velocidad pueden 8acer f9cil la consecucin de movimientos suaves= sin golpes= sin necesidad del control desde el cdigo fuente para calcular constantes intermedias de actuali1acin. os Maestro= con velocidades de pulso configurables 58asta de ''' @1 para Mini Maestro7 pueden generar una amplia gama >ue alcance la m9*ima capacidad de respuesta para servos modernos. as unidades se pueden conectar en cadena con otros controladores Pololu y en una sola lnea. a libre configuracin y su control es programable tanto en )indo(s como en inu* 5ver seccin 47= 8aciendo simples los a0ustes y pruebas de la placa sobre ,$-= creado secuencias de movimientos para robtica escribiendo por pasos y corriendo los scripts almacenados en el servo controlador. a memoria interna de la placa permite el almacenamiento de las posiciones del servo >ue pueden iniciarse autom9ticamente sin necesidad de estar conectado al P& o a un micro e*terno. 5Aer seccin 37. os canales pueden usarse tambi:n como entradas analgicas?digitales o salidas digitales permitiendo de manera f9cil la lectura de sensores y el control de perif:ricos directamente desde el P& a trav:s del ,$-. !stas entradas pueden usarse desde scripts o en forma autnoma para responder a estmulos e*ternos. ,n cable ,$-?/ a mini?- 5no incluido7 se necesario para la cone*in entre el dispositivo y el P&. 2

Caractersticas 4res m:todos de control< ,$-= 44 55 A7 serie y con scripts internos. ..25Bs de resolucin en la salida de anc8o de pulso 5corresponde a unos ...25C para un servo tpico= >ue es m9s de lo >ue el servo puede resolver7. &onfiguracin de pulso alto y anc8o del pulso 5ver la tabla comparativa7. &ontrol de velocidad y aceleracin individual para cada canal. os canales pueden configurarse de manera opcional para ir a una posicin especfica= pararse o iniciarse o dar error. 2unciones alternas del canal para usarse como< $alidas digitales de propsito general 5. o 5 A7. !ntradas analgicoDdigitales 5canales . E 11 pueden ser analgicasF canales 12G pueden ser entradas digitales7. ,n canal puede sacar P)M con una frecuencia de entre 2.+' H@1 a 12 M@1 y 8asta 1. bits de resolucin 5ver seccin 4.a para detalles7. ,n lengua0e simple de scripts permite programar el controlador para reali1ar comple0as acciones despu:s de 8aber desconectado el ,$- y desactivar la comunicacin serie7.

Pestaa Channel Settings en Maestro Control Center.

Pestaa Status en Maestro Control Center.

a libertad de configuracin y su aplicacin de control en )indo(s o en inu*= 8acen f9cil< &onfigurar y probar el controlador. &rear= correr y guardar secuencias de movimientos para servos o robots andantes. !scribir y correr scripts paso a paso= almacenados en el servo controlador "os maneras de escribir soft(are para Maestro desde el P&< Puerto Airtual &IM >ue 8ace f9cil el envo de comandos desde cual>uier programa >ue soporte comunicacin serie. Pololu ,$- Hit de desarrollo de soft(are >ue te permite usar comandos avan1ados ,$e incluye e0emplos de cdigo en &J= Aisual -asic .K!4 y Aisual &GG 44 serie caractersticas< $oporta '.. E 2..=... bps en modo fi0o y '.. E 115=2.. bps en modo auto deteccin. $imult9neamente soporta protocolo Pololu= >ue da acceso a funciones avan1adas y protocolo simple de $cott !d(ards Mini$$& II 5>ue no precisa ninguna configuracin del dispositivo para este protocolo particular7 Puede encadenarse con otros controladores Pololu para servos y motores usando una simple lnea de transmisin serie. a entrada encadenada permite la recepcin de datos de mLltiples Mini Maestros desde una sola lnea de recepcin= sin modulos adicionales 5no en los Micro Maestros7. &an es una funcin general para ,$-?a?44 adaptada para proyectos controlados desde P&. a placa se alimenta desde ,$- o con batera de 5?13A= y dispone de 5A regulados para el usuario 2irm(are actuali1able

'

4abla comparativa de la familia Maestro


&anales< !ntradas analgicas !ntradas digitales /nc8o< argo< Peso517< Pulso alto527< Pulso rango527< $cript tamaNo5'7< Micro Maestro 3 3 . ..%5M 52.13 cm7 1.2.M 5'..5 cm7 '.. g ''E1.. @1 34E'2%. Bs 1 HMini Maestro 12 12 12 . 1.1.M 52.#+ cm7 1.42M 5'.31 cm7 4.2 g 1E''' @1 34E4.%. Bs % HMini Maestro 1% 1% 12 3 1.1.M 52.#+ cm7 1.%.M 54.5# cm7 4.+ g 1E''' @1 34E4.%. Bs % HMini Maestro 24 24 12 12 1.1.M 52.#+ cm7 2.'.M 55.%4 cm7 3.. g 1E''' @1 34E4.%. Bs % H-

1.? Peso de la placa sin pins. 2.? !l pulso alto y el anc8o de pulso disponible depende entre otros factores de los baudios y del nLmero de canales usados 5ver seccin + para detalles7. '.? !l sistema de scripts de usuario es m9s potente en el Mini Maestro >ue en el Micro Maestro 5ver seccin 3.d para detalles7.

Ejem los de a licacin &ontrolador multiservo serie 5!0.. armas robticas= mecatrnica= iluminacin con leds7 basados en placas micro controladas como -/$I& $tamp= Irangut9n robot= o plataformas /rduino. $ervo?control desde puerto ,$- del P& Interfa1 entre sensores y otra electrnica< ectura de giro o acelermetros desde P& para nuevas presentaciones &ontrol de cadena de $8ift-rites 5leds7 desde P& para iluminacin !*pansin de IDI en el 9rea proyectos de micros Programacin de efectos luminosos >ue respondan a diferentes sensores 4est de servos

1.a. Micro Maestro ins ! com onentes


"ota< !sta seccin es aplicable para el controlador Micro Maestro. Aer seccin 1.b para m9s informacin del Mini Maestro. !l controlador Pololu Micro Maestro 3?canales puede conectarse a un P& va puerto ,$- con un cables ,$- / a mini?- 5no incluido7. a cone*in ,$- se usa para configurar el controlador y tambi:n para enviar comandos al controlador y recoger informacin del estado del mismo= enviando y recibiendo va 44 bytes de datos por las lneas 6O y 4O. !l procesador y los servos pueden tener alimentacin separada. a alimentacin del procesador se puede tomar desde la cone*in ,$- o e*ternamente con valores de 5 a 13A conectados a las entradas AIK y GK". $e puede tener una fuente de alimentacin e*terna conectada al mismo tiempo >ue el ,$-= en cuyo caso el procesador se alimenta de la fuente de alimentacin e*terna. 4enga en cuenta >ue si la fuente de alimentacin e*terna cae por deba0o de 5A= no est9 garanti1ado el funcionamiento correcto incluso estando conectado desde el ,$-.

a energa para el funcionamiento de los servos se reali1a desde la es>uina superior derec8a de la placa Micro Maestro. a alimentacin del servo se recibe directamente sin tener >ue pasar a trav:s de un regulador por lo >ue las Lnicas restricciones para la fuente de alimentacin del servo son >ue debe estar dentro del rango de funcionamiento del mismo y proporcionar suficiente corriente para su aplicacin. Por favor= consulta las fic8as t:cnicas para determinar la alimentacin adecuada= tenga en cuenta >ue una cifra apro*imada de consumo de corriente da un promedio de 1/. Micro Maestro configurado ara usar una alimentacin com#n laca ! servos. Puedes alimentar los servos y el procesador desde una sola fuente de alimentacin mediante la cone*in de P)6 a AIK soldando un cable en la parte inferior de la placa como se muestra en la imagen. a cone*in a tierra no es necesaria por>ue todos los pins del tablero ya est9n conectados. a salida de 5A 5disponible7 te permite alimentar dispositivos a 5A desde la placa 8asta 5.m/ sin regulador o desde ,$-. !l regulador de la placa funciona siempre >ue AIK este alimentadoF en este caso el Maestro re>uiere '. m/= por lo >ue >uedan disponibles 2. m/ para otros dispositivos. as lneas SIG 5$= 1= %= P7 se usan para enviar las seNales de pulsos a los servos= control de las salidas digitales y medicin de volta0es analgicos. !stas lneas van protegidas por resistencias de 22.Q. !l limite total de corriente 5entrada o salida7 para estos pins es de 3. m/= pero si usamos el regulador de volta0e de la placa la salidas >uedan limitadas a 2. m/. a lnea &' se usa como receptora no invertida 44 5.E5 A7 serie= como en las ,/64$ de los microcontroladores. !stos bytes pueden ser comandos= bytes transmitidos entre P& va ,$- o ambos. Para m9s informacin mira la seccin 5.a. Puede >ue el Maestro tenga posibilidad de recibir bytes a '.'A= pero no garanti1amos >ue lea '.'A como alto en el pin 6O a no ser >ue los fuerces a 4A si >uieres asegurarte la operacin. a lnea (' transmite bytes serie no invertidos 5.E5 A7. !stos bytes pueden ser respuestas a los comandos enviados o bytes enviados desde el P& a trav:s de la cone*in ,$-. !l pin 6$4 debe estar ba0o para >ue resetee el micro del Maestro= pero no es necesario en aplicaciones tpicas. a lnea= internamente est9 en alto con resistencia pull?up= por lo >ue puede de0arse desconectada. !n la imagen puedes ver las medidas de la placa controladora de servos.

1.). Mini Maestro ins ! com onentes

Mini Maestro 12?canales ,$-

Mini Maestro 1%?canales ,$5

Mini Maestro 24?canales ,$-

"ota< !sta seccin solo se aplica a los controladores Mini Maestro de 12= 1% y 24. Aer seccin 1.a para Micro Maestro. as Pololu Mini Maestro de 12=1% y 24 canales pueden conectarse al P& va puerto ,$- con un cable ,$- / a mini?- 5no incluido7. a cone*in ,$- se usa para la configurar la controladora y poder enviar comandos y recoger informacin acerca del estado de la misma mediante el envo y recepcin de bytes a trav:s de las lneas 6O y 4O. !l procesador y los servos pueden tener alimentacin separada. a alimentacin del procesador puede 8acerse desde ,$- o desde una fuente e*terna con volta0e de 5E13A conectada a las patillas *I" y G"+ en el borde i1>uierdo de la placa. $e puede tener una fuente de alimentacin e*terna conectada al mismo tiempo >ue ,$-= en cuyo caso el procesador se alimenta de la fuente e*terna. 4enga en cuenta >ue si la fuente de alimentacin e*terna cae por deba0o de 5 A= no est9 garanti1ado el correcto funcionamiento = incluso estando conectado al ,$-. as cone*iones de alimentacin de los servos se encuentran en la parte inferior derec8a de las placas Mini Maestro. !n las Mini Maestro 1% y 24= puedes 8acer la alimentacin de los servos a trav:s del blo>ue a1ul de dos vas o del conector de dos pinsF en el Mini Maestro 12 solo por el conector de 2?pin ..1M destinado a la alimentacin de servos. a alimentacin del servo pasa directamente sin tener >ue regularse por lo >ue las Lnicas restricciones a la fuente de alimentacin del servo son >ue debe estar dentro del rango de funcionamiento y proporcionar suficiente corriente para su aplicacin. Por favor= consulta las fic8as t:cnicas de los servos para determinar la fuente adecuada y ten en cuenta >ue el consumo de corriente de un servo es de 1 /. Puedes alimentar los servos del Maestro desde el procesador y con una sola fuente reali1ando la cone*in del positivo y el AIK de los puertos de alimentacin de los servos 5la cone*in a tierra no es necesaria por>ue todas los pins de la placa est9n conectados7. 6ecomendamos >ue para 8acer esto al conectar la fuente de alimentacin a los pins de alimentacin de la es>uina= utilice el blo>ue a1ul incluyendo un 0umper para conectar los pins de MA$6A R AIKM. a salida de 5A 5disponible, puede dar corriente a dispositivos con 5A desde el regulador en la placa de 15.m/ o directamente desde ,$-. !l regulador se utili1a cada ve1 >ue AIK se alimenta= el Maestro re>uiere 5. m/= luego >uedan 5. m/ disponibles para alimentar otros dispositivos. as lneas de seNal 5$= 1= %= P7 se utili1an para los pulsos a los servos= el control de salidas digitales o la medida de volta0es. !l limite total para estos pins es de 15. m/= pero si usamos el regulador se >ueda en 5. m/ 5ver detalle.7

Mini Maestro 12 pins alimentacin.

Mini Maestro 18 pins alimentacin.

Mini Maestro 24 pins alimentacin.

a lnea &' se usa como receptora no invertida 44 5.E5 A7 serie= como en las ,/64$ de los microcontroladores. !stos bytes pueden ser comandos= bytes transmitidos entre P& va cone*in ,$- o ambos. Para m9s informacin mira la seccin 5.a. Puede >ue el Maestro tenga posibilidad de recibir bytes a '.'A= pero no garanti1amos >ue lea '.'A como alto en el pin 6O a no ser >ue fuerces a 4A si >uieres asegurarte la operacin. a lnea (' transmite bytes serie no invertidos 5.E5 A7. !stos bytes pueden ser respuestas a los comandos enviados o bytes enviados desde el P& a trav:s de la cone*in ,$-= o tambi:n desde la lnea 4OIK. 3

!l pin 6$4 debe estar ba0o para >ue resetee el micro del Maestro= pero no es necesario para aplicaciones tpicas. Internamente la lnea est9 en alto con resistencia pull?up= por lo >ue puede ser desconectada. a lnea E&& es una salida >ue control del led ro0o para cuando 8ay errores. $e pone en alto cuando el led ro0o est9 encendido y en ba0o cuando est9 apagado. !l led ro0o se enciende cuando ocurre algLn error y se apaga en cuanto el bit de error se pone a cero. Puede controlarse a trav:s de un script de usuario. "esde la lnea de !66 en ba0o se puede conectar con la lnea de !66 de mLltiples Mini Maestros 0untos. 4enga en cuenta= sin embargo= >ue 8acer esto 8ar9 >ue el !" ro0o de todos los Mini Maestros conectados a su ve1 se enciendan en cuando uno de los Maestros Mini tenga el suyo. Para m9s informacin sobre las condiciones de error posible y las opciones de respuesta= por favor= ver $eccin 4.b. a lnea 4OIK es una lnea de entrada >ue 8ace >ue sea f9cil encadenar varios Mini Maestros. &ual>uier serie de bytes recibidos por esta lnea se van a almacenar en el buffer de transmisin y a ser transmitidos por la lnea 4O. Mira la $eccin 5= letra g para tener m9s informacin sobre la cone*in encadenada. as dimensiones en vertical y 8ori1ontal en distancias entre los agu0eros son< 1.2.M y ..5.M para el Mini Maestro 12= 1.5%M y ..5.M para el Mini Maestro 1%= y 1.5.M y ..5.M para el Mini Maestro 24.

1.c. Indicadores -E+s


!l Maestro tiene tres indicadores !"s< !l led verde indica el estado del dispositivo ,$-. &uando no est9 conectado a ,$- estar9 apagado. /l conectarlo parpadear9 lentamente. !l parpadeo continua mientras reciba un mensa0e particular desde el P& indicando al Maestro >ue los controladores ,$- est9n correctamente instalados. "espu:s de leer el mensa0e el led verde permanece encendido. Pero parpadea si 8ay actividad en la lnea ,$-. a aplicacin de control enva constantemente datos cuando est9 conectado al Maestro por lo >ue 8abr9 actividad en la lnea. !l led rojo de error indica >ue 8ay errores en la transmisin. $e encender9 cuando ocurra un error y se apagar9 al limpiar el bit de error. Mira la seccin 4.b para informacin de errores. !l led ro0o tambi:n puede ser controlado por un script de usuario= el !" ro0o se enciende si 8ay algLn error o si el comando script para encenderlo se 8a e0ecutado. !l led amarillo indica el control del estado de la trasmisin. &uando el Maestro est9 en modo auto?baudio 5por defecto7 y aLn no se 8a detectado la velocidad= el !" amarillo parpadear9 lentamente. "urante este tiempo el Maestro no transmite pulsos a los servos. ,na ve1 >ue el Maestro est9 listo para controlar los servos= el !" amarillo se enciende brevemente de forma peridica. a frecuencia de los destellos es proporcional al perodo de servo 5la cantidad de tiempo entre los pulsos en un solo canal7= con un perodo de 2. ms el parpadeo se produce apro*imadamente una ve1 por segundo. !n Micro Maestro el nLmero de parpadeos indica el estado< un destello indica >ue ningLn servo est9 8abilitado 5no se envan pulsos7 y todos los canales de salida est9n ba0os= mientras >ue un doble flas8 indica >ue al menos uno de los servos est9 8abilitado o uno de los canales de salida est9 siendo impulsado en alto. os Mini Maestros slo emiten un destello. /dem9s= cuando un comando serie v9lido es recibido= el !" amarillo emite un breve destello= tenue= >ue termina cuando el siguiente comando serie v9lido se recibe= o cuando el parpadeo principal se produ1ca 5lo >ue ocurra primero7. &uando se resetea por alguna ra1n >ue no sea la alimentacin= el led ro0o yDo el amarillo parpadean cuatro veces para indicar la condicin de reset. .marillo apagado= rojo parpadeando< ,n reset de alimentacin. Icurre cuando los 5A de corriente del Maestro descienden por deba0o de los '.. A= seguramente por la descarga de las bateras o por una alimentacin inadecuada.. .marillo pardeando= rojo apagado< 6eset del Maestro por ba0o volta0e en la lnea 6$4. ,n reset. .marillo y rojo parpadean a la ve1< ,n fallo de firm(are 8ace >ue el M(atc8dogM salte. !sto tambi:n ocurre inmediatamente despu:s de una actuali1acin de firm(are= como parte normal del proceso de actuali1acin. #

.marillo parpadeando= rojo fi0o< ,n error de firm(are provoca un reset de soft(are. !sto nunca debera ocurrir durante el uso normal.

1.d. Sistemas o erativos so ortados


os controladores Maestro y su configuracin de soft(are ,$- traba0an igual ba0o Microsoft )indo(s OP= )indo(s Aista= )indo(s # y inu*. Ko es compatible con Mac Is.

%. Contactando con Pololu


Puedes consultar la p9gina del producto de tu modelo Maestro para obtener informacin adicional. Kos gustara conocer tu opinin sobre alguno de tus proyectos y sobre tu e*periencia con Maestro. Puedes contactar con nosotros directamente o enviando mensa0e al foro. &u:ntanos lo >ue 8icimos bien= lo >ue podra me0orar= lo >ue te gustara ver en el futuro= o cual>uier otra cosa >ue >uieras decirS

/. Primeros asos
/.a. Instalacin de los drivers ! soft0are en 1indo0s
$i est9s usando )indo(s OP necesitas tener instalado el $ervice Pac; ' antes usar los drivers para Maestro. $igue los detalles. /ntes de conectar Maestro al P& debes instalar los drivers para Microsoft )indo(s de esta manera< 1.? "escarga Maestro $ervo &ontroller )indo(s "rivers y $oft(are 53M- 1ip7 2.? /bre el fic8ero TIP y corre setup.exe. !l instalador te guiar9 a trav:s de pasos en la instalacin de del Maestro &ontrol &enter= la utilidad de Maestro &ommand?line 5,sc&md7 y los drivers para el P&. $i el instalador falla debes de e*traer los fic8eros a un directorio temporal y luego darle al setup.exe como UadministradorV. '.? "urante la instalacin )indo(s te mostrar9 una pantalla de alarma diciendo >ue los drivers no est9n testados por Microsoft y no son recomendables. Ki caso= clic en U&ontinueV 5)indo(s OP7 o UInstalar el driver siempreV 5)indo(s # y Aista7. 4.? ,na ve1 finali1ada la instalacin inicia el menL desde el enlace de Maestro &ontrol &enter 5en el directorio de Pololu7. !sta es una aplicacin (indo(s >ue permite configurar= controlar y depurar en tiempo real con Maestro. 4iene una utilidad de &omando?lnea llamada ,sc&md >ue permite comandos r9pidos. Usuarios de 1indo0s 2 ! 1indo0s *ista3 !l P& debe iniciar autom9ticamente e instalar los drivers necesarios al conectarse con Maestro. Ko se re>uiere ninguna accin. Usuarios de 1indo0s 'P3 $igue los pasos 5E+ para cada nuevo Maestro >ue conectes al P&. 5.? &onecta el dispositivo al ,$- del P&. Maestro muestra tres dispositivos en el P& con OP y detecta tres nuevos dispositivos mostrando UKuevo 8ard(are encontradoV 8asta tres veces= recu:rdalo. &ada ve1 >ue salga este mensa0e sigue los pasos 3?+.

3.? &uando se muestra UKuevo 8ard(are encontradoV la primera ve1 selecciona UKo= por esta ve1V y clic U$iguienteV. #.? !n la segunda pantalla de UKuevo 8ard(are encontradoV 8a1 UInstala el soft(are autom9ticamenteV y clic U$iguienteV. %.? )indo(s OP volver9 a mostrar la pantalla de soft(are no testado pero sigue con clic U&ontinuar la instalacinV. +.? &uando 8ayas finali1ado clic en U4erminarV. "espu:s aparecer9 otra pantalla y estar9s en la tercera cuando insertes el Maestro. $igue los pasos 3?+ $i tienes problemas con )indo(s OP con la instalacin o usando los puertos la causa puede estar en algLn fallo o en la antigWedad del controlador de MicrosoftXs usb?to?serial driver usbser.sys. os fic8eros anteriores a la versin 5.1.23...2+'. no funcionan con Maestro. Puedes comprobar la versin del driver pulsando en U"etallesV de la ventana UPropiedadesV del fic8ero usbser.sys en la carpeta C:\Windows\System32 \drivers. Para encontrar una versin actuali1ada deberas instalar el $ervice Pac; '. $i no lo tienes int:ntalo con el @otfi* H-+1%'35= pero algunos usuarios 8an detectado problemas con el 8otfi* >ue solo se 8an resuelto instalando el $ervice Pac; '. !l soft(are de configuracin y control funcionar9 incluso si los controladores de puerto de serie no est9n instalados correctamente "espu:s de instalar los drivers= vete a &ontrol de dispositivos y e*pande la lista de UPuertos 5&IM Y P47V deberas encontrar dos puertos &IM< el &omando Port y el 44 Port. !n par:ntesis despu:s de los nombres veras el nombre del puerto 5!0. U&IM5V o U&IM3V7. $i e*pandes UPololu ,$- "evicesV ver9s las entradas de Maestro. @ay soft(are >ue no permite el acceso a puertos &IM con numeracin alta< Puedes reasignar el nLmero de puerto desde &ontrol de "ispositivos en el cuadro Propiedades y en botn /van1ado. "esde all podr9s reali1ar el cambio de numeracin del puerto.

/.). Instalacin de drivers ! soft0are en -inu4


"ebes descargar el fic8ero Maestro $ervo &ontroller inu* $oft(are 5112; g17 "esempa>ueta el arc8ivo tarDg1 8aciendo tar -xzv ! seguido del nombre del fic8ero. "espu:s sigue las instrucciones >ue 8ay en "#$%&#.txt y ya podr9s e0ecutar los programas &aestroControlCenter y 's(Cmd. 4ambi:n puedes descargarte el cdigo fuente en &J para 's(Cmd >ue forma parte del Pololu ,$- $oft(are "evelopment Hit. ee "#$%&#.txt en el $"H para m9s informacin. os dos puertos serie de Maestro pueden usarse en inu* sin necesidad de instalar drivers. os puertos son mane0ados por el modulo ;ernel cdc-acm= cuyo cdigo fuente puede encontrarse en el ;ernelXs source code drivers)usb)(lass)(d(-a(m.(. &uando conectas Maestro +

al P& los dos puertos virtuales aparecen y los dispositivos se renombran como )dev)tty$C&* y )dev)tty$C&+ 5el nLmero depender9 de cuantos dispositivos /&M est:n conectados7. !l puerto con nLmero menor es el &ommand Port= el de mayor numeracin ser9 el 44 serie. Puedes usar un 4erminal 5como ;ermit7 para enviar y recibir bytes por estos puertos.

/.c. Uso del Maestro sin USB


Puedes utili1ar Maestro como controlador de servos serie sin necesidad de instalar ningLn driver ,$-= mediante un P&. $i no usas ,$- no podr9s cambiar las configuraciones en Maestro= pero puedes utili1ar la configuracin por defecto >ue es adecuada para muc8as aplicaciones. a configuracin por defecto se describe a continuacin.. /0ustes por defecto Modo serie U'$",- dete(t baud rateVF despu:s de enviar *x$$ como byte de comprobacin de baudios= Maestro ya puede aceptar comandos a trav:s de la lnea serie 6O en 44 . !l nLmero de dispositivo con el protocolo Pololu es 12= en el Mini $$& offset es . y el timeout y el &6& est9n des8abilitados. 4odos los canales est9n configurados para traba0ar con servos con un pulso mnimo de ++2 Bs y m9*imo de 2... Bs. !l punto neutral en % bits es 15.. Bs y el rango es de 4#3.25 Bs. /l inicio o en estado de error= los servos se paran 5no reciben pulsos7. /l arrancar= no 8ay limitacin de velocidad y aceleracin pero se puede a0ustar usando comandos. !l periodo del servo esta en 2. ms 5cada servo recibe pulsos cada 2. ms7. !l script de usuario est9 vaco.

5. Uso del Maestro Control Center


a aplicacin para MaestroZs ,$- da acceso a todas las opciones de configuracin soportando control en tiempo real= reaccin y depuracin. !l Maestro &ontrol &enter es una 8erramienta gr9fica >ue facilita el traba0o a trav:s de ,$-F para muc8os proyectos puedes usar la aplicacin para a0uste y verificacin del Maestro. !sta seccin e*plica muc8as de las caractersticas de Maestro y del Maestro &ontrol &enter.

5.a. Estado ! control en tiem o real


a pestaNa Status se utili1a para controlar las salidas de Maestro y el seguimiento de su estado en tiempo real. @ay una fila separada con los controles para cada uno de los canales de Maestro. !n la imagen vemos los 12 canales >ue aparecen en Maestro &ontrol &enter y >ue est9 conectado a un Mini Maestro 12. &uando se conectan otros modelos de Maestro el nLmero de canales disponibles se mostrar9n en pantalla. $egLn est: la casilla del canal configurada como servo o como salida= la barra de control desli1ante te servir9 para a0ustar el ob0etivo deseado y la bola verde indica la posicin actual del canal. Por e0emplo= si el canal est9 a0ustado a una velocidad relativamente ba0a= cuando muevas el control a una nueva posicin= la bola verde se mover9 lentamente 8asta >ue 8aya alcan1ado al control desli1ante= lo >ue nos 8ace intuir como se alcan1ar9 el ob0etivo. Para un control m9s preciso= tambi:n se puede 1.

introducir un valor ob0etivo directamente en la casilla .,ar/et 0destino1.. !l control desli1ante autom9ticamente se escala para >ue coincida con los valores mnimo y m9*imo >ue figuran en la pestaNa de configuracin. Para un canal configurado como entrada= el control desli1ante de bolas verdes= MdestinoM y MposicinM muestra el valor actual de la entrada. Ko 8ay control para las entradas. as entradas en los canales .?11 son analgicas< sus valores van desde . 8asta 255.#5= representando las tensiones de . 8asta 5 A. as entradas en los canales 12?2' son digitales< sus valores son e*actamente el . o el valor 255=#5. a entradas MvelocidadM y MaceleracinM permiten a0ustar los canales de servo de forma individual y en tiempo real. os valores por defecto se especifican en la fic8a configuracin= pero puede ser Ltil a0ustarlos a>u para afinar. 4odos los controles en esta pestaNa siempre muestran los valores actuales segLn Maestro= por lo >ue son Ltiles para reali1ar el seguimiento de acciones causadas por otros programa o dispositivos. Por e0emplo= si un microcontrolador utili1a la interfa1 serie 44 para cambiar la velocidad del canal para servos del 2 al 1.= este valor se mostrar9 inmediatamente en la entradas correspondientes= aun>ue all no se 8aya introducido nada antes.
2W& 3utput 0&ini &aestro +2- +4- y 25 s6lo1

!n los Mini Maestro 12= 1% y 24 un canal puede usarse como salida P)M de propsito general con frecuencias de entre 2.+' H@1 8asta 12 M@1 y con 1. bits de resolucin. !sta venta0a puede utili1arse por e0emplo como entrada de control de motores o como control de brillo para leds. a salida P)M est9 en el canal % del Mini Maestro 12 y en el canal 12 para los Mini Maestro 1% y 24. !ste canal debe configurarse como salida P)M si la necesitamos en el proyecto. Puedes usar el control de salida P)M en la pestaNa de estado para testear el P)M c8e>ueando la casilla y entrando los valores especficos de tiempo y periodo en unidades de 1D4% Bs. ,n periodo de 4%..= por e0emplo= generar9 una frecuencia de 1. H@1. a resolucin de estos valores depende del periodo mostrado en la tabla siguiente< Periodo rango Periodo resolucin In?time resolucin os periodos e*tremos 1.24= 4.+3 y 13'%4 no se recomiendan ya >ue el 1..[ duty cycle 1E1.24 4 1 no est9 disponible para estos valores. $i el on 1.25E4.+3 13 4 time se a0usta igual al periodo en unos de 4.+#E13'%4 34 13 esos valores el duty cycle >ueda en .[ 5ba0a salida7. os periodos 1.2. 54#.1 H@17= 4.%. 511.# H@17 y 13'2. 52.+ H@17 producen la me0or resolucin posible al 1..[ y .[ de duty cycle= as >ue usa estos periodos a ser posible. !s posible >ue tengas >ue usar comandos serie o scripts para 8acer el P)M en tu proyecto. Mira la seccin 3.b seccin 5.e para m9s informacin

5.). Errores
a pestaNa Errors sirve para mostrar problemas >ue Maestro detecta durante su funcionamiento y >ue pueden estar provocados por fallos de comunicacin o por la mala definicin del script. &ada error se corresponde con un bit del registro de dos bytes de errores. !l led ro0o se encender9 siempre y cuando alguno de los bits del registro de error se ponga a 1 5tambi:n puede activarse con el comando led7on7. !l valor #rror (ode se muestra en la es>uina superior derec8a de la ventana principal. 11

&uando ocurre un error= el bit correspondiente en el registro de error se pone a 1 y el Maestro enva los servos y las salidas digitales a sus posiciones iniciales= tal como se 8aya especificado en la fic8a configuracin 5seccin 4.e7. &ual>uier servo o salida configurada con la opcin M 8/norarM no cambiar9 el modo. !l registro de error se elimina con el comando M9et#rrorM. os errores y sus correspondientes bits son los siguientes< Serial Signal Error 6)it $, !rror de 8ard(are >ue ocurre cuando el stop bit no se 8a detectado en el momento oportuno. !so ocurre cuando 8ay diferencia entre los baudios de transmisin y los configurados. Serial 7verrun Error 6)it 1, !rror de 8ard(are >ue ocurre cuando el buffer interno de la ,/64 est9 lleno. !sto no debe ocurrir en operaciones normales. Serial &' )uffer lleno 6)it %, !rror de firm(are >ue se produce cuando el buffer de bytes recibidos por la lnea 6O esta lleno y como consecuencia se 8a perdido un byte. !ste error no debe ocurrir durante la operacin normal. Serial C&C error 6)it /, !ste error se produce cuando el Maestro traba0a con el &6& activado y al comprobar la redundancia cclica al final del pa>uete de comandos no coincide con lo >ue el Maestro 8a calculado para ese pa>uete 5seccin II7. !n tal caso= el Maestro ignora el pa>uete de comandos y genera un error &6& Serial rotocolo error 6)it 5, !ste error se produce cuando el Maestro recibe en un formato incorrecto o 8ay pa>uetes absurdos. Por e0emplo= si el byte no coincide con un comando conocido o un pa>uete de comandos es recortado o interrumpido por otro pa>uete= se produce este error. Serial timeout error 6)it 8, &uando est9 8abilitado timeout se producir9 error siempre y cuando 8aya transcurrido el perodo de tiempo de espera sin >ue Maestro 8aya recibido los comandos v9lidos. !ste error de tiempo de espera puede usarse para 8acer >ue los servos vuelvan a sus posiciones iniciales en el momento en >ue se interrumpan las comunicaciones. Scri t stac9 error 6)it :, !rror >ue se produce cuando la secuencia de comandos causa un desbordamiento de pila. &ual>uier secuencia de comando >ue modifi>ue la pila tiene potencial para causar este error. a profundidad de pila es de '2 niveles en el Maestro Micro y de 123 en los Maestros Mini. Scri t call stac9 error 6)it 2, !rror >ue se produce cuando la secuencia 8a causado desbordamiento en la pila de llamadas. !l desbordamiento puede ocurrir por 8aber demasiados niveles de subrutinas anidados o por una subrutina llamadas a s misma demasiadas veces. a profundidad de la pila de llamadas es de 1. en el Maestro Micro y de 123 de los Maestros Mini. 4ambi:n de produce un desbordamiento cuando 8ay un retorno sin llamada en la subrutina correspondiente. $i e0ecutas una subrutina mediante el comando ."estart S(ript at Subroutine. y termina con un "#,'": en lugar de un ;'8, o bucle infinito= dar9 este error. Scri t rogram counter error 6)it ;, !ste error se produce cuando la secuencia de comandos provoca >ue el contador de programa 5la direccin de la siguiente instruccin a e0ecutar7 esta fuera de lmites. !sto sucede si tu programa no termina en >uit= return o bucle infinito. Performance <lags a pestaNa de errores muestra tambi:n los perfomance flags establecidos. !sta caracterstica slo se aplica a Mini Maestro 12= 1% y 24. os perfomance flags indican >ue el procesador 8a perdido el tiempo lmite para reali1ar una tarea de servo control y como resultado el control del Maestro consigui ralenti1arlo de alguna manera. os perfomance flags no deberan ocurrir durante las operacin normales= ya >ue la configuracin est9 dentro de los limites descritos en la seccin +. 12

5.c. Secuencias
a pestaNa Sequence permite reali1ar secuencias de movimiento simple para ser reproducidas por Maestro. ,na secuencia es simplemente una lista de MfotogramasM >ue especifican las posiciones de los servos y la duracin 5en milisegundos7 para cada uno de ellos. as secuencias se almacenan en el ordenador desde donde se cre la secuencia. as secuencias pueden copiarse como secuencias de comandos y entonces s se guardar9n en memoria del Maestro. as secuencias tambi:n pueden e*portarse a otro e>uipo creando y guardando un arc8ivo de configuracin. Para empe1ar a crear una secuencia= clic en :ew Se<uen(e y dale un nombre a la misma. &on los controles de la pestaNa estado= establece en cada uno de los servos la posicin para el primer cuadro= luego clic en Save =rame en la parte inferior i1>uierda de la ventana. 6epite este procedimiento para crear varios cuadros y a continuacin volver a la pestaNa de secuencias. Puedes a8ora reproducirlos mediante el botn .2lay Se<uen(e.= o puedes establecer las posiciones para los servos del cuadro especfico 8aciendo clic en el >oad =rame. !l marco =rame properties te permite establecer el nombre y la duracin de un cuadro. !l botn Save 3ver Current =rame sobrescribe los cuadros seleccionados con los valores actuali1ados desde Maestro. $i la casilla de verificacin 2lay in a loop est9 activada la reproduccin de la secuencia se repite en bucle cuando llega al final. !l cuadro de lista desplegable Se(uen(e 0unto con "ename= %elete y :ew Se<uen(e permiten crear y administrar varias secuencias. ,na secuencia puede utili1arse tambi:n para crear un script >ue se almacena en el Maestro. @ay dos botones para copiar secuencias a scripts< Copy Se<uen(e to S(ript copia la secuencia de comandos a un script. !n la mayora de casos= desear9s marcar tambi:n la opcin ."un s(ript on startup. para >ue el script se e0ecute autom9ticamente al arrancar el Maestro y sin necesidad de cone*in con el P&. Copy all Se<uen(es to S(ript es una opcin avan1ada >ue aNade un 0uego de subrutinas al final del script actual. &ada subrutina representa una de las secuenciasF llamar a la subrutina desde el script 8ar9 >ue la secuencia se reprodu1ca una sola ve1. !stas subrutinas pueden utili1arse 0unto con el cdigo particular del scriptF por e0emplo= podras 8acer una presentacin por la >ue un botn conectado a las entradas de los canales reprodu0era la secuencia Edicin de secuencias. (rucos Puedes seleccionar varias secuencias pulsando &trl o MayLs al 8acer clic en ellas. !sto agili1a el mover= eliminar= establecer la duracin de= cortar= copiar o guardar varios fotogramas a la ve1. Puedes arrastrar cual>uiera de las fic8as de la ventana principal a sus propias ventanas. $i arrastra la pestaNa de secuencia fuera de ventana veras la pestaNa de estado y la de secuencia al mismo tiempo. Puede cortar= copiar y pegar secuencias seleccion9ndolas mediante !ditar o con los ata0os de teclado est9ndar. as secuencias ser9n almacenados en el Portapapeles como te*to separadas por tabuladores= por lo >ue se pueden cortar= pegar en una 8o0a de c9lculo= editar y copiar en otra lista siempre >ue >uieras. 5!sta caracterstica no funciona en inu*7. .tajos de teclado os siguientes ata0os de teclado se pueden usar con las secuencias< Ctrl=.< $eleccionar todas las secuencias. Ctrl=C< &opiar. Ctrl=* o S>ift=Insert< PegarDinsertar. Ctrl='< cortar. Ctrl=U < Mover 8acia arriba. Ctrl=+o0n< Mover 8acia aba0o. +el< -orrar. 1'

5.d. Crear un scri t


a pestaNa Script es el lugar donde escribir un script para ser cargado por Maestro. Para m9s informacin sobre el lengua0e de scripts de Maestro= ver la seccin 3. ,na ve1 8aya introducido un script= clic en .$pply Settin/s. para cargar la secuencia en el dispositivo. @ay disponibles varias opciones para probar y depurar la secuencia de comandos en la pestaNa de script. Moverse a trav?s de un scri t Para empe1ar a e0ecutar un script= 8aga clic en el botn verde ."un S(ript.. !ste ser9 procesado por Maestro= una instruccin cada ve1= 8asta >ue se llegue a la instruccin \,I4 o se produ1ca un error. !n muc8os casos ser9 Ltil utili1ar un bucle de algLn tipo para >ue el script no pare de e0ecutarse. Mientras se e0ecuta= esta disponible el botn ro0o M$top scriptM y vemos un pe>ueNo tri9ngulo rosa >ue se coloca 0unto al cdigo fuente y muestra la instruccin >ue actualmente se est9 e0ecutando. $i el script coloca datos en la pila= ser9 visible en la parte derec8a de la pestaNa y las llamadas a rutinas anidadas se contar9n en la barra de la parte superior de la fic8a. Para e*aminar el funcionamiento del script= clic en el botn a1ul M Step S(riptM. !ste botn 8ace >ue la secuencia de comandos se e0ecute paso a paso. !sto nos servir9 para recorrer el script y poder comprobar >ue cada parte programada 8ace e*actamente lo esperamos >ue lo 8aga. .justar un scri t ara @ue corra desde el inicio de arran@ue Por defecto el script solo corre si 8aces clic en el botn U "un S(riptV. $in embargo para algunas aplicaciones podra ser necesario >ue el script funcionara autom9ticamente sin necesidad de tener Maestro conectado de forma permanente a ,$-. &lic en la opcin U "un s(ript on startupV produce >ue Maestro corra el script desde el momento >ue recibe la alimentacin. /Ln puedes utili1ar controles en la pestaNa script para su depuracin o para detener la e0ecucin del mismo. E4aminando el cdigo com ilado &lic en el botn U?iew Compiled CodeV para ver los bytes creados en cada lnea del script. !sta 8erramienta es necesaria para los usuarios avan1adosF si tienes inter:s en detalles de los cdigos usados por Maestro 5por e0emplo si >uieres escribir tu compilador7 escrbenos. /l final del cdigo compilado se encuentra la lista de las subrutinas= incluyendo sus nLmeros de lnea en decimal y 8e*adecimal. !stos nLmeros pueden usarse por comandos para introducir las subrutinas desde un control e*terno.

5.e. .juste de canales


a pestaNa Channel Settings contiene controles para los canales utili1ados cuyos par9metros son almacenados y afectan a las operaciones de forma inmediata. @ay una serie de columnas >ue se muestran para cada uno de los canales< 14

"ame. &ada canal puede tener un nombre segLn convenga. !l nombre de los canales no se almacena en el dispositivo pero forma parte del registro de sistema en el ordenador. $i vas a utili1ar Maestro en otro ordenador debes guardarlos en un fic8ero para su posterior utili1acin en el otro P&. Mode. !l modo de traba0o es el a0uste b9sico >ue determina su funcionamiento. @ay tres opciones< Servo 5por defecto7 indicado para salidas P)M para servos 6D&. In ut especifica >ue este canal se usara como entrada analgica o digital. as entradas de los canales .E11 son analgicas< est9n midiendo constantemente el valor de entre . y 1.2' 5A&&7= en el rango m9*imo de 2. H@1. as entradas para los canales 12E2' son digitales< sus valores son e*actamente de . o 1.2'. 20ate >ue los valores mostrados en 4arget y Position de la pestaNa !stado son una cuarta parte del valor mostrado actual si 8ay 1.2' se mostrara 255.#5. 7ut ut especifica >ue canales se 8an designado como salidas digitales. !n lugar de indicar el anc8o de pulso= el valor de la posicin del canal se utili1a para controlar si la salida es ba0a 5. A7 o alta 5A&&7. !specficamente= la salida es ba0a a menos >ue el valor de posicin sea mayor o igual a 15..... Bs &ate especifica el pulso para cada canal servo. !n Micro Maestro 3= todos los servos deben tener guardado el pulso= mientras >ue en Mini Maestro 12= 1% y 24= pueden tener dos diferentes y escoger el >ue >uieras para cada canal. os pulsos disponibles son controlados por los a0ustes en el Period y Period multi lier descritos m9s aba0o. Min y Ma4 se refiere a los valores del canal en cuanto a position. &ada canal configurado como servo= los a0ustes Min y Ma* corresponden respectivamente a los valores de anc8o de pulso para cada servo en unidades de microsegundos. 7n startu or error. !sta opcin sirve para marcar el valor destino del canal >ue el dispositivo pondr9 en marc8a al arrancar 5inicio o reset7 o cuando se produ1ca un error. 20ate >ue tambi:n 8ay velocidad y aceleracin para cada canal= las salidas cambiar9n suavemente a la posicin especificada en caso de error= pero no al arrancar= ya >ue no tienen ninguna informacin acerca de la posicin anterior del servo= en este caso. 7ff especifica >ue el servo esta inicialmente parado 5valor .7 y >ue debe ser apagado en caso de producirse error. Ignore inicialmente apagado pero si 8ay error se >ueda en la posicin >ue est9.. Go to especifica la posicin por defecto a la >ue ir el servo. $er9 la posicin inicial y a la >ue volver9 en caso de error. S eed. $irve para marcar la velocidad del servo en unidades de ..25BsD1.ms. /s para una velocidad de 4= la posicin cambiar9 a ra1n de 1Bs por cada 1. ms= o 1..... BsDs. Mini Maestro 1%A 1; ! %5 solo3 $i est9s usando un periodo por defecto de 2. ms= las unidades de velocidad son diferentes. $igue la informacin m9s aba0o. .cceleration. !s la aceleracin en unidades de ..25BsD1. msD%.ms. ,na valor de 4 8ar9 >ue el servo vaya cambiando como m9*imo 125. BsDs por segundo. Mini Maestro 1%A 1;A ! %5 solo3 si estas usando un periodo por defecto de 2. ms= las unidades de aceleracin son diferentes. $igue la informacin m9s aba0o. ;B)it neutral. $e usa para especificar los valores destino en microsegundos= >ue se corresponde con el valor de 12# 5neutral7 en los comandos de % bits. ;B)it rango. !sta opcin muestra el rango de valores de destino accesibles con comandos de % bits. ,na valor de % bits igual a . corresponde a neutral range= cuando el valor es de 254 resultara un valor destino de neutral + range. Controles avanCados de ulso3 Period es una opcin avan1ada para el control de los pulsos de los servos en milisegundos. !s la cantidad de tiempo entre pulsos sucesivos para un canal determinado. $i no est9s seguro acerca de esta opcin= d:0alo en el valor predeterminado >ue por defecto es de 2. ms. Mini Maestro 12= 1%= y 24< las unidades de aceleracin y de velocidad dependen de la frecuencia del pulso. as unidades

15

slo dependen en el perodo= no 8ay perodo multiplicador. &onsulte la tabla siguiente para ver la relacin entre las unidades de velocidad D aceleracin< Periodo 547 6atio ,nidades de velocidad ,nidades de aceleracin 4 R 2. ms 5. @1 5..25 Bs7D51. ms7 5..25 Bs7D51. ms7D5%. ms7 4 R 'E1+ ms ] 5. @1 5..25 Bs7D4 5..25 Bs7D4D5%47 4 ] 2. ms ^ 5. @1 5..25 Bs7D54D27 5..25 Bs7D54D27D5447 Servos dis oni)les es una opcin avan1ada para Micro Maestro >ue especifica el nLmero de canales >ue pueden utili1arse para controlar los servos. Por e0emplo= si este valor se establece en 4= slo los canales . al ' estar9n disponibles= todos los dem9s canales deben establecerse como entrada o salida. as ra1ones para tener menos servos disponibles slo son para permitir alargar la longitud de pulso m9*imo o recortar el perodo. Period multi lier es una funcin avan1ada para Mini Maestro 12= 1%= y 24 >ue permite establecer un perodo largo 5ratio corto7 en algunos canales. Por e0emplo si seleccionas un periodo de ' y un multiplicador de 3 tienes >ue algunos servos funcionan a ' ms 5''' @17 y otros 1% ms 555 @17. &uando el multiplicador es mayor de 1= las opciones de pulso se muestran para cada canal en la columna &ate. Para el Mini Maestro %5 e4iste una o cin e4tra dis oni)le3 Ena)le ullBu s en los canales 1;B%$ conecta resistencias de pull?up para los canales numerados si est9n configurados como entradas. !sto garanti1a >ue el valor de entrada ser9 alto cuando nada este conectado a la lnea. $i 8abilitas esta caracterstica te permite poder conectar pulsadores o interruptores en los canales 1%= 1+ o 2. sin necesidad de resistencias e*ternas< simplemente conecta los actuadores entre la lnea y GK".

5.f. .ctualiCacin del <irm0are


"ota3 o han ha!ido actuali"aciones de #irm$are para por los Mini-Maestros toda%&a' por lo (ue esta seccin slo se aplica al Micro-Maestro ) *S+ Ser%o. !l Maestro tiene un firm(are >ue puede actuali1arse f9cilmente para fi0ar errores o me0orarse con nuevas caractersticas. Puedes determinar la versin de firm(are de tu Maestro e0ecutando &entro de &ontrol Maestro= conectado al mismo y mirando el nLmero de versin >ue se muestra en la es>uina superior i1>uierda 0unto a la lista desplegable .Conne(ted to.. a versin 1..1 del firm(are para el Mini?Maestro de 3 canales tiene una correccin >ue 8ace MIgnorarM el modo para servos >ue se comportan correctamente al inicio. a actuali1acin se recomienda para dispositivos con nLmero de versin anterior= incluyendo todos los dispositivos de antes de 1+ de noviembre de 2..+. Im ortante3 Ko aplicar esta actuali1acin a un Mini Maestro Para actuali1ar firm(are sigue estos pasos< Guarda los a0ustes almacenados en el Maestro usando Save settin/s ile@! en 2ile menL. 4odos los a0ustes se ponen con los valores por defecto al reali1ar la actuali1acin. "escarga la Lltima versin< 2irm(are versin 1..1 para Micro Maestro :BC>annel 5'5; pgm7 _ desde 1+?11?2..+ &onecta el Maestro a )indo(s o inu* usando el cable ,$-. /rranca la aplicacin Pololu Maestro &ontrol &enter con Maestro conectado. !n el %evi(e menA= selecciona 'p/rade irmware@!. Aeras un mensa0e preguntando si est9s seguro de seguir< clic IH. !l Maestro se desconecta del ordenador y aparece un nuevo dispositivo llamado UPololu usc.2a -ootloaderV. 1indo0s 2 ! *ista3 el driver para el bootloader >uedar9 autom9ticamente instalado. 1indo0s 'P3 sigue los podas 3E% de la seccin '.a para coger el driver >ue funcione. ,na ve1 los drivers de bootloaderXs est:n instalados correctamente el !" verde parpadear9 en golpes de dos y deber9s ver una entrada para el mismo en UPuertos 5&IM Y P47V en el /dministrador de dispositivos de tu ordenador. Aete a la ventana =irmware 'p/rade! del Maestro &ontrol &enter y &lic en el botn Browse@! y selecciona el fic8ero de firm(are >ue >uieres descargar. 13

$elecciona el puerto &IM port correspondiente al bootloader. $i no conoces el puerto mira en /dministracin de dispositivos en el apartado UPuertos 5&IM Y P47V. &lic en el botn 2ro/ram!. Aer9s un mensa0e alertando >ue el firm(are del dispositivo va a ser borrado y preguntando si >uieres 8acerlo< clic `es. 4ardar9 unos segundos para borrar el firm(are e*istente del MaestroXs y leer el nuevo. No desconectes el Maestro durante una actualizacin de firmware. ,na ve1 se 8aya completado la ventana de actuali1acin se cierra= el Maestro debe desconectarse del ordenador para m9s tarde reaparecer. $i solo 8ay un Maestro conectado el Maestro &ontrol &enter volver9 a conectar con :l. &omprueba la versin y asegLrate de >ue es la nueva. $i tienes algLn problema no dudes en contactar con nosotros.

8. Comunicacin serie
8.a. .justes
!l Maestro dispone de tres modos de comunicacin serie. Primero tiene las lneas (' y &' >ue permiten enviar y recibir bytes non?inverted 44 5. E 5 A7 5ver $eccin 5.b7. $egundo Maestro dispone de dos puertos virtuales serie por donde el ordenador se conecta a trav:s del ,$-. ,no de estos puertos se llama Command Port y el otro ((- ort. !n )indo(s= tu puedes determinar el numero de puerto &IM asignado mirando en /dministracin de dispositivos. !n inu* el &ommand Port es generalmente DdevDtty/&M. y el 44 Port DdevDtty/&M1. !stos nLmeros pueden ser diferentes segLn >ue cantidad de dispositivos serie est:n activos al conectar. !sta seccin e*plica las configuraciones disponibles en la pestaNa Serial Settin/s en el Maestro &ontrol &enter. $e puede configurar de tres maneras diferentes< USB +ual Port3 en este modo el &ommand Port se usa para enviar &omandos al Maestro y recibir respuestas de :l. a velocidad en baudios es irrelevante. !l 44 Port se usa para enviar bytes por la lnea 4O y recibirlos por la 6O. a velocidad de comunicacin >ue estable1cas en tu programa terminal al abrir el puerto 44 determina la velocidad en baudios utili1ada para recibir y enviar bytes 6O y 4O. !sto permite al control por Maestro y el poder utili1ar simult9neamente las lneas de 4O y 6O como puerto Modo ,$- "ual Port. serie de propsito general para >ue pueda comunicarse con otros tipos de dispositivos serie 44 . USB encadenado3 !n este modo el &omando Port se usa en ambos casos para transmitir bytes por la lnea 4O y enviar comandos al Maestro. !l Maestro responde a los comandos enviados por el &ommand Port no por la lnea 4O. os bytes recibidos por la lnea 6O son reenviados al &ommand Port pero no se interpretan como bytes de comando por Maestro. a velocidad de a0uste en tu programa terminal al abrir el &ommand Port determina la velocidad de recepcin y envo de bytes por Modo ,$- encadenado. 6O y 4O. !l puerto 44 no se usa. !ste modo permite >ue un Lnico puerto &IM del ordenador pueda controlar mLltiples Maestros y otros dispositivos compatibles con el protocolo utili1ado.

1#

U.&(3 !n este modo= las lneas 4O y 6O se usan para enviar comandos al Maestro y recibir respuestas del mismo. &ada byte recibido por 6O se enva al &ommand Port= pero los bytes enviados desde el &ommand Port son ignorados. !l puerto 44 no se usa. a velocidad en baudios se detecta autom9ticamente por el Maestro cuando se recibe un byte *x$$ por 6O= o si lo fi0amos a un valor concreto en bitsDsegs 5bps7. !ste Modo ,/64. modo permite el control de Maestro 5y el envo de bytes al programa en el ordenador7 usando un microcontrolador u otro dispositivo 44 serie. 7tros ajustes serie3 Ena)le C&C3 $i esta activado= la transmisin re>uiere un byte de comprobacin de redundancia cclica 5&6&7 al final de cada comando e*cepto en los del Mini $$& 5ver seccin 5.d7. +evice "um)er3 !ste es el nLmero de dispositivo 5.E12#7 >ue se usa para direccionar el dispositivo con los comandos del Pololu Protocol. !ste a0uste es Ltil cuando usas el Maestro con otros dispositivos configurados en cadena 5ver seccin 5.g7. Mini SSC offset3 !ste par9metro determina >ue nLmero de dispositivos servo responden al Mini $$& protocol 5ver seccin 5.e7. (imeout3 Par9metro >ue determina la duracin del Serial timeout para >ue se produ1ca error. !ste error se usa como para asegurar >ue los servos y las salidas digitales retornan a su estado por defecto cuando el envo de comandos al Maestro se 8a parado. !l error de timeout tambi:n ocurre cuando se reciben comandos no v9lidos 5o calificados como nativos ,$-7 durante el periodo de tiempo marcado. !l timeout a .... lo des8abilita. a resolucin es de ...1s y el valor m9*imo es de 355.'5 s. os comandos nativos ,$- se corresponden a los m:todos de la ,sc class< set,ar/et= setSpeed= set$((eleration= set2wm= disable2W&= y (lear#rrors. !0ecutando el Maestro &ontrol &enter no evitar9 >ue el error de tiempo de espera se producen= sino m9s bien el a0uste de destinos en la pestaNa $tatus o la reproduccin de una secuencia "ever slee 6ignorar sus ensin de USB,3 Por defecto= el procesador de Maestro se pone en reposo y detiene todas sus operaciones cuando detecta >ue ,$- 8a entrado en suspensin 5no 8ay suministro AIK7. $in embargo= se puede desactivar marcando la casilla de :ever sleep.

8.). ((- Serie


a lnea 6O puede recibir bytes cuando est9 conectada a una lgica no invertida 5de . a 4..E5A o M44 M7. os bytes enviados al Maestro en 6O pueden ser comandos o una secuencia arbitraria de datos >ue el Maestro pasa al ordenador mediante el puerto ,$-= dependiendo del modo serie configurado 5seccin 5.a7. !l volta0e en 6O no debe ir por deba0o de .A ni debe e*ceder de 5A. Maestro proporciona los niveles lgicos 5. a 5A7 a la salida de su lnea de transmisin 4O. os bytes enviados por Maestro en 4O pueden ser respuestas a comandos >ue soliciten informacin o una secuencia arbitraria de datos >ue Maestro est9 recibiendo desde un ordenador desde el puerto ,$- de pasada= dependiendo del modo a0ustado. $i no est9 interesado en recibir bytes 44 desde Maestro= puede de0ar la lnea 4O desconectada. a transmisin es asncrona= lo >ue significa >ue la recepcin y el envo llevan bits a velocidad independiente. 44 asncrona tambi:n est9 disponible en los mdulos 8ard(are llamados M,/64sM de muc8os microcontroladores. a salida asncrona puede ser tambi:n Mbit? bangedM por una lnea est9ndar de salida digital ba0o control del ,n byte no?invertido 44 soft(are. !l formato de datos es de % bits= un stop bit y sin paridades decir %?K?1. la imagen de aba0o muestra el asincronismo= non?inverted de un byte serie 44 < ,na lnea serie 44 invertida tiene como estado predeterminado 5no activo7 en alto. ,n byte transmitido comien1a en ba0o Mstart bitM seguido por los bits del byte= empe1ando por el bit menos significativo 5 $-7. os valores lgicos se transmiten como unos o altos 5A&&7 y ceros o ba0os 5.A7= por lo >ue este formato es Mno invertidoM. !l byte se termina por un Mbit de paradaM >ue de0a la lnea en alto durante poco tiempo. "ebido a >ue cada byte re>uiere un bit de inicio= % bits de datos y 1%

un bit de parada= cada byte tiene 1. veces m9s bits para transmitir= luego la velocidad m9s r9pida posible en bytes por segundo es la velocidad dividida por die1. a m9*ima velocidad de transmisin de Maestro es de 25..... bits por segundo= luego la m9*ima transferencia de datos empe1ara inmediatamente despu:s del bit de parada del byte precedente y ser9 de 25.... bytes por segundo. &ada ve1 >ue conectes dispositivos' no ol%ides conectar la lneas de masa 0untas= y asegurarte de >ue cada dispositivo se alimentada adecuadamente. ,os dispositivos sin alimentacin con puerto serie 44 pueden generar en parte= cargas el:ctricas en la lnea= lo >ue significa >ue ha- (ue tener precaucin al desconectarlos o resetearlos.

8.c. Protocolos de comandos


Para el control de Maestro se usan comandos serie. $i Maestro esta en '$",- dete(t baud rate!= primero debes enviar el indicador de baudios con el byte *x$$ a la lnea 6O y despu:s los comandos y datos necesarios. !l protocolo de comandos para Maestro es similar a la de otros productos Pololu. a comunicacin se logra mediante el envo de pa>uetes de comandos >ue constan de un byte de comando seguido de los bytes de datos >ue se re>uieren. os bytes de comando tienen siempre los bits m9s significativos altos 5+24C2DD- *x4*C*x==7 mientras los menos significativos desactivados 5*C+2E- *x**C*xE=7. !sto significa >ue cada byte de datos slo puede llevar siete bits de informacin. a Lnica e*cepcin a esto son los comandos Mini $$&= donde los bytes de datos pueden tener cual>uier valor comprendido entre . y 254. !l Maestro responde a tres protocolos< Com act !s el m9s simple y compacto de los dos protocolos y es el >ue deberas usar si tu dispositivo es el Lnico conectado a la lnea serie. !l pa>uete con este protocolo es simple<
Comando byte 0(on &SB alto1- los bytes de datos ne(esarios en hex: *x45- *x**- *xE*- *x2# en decimal: +32- *- ++2- 5F byte *x45 corresponde al comando Set ,ar/et=

Por e0emplo= para a0ustar el destino del servo de . a 15.. as= deber9s enviar la secuencia de bytes< !l el primer byte de datos *x** es el nLmero de servo y los dos Lltimos bytes de datos contienen el destino en cuartos de microsegundos. Pololu !ste protocolo es compatible con los usados por otros dispositivos controladores de servos y motores. &omo tal= puedes encadenar un Maestro a nuestros controladores serie 5incluidos los Maestros adicionales7 en una sola lnea y con este Protocolo enviar comandos especficamente al Maestro deseado sin confundir a los otros dispositivos de la lnea. Para utili1ar el protocolo Pololu= debes transmitir *x$$ 5+E* dec7 como primer byte 5comando7 seguido de un byte de datos con el nLmero de dispositivo. !l byte *x$$ siempre ser9 el primer byte a utili1ar con protocolo Pololu. !l nLmero de dispositivo predeterminado para Maestro es 1%= pero se trata de un par9metro configurable >ue se puede cambiar. &ual>uier maestro en la lnea cuyo nLmero de dispositivo coincida con el especificado acepta el comando >ue sigue= todos los dem9s dispositivos Pololu lo ignoraran. os bytes restantes en el pa>uete de comandos son los mismos >ue los en un pa>uete de protocolo compact y >ue se enviar9n= con una diferencia clave< el byte de protocolo de comando compact es a8ora un byte de datos para el comando .*// y por lo tanto debe tener su bit m9s significativo aclarado. Por lo tanto= el pa>uete de comandos es<
*x$$- byte numdisp- byte (omando (on &SB desa(tivado- bytes pre(isos de datos.

Por e0emplo= lo mismo >ue antes para Maestro con nb de dispositivo 12= enviar9s la secuencia< 20ate Mini SSC Maestro tambi:n responde al protocolo usado por el controlador Mini $$&. !ste protocolo te permite el control de 8asta 254 servos diferentes con el encadenado de controladoras. $olo necesita tres bytes para a0ustar el destino del servo= por lo >ue es un buen protocolo si necesitas enviar 1+
en hex: *x$$- *x*C- *x*5- *x**- *xE*- *x2# en decimal: +E*- +2- 5- *- ++2- 5F el *x*5 es el &omando *x45 con el bit m9s significativo a cero.

comandos de forma r9pida. !l protocolo Mini $$& transmite un *x== 5255 en decimal7 como primer byte de comando seguido del byte de numero de servo y otro de bits con el destino a reali1ar. !l pa>uete sera el siguiente<
*x==- byte numservo- byte destinoservo

Por e0emplo si estas buscando a0ustar el destino del servo . a la posicin neutral= debes enviar la secuencia siguiente<
en hex: *x==- *x**- *xE= en decimal: 2DD- *- +2E

Maestro puede configurarse para responder a blo>ues contiguos de servos numerados de . a 254. Maestro identifica los protocolos Pololu= &ompact y Mini?$$& en el acto y no es necesario usar par9metros para detectar el protocolo. Incluso puedes me1clar comandos de los tres.

8.d. Control de redundancia cclica 6C&C, +eteccin de errores


Para algunas aplicaciones es importante la verificacin de la integridad de los datos >ue se envan o reciben. Maestro puede reali1ar un c8e>ueo de #?bit &6&= >ue es algo similar a un c8ec;sum pero mas robusto y >ue puede detectar errores >ue >ui19s no afectaran a un c8ec;sum= como un byte . e*tra o bytes fuera de orden. a verificacin se reali1a 8abilitando la casilla #nable C"C! de la pestaNa Serial Settin/s! de Maestro &ontrol &enter. !n modo &6&= Maestro espera la recepcin de un byte e*tra aNadido al final del pa>uete de comandos 5e*cepto en los de Mini $$&7. !l bit m9s significativo de este byte se pone a . y los siete bits menos significativos corresponden a los siete bit de control. $i el byte &6& es incorrecto= Maestro puede activar un bit de error Serial C.C al registro e ignorar el comando. Maestro no ane*a un byte &6& a los datos >ue transmite en respuesta a los comandos. ,na lista detallada de cmo 8ace la comprobacin se puede encontrar en )i;ipedia. Maestro utili1a &6&?#= lo >ue significa utili1a un polinomio de % bits y como resultado produce un resto de # bits. !n notacin binaria el nLmero .*+1 es 1..1...1. $in embargo los bits se transmiten en este orden< 1= .= .= .= 1= .= .= 1= por lo >ue utili1amos 1...1..1 para el c9lculo.
2asos + G 2 0es(ribe binario- primero bit menos si/ni i(ativo aHade E (eros al inal del mensaje1: C"C-E 2olynomial I J+ * * * + * * +K mensaje I J+ + * * * * * +K J+ * * * * * * *K * * * * * * * 2asos 3- 5- G D: 77777777777777777777777777777777777777777777777 + * * * + * * + 1 + + * * * * * + + * * * * * * * * * * * * * * L3" + * * * + * * + M M M M M M M M M M M M M M M --------------- M M M M M M M M M M M M M M M + * * + * * * + M M M M M M M M M M M M M M sNi t ----O + * * * + * * + M M M M M M M M M M M M M M 777777777777777 M M M M M M M M M M M M M M + + * * * * * * M M M M M M M M M M M + * * * + * * + M M M M M M M M M M M 777777777777777 M M M M M M M M M M M + * * + * * + * M M M M M M M M M M + * * * + * * + M M M M M M M M M M 777777777777777 M M M M M M M M M M + + * + + * * * M M M M M M M + * * * + * * + M M M M M M M 777777777777777 M M M M M M M + * + * * * + * M M M M M M + * * * + * * + M M M M M M 777777777777777 M M M M M M + * + * + + * * M M M M + * * * + * * + M M M M 777777777777777 M M M M + * * + * + * * M M + * * * + * * + M M 777777777777777 M M + + + * + * * I *x+E uego el pa>uete total para el comando >ue se enva con el &6& 8abilitado es< *x43- *x*+- *x+E.

2.

8.e. Comandos ara servos


Maestro tiene varios comandos para a0ustar el canal= recoger la posicin actual y a0ustar limites de velocidad y aceleracin. Set Target 5PololuD&ompact protocol7
Compact protocol: *x45-num(anal-destino>B-destinoPB Pololu protocol: *x$$-numdispos-*x*5-num(anal-destino>B-destinoPB

os # bits ba0os 5 -7 del 'er byte representan los bits .E3 del destino 5# bits ba0os7= los # bits ba0os del cuarto byte de datos representan los bits #E1' del destino. !l destino no es entero negativo. $i el canal est9 configurado para servo= el destino representa el anc8o de pulso a transmitir en cuartos de microsegundo. !l valor destino . indica a Maestro >ue pare el envo de pulsos al servo. $i el canal est9 configurado como salida digital los valore menores de 3... indican >ue debe poner la lnea en ba0o= en cambio si son mayores la lnea estar9 en alto. Por e0emplo= si el canal 2 est9 configurado para servo y >uieres a0ustar el destino a 15.. as 515..c4 R 3... R .1.111.111.... en binario7= enviar9s la siguiente secuencia de bytes<
en binario: +****+**- ******+*- *+++****- **+*+++* en hex: *x45- *x*2- *xE*- *x2# en decimal: +32- 2- ++2- 5F

/>u 8ay algunos e0emplos en cdigo & >ue generar9 los bytes correctos= dando un nLmero entero al McanalM >ue contiene el nLmero del canal= un entero MdestinoM para el destino deseado 5en unidades de cuartos de microsegundos si es servo7 en una matri1 denominada serial-ytes<
serialBytesJ*K serialBytesJ+K serialBytesJ2K serialBytesJ3K I I I I *x45Q (NannelQ tar/et G *xE=Q 0tar/et OO E1 G *xE=Q )) )) )) )) Comando +R byte 2R byte 3R byte Set ,ar/et. datos numero(anal. los >B E bits destino. los PB E-+3 destino.

/lgunas aplicaciones de servo control no necesitan una resolucin en cuartos de microsegundo. $i >uieres un pe>ueNo pa>uete de comandos de ba0a resolucin para traba0ar usa Mini?$$&. Set Target 5Mini $$& protocol7 Mini?$$& protocol< $4<<A direccioncanalA ;B)it destino !ste comando a0usta el destino del canal con un valor de % bits= entre . y 254. !l valor ob0etivo de % bits se convierte en otro de alta resolucin de acuerdo con la configuracin neutral y rango almacenados en Maestro para ese canal. !ntonces 12# corresponde a neutral en ese canal= mientras >ue . o 254 corresponden a neutral menos o m9s el valor del rango. !sta configuracin puede ser Ltil para calibrar la marc8a sin cambiar el programa >ue enva los comandos. a direccin del canal es un valor entre .E254. Por defecto la direccin de canal es igual al nLmero de canal y est9 entre . y 2'. Para permitir mLltiples Maestros controlados por la misma lnea debes establecer el par9metro &ini SSC 3 set con diferentes valores para cada Maestro. !l Mini $$& Iffset se aNade al nLmero de canal para dirigir el comando a la direccin correcta. Por e0emplo Micro Maestro de 3 canales con el Mini $$& Iffset de 12 obedece a los comandos cuya direccin este entre 12E1#. Set Multiple Targets 5Mini Maestro 12= 1%= y 24 solo7
Compact protocol: *xS=-numdestinos-+num(anal-+destino>B-+destinoPB-2destino>B-2destinoPB- @ Pololu protocol: *x$$-numdispos-*x+=-numdestinos-+num(anal-+dest>B-+destPB-2dest>B-2destPB- @

!l comando a0usta simult9neamente los destinos con blo>ues contiguos de canales. !l primer byte especifica cuantos canales 8ay en el blo>ueF ser9 el numero de valores de destinos >ue necesitas enviar. !l segundo byte especifica el numero de canal ba0o en el blo>ue. os siguientes bytes contienen los valores de destino para cada canal en orden de nLmero de canal con el mismo formato >ue el $et 4arget &omando. Por e0emplo= para a0ustar canales ' a . 5off7 y canal 4 a 3... 5neutral7= enviaras los siguientes bytes< !l la r9pida actuali1acin de Maestro= y se usa principalmente cuando se controlan un largo nLmero de servos configurados en cadena. Por
*xS=-*x*2-*x*3-*x**-*x**-*xE*-*x2# comando Set &ultiple ,ar/ets permite

21

e0emplo= usando el protocolo Pololu protocol a 115.2 ;bps= enviando el comando a 24 servos tarda ??4.3 ms= mientras si los envas de forma individual tardara 12.5 ms. Set Speed
Compact protocol: *x4E-num(anal-velo(idad>B-velo(idadPB Pololu protocol: *x$$-numdispos-*x*E-num(anal-velo(idad>B-velo(idadPB

!ste &omando limita la velocidad del servo al cambiar el valor del canal de salida. !l lmite de velocidad se da en unidades de ..25 BsD1. ms e*cepto en casos especiales 5ver seccin 4.e7. Por e0emplo= el comando *x4E-*x*D-*x*C-*x*+ establece la velocidad del canal 5 en un valor de 14.= >ue corresponde a una velocidad de '.5 BsDms. !sto significa >ue si enva un comando de Set ,ar/et para a0ustar el destino del servo de 1... Bs a 1'5. Bs= tardar9 1.. ms para reali1ar ese a0uste. ,na velocidad de . es una velocidad ilimitada= as el ob0etivo ser9 inmediato para llegar a la posicin. Piensa >ue la velocidad real de los movimientos cinem9ticas tambi:n est9 limitada por el propio diseNo del servo= la tensin de alimentacin y de la carga= por lo >ue este par9metro no servir9 para ir m9s r9pido de lo >ue fsicamente es capa1. &on la configuracin de velocidad mnima de 1= la salida de servo tarda 4. segundos para pasar de 1 a 2 ms. a configuracin de velocidad no tiene ningLn efecto en los canales configurados como entradas o salidas digitales. Set Acceleration
Compact protocol: *x4S-num(anal-a(elera(i6n>B-a(elera(i6nPB Pololu protocol: *x$$-numdispos-*x*S-num(anal-a(elera(i6n>B-a(elera(i6nPB

!ste comando limita la aceleracin en la salida del canal servo. a aceleracin puede tener un valor entre . y 255 en unidades de 5..25 Bs7D5%. ms7D51. ms7 e*cepto en casos especiales 5ver seccin 4.e7. !l valor . se corresponde con ningLn lmite de aceleracin. a aceleracin limitada causa >ue la velocidad del servo ascienda lentamente 8asta alcan1ar la velocidad m9*ima para luego descender 8asta llegar a la posicin destino= resultando de ello= un movimiento relativamente suave de un punto a otro. &on la aplicacin de lmites en velocidad y aceleracin= solo 8ar9n falta unos pocos a0ustes para >ue llegar al destino= se realice con movimientos de aspecto natural y >ue de lo contrario seran bastante m9s complicados de crear. &onfigurando la aceleracin mnima a 1= el servo tarda unos ' segundos en moverse desde una posicin de 1ms a un destino de 2ms. a aceleracin no tiene efecto en los canales configurados como entradas o salidas digitales Set PWM 5Mini Maestro 12= 1%= y 24 solo7
Compact protocol: *x4$-pulso>B-pulsoPB-periodo>B-periodoPB Pololu protocol: *x$$-numdispos-*x*$-pulso>B-pulsoPB-periodo>B-periodoPB

!ste comando a0usta la salida P)M en pulso y periodo con unidades de 1D4% Bs. !l pulso y el periodo se codifican en bytes de # bits de la misma manera >ue destino con el comando .*%4= anterior. Para m9s informacin sobre el P)M= ver seccin 4.a. a salida P)M no est9 disponible en el Micro Maestro. Get Position
Compact protocol: *xS*-num(anal Pololu protocol: *x$$-numdispos-*x+*-num(anal

&es uesta< un byte - de posicin y un byte @- de posicin ambos en % bits !l comando pregunta al dispositivo >ue se comunica con Maestro por la posicin en >ue se encuentra el canal. !l valor se enva de inmediato en dos bytes tras 8aber recibido el comando. $i el canal especificado esta como servo el valor representa el anc8o de pulso >ue Maestro est9 emitiendo por el canal= refle0ando los efectos de comandos previos como velocidad y aceleracin o scripts funcionando en la placa. $i el canal esta configurados como salida digital y el valor es menor de 3...= la lnea est9 en ba0o= si el valor es mayor de 3... es >ue la lnea esta en alto. $i el canal esta configurado como entrada= la posicin representa el volta0e medido en el canal. os canales .?11 son analgicos y el rango de valores ser9 entre . y 1.2' para volta0es de . a 5A. as entradas en los canales 12?2' son digitales y sus valores ser9n de . o 1.2' e*actamente. 20ate >ue el formato de este comando difiere de los de destino= velocidad y aceleracin 22

"ado >ue no e*iste ninguna restriccin sobre el bit alto= la posicin es formateada como un entero sin signo est9ndar dos bytes primero el ba0o luego el alto. Por e0emplo= a la posicin 253# le dara como respuesta de .*.#= .*./. !l valor devuelto de la posicin es igual a cuatro veces el nLmero mostrado en la ca0a 2osition en la pestaNa Status del Maestro &ontrol &enter. Get Moving State
Compact protocol: *xS3 Pololu protocol: *x$$-numdispositivo-*x+3

&es uesta3 .*.. si los servos no se mueven= .*.1 si se mueven. !l comando se usa para determinar cual de los servos 8a llegado a su destino o cuales est9n movi:ndose en funcin de la velocidad y la aceleracin. !ste comando combinado con Set ,ar/et permite iniciar muc8os movimientos y esperar a >ue unos u otros terminen su traba0o antes de seguir con las lneas de programa. Get Errors
Compact protocol: *x$+ Pololu protocol: *x$$-numdispositivo-*x2+

&es uesta3 ,n byte de error con los bits .?#= otro con los bits %?15 !ste comando se usa para e*aminar los errores >ue pueda detectar Maestro. !n la seccin 4.b 8ay una lista especfica de errores posibles. !l registro de error enva dos bytes de respuesta despu:s de recibir el comando y seguidamente limpia el registro. Para muc8as de las aplicaciones >ue usan el control serie es buena idea c8e>uear errores para reali1ar las acciones apropiadas si estos ocurren. Go ome
Compact protocol: *x$2 Pololu protocol: *x$$-numdispositivo-*x22

!ste comando enva todos los canales a la posicin inicial= tanto si est9n configurados como servos o si lo est9n como salidas= en el caso de producirse algLn error. Para servos y salidas con el a0uste a 8/nore! 8ace >ue la posicin no cambie. "ote3 Para los servos marcados 3 !- si e0ecutas Set (arget inmediatamente despu:s de Go Dome= parecer9 >ue estos no obedecen a la velocidad y aceleracin. "e 8ec8o cuando el servo se desactiva Maestro no tiene manera de saber donde estaba por lo >ue pueden moverse a cual>uier destino. os siguientes comandos ya funcionaran correctamente.

8.f. Comandos serie ara Scri t


Maestro dispone de varios comandos para el control de e0ecucin del script de usuario. Stop Script
Compact protocol: *x$5 Pololu protocol: *x$$-numdispositivo-*x25

Para la e0ecucin del script. !estart Script at Subroutine

Compact protocol: *x$E-numsubrutina Pololu protocol: *x$$-numdispositivo-*x2E-numsubrutina

/rranca el script en el punto indicado por el argumento de nLmero de la subrutina. as subrutinas est9n numeradas en el orden en >ue se 8aya definido el script= empe1ando con . para la primera. a primera subrutina se enva como .*.. para este comando= .*.1 para la segunda= etc. Para encontrar el numero de subrutina particular 8aga clic en ?iew Compiled Code@! y mira la lista. as subrutinas usadas de esta manera no deben terminar en 6!4,6K 5no tiene sentido7= en su lugar debe poner bucles infinitos o el comando \,I4. !estart Script at Subroutine "ith Parameter
Compact protocol: *x$4-numsubrutina-parTmetro>B-parTmetroPB Pololu protocol: *x$$-numdispos-*x24-numsubrutina-parTmetro>B#parTmetro PB !ste comando es igual >ue "estart S(ript at Subroutine= e*cepto

>ue carga un par9metro en la pila antes de iniciar la subrutina. &omo bytes de datos solo puede contener # bits de datos y el par9metro debe estar entre . y 13'%'. 2'

Get Script Status


Compact protocol: *x$# Pololu protocol: *x$$- numdispositivo- *x2#

&es uesta3 .*.. si el script esta funcionando= .*.1 si est9 parado !l comando responde con un byte para indicar si el script esta en funcionamiento 5.7 o parado 517 . Mediante este &omando 0unto con los anteriores= puede activar una secuencia almacenada en Maestro y esperar 8asta >ue se complete antes de pasar a la siguiente lnea de programa.

8.g. Encadenamiento
!sta seccin es una gua para la integracin de Maestro en un proyecto con mLltiples dispositivos serie >ue usan un protocolo compatible. Ko es informacin nueva< toda la informacin se puede deducir a partir de los tres modos cone*in de los protocolos usados. 5$eccin 5.a y 5.c7. !n primer lugar= debes decidir >ue protocolo vas a utili1ar Pololu= Mini $$& o una combinacin de ambos. "ebes asegurarse de >ue ningLn comando >ue vas a enviar causar9 operaciones en los dispositivos >ue no est:n direccionados. $i deseas encadenar varios Maestros puedes usar una me1cla de ambos protocolos. $i deseas >ue Maestro se encadene con otros dispositivos >ue usan el protocolo Pololu utili1a este protocolo. $i deseas reali1ar encadenamientos del Maestro con otros dispositivos >ue usan el protocolo Mini $$& puedes utili1ar para todos este protocolo. !n segundo lugar= asignar a cada dispositivo del "aisy c8aining serial devices using t8e Pololu protocol. /n optional y gate is used to /oin multiple 01 lines. proyecto un nLmero distinto o con Mini $$& 5offset7 compensar para >ue cada dispositivo pueda tratarse individualmente con sus comandos. !n Maestro esto puede 8acerse desde la pestaNa Serial Settin/s de Maestro &ontrol &enter. !l siguiente diagrama muestra cmo conectar un maestro y varios dispositivos esclavos en cadena. &ada dispositivo puede ser Maestro o cual>uier otro= como un 0r;= >i; o microcontroladores. !l Mini Maestro 12= 1%= y 24 tiene una entrada especial llamada ('I" >ue elimina la necesidad de una puerta /K" 5la puerta /K" esta en Maestro.7 Para reali1ar encadenamientos de dispositivos usaremos la entrada ('I" conect9ndola de la siguiente manera< Uso de un PC ! Maestro juntos como dis ositivo maestro Maestro puede 8abilitar el dispositivo maestro al P&. a cone*in entre el P& y Maestro se 8ar9 con el cable ,$- y configurado la cone*in en modo ,$- "ual Port o ,$&8ained. !n modo ,$- "ual Port el puerto del P& se utili1a para enviar directamente "aisy c8aining serial devices t8at 8ave a 4OIK input. comandos al Maestro y el puerto 44 de P& se utili1a para enviar comandos a todos los dispositivos esclavos. !n modo ,$- encadenado= slo el Port del P& se utili1a por comunicarse con Maestro y todos los dispositivos esclavos. $eleccione el modo >ue sea m9s efica1 para su aplicacin o m9s f9cil de implementar en su programacin. Usando Maestro como dis ositivo esclavo !l Maestro puede actuar como dispositivo esclavo cuando est9 configurado en el modo ,/64. !n este modo= recibe comandos por la lnea 6O y se responde por la lnea 4O. a cone*in ,$- a P& no es necesaria= aun>ue el puerto 6O del P& se utili1ar9 para propsitos de depuracin u otros. Cone4iones &onectar la lnea 4O del dispositivo maestro a las lneas 6O de todos los dispositivos esclavos. os comandos enviados por el master= a continuacin= ser9n recibidos por todos los esclavos. a recepcin de respuestas de uno de los dispositivos esclavos en el P& puede lograrse mediante la cone*in de la lnea 4O de ese dispositivo subordinado a la lnea 6O del Maestro. 6ecibir respuestas de mLltiples dispositivos esclavos es m9s complicado. &ada dispositivo debe transmitir slo cuando se lo soliciten= por lo >ue si cada dispositivo se aborda por separado= no podr9n 24

transmitir simult9neamente varios. $in embargo= las salidas 4O se ponen en alto al no enviar datos= por lo >ue simplemente no pueden estar conectados 0untos. !n su lugar= puede utili1ar una puerta /K" como se muestra en el diagrama para combinar las seNales. Ibserva >ue en muc8os casos el recibir respuestas no es necesario por lo >ue las lneas 4O pueden >uedar desconectadas. &uando 8aya varios dispositivos recuerda la cone*in a tierra de todos ellos y asegurarte de >ue cada dispositivo tiene la alimentacin apropiada. os dispositivos apagados con puerto serie 44 pueden activarse en parte= dando alimentacin a la lnea= lo >ue significa >ue debes tener cuidado al apagarlos o al resetearlos. Enviando Comandos !l Pololu Protocol o el Mini $$& protocol pueden usarse cuando mLltiples dispositivos Pololu est9n recibiendo los mismos datos va serie. !sto permite a los dispositivos tener direcciones individuales y las respuestas >ue se enven no colisionen. $i los dispositivos est9n configurados para detectar la velocidad en baudios= entonces cuando se emita el primer comando de protocolo Pololu= los dispositivos podr9n detectar autom9ticamente la velocidad desde el byte de inicio .*//. /lgunos dispositivos antiguos de Pololu utili1an .*%. como byte inicial. $i la cadena de dispositivos espera .*//= primero podemos transmitir .*%. para >ue estos dispositivos detecten la velocidad y slo entonces enviar el byte .*// para >ue el Maestro pueda tambi:n detectarla. ,na ve1 >ue todos los dispositivos 8an detectado los baudios= los dispositivos Pololu >ue esperan >ue un byte .*%. ignoraran el .*// y Maestro pasar9 8ar9 lo mismo con el comando .*%..

8.>. Ejem lo de cdigo de transmisin 8.>.1. PIC1;<588$


!l siguiente e0emplo de cdigo para un PI&1%2455. 8a sido remitido por Key Palma &astillo. @a de ser compilado con el compilador de & de PI& M&,. !l cdigo muestra cmo controlar un Maestro mediante comandos serie desde los pins &3 y &#. !l primer comando para el canal . de servo sirve para llevarlo a su mnima posicin y despu:s un segundo m9s tarde= para ir a la posicin neutral. Aer seccin 5.e para obtener informacin sobre la cone*in del PI& al Maestro y definir el modo serie para Maestro M'$",- dete(t baud rate..
Uin(ludeV+4 5DD*.PO U uses PS2>>- :3&C>"- 2',- B"3W:3',- B3"?53- :3W%,- :32"3,#C,- :3>?2 U uses :3%#B'9- 'SB%8?- 2>>D- C2'%8?+- ?"#9#:- CC22B3 Uuse delay0(lo(WI54******1 Ude ine ,,>7,L+ 28:7CF Ude ine ,,>7"L+ 28:7CE Uuse rs2320xmitI,,>7,L+- r(vI,,>7"L+- bitsI4- parityI:1 void main01 X delay7ms02***1Q wNile0true1 X )) #nvia Set ,ar/et usando proto(lo 2ololu. put(0*x$$1Q )) Byte de arran<ue put(0*x*C1Q )) %ispositivo 8% I +2 put(0*x*51Q )) Comando I Set ,ar/et put(0*x**1Q )) Canal I * put(0*x2*1Q )) 2osi(ion destino I +*** us 0minima para servos1 put(0*x+=1Q delay7ms0+***1Q )) espera un se/undo )) #nvia Set ,ar/et usando proto(lo 2ololu. put(0*x$$1Q put(0*x*C1Q put(0*x*51Q put(0*x**1Q put(0*xE*1Q )) 2osi(ion destino I +D** us 0neutral para servos1 put(0*x2#1Q delay7ms0+***1Q Y Y

25

:. -enguaje de scri ts de Maestro


!l script es una secuencia de comandos >ue puede e0ecutar Maestro. os comandos pueden servir para a0ustar el destino del servo= la velocidad y la aceleracin entrando valores y reali1ando operaciones matem9ticas. $e dispone de estructuras b9sicas de control E bucles y condicionales E disponibles para crear scripts comple0os. !l lengua0e de scripts de Maestro es simple= muy parecido a 2I64@ y la compilacin crea un cdigo compacto en donde comandos y subrutinas tienen un solo byte. ,n editorDdepurador b9sico est9 en la pestaNa S(ripts del Maestro &ontrol &enter.

:.a. -enguaje )Esico ara scri ts


Comandos ! ila a programacin de scripts consiste en crear una secuencia de comandos >ue actLan como una pila de valores. os valores son enteros >ue van desde ?'2#3% a G'2#3#. !n el Micro Maestro de seis canales 8ay espacio para '2 valores en la pila y en los Mini Maestro lugar valor . este pila llega 8asta 123 valores. os comandos actLan siempre con los valores altos de ' 2 '5 la pila y de0an los resultados en la parte superior de la misma. os comandos son un simple 0uego de literales= valores num:ricos >ue se van colocando directamente en la 1 2. pila. Por e0emplo el programa U?1. 2. '5 .V mete los valores ?1.= 2.= '5 y . de forma . ?1. secuencial. !l comando m9s complicado es el comando P ,$= el cual aNade arriba dos nLmeros de0ando el resultado en la parte superior de la pila. lugar antes despu:s $upongamos los nLmeros 1= 2= 4 y # colocados secuencialmente en la pila y ' # el comando P ,$ esta en funcionamiento. a siguiente tabla muestra el 2 4 11 resultado< 20ate >ue P ,$ siempre 8ace menguar el tamaNo de la pila en 1 2 2 uno. . 1 1 "epende de ti asegurarse de >ue tienes suficientes valores en la pila para completar los comandos >ue deseas e0ecutar. Aeamos un e0emplo m9s complicado< $upongamos >ue >ueremos calcular el valor de 51?'7 c 4= usando los comandos MIK,$ y M, 4IP `. a forma de escribir este cmputo como una secuencia de comandos es M1 ' MIK,$ 4 4IM!$M. ComentariosA casoA es acios en )lancoA saltos de lnea 4odas las partes del lengua0e de secuencias de comandos de Maestro son mayLsculas y minLsculas= y pueden utili1ar cual>uier tipo de espacios en blanco 5espacios= tabulaciones= saltos de lnea7 para separarlos. os comentarios se indican mediante el signo MJM< desde el J 8asta el final de lnea ser9 ignorado por el compilador. Por e0emplo= el c9lculo anterior puede escribirse como<
+ 3 mi:'S 5 U tNis is a (ommentZ times

>ue no afectar9 a la compilacin. Generalmente usamos minLsculas para comandos y dos o cuatro espacios de indentacin para las estructuras de control y subrutinas pero tu puedes 8acerlo como >uieras. Estructuras de control !l lengua0e de scripts de Maestro tiene varias estructuras de control= >ue permiten escribir complicados programas. / diferencia de las subrutinas= no 8ay ningLn lmite en el nivel de anidamiento de las estructuras de control ya todas en Lltima instancia est9n basadas en comandos GI4I 5ver mas adelante7 y en una sencilla ramificacin. a estructura de control m9s Ltil es el -!GIKP6!P!/4= bucle infinito= un e0emplo de lo >ue se da a continuacin<
U move servo + ba(W y be/in 4*** + servo D** delay 5*** + servo D** delay repeat ortN (on un periodo de + se/undo

23

!ste bucle continuar9 siempre. $i >uieres un bucle >ue pueda salirse alguna ve1 debes utili1ar )@I ! >ue es lo me0or para ese caso. )@I ! consume mayor nLmero en la pila y salta al final del bucle en caso de ser .. Por e0emplo= supongamos >ue >ueremos repetir el bucle 1. veces<
+* U arran(a (on +* en la pila be/in dup U (opia el numero a la pila - tNe (opy will be (onsumed by WP8># wNile U salta al inal si (ontador es * 4*** + servo D** delay 5*** + servo D** delay + minus U resta + del numero de ve(es <ue <uedan repeat

20ate >ue los bucles -!GIKP)@I !P6!P!/4 son similares a los bucles de muc8os lengua0es pero solamente en los scripts de Maestro= el )@I ! salta despu2s de su argumento. Para las acciones condicionales el I2P! $!P!K"I2 tambi:n se usan. $upongamos >ue >ueremos construir un sistema con un sensor en el canal ' y >ueremos a0ustar el servo 5 a 3... 51=5ms7 si el valor de entrada es menor de 512 5cerca de 2=5A7. !n caso contrario el servo se a0usta a #... 51=#5ms7. !l cdigo siguiente reali1a esta labor complicada<
3 /et7position D+2 less7tNan i F*** D servo else E*** D servo endi U (o/e el valor de la entrada 3 (omo numero de * a +*23 U (omprueba si es menor de D+2 -O + (ierto- * es also U esta parte U esta parte un(ioan si input3 V D+2 un(iona (uando input3 OI D+2

!n muc8os lengua0es ! $! es opcional. 4enga en cuenta una ve1 m9s >ue esto parece en principio ir 8acia atr9s respecto a otros lengua0es= ya viene despu2s la condicin. as estructuras de )@I ! y de I2 son suficientes para crear cual>uier tipo de secuencia de comandos. $in embargo= 8ay momentos en >ue es conveniente refle*ionar sobre lo >ue est9 intentando 8acer un bucle o una rama. $i slo desea saltar directamente de una parte del cdigo a otra= puede utili1ar un GI4I.
/oto mylabel U ...(ual<uier l[nea de (6di/o se salta... 5*** + servo U pasa por en(ima de esta l[nea mylabel: U el pro/rama (ontinua a partir de a<ui 5*** 2 servo

$olo el servo 2 se pone a 4...= mientras >ue el servo 1 no cambia ya >ue la eti>ueta esta despu:s. Su)rutinas Puede ser Ltil usar la misma secuencia de comandos varias veces a lo largo del programa. as subrutinas se utili1an para 8acer m9s f9cil y eficiente esto. Por e0emplo= supongamos es necesario establecer varias veces una posicin neutral de 3... 51=5 ms7 utili1ando la secuencia Mservo 3... 1 servo 3... 2M. $e puede encapsular en una subrutina como sigue<
sub neutral F*** + servo F*** 2 servo return

&uando >uieras reali1ar la operacin para los servos solo tienes >ue escribir como comando UneutralV. @ay rutinas avan1adas >ue pueden tomar valores de la pila. Por e0emplo la subrutina<
sub set7servos 2 servo + servo return

a0usta el canal 2 segLn valor de la parte superior de la pila y el canal 1 segLn el valor siguiente. uego si escribes U4... 3... setdservosV= el script a0usta el canal 1 a 4... y el canal 2 a 3.... @ay subrutinas >ue pueden llamar a otras subrutinas= 8asta un lmite de 1. niveles de recursividad. Por e0emplo= puede aplicarse la subrutina MneutralM por encima de la llamada a setdservos<
sub neutral F*** F*** set7servos return

2#

:.). &eferencia de comandos


!sta tabla es una lista de los comandos y palabras usadas en el lengua0e de scripts de Maestro. a columna UefectoV especifica cuantos nLmeros de pila consumen y >ue se aNaden a la pila. Por e0emplo el comando P ,$ coge dos nLmeros y devuelve unoF luego el UefectoV en la pila ser9 ?2G1. os comandos con efectos especiales se marcan con e. palabras efecto descripcin
B#98: #:%8= #>S# 93,3 label 8= "#2#$, S'B name WP8># nada nada nada nada -+ nada nada -+ &ar(a el prin(ipio del bu(le =inaliza un blo<ue (ondi(ional 8=@#:%8= #mpieza un blo<ue alternativo en 8=@#>S#@#:%8= Salta a la eti<ueta label 0de inida (on label:1 #ntra en un blo<ue (ondi(ional y el ar/umento es verdadero 0no-(ero1 en 8=@#:%8= o 8=@#>S#@#:%8= &ar(a el inal de un bu(le %e ine una subrutina de nombre name Salta al inal del bu(le si el ar/umento es also 0(ero1

"e control
;'8, "#,'":

efecto
nada nada

descripcin
2ara el s(ript =inal de subrutina

"e tiempo
%#>$\ 9#,7&S

efecto
-+ ]+

descripcin
"etardo en ms ?alor a(tual del timer en ms 0entre 32EFE a -32EF41

"e pila
%#2,P %"32 %'2 3?#" 28C^ SW$2 "3, "3>> 2##^ 23^#

efecto
]+ -+ ]+ ]+ -+-]+ a-b _ b-a a-b-( _ b-(-a -+-` -+-]+ -2-]+

descripcin
"e(o/e el (antidad de nAmeros de la pila "emueve el numero superior de la pila %upli(a el numero superior %upli(a el numero si/uiente al superior (opiando sobre el superior taWes a number n- tNen puts tNe ntN number below tNe top onto tNe sta(W 0* 28C^ is e<uivalent to %'21 8nter(ambia los dos nAmeros superiores 2ermuta los tres nAmeros superiores en el orden des(rito taWes a number n- tNen permutes tNe top n]+ numbers so tNat tNe n]+tN be(omes tNe top and all o tNe otNers move down one &ini &aestro +2- +4- y 25 solo1 taWes a number n- tNen (opies tNe ntN value on tNe sta(W 0medido desde abajo1 to tNe top o tNe sta(W &ini &aestro +2- +4- y 25 solo1 taWes a number n- tNen removes tNe next value rom tNe sta(W and puts it at tNe ntN lo(ation on tNe sta(W 0medido desde abajo1

Comandos matemEticos 6unitarios, !stos comandos cogen un argumento simple de la parte superior de la pila y devuelven un valor simple como resultado. /lgunos tienen e>uivalencia en & 5y en otros lengua0es7= como vemos en la columna Uen &V. ,samos UfalsoV e>uivale a . y UverdaderoV e>uivale a cual>uier valor >ue no lo sea. !l comando UverdaderoV siempre devuelve 1. &omando !>uivale en & descripcin
B8,W8S#7:3, >398C$>7:3, :#9$,# 23S8,8?# :#9$,8?# :3:b#"3 a Z C nada nada nada 8nvierte todos los bits del ar/umento "eemplaza verdadero (on also- also (on verdadero "eemplaza x por -x ?erdadero solo si el ar/umento es mayor de * ?erdadero solo si el ar/umento es menor de * ?erdadero 0+1 solo si el ar/umento es no-(ero!

2%

Comandos matemEticos 6)inarios, !stos comandos cogen dos argumentos de la parte superior de la pila y devuelven uno como resultado. !l orden de los argumentos cuando importa son los standard en matem9ticasF por e0emplo 1?2 escribir9s U1 2 MIK,$V. !stos comandos tienen su e>uivalencia en & 5y en otros muc8os lengua0es7= lee la columna U& e>uivalentV. !>uivale &omando descripcin en &
B8,W8S#7$:% B8,W8S#73" B8,W8S#7L3" %8?8%# #;'$>S 9"#$,#"7,P$: >#SS7,P$: >398C$>7$:% >398C$>73" &$L &8: &8:'S &3% :3,7#;'$>S 2>'S SP8=,7>#=, SP8=,7"89P, ,8&#S G M c ) I O V GG MM nada nada C d ZI ] VV OO ` $pli(a la un(i6n $:% a los bits es(o/idos del ar/umento. $pli(a la un(i6n 3" a los bits es(o/idos del ar/umento $pli(a la un(i6n L3" a los es(o/idos bits del ar/umento divisi6n ?erdadero solo si los ar/umentos son i/uales ?erdadero solo si el primer ar/umento es mayor <ue el se/undo ?erdadero solo si el primer ar/umento es menor <ue el se/undo ?erdadero si ambos ar/umentos son verdaderos ?erdadero si solo uno de los ar/umentos es verdadero Sele((iona el mayor de los dos ar/umentos Sele((iona el menor de los dos ar/umentos "esta "esto de divisi6n ?erdadero si los ar/umentos :3 son i/uales Suma %esplazamiento de bits a la iz<uierda 0sin ajuste1 %esplazamiento de bits a la dere(Na 0sin ajuste1 &ultipli(ar

$alidas 5servo= led=.7 efecto


S2##% $CC#>#"$,83: 9#,723S8,83: -2 -2 -+-]+

descripcin
$justa la velo(idad del (anal espe(i i(ado por el elemento superior al valor del se/undo elemento 0ver se((i6n 5.e1 $justa la a(elera(i6n del (anal espe(i i(ado por el elemento superior al valor del se/undo elemento 0ver se((i6n 5.e1 Co/e la posicin del (anal espe(i i(ado por el elemento superior. ?erdadero si (ual<uiera de los servos se esta moviendo limitado por la velo(idad y a(elera(i6n $justa el destino del (anal espe(i i(ado por el elemento superior al valor del se/undo elemento 0ver se((i6n 5.e1.'nidades *.2D es $justa el destino del (anal espe(i i(ado por el elemento superior al valor del se/undo elemento 0ver se((i6n D.e1 <ue puede tener valores de * a 2D5 0ver &ini SSC Comando en se((i6n D.e1 #n(iende el >#% rojo $pa/a el >#% rojo 0asumiendo <ue no Nay bits de error1 &ini &aestro +2- +4- y 25 solo1 Nabilita la salida 2W&(on el periodo del elemento superior y el pulso del si/uiente elemento- en unidades de +)54 es 0ver se((i6n 5.a para mTs in orma(i6n1 &ini &aestro +2- +4- y 25 solo1 sa(a el numero superior de la pila- lo interpreta (omo un byte y lo env[a ,,> por la l[nea 0,L1

9#,7&3?8:97S,$,# ]+ S#"?3 -2

S#"?374B8, >#%73: >#%73== 2W&

-2 nada nada -2

S#"8$>7S#:%7B\,# -+

2+

:.c. Ejem lo de Scri ts


Parpadeo de $E%

!l siguiente script provoca >ue el !" ro0o de Maestro parpadee cada segundo<
U 2arpadeo del >#% rojo (ada se/undo. be/in led7on +** delay led7o S** delay repeat

!s buena idea repasar el script antes de seguir. !n particular= preste atencin a cmo el comando M1..M pone el nLmero 1.. en la pila y el comando "! /` consume ese nLmero. !n el lengua0e de scripts de Maestro= los argumentos siempre tienen colocarse en la pila antes >ue los comandos >ue los utili1an= por lo >ue parece >ue vaya al rev:s de otros lengua0es. 4ambi:n nos indica >ue puedes organi1ar el cdigo de maneras diferentes. Por e0emplo= este programa es e>uivalente a la anterior<
U BlinWs tNe red >#% on(e per se(ond. be/in S** +** led7on delay led7o delay repeat

os nLmeros se meten en la pila al principio del bucle= cuando se consumen m9s tarde. Presta atencin en el orden empleado a>ui< el +.. entra en la pila primero y se usa el Lltimo.
&na simple secuencia de servo

!l siguiente script muestra como direccionar el servo . a cinco posiciones diferentes en un bucle.
U &over servo * a (in(o posi(iones di erentes- en el bu(le. be/in 5*** * servo U ajusta servo * a +.** ms D** delay D*** * servo U ajusta a +.2D ms D** delay F*** * servo U ajusta a +.D* ms D** delay E*** * servo U ajmusta a +.ED ms D** delay 4*** * servo U ajusta a 2.** ms D** delay repeat

!l modo serie no debe estar configurado para detectar la velocidad de transmisin en esta secuencia de comandos. !n ese modo Maestro no permite ninguna de las salidas de los servos 8asta >ue el byte de inicio 8a sido recibido. 4enga en cuenta >ue la posicin de los servos se especifica en unidades de .=25 us= por lo >ue un valor de 4... corresponde a 1 ms. os comentarios son esenciales para programas complicados. !s importante tener en cuenta los comandos "! /`= sin los cuales= el script no espera a entre todos los comandos e0ecut9ndose el bucle cientos de veces por segundo. &omprender la secuencia !l programa anterior tiene 5% bytes de espacio de programa< 11 bytes para cada posicin del servo y ' para el bucle. / este ritmo= podramos almacenar 8asta +2 posiciones en la memoria de 1.24 bytes de Micro Maestro= o #44 posiciones la memoria de %1+2 bytes de los Mini?Maestros. Para obtener el m9*imo rendimiento de la memoria >ue es limitada= 8ay una gran variedad de formas de comprimir el programa. o m9s importante es 8acer uso de subrutinas. Por e0emplo= ya >ue se repiten las instrucciones de M. servo 5.. delayM en varias ocasiones= podemos pasar a una subrutina para a8orrar espacio. /l mismo tiempo= esto simplifica el cdigo y 8ace >ue sea m9s f9cil 8acer las futuras modificaciones= como cambiar la velocidad de la secuencia completa.
U &ove servo * to be/in 5*** rame ive di erent positions- in a loop.

'.

D*** rame F*** rame E*** rame 4*** rame repeat sub rame * servo D** delay return

,sando la subrutina recortamos el script '1 bytes< 4 por la posicin y 11 bytes por el bucle y la definicin de 26/M!. Podemos ir m9s all9< al inspeccionar el cdigo compilado nos muestra >ue poner cada nLmero en la pila re>uiere ' bytes< un byte como comando y dos para el nLmero de dos bytes. KLmeros del . al 255 pueden cargarse en la pila con slo dos bytes. $upongamos >ue en nuestra aplicacin no necesitamos la resolucin completa ..25 Bs del dispositivo ya >ue todos nuestros valores son mLltiplos de 1... !ntonces podemos usar nLmeros m9s pe>ueNos para guardar en un byte<
U &ove servo * to ive di erent positions- in a loop. be/in 5* rame D* rame F* rame E* rame 4* rame repeat U loads a rame spe(i ied in 2D us units sub rame +** times * servo D** delay return

!ste programa tiene 2+ bytes= con ' bytes para la posicin y 14 para la cabecera. 4enemos la misma eficacia >ue usando el comando $!6AId%-I4= >ue necesita un byte de argumento de . a 254. Podemos reba0ar m9s poniendo todos los nLmeros 0untos<
U &ove servo * to ive di erent positions- in a loop. be/in 4* E* F* D* 5* rame rame rame rame rame repeat U loads a rame spe(i ied in 2D us units sub rame +** times * servo D** delay return

$i paso a trav:s de esta versin del programa= tambi:n se dar9 cuenta >ue los cinco nLmeros se colocan en la pila en un solo paso= esto es por>ue el compilador puede utili1ar un comando Lnico para poner varios nLmeros en la pila. ,tili1ando un Lnico comando para varios nLmeros a8orra espacio= a8ora estamos a slo 23 bytes. $lo 12 bytes se usan para los 5 frames= con una media de de 2=4 bytes para cada. !sto es probablemente lo suficientemente compacto E duplicando esta estructura podramos a0ustar 8asta 42. posiciones diferentes en la memoria de 1.24 bytes de Micro Maestro= sin embargo= el cdigo puede ser aLn m9s pe>ueNo. 2i0ate en esta secuencia >ue utili1a '1 frames para 8acer un movimiento suave de ida y vuelta<
U &oves servo in a sine wave between + y 2 ms. be/in F* F5 F4 E+ E5 EE ES 4* 4* ES E4 EF E3 E* FF F2

'1

D4 D5 D* 5E 55 52 5+ 5* 5* 5+ 53 5F 5S D2 DF all7 rames repeat sub all7 rames be/in deptN wNile +** times * servo +** delay repeat return

!n este cdigo 8emos escrito 26/M! como subrutina usando el comando "!P4@ >ue autom9ticamente las lee desde la pila mientras no traba0a. !ste programa usa '4 bytes para almacenar '1 frames con una media de 1=2 bytes por frame. Puedes almacenar una secuencia con +.. posiciones diferentes en memoria usando el rey del script.
Secuencias suaves con GET'M()*+G'STATE

Aelocidad y aceleracin pueden usarse para 8acer las secuencias suaves. $in embargo= un problema comLn es >ue no sabes la cantidad de retardo entre frames para permitir >ue el servo pueda alcan1ar su posicin final. ,n e0emplo de cmo utili1ar la funcin integrada de G!4dMIAIKGd$4/4! para 8acer una secuencia de suave movimiento= en lugar de usar "! /`.
U ,Nis example uses speed y a((eleration to maWe a smootN U motion ba(W y ortN between + y 2 ms. 3 * a((eleration 3* * speed be/in 5*** * servo U set servo * to +.** ms movin/7wait 4*** * servo U 2.** ms movin/7wait repeat sub movin/7wait be/in /et7movin/7state wNile U wait until it is no lon/er movin/ repeat return

G!4dMIAIKGd$4/4! devuelve un 1= siempre y cuando 8aya al menos un servo en movimiento= lo >ue se puede utili1ar cuando >uieras esperar a >ue todos los movimiento se detengan antes de proceder al siguiente paso del script.
Entrada anal,gica para controlar servos

,na caracterstica importante del maestro es >ue puede ser usado para leer entradas de sensores= in? terruptores y otros dispositivos. &omo e0emplo= supongamos >ue >ueremos usar un potencimetro para controlar la posicin de un servo. &onectar un potencimetro para formar un divisor de tensin entre 5 A y .= con la toma central conectada al canal 1. &onfigurar el canal 1 como entrada= y e*a? minar la seNal en la pestaNa Status del &entro de &ontrol Maestro. "ebes ver el indicador de posi? cin >ue vara de . 8asta 255 us cuando giras el potencimetro de un lado a otro. !n el script= este rango corresponde a los nLmeros de . a 1.2'. Podemos ampliar este nLmero 8asta el rango del ser? vo= cuando la posicin llegue a este numero= todo en el bucle<
U $justa servo * a la posi(i6n basada en una entrada anal6/i(a. be/in + /et7position U /et tNe value o tNe pot- *-+*23 5 times 5*** plus U s(ale it to 5***-4*S2- approximately +-2 ms * servo U set servo * based to tNe value repeat

Por otra parte= tal ve1 desees >ue el servo vaya otras posiciones en funcin del valor de entrada<
U Set tNe servo to 5***- F***- or 4*** dependin/ on an analo/ input. be/in

'2

+ /et7position U /et tNe value o tNe pot- *-+*23 dup 3** less7tNan i 5*** U /o to 5*** or values *-2SS else dup F** less7tNan i F*** U /o to F*** or values 3**-DSS else 4*** U /o to 4*** or values F**-+*23 endi endi * servo drop U remove tNe ori/inal (opy o tNe pot value repeat

!n el e0emplo anterior funciona= pero cuando el potencimetro est9 cerca de '.. o 3..= las interferencias en la conversin /" pueden causar >ue el servo vibre. ,na me0or manera de 8acerlo es con 8ist:resis<
U $justa el servo a 5***-F***-4*** se/An la entrada anal6/i(a (on Nysteresis. be/in 5*** * 3** servo7ran/e F*** 3** F** servo7ran/e 4*** F** +*23 servo7ran/e repeat U usa/e: VposO VlowO VNi/NO servo7ran/e U 8 tNe pot is in tNe ran/e spe(i ied by low y Ni/NU Weeps servo * at pos until tNe pot moves out o tNis U ran/e- witN Nysteresis. sub servo7ran/e pot 2 pi(W less7tNan lo/i(al7not U OI low pot 2 pi(W /reater7tNan lo/i(al7not U VI Ni/N lo/i(al7and i be/in pot 2 pi(W +* minus less7tNan lo/i(al7not U OI low - +* pot 2 pi(W +* plus /reater7tNan lo/i(al7not U VI Ni/N ] +* lo/i(al7and wNile 2 pi(W * servo repeat endi drop drop drop return sub pot + /et7position return

!n este e0emplo se utili1a un rango para decidir a dnde ir cuando 8ace una transicin y luego espera a >ue el servo 8aga un rango un poco m9s grande antes de 8acer otra transicin. $iempre y cuando la diferencia 51. en este e0emplo7 sea mayor >ue la cantidad de ruido= esto evitar9 los saltos. 4enga en cuenta >ue este e0emplo slo funciona si se conecta el potencimetro a uno de los canales de entrada analgicos capaces 5canales .?117. as entradas en los otros canales son digitales.
&so de un pulsador o de un interruptor para controlar servos

!s posible conectar un pulsador o un interruptor al Maestro y detectar su estado en el script. !l script siguiente mueve un servo a trav:s de una secuencia predeterminada de movimientos= avan1ando a la siguiente etapa cada ve1 >ue pulsamos. ,tili1amos el canal . para el pulsador y el canal 1 para el servo. !l canal del pulsador debe estar configurado como entrada y conectado correctamente. ver la seccin #.b para las instrucciones de cmo reali1ar la cone*in con una resistencia de pull?up= con lo >ue la entrada estar9 en alto y al pulsar pasar9 a nivel ba0o.
/oto main7loop U "un tNe main loop wNen tNe s(ript starts 0see below1. U #sta rutina devuelve + si pulsas- * si no. U 2ara (overtir el valor de entrada 0*-+*231 a valor di/ital 0* o +1 <ue

''

U representa el estado del pulsador Na(emos una (ompara(i6n arbitraria 0D**1. U >a subrutina pone el valor lo/i(o + o a * en la pila- se/An pulsemos. sub button * /et7position D** less7tNan return U #sta subrutina usa la anterior para esperar la pulsa(i6n- in(luyendo U un pe<ueHo retardo para eliminar rebotes de la entrada. sub wait7 or7button7press wait7 or7button7open7+*ms wait7 or7button7(losed7+*ms return U #spera la :3 pulsa(i6n durante +* ms. sub wait7 or7button7open7+*ms /et7ms U put tNe (urrent time on tNe sta(W be/in U reset tNe time on tNe sta(W i it is pressed button i drop /et7ms else /et7ms over minus +* /reater7tNan i drop return endi endi repeat U #spera la pulsa(i6n durante +* ms. sub wait7 or7button7(losed7+*ms /et7ms be/in U reset tNe time on tNe sta(W i it is not pressed button i /et7ms over minus +* /reater7tNan i drop return endi else drop /et7ms endi repeat Como usar "ait'-or'button'press U 'sa W$8,7=3"7B',,3:72"#SS para permitir el paso a paso U de se(uen(ias en (ada pulsa(i6n para posi(ionar el servo + main7loop: be/in 5*** rame D*** rame F*** rame E*** rame 4*** rame repeat sub rame wait7 or7button7press + servo return

Igual >ue el e0emplo anterior= el script de pasos a trav:s de una secuencia de frames= pero en lugar de un retardo entre frames a>ui espera slo a pulsar un botn. a subrutina )/I4d2I6d-,44IKdP6!$$ se puede utili1ar en una variedad de secuencias con comandos diferentes= cada ve1 >ue tengas >ue esperar la pulsacin. 4ambi:n se podra ampliar este e0emplo para permitir >ue varios pulsadores o >ui19s otros tipos de control con el pulsador.
&tili.aci,n de varios pulsadores o interruptores para control de servos

!ste script muestra cmo conectar el Maestro a varios pulsadores. &uando se pulsa se e0ecuta la secuencia correspondiente.
U WNen tNe s(ript is not doin/ anytNin/ elseU tNis loop will listen or button presses. WNen a button

'4

U is pressed it runs tNe (orrespondin/ se<uen(e. be/in button7a i se<uen(e7a endi button7b i se<uen(e7b endi button7( i se<uen(e7( endi repeat U ,Nese subroutines ea(N return + i tNe (orrespondin/ U button is pressed- y return * otNerwise. U Currently button7a is assi/ned to (Nannel *U button7b is assi/ned to (Nannel +- and U button7( is assi/ned to (Nannel 2. U ,Nese (Nannels must be (on i/ured as 8nputs in tNe U CNannel Settin/s tab. sub button7a * /et7position D** less7tNan return sub button7b + /et7position D** less7tNan return sub button7( 2 /et7position D** less7tNan return U ,Nese subroutines ea(N per orm an arbitrary se<uen(e U o servo movements. \ou sNould (Nan/e tNese to it U your appli(ation. sub se<uen(e7a 5*** 3 servo +*** delay F*** 3 servo D** delay return sub se<uen(e7b 4*** 5 servo S** delay E*** 5 servo S** delay F*** 5 servo S** delay return sub se<uen(e7( +* 5 speed E*** 5 servo 3*** delay F*** 5 servo 3*** delay return

4enga en cuenta >ue este script no 8ace multitarea. $i una secuencia se e0ecuta= el script no detecta otras pulsaciones 8asta >ue la secuencia se termina. !s posible 8acer >ue los pulsadores funcionen de forma independiente= pero el script tendra >ue ser muc8o m9s complicado. "ependiendo de cmo traba0es con la escritura de scripts es posible >ue prefieras usar varios controladores Maestro en su lugar.
!etardos largos

os retardos largos son posibles con el comando "! /` 8asta unos '2 segundos. !n algunos casos puedes necesitar retardos muc8o m9s largos. />u tienes un e0emplo para muc8os segundos e minutos<
U &over servo * adelante y atrTs- (on retardos de +* minutes entre movimientos. be/in 5*** * servo +* delay7minutes 4*** * servo +* delay7minutes repeat U delay by a spe(i ied number o se(onds- up to FDD3D s sub delay7se(onds be/in dup wNile U (Ne(W i tNe (ount Nas rea(Ned zero + minus +*** delay U subtra(t one y delay +s repeat drop return U remove tNe * rom tNe sta(W y return U delay by a spe(i ied number o minutes- up to FDD3D min

'5

sub delay7minutes be/in dup wNile + minus F* delay7se(onds U subtra(t one y delay +min repeat drop return U remove tNe * rom tNe sta(W y return

!s f9cil escribir subrutinas para retardos de 8oras= das= semanas= o lo >ue >uieras. 4enga en cuenta= sin embargo >ue el tempori1ador del Micro Maestro no es tan preciso como un cronmetro ? estos retrasos fallar f9cilmente en un 1[.
Salida digital

a funcin de salida digital del Maestro es capa1 de controlar cual>uier cosa= desde circuitos simples a dis? positivos inteligentes= como los mdulos $8ift-rite o $8ift-ar. $on mdulos controladores de leds >ue utili? 1an un simple protocolo serie sncrono. !n este e0em? plo= los pins del $8ift-rite= el cloc;= el latc8= y datos es? t9n conectadas a los canales .= 1= y 2= respectivamente= y estos canales est:n configurados como salidas. a su? &one*in del Micro Maestro a una cadena de brutina 6G- definida a>u toma valores de 1.?bits de la $8ift-ars. ,na sola alimentacin de 12A para pila para los colores ro0o= verde= a1ul= luego enva un todos los dispositivos. pa>uete color de '2?bytes >ue cambia el latc8 para ac? tuali1ar el $8ift-rite con el valor nuevo recibido. a subrutina puede ser modificada para el control de una cadena m9s grande de $8ift-rites si lo deseas.
be/in +*23 * * r/b D** delay U red * +*23 * r/b D** delay U /reen * * +*23 r/b D** delay U blue repeat U Subroutine or settin/ tNe "9B value o a SNi tBrite)SNi tBar. U example usa/e: +*23 D++ 2DD r/b sub r/b * send7bit U tNis bit does not matter * send7bit U tNe .address. bit - * means a (olor Comando swap rot rot send7+*7bit7value send7+*7bit7value send7+*7bit7value * + 4*** + servo servo U to//le tNe lat(N pin return U sends a numeri(al value as a se<uen(e o +* bits sub send7+*7bit7value D+2 be/in dup wNile over over bitwise7and send7bit + sNi t7ri/Nt repeat drop drop return U sends a sin/le bit sub send7bit i 4*** else * endi 2 servo U set %$,$ to * or + * * 4*** * servo servo U to//le C>3C^ return

4enga en cuenta >ue se utili1a . para establecer la salida en ba0a y %... para establecer el alto. !stas son opciones ra1onables= pero cual>uier valor desde . 8asta 5+++ podra ser utili1ado para como ba0o y desde 3... 8asta '2#3# podra ser utili1ado para alto= si lo desea.

'3

Salida serie /Mini Maestro 01# 02# 3 14 solamente5

!n Mini?Maestro Mini 12= 1%= y 24= un script puede ser usado para enviar datos serie por el puerto 44 serie 5lnea 6O7. !sto significa >ue Maestro puede controlar Maestros adicionales= lo >ue per? mite un gran nLmero de canales sin necesidad de un microcontrolador aparte. />u tienes un senci? llo programa >ue muestra cmo un comando se puede utili1ar para controlar a otro Maestro. Para utili1ar este cdigo= configura los Maestros en modo ,/64 con la misma velocidad de trans? misin y conectados a la lnea 4O del master con la 6O del esclavo.
+** delay U initial delay to maWe sure tNat tNe otNer maestro Nas time to initialize be/in +2E * mini7ss( U set servo * to position +2E- usin/ tNe mini-SSC Comando 2D5 * mini7ss( U set servo * to position 2D5 repeat sub mini7ss( *x== serial7send7byte serial7send7byte serial7send7byte return

:.d. Es ecificaciones ara los scri ts


!l lengua0e de scripts de Mini Maestros esta disponible tambi:n para Micro Maestro. as diferencias las vemos en la tabla siguiente. Micro Maestro Mini Maestro 12= 1%= y 24 $cript tamaNo 1H% H$tac; tamaNo '2 123 &all stac; tamaNo 1. 123 Kumero de subrutinas 12% $in limite &omandos e*tras< P!!H= PIH!= P)M= $!6I/ d$!K"d-`4! Scri t tamaFo< !s el numero de bytes en memoria >ue se usa para almacenar cdigo. ,n script grande permite almacenar muc8as frames y escribir comple0os programas. Stac9 tamaFo3 !s el m9*imo nLmero de valores >ue pueden meterse en la pila al mismo tiempo. ,na pila m9s grande permite tener m9s variables= 8acer c9lculos m9s grandes= y preocuparse menos de su desborde. Call stac9 tamaFo3 !s el m9*imo de anidamientos de subrutinas 5m9*imo de rellamadas7. "#mero de su)rutinas3 !s el nLmero de subrutinas >ue puedes tener. as primeras 12% subrutinas "el script son especialesF estas pueden iniciarse usando comandos ,$- nativos y cada llamada desde dentro de la secuencia de comandos solo re>uiere un byte de espacio. Micro Maestro solo soporta 12% subrutinas. Mini Maestro 12=1% y 24 soportan un nLmero ilimitado pero las definidas despu:s de la 12% no pueden iniciarse desde ,$- y cada llamada re>uiere ' bytes en el script.

2. Ejem los de circuitos


!sta seccin contiene e0emplos de circuitos para Maestro para mostrar diferentes formas en >ue se puede conectar a tu proyecto. /un>ue muc8as de las im9genes slo muestran el Micro Maestro= la informacin se puede aplicar a todos los modelos 5a menos >ue se indi>ue lo contrario7.

2.a. .limentacin de Maestro


@ay varias maneras de alimentar a Maestro y controlar los servos. .limentacin desde USB $i se conecta una fuente de alimentacin para el servo en los terminales de cone*in y el Maestro a ,$- como se muestra en la imagen de la derec8a= entonces el procesador del Maestro !l procesador de Micro Maestro puede ser9 alimentado por ,$-= mientras >ue los servos por la fuente alimentarse desde ,$- mientras los de alimentacin. servos por separado.. '#

a alimentacin debe tener una tensin dentro del rango de los servos capa1 de suministrar toda la corriente >ue los servos necesiten. !n esta configuracin= si el ordenador 5u otro 8ost ,$-7 al >ue el Maestro est9 conectado se pone en reposo= de forma predeterminada el Maestro tambi:n y de0a de enviar pulsos a los servos. $i necesitas mover los servos= mientras el ordenador est9 apagado= puedes utili1ar Uignorar suspensin ,$-V en la fic8a Serial Settin/s del &entro de &ontrol Maestro. 4enga en cuenta >ue esto slo funcionar9 si el e>uipo suministra energa al puerto ,$- mientras est9 en reposo a no ser >ue Maestro no sea compatible con ,$-. +os alimentaciones $i conectas la alimentacin al terminal de servos y conectas otra alimentacin a GK"DAIK para el procesador de Maestro= debes asegurarte de >ue AIK tiene de 5E13A y es capa1 de suministrar al menos '. m/ al Micro Maestro o 5. m/ a Mini Maestro. a alimentacin de los servos deber9 estar en los valores correctos y con la potencia suficiente para >ue puedan moverse. Una sola alimentacin $i conectas todo con una sola alimentacin en AIK debes unirla !l procesador del Micro Maestro y al terminal de alimentacin de los los servos alimentados con dos servos "ebe estar entre 5?13A y tensiones. tener la fuer1a suficiente para >ue los respectivos servos puedan traba0ar en sus rangos y con la potencia necesaria para ellos. !l procesador del Micro Maestro y los !n Micro Maestro de 3 canales= una manera de 8acerlo es servos pueden alimentarse con 5E13A circuitando segLn el dibu0o ambas tomas de alimentacin. !n los conectando el positivo del servo a AIK. Mini Maestro 12= 1% y 24 recomendamos 8acer la cone*in a trav:s del puente dedicado >ue 8ay en el lateral de la placa usando el 0umper a1ul para conectar los pins eti>uetados como UA$6ARAIKV.

2.). Cone4in de servos ! Perif?ricos


!n Maestro= cual>uiera de los canales puede ser utili1ado como salida de pulso para un servo 6&= como entrada analgicaDdigital= o como salida digital. !sto permite a Maestro el control de servos= lectura de pulsadores= de posiciones de un potencimetro= control de leds y m9s. os canales pueden ser controlados desde el script de usuario en el maestro o e*ternamente en 44 de serie o ,$-. Servo Para conectar un servo al Maestro= primero debes decidir >ue canal vas a utili1ar. $i no est9 confi? gurado para modo servo 5por defecto7 en el &entro de &ontrol Maestro= en la pestaNa CNanel settin/s= debes cambiarlo a modo ser%o y clic en M/plicarM. &onecta los cables del servo al canal= con cuidado de no conectarlos al rev:s o podra destruirlo. !l cable de seNal 5blanco= naran0a o amarillo7 debe ir 8acia el interior de la placa y el de tierra 5negro o marrn7 debe estar m9s cerca del borde. "eberas conectar una fuente de alimentacin de && para dar corriente a los servos 5mira en seccin #.a para las formas de alimentacin7. /8ora puedes probar el servo estableciendo el destino del canal en la pestaNa Status del &entro de &ontrol Maestro. $i est9 activado para servo con la casilla de verificacin 8abilitada debe ser capa1 de mover el servo al arrastrar la barra desli1ante a i1>uierda y derec8a. /8ora ya puedes controlar los servos con un script mediante el comando $!6AI= o usando el comando M$et 4argetM. !stos co? mandos usan argumentos en unidades de cuarto de microsegundo= por lo >ue se deben multiplicar los valores ob0etivo >ue se ven en la fic8a $tatus por cuatro para calcular los argumentos correctos. @ay comandos m9s avan1adas >ue tambi:n est9n disponibles para el control de servos. Pulsador o Interru tor Para reali1ar la cone*in de estos dispositivos= primero debes decidir el canal a usar y configurarlo en la pestaNa CNannel Settin/s= con ponerlo en modo input y clic en U/plicarV. despu:s intercala '%

una resistencia pull?up 51E1..;7 entre la lnea de seNal y 5A para >ue la entrada est: en alto 55A7 cuando no se utili1a. Pon el dispositivo entre la lnea de seNal y GK" 5.A7 para >ue al activar la entrada se ponga en .A. !l dibu0o muestra como 8acerlo en un Micro Maestro de seis canales. Kota< as resistencias e*ternas de pull?up resistor no son necesarias si usas los canales 1%= 1+ o 2. en Mini Maestro 24 ya >ue est9n pueden ser 8abilitadas internamente en la pestaNa CNannel Settin/s del Maestro &ontrol &enter. Puedes testear la entrada activando el pulsador o el interruptor y verificando la variable position >ue se muestra en la pestaNa $tatus del Maestro &ontrol &enter >ue refle0a el estado del dispositivoF estar9 cerca de 255=#5 sin pulsar y . si se actLa sobre el. /8ora ya podr9s leer el estado del &one*in de un pulsador o un interruptor al dispositivo en tu script con el comando 9#,723S8,83: o Micro Maestro . con la M9et 2ositionM. !stos comandos devuelven valores >ue est9n entre 1.2' si no se actLa y de . cuando se activa. Potencimetro Para conectar un potencimetro primero decidir el canal a utili1ar. $i tienes el Mini Maestro 1% o 24 canales asegLrate de escoger entre uno de los canales de entrada analgicos 5canales .?117. !n el &entro de &ontrol Maestro= en la pestaNa CNannel Settin/s= cambia el modo de entrada del canal y clic en M/plicarM. uego= conecta el potencimetro al Maestro para >ue los e*tremos vayan a GK" y 5 A= y el centro a la lnea de seNal. a imagen muestra cmo 8acer para conectar un potencimetro en el canal . del Micro Maestro Micro de 3 canales. !l potencimetro debe tener una resistencia de al menos 1; para >ue no absorba muc8a corriente de la &one*in de un potencimetro a un Micro lnea de 5A. Maestro. Puedes probar girando el potencimetro y ver >ue la Position varia como se muestra en la fic8a Status del &entro de &ontrol Maestro y refle0a el valor del potencimetro< apro*imadamente debe variar entre 255=#5 y .. /8ora puedes leer la posicin del potencimetro en un script con el comando 9#,723S8,83: o con el comando serie M9et 2ositionM. !stos comandos devolver9n valores apro*imados entre 1.2' y .. -ed Para la cone*in de un !" al Maestro despu:s de decidir >ue canal se va a utili1ar debes cambiar el modo del canal a 3utput en la pestaNa CNannel Settin/s del Maestro &ontrol &enter y clic U/plicar a0ustesV. despu:s conecta el &f4I"I del led a GK" 5cual>uier toma de tierra del la placa nos vale7 y el fKI"I a la lnea de seNal con una resistencia de 22. o8mios para su proteccin= lo >ue significa >ue puedes conectar la mayora de leds directamente a la lnea= sin embargo= lee la fic8a t:cnica del !" para asegurarte= y aNadir su &one*in de un !" al Micro Maestro propia resistencia= si es necesario. Prueba el !" mediante el a0uste del UdestinoV en la pestaNa $tatus del Maestro &ontrol &enter. !l !" se encender9 si se establece el ob0etivo para ser mayor o igual a 15.. ms y apagado en otro caso. Puedes controlar el !" en el script con el comando $!6AI o en comunicacin serie con el comando M$et 4argetM. !stos comandos usan argumentos en unidades de un cuarto de microsegundos= por lo >ue el !" debe encenderse si se enva un nLmero mayor o igual a 3... 515..*4R3...7 y apagarse en caso contrario. a potencia en las lneas de seNal es limitada. Aer $eccin 1.a $eccin 1.b para m9s informacin7. '+

2.c. Conectar un microcontrolador


Maestro acepta comando serie 44 de un microcontrolador. Para conectarlo debes primero conectar la lnea GK" del micro con la correspondiente del Maestro. &uando conectes la lnea 4O 5transmisin serie7 del microcontrolador a la lnea 6O del Maestro el micro ya podr9 enviar comandos. $i necesitas recibir respuestas del Maestro entonces 8acemos la cone*in entre la lnea 6O 5recepcin serie7 del microcontrolador y la lnea 4O del Maestro. Para m9s informacin sobre comunicaciones consulta la seccin 5. Para >ue tu controlador pueda resetear el Maestro debes de conectar la lnea 6$4 de mismo a una lnea cual>uiera de entradaDsalida del micro. "ebera ser una lnea IDI tres estados o 5A cuando >uieras >ue el Maestro funcione y >ue pase a ba0o 5.A7 temporalmente al provocar un reset. $i &one*in Micro Maestro y microcontrolador. >uieres >ue el microcontrolador tenga capacidad para detectar los errores del Maestro por una entrada digital en lugar de comandos serie o si deseas recibir informacin directa del script conecta la lnea !66 de Maestro a cual>uier lnea IDI del microcontrolador. a lnea !66 est9 disponible solo en el Maestro Mini 12 = 1%= 24 canales. Aer 1.b seccin para m9s informacin de la lnea !66.

;. Escri)ir soft0are ara el control de Maestro


@ay dos maneras de escribir soft(are para el control de Maestro< la interfa1 nativa ,$- y el puerto serie virtual. a interfa1 ,$- dispone de muc8as caractersticas y permite configurar par9metros y seleccionar el maestro segLn su numero de serie. 4ambi:n con ,$- se puede recuperar m9s efica1mente frente a descone*iones temporales. !l puerto serie virtual es f9cil de usar si no est9s familiari1ado con la programacin y funciona con soft(are >ue use este puerto como abAie(. "ative USB Interface !l Pololu ,$- $oft(are "evelopment Hit soporta )indo(s y inu* e incluye cdigo fuente para< Maestro4as-45ample: ,na aplicacin simple >ue usa ,$- con tres pulsadores de control para el Maestro. a versin de este e0emplo esta en &J= Aisual -asic .K!4= y a Pololu ,$- $"H contiene e0emplo de cdigo para Aisual &GG. Maestro en &J= Aisual &GG= y Aisual -asic .K!4. Maestro6d%anced45ample: es un e0emplo de aplicacin para ,$- >ue enva comandos y recibe desde Maestro y se recupera autom9ticamente en caso de descone*in 5escrito en &J7. *scCmd: ,tilidad para comandos en lnea para configurara y controlar Maestro 5escrito en &J7. C7 . 40 libreras >ue 8abilitan la comunicacin ,$- con Maestro 5escrito en &J7. Puedes modificar las aplicaciones en el $"H segLn tus necesidades o puede utili1ar las libreras para integrar al Maestro en tus propias aplicaciones. *irtual Serial Ports &asi cual>uier lengua0e de programacin puede acceder a los puertos &IM creado por Maestro. $e recomienda el Microsoft. K!4 2rame(or;= >ue es libre de usar y contiene una clase $erialPort >ue 8ace >ue sea f9cil leer y escribir bytes por un puerto serie. Puedes descargar Aisual $tudio !*press 5para & J= & G G= o Aisual -asic7 y escribir programas >ue utili1an la clase $erialPort para comunicar con Maestro. &onfigura modo serie de Maestro para M,$- "ual PortM o M,$- &8ainedV

4.

G. Maestro limitaciones de ajustes


-imitaciones en las velocidades en )audios !n Mini Maestro 12= 1%= y 24= las velocidades siguientes no deben e*cederse o el procesador puede
Modo serie ,/64D,$- encadenadoe "ual?port 1.E1.. @1 2.. ;bps 115.2 ;bps 111E25. @1 115.2 ;bps 5#.3 ;bps ''' @1 115.2 ;bps 5#.3 ;bps

sobresaturarse y perder efectividad.


/sumiendo >ue los bytes no se envan y reciben simult9neamente a re>uerimiento del protocolo Pololu. 3 servos 244% 22#2 2112 1+'3 1##3 1313 5 servos 2+44 2#'3 2544 2''3 2144 1+'3 4 servos '...G '...G '...G 2+44 23%% 244% 1E' servos '...G '...G '...G '...G '...G '...G

Mini Maestro. -imitaciones en la longitud del ulso 6>ig> ulse rates solo,.
3# @1 #1 @1 ## @1 %' @1 +1 @1 1.. @1

Muc8os servos se 8an designado para operaciones a 5. @1. $i no vas a usar pulsos altos puedes ignorar esta seccin. Micro Maestro tiene restringida la longitud del pulso a un m9*imo de 3# @1. a restriccin depende del a0uste en Ser%os a%aila!le y se aplica de forma autom9tica por el Maestro &ontrol &enter. as longitudes de pulso m9*imas en microsegundos son< Mini Maestro. -imitaciones en la longitud del ulso 6>ig> ulse rates solo,. !n Mini Maestro 12= 1% y 2 las tasas de pulso de 2..E''' @1 ponen restricciones en el anc8o de pulso del servo. !stas restricciones se aplican a todos los canales= incluso si algunos tienen una tasa diferente por la funcin de Period multiplier. as tablas muestran longitudes de pulso m9*imo y mnimo permitido en ms= para una variedad de combinaciones de nLmeros de pulso tasas y servo. os servos 8abilitados siempre deben satisfacer las restricciones sobre alguna fila. &onfigura los m9*imos y mnimos para canales especficos de acuerdo con estas. Ko es necesario especificar los intervalos de los servo de antemano< puedes apagar algunos canales o a0ustar sus posiciones para tener acceso a una gama m9s amplia de otros canales. $i la configuracin puede violar estas restricciones= el perodo puede aumentar y los lmites de velocidad y aceleracin cambian en consecuencia= pero no afecta al funcionamiento del Maestro... /s con Mini Maestro 24 a 25. @1 54 ms periodo7= puedes usar 12 servos con un rango de 5#3E 2%%. Bs y 3 servos con un rango de 34E2%%. Bs. os seis canales restantes pueden ponerse en off o como In ut u 7ut ut 5no como Servo7.
$ervos 3 3 12 12 3D3 1% 1% 12D3 24 24 1%D3 Pulsos a ''' @1 Min 34 1+2 34 '%4 '%4D34 34 5#3 #3% Ma* 2'2% 234% 1#52 2453 2.#2 11#3 2234 2.#2 Pulsos a 25. @1 Min Ma* 34 '...G 34 '%4 '%4D34 34 5#3 5#3D34 34 #3% #3%D34 2#52 '...G '...G 21#3 '...G 2%%. 13.. '...G 23%% Pulsos a 2.. @1 Min Ma* 34 '...G 34 '%4D34 34 5#3D34 34 #3% #3%D34 '...G '...G '...G '...G 23.. '...G '...G

41

You might also like