Gamepad shield

ultimo aggiornamento 19 giugno 2016


 

Utilizzando il Il kit 2WD Mini Robot Mobile Platform FT-MC-001, il modulo H-Bridge L9110 (HG7881) и possibile realizzare un piccolo robot che и possibile comandare tramite il Gamepad Shield che trasforma il touch screen dello smartphone in un game pad, consentendo il controllo di robot, attrezzature, ect.   Possono essere utilizzati i 4 tasti direzionali e 4 tasti colorati.

homotix

PCBONLINE


 

 

2WD KIT Robot FT-MC-001

Modulo H-Bridge L9110

1SHEELD

Arduino UNO

 

Schema dei collegamenti

Programma di test

/*####################################################################
FILE: robot_def.ino  VERSION: 1.0
Descrizione: Programma di test robot comandato tramite 1Sheeld's gamepad shield
Ultima modifica il 19/6/2016
Applicazione realizzata da Adriano Gandolfo
Sito https://www.adrirobot.it
This example code is in the public domain.
####################################################################*/

#define CUSTOM_SETTINGS
#define INCLUDE_GAMEPAD_SHIELD

/* Include 1Sheeld library. */
#include <OneSheeld.h>

/* Configurazione dei pin del modulo L9110. */
int motorAPin1 = 5;
int motorAPin2 = 6;
int motorBPin1 = 10;
int motorBPin2 = 11;

void setup()
{
  /* Start communication. */
  OneSheeld.begin();
  /* initialization modulo L9110 */
  pinMode(motorAPin1, OUTPUT);    // IN1 of motor A
  pinMode(motorAPin2, OUTPUT);    // IN2 of motor A
  pinMode(motorBPin1, OUTPUT);    // IN3 of motor B
  pinMode(motorBPin2, OUTPUT);    // IN4 of motor B
}
void loop()
{
    /* If up is pressed, move the car forward. */
    if (GamePad.isUpPressed())
    {
      digitalWrite(motorAPin1, HIGH);
      digitalWrite(motorAPin2, LOW);
      digitalWrite(motorBPin1, LOW);
      digitalWrite(motorBPin2, HIGH);
    }
    /* If down is pressed, move the car backwards. */
    else if (GamePad.isDownPressed())
    {
      digitalWrite(motorAPin1, LOW);
      digitalWrite(motorAPin2, HIGH);
      digitalWrite(motorBPin1, HIGH);
      digitalWrite(motorBPin2, LOW);
    }
    /* Se si preme destra, il robot ruota a destra */
    else if (GamePad.isRightPressed())
    {
      digitalWrite(motorAPin1, LOW);
      digitalWrite(motorAPin2, HIGH);
      digitalWrite(motorBPin1, LOW);
      digitalWrite(motorBPin2, HIGH);
    }
    /* Se si preme sinistra, il robot ruota a sinistra */
    else if (GamePad.isLeftPressed())
    {
      digitalWrite(motorAPin1, HIGH);
      digitalWrite(motorAPin2, LOW);
      digitalWrite(motorBPin1, HIGH);
      digitalWrite(motorBPin2, LOW);
    }
    /* If nothing is pressed stop all motors. */
    else
    {
      digitalWrite(motorAPin1, LOW);
      digitalWrite(motorAPin2, LOW);
      digitalWrite(motorBPin1, LOW);
      digitalWrite(motorBPin2, LOW);
    }
  }

 

Elenco revisioni

19/06/2016

Emissione preliminare