Quinta-feira , 19 de Outubro de 2017
Home / Sociedade / Jogos / Programação avançada para o LEGO TECHNIC CyberMaster

Programação avançada para o LEGO TECHNIC CyberMaster

Hardware

O CyberMaster baseia-se no processador Hitachi H8/3294 e tem 1.5K de memória RAM. Faz uso de uma torre emissora/receptora de rádio ligada a uma porta série para comunicar com o computador, e o seu alcance é de aproximadamente 15 metros.

O CyberMaster vem equipado com 3 portas de entrada e 1 de saída. A porta de saída é de uso geral e é compatível com os dispositivos LEGO e tem capacidade selecção de tensão de saída com 7 níveis, em ambos os sentidos, permitindo portanto alterar a direcção e velocidade de um motor. As portas de entrada estão equipadas com um conversor analógico/digital de 10 bits e são de uso geral, mas não estão preparadas para fornecer energia a sensores activos, ao contrário do RCX.

Os 3 sensores de pressão com que o CyberMaster vem equipado trazem diferentes resistências, desta forma o CyberMaster consegue distinguir entre os diferentes sensores. O CyberMaster tem também capacidade de atestar a qualidade das comunicações com a torre e de verificar o consumo de energia do motor externo quando em funcionamento.

Os dois motores internos do CyberMaster são de alto-torque, embora tenham características diferentes do externo. Trazem integrados tacómetros de alta-precisão que permitem atestar o número de rotações com uma resolução de 1/50 de revolução, além de indicarem a velocidade instantânea a que os motores estão a rodar.

O conjunto 8482 LEGO TECHNIC CyberMaster além de vir com centenas de peças LEGO TECHNIC, rodas, lagartas, rodas dentadas, transmissões, etc., vem também equipado com 3 sensores de pressão e um motor de alto torque e de alta eficiência, além de 6 cabos de variadas dimensões para ligação aos motores/sensores.
O CyberMaster não é compatível com o Macintosh devido a necessitar de 2 linhas de hand-shake na porta série quando o Macintosh só suporta uma.

Software

O CyberMaster tem 2 formas distintas de funcionamento: autónomo e directo. O modo de funcionamento autónomo consiste num programa que é carregado para a unidade e que fica em memória sendo executado em qualquer altura sem se recorrer ao computador. No modo directo, o computador dá instruções explícitas á unidade que são executadas no momento, muito semelhante a um carro telecomandado. Curiosamente, estes dois processos podem ser conduzidos em simultâneo.

O CyberMaster faz uso de um interpretador de instruções que lida directamente com o hardware, apelidado de firmware, e que ao contrário do RCX não reside em RAM.
Os programas são desenhados dando instruções a este interpretador que por sua vez se encarrega de executar as tarefas.

O CyberMaster vem equipado com 1.5K de memória RAM, mas apenas tem aproximadamente 400 bytes de espaço disponivel para um unico programa. Aparentemente pode não parecer muito, mas não esqueçamos que apenas nos limitamos a dar ordens ao interpretador para executar tarefas, gastando entre 1 a 5 bytes por cada instrução, instruções essas que chegam a ser tão complexas como pôr os 3 motores em marcha simultâneamente com velocidades e direcções também diferentes.

O único programa que o CyberMaster suporta pode conter até 4 tarefas (tasks), um máximo de 4 sub-rotinas e até 32 variáveis de 16 bits.

O software do CyberMaster não é de grande utilidade para quem queira entrar no mundo da robótica, estando mais vocacionado para brincar ou jogar do que programar, embora esteja muito bem desenhado e permitir ensinar os principais truques e potencialidades do produto além de ensinar a construir modelos muito bem conseguidos.

Programação Avançada

O MindStorms (RCX) e O CyberMaster são produtos internamente bastante idênticos, inclusive partilhando o mesmo processador. As diferenças sobressaem apenas no que toca à memória disponível, limite do número de programas, tarefas e sub-rotinas e algumas rotinas que se encontram ausentes quer num, quer noutro.

Software de desenvolvimento aconselhado pelo autor desta página:

Programação em modo Autónomo

O NQCC ou Not Quite C Compiler está a ser desenvolvido por Dave Baum com o intuito de expandir a flexibilidade de programação do dos tijolos programáveis da LEGO. Trata-se da implementação de uma variação da linguagem C (daí o nome) e não é mais do que um compilador de instruções para o interpretador do RCX/CyberMaster. Este compilador shareware foi desenvolvido sem qualquer suporte da LEGO e através de muito trabalho de reverse engineer do RCX e do CyberMaster.

Tive a oportunidade trabalhar durante o último mês com Dave Baum, o autor do NQCC, para melhorar o suporte ao CyberMaster.
As novas modificações foram incorporadas no NQCC 1.0 Beta 4 que pode ser encontrado neste endereço:
www.enteract.com/~dbaum/lego/nqc/

Programação em modo Directo

Distribuído quer no CD do MindStorms quer no CyberMaster existe um componente de software com o nome de SPIRIT.OCX e que é usado pelo próprio software do RCX/CyberMaster (Spirit foi o nome de código de desenvolvimento do CyberMaster).
Este componente dá acesso a todas as funções do CyberMaster e permite comanda-lo em modo autónomo ou directo, além de ter muitas outras funcionalidades tais como permitir ver o estado corrente das variáveis/sensores do CyberMaster, o que é óptimo se quisermos criar um programa complexo que não se adapte as capacidades de processamento do CyberMaster.

Para os entendidos de programação em Windows 95/98/NT, suponho que nada mais será necessário acrescentar a esta descrição, para os restantes sigam estes links para exemplos de uso do SPIRIT.OCX, ou os links que disponibilizo na minha página de links.

Microsoft Visual C++: www.geocities.com/SiliconValley/Hills/8306/Lego/mindprog.html
Microsoft Visual Basic: home.concepts.nl/~bvandam/

O manual do SPIRIT.OCX fornecido pela própria LEGO esta neste endereço:
www.legomindstorms.com/sdk/

0

Check Also

Compensa comprar uma casa em construção?

Se está a pensar em comprar casa, comprar uma casa que ainda não esteja terminada …

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *