64 CONTROLLER 64 CONTROLLER AARON RIDENOUR, RYAN WOOSTER, ALEX JAECKEL.

Slides:



Advertisements
Similar presentations
JED Microprocessors Pty Ltd Presenting the JED T430 low-cost Projector Controllers Nov 22nd, 2009.
Advertisements

Lab 9: Matrix Keypad : ”No Key Press” Analysis Slide #2 Slide #3 ”Press and Hold Key 5” Analysis.
Computer Engineering II
Servo Background Servos provide control of rotary position Servos are used extensively in the remote control hobby world for: Aircraft (flaps, ailerons,
EXTERNAL COMMUNICATIONS DESIGNING AN EXTERNAL 3 BYTE INTERFACE Mark Neil - Microprocessor Course 1 External Memory & I/O.
Programmable Keyboard/ Display Interface: 8279
In this presentation you will:
Potentiometer Electric circuit Cell or Battery Resistor Switch Bulb Earth/Ground LED.
EE 316 Computer Engineering Junior Lab Word Mastermind.
Checkers Steven Prockup Spencer MacDonald. Project Overview A computer checkers playing program where the human interface is through a physical checkerboard.
CS150 Project Checkpoint 1. Controller Interface Dreamkatz Controller Interface 1. The N64 Controller 2. Physical interface 3. Communication protocol.
Efficient Path Determining Robot Jamie Greenberg Jason Torre.
COMP541 Input Devices: Keyboards, Mice and Joysticks
ECE 265 – LECTURE 13 Interface to switches and LEDs 7/3/ ECE265.
EE 316 Computer Engineering Junior Lab Digital Hangman.
Input/Output and Communication
Digital I/O Connecting to the Outside World
Playstation 2 Controller KYLE YAN AKSHAY MOORTHY YIPING KANG 1.
Dr. Hoganson CSIS HC11 Demo Program This is our first lab using the 68HC11 microcontroller. We will “talk” to the microcontroller from a PC, run.
Nuclear Plant Control System We wanted to design a circuit board with the necessary tools in order to help the operation of a nuclear power plant using.
Board Game Counter - Digital
SERIAL BUS COMMUNICATION PROTOCOLS
Working with Arduino: Lesson #3: Force Sensitive Resistors EGN1007.
ROBOTC for VEX Online Professional Development
LSU 10/22/2004Serial I/O1 Programming Unit, Lecture 5.
Engineer Training Motion Control TJ8300 / TJ8500 Motion Control.
Segway Controller Notes. = connection on top layer of circuit board = connection on bottom layer of circuit board Ground Plane: Areas enclosed by the.
Programming Concepts Part B Ping Hsu. Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set.
A Simple Tour of the MSP430. Light LEDs in C LEDs can be connected in two standard ways. Active high circuit, the LED illuminates if the pin is driven.
Weston Schreiber & Joshua Gabrielse Robotics Summer Training Programming #1: EasyC Basics.
Interrupts and DMA CSCI The Role of the Operating System in Performing I/O Two main jobs of a computer are: –Processing –Performing I/O manage and.
Introduction to Interprocess communication SE-2811 Dr. Mark L. Hornick 1.
Turbine Crane CRANES TURBINE NEA39. Turbine Crane PLANT STATUS! PV Daily Status Report.
SE3910 Week 2, Class 1 Today Basic Circuits Other ??? Tomorrow Lab 2, S365 (Complete prelab BEFORE) Thursday See ScheduleSchedule SE-2811 Slide design:
Autonomous Robot Project Lauren Mitchell Ashley Francis.
Lecture 20: Communications Lecturers: Professor John Devlin Mr Robert Ross.
10/10/ Controlling YOUR ROBOT. 10/10/2015 Basic Stamp  Basic Stamp Input - output pins Interpreter Chip Power supply: 5 Volts voltage Memory: EEPROM.
DEVICES AND COMMUNICATION BUSES FOR DEVICES NETWORK
Front-end Product Training Program –Speed Dome. Table of Contents  Speed dome classification  Speed dome basic information  FAQ  Upgrade.
8279 KEYBOARD AND DISPLAY INTERFACING
ECE Department: University of Massachusetts, Amherst ECE 354 Lab 4: Remote Control of a Digital Camera.
Development of a microprocessor project with LPC2388 development board.
Blackfin Calculator Learning Game By Majed Al-Herbi Will Matthau Course: ECE3552 – Spring 2008 Instructor: Dr. Veton Kepuska.
1 COMP541 Input Devices: Keyboards, Mice and Joysticks Montek Singh Apr 6, 2015.
Automatic accident avoiding system PROJECT MEMBERS MUTHUKUMAR.K (05ME33) SAKTHIDHASAN.S (05ME39) SAKTHIVEL.N (05ME40) VINOTH.S (05ME56) PROJECT GUIDE:
The PC Game Adapter. The game adapter card typically contains a DB15 connector into which you plug an external device. The digital joystick is probably.
Limited wires. We have only one data line. Use for for bi-directional communication. Need to send: requests for data rumble pack on/off Need to receive.
8279 KEYBOARD AND DISPLAY INTERFACING
APPLICATION OVER I2C Kıvanç ÖZBEK What is I2C? 2-wired communication interface Communication protocol used in small areas Defined in 1980’s.
The Spartan®-3E FPGA Starter Kit board. A computer mouse is designed mainly to detect two-dimensional motion on a surface. Its internal circuit measures.
EE365 - Microprocessors period 26 10/23/00 D. R. Schertz # Parallel Ports.
The Coordinate Plane. Vocabulary Words Axes - two perpendicular number lines used for locating points Origin – the intersection of the two axes Y-axis.
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
PlayStation 2 DualShock 2 Controller Ryan O’Keefe, Kabir Singh and Adrian Padin 1.
Input & Output devices. Input Device :keyboard a keyboard is an input device, partially modeled after the typewriter keyboard, which uses an arrangement.
USING TV REMOTE AS A CORDLESS MOUSE FOR THE COMPUTER
CORDLESS MOUSE FEATURES BY TV REMOTE USING PIC MICROCONTROLLER
ENERGY METER TO INDICATE BILLING IN RUPEES FOR LOAD WISE OR DAY WISE
COMP541 Input Devices: Keyboards, Mice and Joysticks
Store Multiple Results?
Input/Output and Communication
More Devices: Control (Making Choices)
The Programmable Logic Controller
COMP541 Input Devices: Keyboards, Mice and Joysticks

Internet-of-Things (IoT)
Serial EEPROM (Atmel 24C-512)
Controlling YOUR ROBOT
EECS 373 On Operational Amplifiers and Other Means of Manipulating Voltage and Current.
Presentation transcript:

64 CONTROLLER 64 CONTROLLER AARON RIDENOUR, RYAN WOOSTER, ALEX JAECKEL

CONTROLLER Inputs: A, B, L, R, Z, start, C-up C-down, C-left, C-right, D-Pad(up, down, left, right), Joystick Options: Rumble Pak, Memory Pak

ACTION BUTTONS Each buttons sits atop a metal plate. When the button is pressed, the metal plate contacts two strips of conductive material attached to the circuit board, creating a current. The controller senses this current, and sends a logical 1 if the button is pressed, and a logical 0 if the button is not pressed.

JOYSTICK Two wheels positioned at right angles to each other, one for the x-axis, one for the y-axis.

JOYSTICK Incremental Encoding Each wheel has slits around the perimeter Controller counts how many times the light sensors see the LED through the slits, and uses that to determine position. One wheel for each axis.

JOYSTICK The controller knows which way the joystick is moving by looking at which sensor sees the LED first.

CONNECTION TO N64 afermiano.com/index.php/n64-controller-protocol Vcc = 3.3V Data line is bidirectional A pull up-resistor is needed to read the line

OPEN COLLECTOR Pull-up resistor keeps the line high while idle. To send 0, the output line is pulled low and connected to ground. To send 1, nothing should be sent. Do not drive the line high.

OPEN COLLECTOR Sending a logical 0:

OPEN COLLECTOR Sending a logical 1:

CONTROLLER ENCODING Logical 0: Logical 1:

CONTROLLER ENCODING

COMMUNICATION PROTOCOL When a Command byte is sent to the controller, it sends a response depending on which command was sent. Check Controller Command: 0x00 The controller responds with 3 bytes. The first two bytes are always 0x0500 Last byte is determined by: 0x01: If a controller pack is connected. 0x02: If no controller pack is connected. 0x04: If a previous command resulted in an error.

Reset Controller Command: 0xFF First resets the controller, including resetting the joystick calibration Controller then responds as in the Check Controller Command COMMUNICATION PROTOCOL

Input Polling Command: 0x01 The controller responds with 4 bytes, encoding the button and joystick values The controller responds with 4 bytes, encoding the button and joystick values ByteData[7]Data[6]Data[5]Data[4]Data[3]Data[2]Data[1]Data[0] 1ABZStartD-UpD-DownD-LeftD-Right 2Joystick Reset 0LRC-UpC-DownC-LeftC-Right 3Signed joystick x-axis coordinate 4Signed joystick y-axis coordinate The joystick values range between -128 and 127, but the controller physically can only use from -81 to 81.

EXAMPLE DATA WAVEFORM |----Command (console) 0x ||----Data1 (controller) 0x00----||-----Data2 (controller) 0x00----| | Data3 (controller) 0x | | Data4 (controller) 0x | ABZ St reset 0 L R Joystick x-coordinateJoystick y-coordinate start bit stop bit Images taken from:

COMMUNICATION PROTOCOL Controller Pack Read: 0x02 Used to read from the controller pack. Used to read from the controller pack. The command is followed by 2 bytes which indicate the address being read from and a CRC to verify the address. The command is followed by 2 bytes which indicate the address being read from and a CRC to verify the address. The controller responds with 32 bytes of data from that address, followed by the data CRC. The controller responds with 32 bytes of data from that address, followed by the data CRC.

Controller Pack Write: 0x03 Used to write to the controller pack. Used to write to the controller pack. The command is followed by 2 bytes which indicate the address being written to, a CRC to verify the address and the 32 bytes of data to write. The command is followed by 2 bytes which indicate the address being written to, a CRC to verify the address and the 32 bytes of data to write. The controller responds with the data CRC. The controller responds with the data CRC. COMMUNICATION PROTOCOL

CRC: Used to verify that data was sent correctly. Used to verify that data was sent correctly. Outside scope of this presentation. Outside scope of this presentation.

RUMBLE PAK Use the 0x03 command. Use the 0x03 command. To initialize: To initialize: Send to address 0x8001. Send to address 0x8001. Send 0x80 (repeated 34 times) as the data. Send 0x80 (repeated 34 times) as the data. To run the Rumble Pak: To run the Rumble Pak: Send to address 0xc01b. Send 0x01 (repeated 32 times) as the data to start the Pak. Send 0x00 (repeated 32 times) as the data to stop the Pak.

REFERENCES m.inc m.inc