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