Difference between revisions of "RoboCup: Redesign 2014-2015"

From RoboJackets Wiki
Jump to navigation Jump to search
Line 79: Line 79:
 
{| border="1" cellspacing="1" cellpadding="1" style="width: 500px;"
 
{| border="1" cellspacing="1" cellpadding="1" style="width: 500px;"
 
|-
 
|-
! scope="col" | Byte Index
+
! 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="background-color:#FFFF00;">Unknown</span><br/>
+
| 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="background-color:#FFFF00;">Unknown</span><br/>
+
| 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;">Unknown</span><br/>
+
| 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="background-color:#FFFF00;">Unknown</span><br/>
+
| 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="background-color:#FFFF00;">Unknown</span><br/>
+
| 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" | Byte Index
+
! 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

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


Max PCB Dimensions

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


CC1101 C++ library

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

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

XT60 (Male)

XT60 12AWG 10cm

Charging Lead

XT60 Banana Plug

Balancing Board

Charge/Balance Board

All Batteries

Zippy Flightmax 2500mAh 5S 20C

Zippy Flightmax 1800mAh 5S 40C

Zippy Compact 2450mAh 5S 35C

Turnig 2200mAh 5S 30C

Thunder Power 2000mAh 5S 16C

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