ProjetoLogo



Placa Gogo

[Se preferir ver essa página em tela cheia, aperte a tecla F11]
Durante um bom tempo tentei em vão fazer uma adaptação dos comandos Gogo usados no MicroMundos para o SuperLogo. Parte do que eu fazia sumia toda vez que eu salvava. Descobri mais tarde que o programa não aceita projetos com mais de 64kb : (.
Placa Gogo
A solução é usar a dll do 'Roger' (criador da placa gogo).
Primeiro baixe o arquivo GoGo DLL 11. O arquivo deve ser descompactado na pasta windows/system32 (mas também funcionará se for descompactado na pasta em que foi instalado o SuperLogo).
Para facilitar a vida de quem não quer usar comandos pouco intuitivos, fiz uma adaptação. Veja o conjunto de comandos abaixo.
* Versão para SuperLogo:
* Versão para FMSLogo:

Os comandos acima são os mesmos usados no MicroMundos (a ideia é quem já usou a placa gogo no micromundos não sentirá muita diferença). Se quiser experimentá-la, copie os comandos acima e cole-os em um único documento (use o bloco de notas) e salve com o nome gogo na pasta biblogo que se encontra no diretório do SuperLogo. Note que essa pasta contém vários outros arquivos, todos eles sem extensão. Faça o mesmo com o arquivo gogo.txt que você criou (peça para renomear e delete a extensão .txt). Feito isso, na próxima vez que você iniciar o SuperLogo e escrever o comando gogo a placa poderá ser usada.

Exemplos de uso
* gogo [verifica conexão e prepara para usar a placa]
* atA liga [liga o dispositivo (led, motor, etc) que estiver conectado na saída A]
* atA desliga [desliga o dispositivo estiver conectado na saída A]
* atA ligapor 45 [liga o dispositivo (led, motor, etc) que estiver conectado na saída A e desliga-o após 45 segundos (tempo não muito preciso)]
* fixapoder 2 [muda a potência (valores de 1 a 7) que será usada nas saídas da placa]
* parala [inverte a polaridade do terminal fazendo que um motor gire para um lado ou para outro (seu complemento é o comando paraca)]
* mostre sensor2 [mostra o valor percebido pela placa no sensor 2 (o mais simples é colocar dois fios e experimentar os resultados quando suas extremidades estão unidas e quando não estão)]
* tchaugogo [desativa o uso da placa Gogo (faça isso quando for encerrar os trabalhos com a placa)]
* Confira outros detalhes no blog Eductil!


A lista de comandos abaixo foi tirada do sítio original da Gogo (link acima) e é bastante útil para entender como funciona a gogo.dll (pode estar desatualizada):

*Cada comando devolve (-1*ErrorCode) quando houver erro. Saiba mais no final desta página.

Comandos Iniciais

  • connect(NúmerodaPortaCom)
    Abre a porta COM indicada.

    connect(1)  // abre COM1 (aquela que usamos para conectar a placa Gogo)
     
  • close()
    Fecha a porta COM.
     
  • doAdd(número1, número2)
    Pode ser usada como um teste de funcionamento da DLL. Ela devolve a soma de dois números.

Comandos Básicos

  • version()
    Informa a versão da DLL.
     
  • ping()
    "Pinga" a placa GoGo ("pingar" é um termo usado em informática quando, por exemplo, um computador A envia um sinal para o computador B e esse responde (como num jogo de pingue-pongue, um manda e o outro devolve).
    Informa GOGO_SUCCESS
     
  • beep()
    A placa GoGo emite um "bip".
    Informa GOGO_SUCCESS
     
  • ledOn()
    Acende o LED.
    Informa GOGO_SUCCESS
     
  • ledOff()
    desliga o LED.
    Devolve GOGO_SUCCESS

Comandos para Sensores

  • sensor(sensor-número)
    Devolve o valor (de 0 a 1023) do sensor sensor-número.

    sensor(1) 
    // informa o valor do sensor1
     
  • sensorMax(sensor-número)
    Informa o maior valor que o sensor atingiu desde a última operação sensorMAX().
     
  • sensorMin(sensor-número)
    Informa o menor valor que o sensor atingiu desde a última operação sensorMIN().
     

Comandos de Controle do Motor (led, e outros dispositivos)

  • motorOn()
    Liga o(s) motor(es) ativo(s).
     
  • motorOff()
    Desliga o(s) motor(es) ativo(s).
     
  • motorRd()
    Muda a direção dos motor(es) ativos(s).
     
  • motorThisway()
    Estabelece uma direção absoluta para motor(es) ativos(s).
     
  • motorThatway()
    Estabelece uma direção absoluta reversa (pro lado contrário ao do comando acima) para motor(es) ativos(s).
     
  • motorCoast()
    O mesmo que motorOff() só que não freia o motor.
     
  • setMotorPower(intensidade)
    Estabelece uma intensidade para o motor (valores de 0 a 7).
     
  • talk2Motor(motor-bits)
    Estabele motor(es) ativo(s). Cada bit em motor-bits corresponde uma porta de motor.

    talk2Motor(5) 
    // "fala" ao motor 1 e 3

Códigos de Erros e seus Significados
100   ERROR_NO_ERROR
101   ERROR_OPEN_COM
102   ERROR_COM_SETTINGS
103   ERROR_COM_HANDSHAKING
104   ERROR_SEND
105   ERROR_SET_READ_TIMEOUT
106   ERROR_SET_EVENT_MASK
107   ERROR_NO_INCOMING_BYTES
108   ERROR_READ
109   ERROR_HEADER_NOT_FOUND
110   INVALID_ACK_BYTE
111   ERROR_WAIT_FOR_BYTE
112   ERROR_READ_TIMEOUT
113   ERROR_COM_PURGE
114   ERROR_UPDATE_BUFFER
115   ERROR_POWER_LEVEL_OUT_OF_RANGE
210   ERROR_SENSOR_número_OUT_OF_RANGE
211   POWER_LEVEL_OUT_OF_RANGE
212   ERROR_UNEXPECTED

Sobre a placa Gogo
Escola Inteligente Projeto em Escola Pública
CE Nicolau Chiavaro Um animatronic e outros desafios
Como Montar uma Placa Gogo (Fotos do Colégio Santo Américo)
Gogo Board(página oficial da Placa Gogo)
Como montar a placa: com plano de classe (ideias sobre como trabalhar robótica com alunos) além do guia de construção [em espanhol]
Proyecto gogoboard: Relato de experiências com alunos de 13 e 14 anos e como montar a placa [em espanhol]
Placa Gogo com "display" (mostrador) alfanumérico de 4 caracteres
Cientista Pica Fio": Blog sobre placa Gogo USB