A Garra Makey

Recondicionamento e alteracao de uma maquina de garra, para funcionar com varios controles a partir do arduino

RECONDICIONAMENTO

  • Iluminação: Substituição do balastro flourescente por leds
  • Estrutura: Aligeirar a estrutura para facilitar o transporte e montagem mantendo o traço original
  • Hardware Nativo: Reverse engineering do circuito original de modo a encontrar o ic responsavel pelo temporizador de jogo e aumentar o tempo de controle.

    Medidas Máquina
    
    BOX - 1870x810x625 mm
    ALTURA AO CHÃO - 100 mm
    perfil lateral - 40 mm
    perfil lateral - 20x20 mm
    

Hardware

  • Emulação do controle original usando relés (Interfacing Hack)
  • Utilização de CSEduino na maquina como Master que controla o movimento da garra
  • Utilização de Arduino externo Slave que comunica o arduino Master, responsável pelo envio daas instruções de movimento

Software

Protocolo de Comunicação I2C com uma taxa de actualização de 30fps (33ms)

https://www.arduino.cc/en/Tutorial/MasterReader

http://www.gammon.com.au/i2c

Metodo de transferência de informação - Boleanas, Bytes & Mascaras

https://www.arduino.cc/en/Tutorial/BitMask

http://playground.arduino.cc/Code/BitMath

http://www.avrfreaks.net/forum/tut-c-bit-manipulation-aka-programming-101?name=PNphpBB2&file=viewtopic&t=37871


PLANO DE ATAQUE

Fase 1

  • Programar Masterino
  • Programar Controlino (Template)
  • Construir Placa Relés
  • Definir e implementar interface físico entre inos
  • Testar e validar
  • Criar biblioteca de comunicação
  • Disponibilizar biblioteca e lançar desafio à comunidade

Fase 2

  • Reduzir peso do equipamento
  • Faze-lo transportável
  • Redecorar
  • Produzir toneladas de brindes
  • Levar A Garra Makey à Maker Faire 2016!

WIP

// Caracteres de comunicação entre arduinos
//
// - I - Idle (liga led confirma serial on)
// - N - North
// - S - South
// - E - East
// - W - West
// - G - Grab
// - C - Coin
// - Default - OFF


// INSEWGCX > Default Byte > 10000000


// BYTE MASKS
// 
// - I > 10000000
// - N > 01000000
// - S > 00100000
// - E > 00010000
// - W > 00001000
// - G > 00000100
// - C > 00000010
// - X > 00000001

    // INSEWGCX   INSEWGCX
    // -N------ > 01000000
    // -N-E---- > 01010000
    // ---E---- > 00010000
    // --SE---- > 00110000
    // --S----- > 00100000
    // --S-W--- > 00101000
    // ----W--- > 00001000
    // -N--W--- > 01001000

    // -----G-- > 00000100
    // ------C- > 00000010

// Masterino busca um byte ao Controlino via i2c

// Controlino avalia inputs do utilizador e transforma-os numa tabela de verdades - o byte

// Controlino fica à escuta do evento e envia a pedido o byte que estiver na memória no momento da consulta

// Masterino Testa o Byte e activa os pinos, definidos como constantes de acordo com a verdade (0/1) do bit respectivo

PopUpIdeas

Bring your own controller - disponibilizar no website o protocolo e a ficha e lançar o desafio make your onw controller and agarra makey

ALTERNATIVAS:

LIGAR ARDUINO - ARDUINO - Via Serial

arduino 2 arduino serial

http://robotic-controls.com/learn/arduino/arduino-arduino-serial-communication

MASTER CODE Example

//Listener code

char value;

void setup() {
  Serial.begin(9600);
}

void loop() {

  if (Serial.available()) {
    delay(100); //allows all serial sent to be received together
    value = Serial.read();
    }

  switch (value){

    case 'I':
        do_idle_function() // função a definir que liga led para confirmar que está a receber serial
        break;

    default
        do_nothing_function()

        break;
  }
}

CONTROLLER CODE Example

//Sender code

char value;

void setup() {
  Serial.begin(9600);
}

void loop() {
  value='N'; //Valor a activar no Master

  Serial.write(value);
}