Difference between revisions of "RoboCup: Redesign 2014-2015"
Line 79: | Line 79: | ||
{| border="1" cellspacing="1" cellpadding="1" style="width: 500px;" | {| border="1" cellspacing="1" cellpadding="1" style="width: 500px;" | ||
|- | |- | ||
− | ! scope="col" | | + | ! scope="col" | Array Index |
+ | ! scope="col" | Bit(s) | ||
! scope="col" | Definition | ! scope="col" | Definition | ||
|- | |- | ||
| style="text-align: center;" | 0 | | style="text-align: center;" | 0 | ||
+ | | style="text-align: center;" | 7..0 | ||
| style="text-align: center;" | Packet Type (0x01) | | style="text-align: center;" | Packet Type (0x01) | ||
|- | |- | ||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
+ | | style="text-align: center;" | 7..0 | ||
| style="text-align: center;" | Motor 1 Speed (LSB) | | style="text-align: center;" | Motor 1 Speed (LSB) | ||
|- | |- | ||
− | | style="text-align: center;" | 2 | + | | style="text-align: center;" rowspan="3" | 2 |
− | | style="text-align: center;" | <span style=" | + | | style="text-align: center;" | 7..4 |
+ | | style="text-align: center;" | | ||
+ | <span style="line-height: 20.7999992370605px; text-align: center;">Reserved (Always 0)</span> | ||
+ | |||
+ | |- | ||
+ | | style="text-align: center;" | 3..2 | ||
+ | | style="text-align: center;" | Motor 1 Drive Mode | ||
+ | |- | ||
+ | | style="text-align: center;" | 1..0 | ||
+ | | style="text-align: center;" | Motor 1 Speed (MSB) | ||
|- | |- | ||
| style="text-align: center;" | 3 | | style="text-align: center;" | 3 | ||
+ | | style="text-align: center;" | 7..0 | ||
| style="text-align: center;" | Motor 2 Speed (LSB)<br/> | | style="text-align: center;" | Motor 2 Speed (LSB)<br/> | ||
|- | |- | ||
− | | style="text-align: center;" | 4 | + | | style="text-align: center;" rowspan="3" | 4 |
− | | style="text-align: center;" | <span style=" | + | | style="text-align: center;" | 7..4 |
+ | | style="text-align: center;" | Reserved (Always 0) | ||
+ | |- | ||
+ | | style="text-align: center;" | 3..2 | ||
+ | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Motor 2 Drive Mode</span><br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 1..0 | ||
+ | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Motor 2 Speed (MSB)</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 5 | | style="text-align: center;" | 5 | ||
+ | | style="text-align: center;" | 7..0 | ||
| style="text-align: center;" | Motor 3 Speed (LSB)<br/> | | style="text-align: center;" | Motor 3 Speed (LSB)<br/> | ||
|- | |- | ||
− | | style="text-align: center;" | 6 | + | | style="text-align: center;" rowspan="3" | 6 |
− | | style="text-align: center;" | <span style="background-color:#FFFF00;"> | + | | style="text-align: center;" | 7..4 |
+ | | style="text-align: center;" | <span style="background-color:#FFFF00;"></span><span style="line-height: 20.7999992370605px; text-align: center;">Reserved (Always 0)</span><span style="background-color:#FFFF00;"></span><br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 3..2 | ||
+ | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Motor 3 Drive Mode</span><br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 1..0 | ||
+ | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Motor 3 Speed (MSB)</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 7 | | style="text-align: center;" | 7 | ||
+ | | style="text-align: center;" | 7..0 | ||
| style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Motor 4 Speed (LSB)</span><br/> | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Motor 4 Speed (LSB)</span><br/> | ||
|- | |- | ||
− | | style="text-align: center;" | 8 | + | | style="text-align: center;" rowspan="3" | 8 |
− | | style="text-align: center;" | <span style=" | + | | style="text-align: center;" | 7..4 |
+ | | style="text-align: center;" | Reserved (Always 0)<br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 3..2 | ||
+ | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Motor 4 Drive Mode</span><br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 0..1 | ||
+ | | style="text-align: center;" | Motor 4 Speed (MSB)<br/> | ||
|- | |- | ||
| style="text-align: center;" | 9 | | style="text-align: center;" | 9 | ||
+ | | style="text-align: center;" | 7..0 | ||
| style="text-align: center;" | Dribbler Motor Speed (LSB)<br/> | | style="text-align: center;" | Dribbler Motor Speed (LSB)<br/> | ||
|- | |- | ||
− | | style="text-align: center;" | 10 | + | | style="text-align: center;" rowspan="5" | 10 |
− | | style="text-align: center;" | <span style=" | + | | style="text-align: center;" | 7 |
+ | | style="text-align: center;" | Kicker Charge<br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 6 | ||
+ | | style="text-align: center;" | Chipper Enable (1=Chip, 0=Kick) | ||
+ | |- | ||
+ | | style="text-align: center;" | 5..4 | ||
+ | | style="text-align: center;" | Reserved (Always 0)<br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 3..2 | ||
+ | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Dribbler Motor Drive Mode</span><br/> | ||
+ | |- | ||
+ | | style="text-align: center;" | 1..0 | ||
+ | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;">Dribbler Motor Speed (MSB)</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 11 | | style="text-align: center;" | 11 | ||
+ | | style="text-align: center;" | 7..0 | ||
| style="text-align: center;" | Kicker Power | | style="text-align: center;" | Kicker Power | ||
|} | |} | ||
Line 123: | Line 174: | ||
{| border="1" cellspacing="1" cellpadding="1" style="width: 500px;" | {| border="1" cellspacing="1" cellpadding="1" style="width: 500px;" | ||
|- | |- | ||
− | ! scope="col" | | + | ! scope="col" | Array Index |
+ | ! scope="col" | Bit(s) | ||
! scope="col" | Definition | ! scope="col" | Definition | ||
|- | |- | ||
| style="text-align: center;" | 0 | | style="text-align: center;" | 0 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span> | ||
|- | |- | ||
| style="text-align: center;" | 1 | | style="text-align: center;" | 1 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;"><span style="background-color:#FFFF00;">Unknown</span></span> | | style="text-align: center;" | <span style="line-height: 20.7999992370605px; text-align: center;"><span style="background-color:#FFFF00;">Unknown</span></span> | ||
|- | |- | ||
| style="text-align: center;" | 2 | | style="text-align: center;" | 2 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 3 | | style="text-align: center;" | 3 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 4 | | style="text-align: center;" | 4 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 5 | | style="text-align: center;" | 5 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 6 | | style="text-align: center;" | 6 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 7 | | style="text-align: center;" | 7 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 8 | | style="text-align: center;" | 8 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 9 | | style="text-align: center;" | 9 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 10 | | style="text-align: center;" | 10 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span><br/> | ||
|- | |- | ||
| style="text-align: center;" | 11 | | style="text-align: center;" | 11 | ||
+ | | style="text-align: center;" | <br/> | ||
| style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span> | | style="text-align: center;" | <span style="background-color:#FFFF00;">Unknown</span> | ||
|} | |} |
Revision as of 22:28, 6 December 2014
Contents
Phase I: Techanical Analysis
The first stage of the 2014-2015 RoboCup redesign involves brainstorming potential upgrades by researching new technologies/resources since the last revision. A parallel analysis of current robot bugs and potential enhancements is also done at this time. Outlined below is a listing of resources that the team used in it's brainstorming stage.
Competition 2014 [FINISH UPLOADING IMAGES TO THIS PAGE. MANY ARE MISSING]
Phase II: Design
Controlling Unit
To Do
Completed
- Obtain mbeds for robot use
Layout
To Do
- Determine location and placement for dribbler motor header
- Determine optimal placement direction for drive motor's phase connections (motor board)
- Add connection header for ball sensor to control board
- Add wires among connections in CAD assembly files
- Test motor wire modifications before working on the entire batch of motors
- Determine kicker connections and integration
Completed
- Update hall connection header to right angled one
- Add pin locations to all connection housings in CAD part files
- Update the 14-pin connection header (female) for the control-to-motor board connection
- Finalize method for adjusting motor wire lengths when motors arrive
- Determine placement of battery location
Radio
Current protocol [LINK TO BE CREATED & UPDATED]
To Do
- Determine optimal secondary frequency for base station updates
- Test methods using breakout boards and compare data rates
- Successfully communicate using two (2) NRF24L01+ transceivers and two (2) mbeds
- Research and determine best steps for structuring radio protocol with primary and seconday frequencies
Completed
- Successfully communicate using two (2) CC1101 transceivers and two (2) mbeds
- Obtain breakout boards for CC1101 and NRF24L01+
FPGA
A few major change to the FPGA's Verilog code must be made for the 2015 redesign. This means documentation mean be produced/located for how the FPGA currently communicates on the SPI bus and append documentation for new protocol.
Byte | Command |
---|---|
0x01 | Set motor speeds |
Array Index | Bit(s) | Definition |
---|---|---|
0 | 7..0 | Packet Type (0x01) |
1 | 7..0 | Motor 1 Speed (LSB) |
2 | 7..4 |
Reserved (Always 0) |
3..2 | Motor 1 Drive Mode | |
1..0 | Motor 1 Speed (MSB) | |
3 | 7..0 | Motor 2 Speed (LSB) |
4 | 7..4 | Reserved (Always 0) |
3..2 | Motor 2 Drive Mode | |
1..0 | Motor 2 Speed (MSB) | |
5 | 7..0 | Motor 3 Speed (LSB) |
6 | 7..4 | Reserved (Always 0) |
3..2 | Motor 3 Drive Mode | |
1..0 | Motor 3 Speed (MSB) | |
7 | 7..0 | Motor 4 Speed (LSB) |
8 | 7..4 | Reserved (Always 0) |
3..2 | Motor 4 Drive Mode | |
0..1 | Motor 4 Speed (MSB) | |
9 | 7..0 | Dribbler Motor Speed (LSB) |
10 | 7 | Kicker Charge |
6 | Chipper Enable (1=Chip, 0=Kick) | |
5..4 | Reserved (Always 0) | |
3..2 | Dribbler Motor Drive Mode | |
1..0 | Dribbler Motor Speed (MSB) | |
11 | 7..0 | Kicker Power |
Array Index | Bit(s) | Definition |
---|---|---|
0 | Unknown | |
1 | Unknown | |
2 | Unknown | |
3 | Unknown | |
4 | Unknown | |
5 | Unknown | |
6 | Unknown | |
7 | Unknown | |
8 | Unknown | |
9 | Unknown | |
10 | Unknown | |
11 | Unknown |
To Do
- Transition the I2C bus lines to the microcontroller
- Update Verilog for new balanced encoder signals (A+, A-, B+, B-)
- ( (A+) + (A-) == 0 ) should be true for no errors
- Complete all Unknown fields for the FPGA's SPI protocol in the above tables
Completed
- Finalized that the 2015 motor will use the current FPGA
- Xilinx Spartan-3E
Motors
http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Custom_Design.pdf
http://wiki.robojackets.org/w/File:Maxon_50W_Motor_Datasheet.pdf
To Do
- Order motor controller boards
- Test different circuits and document data result set to wiki
Completed
- Finalize the protyping designs of single motor controllers
Motion Sensing
To Do
- Integrate the MPU-9250 into the I2C data bus lines from the mbed
Completed
- Order breakout board for MPU-9250
Error Detection
To Do
- Create breakout board for MCP23017 and place on GitHub repo (robocup-pcb)
- Update EAGLE part libraries too
Completed
Battery & Power
The following contains a listing of batteries that were considered for the 2015 design along with other battery/power adapters and accessories.
Battery
Zippy Flightmax 2200mAh 5S 40C
Connector
Charging Lead
Balancing Board
All Batteries
Zippy Flightmax 2500mAh 5S 20C
Zippy Flightmax 1800mAh 5S 40C
Phase III: Production
Electronics Assembly
https://learn.sparkfun.com/tutorials/electronics-assembly
http://www.soldermask.com/ <- Sparfun uses these guys for all their solder stencils