Pigeon-Kicker
Published © MIT

Mega Bread - Atari Joystick Linking for Robotics Control

The oldie but goodie returns in the form of the infrared joystick set from an old Atari game system. These will control multiple things.

IntermediateWork in progress1 hour4,121
Mega Bread - Atari Joystick Linking for Robotics Control

Things used in this project

Hardware components

Arduino Mega 2560
Arduino Mega 2560
Any Arduino based card will work
×1
RGB Backlight LCD - 16x2
Adafruit RGB Backlight LCD - 16x2
Any type of readable display device
×1
Analog joystick (Generic)
The Joystick you select must have Infrared Capabilities, but you may also use almost any Infrared remote device.
×1
Solderless Breadboard Full Size
Solderless Breadboard Full Size
×2
Jumper wires (generic)
Jumper wires (generic)
×1
Resistor 10k ohm
Resistor 10k ohm
×2
IR receiver (generic)
Be sure to check if you need to install an inline resistor. Some have them built in.
×1
Single Turn Potentiometer- 10k ohms
Single Turn Potentiometer- 10k ohms
For LCD brightness and contrast control
×2
9V battery (generic)
9V battery (generic)
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

IR receiver and decoder

Be sure to read the notes attached to the image

Wiring Schematic

Please be sure to match your LCD module pinouts correctly to your display,
NOT mine. Just verify

Code

This code will receive an IR signal, decode it, send to serial monitor and LCD, then reset.

Arduino
UPDATED, had the wrong code in.
This is used to gather the codes from infrared devices so you can save them into a sketch for later use.
// MEGA_BREAD_IR_CONTROLS
// 5-4-2017

#include <IRremote.h>
#include <LiquidCrystal.h>

int RECV_PIN = 2;
int CONFIRM_PIN = 3;

IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(22,23,27,26,25,24);

void setup()
{
  pinMode(CONFIRM_PIN, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" IR Recieve and ");
  lcd.setCursor(0, 1);
  lcd.print("then output test");
  delay(2000);
  lcd.clear();
}

void loop() {
  digitalWrite(CONFIRM_PIN, LOW);
  lcd.setCursor(0, 0);
  lcd.print("Ready to Recieve");
  lcd.setCursor(0, 1);
  lcd.print("Press any button");

  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    Serial.println(results.value, DEC);
    digitalWrite(CONFIRM_PIN, HIGH);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(" HEX = ");
    lcd.print(results.value, HEX);
    lcd.setCursor(0, 1);
    lcd.print(" DEC = ");
    lcd.print(results.value, DEC);
    delay(3000);
    irrecv.resume(); // Receive the next value
  }
  }

Credits

Pigeon-Kicker

Pigeon-Kicker

19 projects • 31 followers
Computer guru from the 80's, currently disabled veteran. Building this stuffs for my son to learn robotics.
Thanks to Mini Pigeon - My son.

Comments