| EECS 373 Final Project Winter 06 - Hardware Design | ||||
| Navigation | H-Bridge The h-bridge hardware was used to be able to drive the tank tread motors in forward and reverse as well as the turret moving left and right. We also used an h-bridge instead of a transistor circuit to switch the trigger motor and the firing motor on and off. All of the tank motors were grouped into one memory address, using two bits for each motor, one bit for each direction. The motors were off when both bits were set or neither bits were set. Physically the hardware acts similar to a switch. It stores the previous bit and is changed when written to it. The test pins drive the signal on the h-bridge directly. N64 Controller The N64 controller uses serial communication. Due to the slow response time, a transaction is initiated by a write and then when complete the result can be read from the same address. To get the status of the N64 buttons, a special sequence of bits must be sent to the controller. This is implemented by a shift register. The controller then responds with 32 bits and a stop bit which represent the state of the controller. These are collected using a shift register which is synchronized on the falling edge of the signal. The first 16 bits correspond to individual buttons and the second 16 bits are the state of the analog stick. The power requirements for the N64 controller were different then what were on our board. The N64 controller needed to operate at 3.3 V, therefore a voltage regulator was used to achieve this. The data line was never driven high by our circuits, so an open collector circuit was implemented to only ground out the data line when necessary. We also doubly inverted the response signal to clean it so that it was easier to be recognized by the MPC823. We used a resistor between the output line and the open collector circuit to force the MPC823 to drive some current on the line. Servo For the servo we only needed two positions, therefore it was interfaced by writing a one or a zero to switch between them. Our hardware drove a 0.7 ms or 1.7 ms pulse every 100 ms to the servo depending upon the desired position. Ultrasonic Sensor The ultrasonic sensor we had two separate logic blocks. The first block sent the initialization pulse to the ultrasonic sensor to tell it to begin the measurement. The second block of hardware would wait for the rising edge of the echo pulse. Once the echo pulse was received, the hardware would count the length of the pulse in half microsecond increments. From this value the distance to the target can be determined. Infrared Sensor The infrared distance sensor was connected to the hardware of the ADC. The hardware for the ADC was identical to that used in Lab 8. LCD Display The LCD display hardware implements the bus protocol for the LCD display controller. The required reset sequence was implemented manually on the board by a member of the group. There were two different memory addresses were assigned to the LCD macro. One was used for data read and writes and the other was used for command writes and status reads. The critical part of the hardware was getting the timing to be correct. For this we referred to the design notes posted on the course website. |
|||
Introduction |
||||
|
||||