Mariokart An Autonomous Go-Kart Henry Jenkins Department of Computer and Electrical Engineering, University of Canterbury, Christchurch, New Zealand September 26, 2011

Overview The Original Goal - Make department go-kart drive autonomously - Interface to the existing control system - Select actuators, motion and distance sensors - Development of a navigation system - Have go-kart drive itself around university

Our Goal - Sub-goal of of drive-by-wire go-kart - Make a robust platform for future projects

The Go-Kart

Hardware Layout PCBs x 5

Hardware Layout PCB Block Diagram

Hardware Layout Whole kart

How it all communicates Comms CAN Bus - Inter-board Communications - Expandable if someone wants to add more nodes

USART - Two on each board - One used for debugging

SPI - Two on each board - One 5v level logic

USB - Fast communication with computer

Conclusion The end. . . - All Hardware working I Only 3 minor mistakes on boards I Nice hardware platform for future years - Project almost stuck to time plan I Although we cut the goal down, we came close to achieving our stepping stone goal. - Project well documented I Wiki for documentation I Group coding standard adhered to - Most of all I I learnt a lot I Had a heap of fun

Project time line Name

2011, Qtr 3

Work May

Project Setup

7d

Autonomous Go-Kart

389d

Assessment: Specification Report Design phase

162d

System Diagrams

36d

Schematic Design

14d

PCB Design

21d

Parts List

25d

Servo Selection

35d

Servo Circuit Schematics

14d

Servo Mount Design

14d

Costing

3d

Order Electronics

21d

Order Servos

21d

Build Hardware

35d

Mechanical Hardware Build Servo Brackets Electronics Hardware

21d 21d 14d

Populate compoents

14d

Autonomous Hardware

60d

Sensors

30d

Control interface

30d

Software Devel

90d

Automation Software

45d

Control Software

45d

Deadline for new jobs in the workshop

Jun

Jul

Aug

Sep

Why use Atmel SAM7s - Required Peripherals I CAN Controller I USB - Familiarity I Have used SAM7s before I Large Library for Atmel - Expansible I Spare GPIO I Can do some signal processing

Board Design Dreaming about Altium

1. Select major components I I I

MCU Voltage regulators etc. . .

2. Select headers and connectors 3. layout schematics I

Use sheets to modularise!

4. Connect sheets 5. Layout schematics

Main Schematic 1

2

5 RXD1 4 TXD1 3 SCK1 2 RTS1 1 CTS1

RXD0 TXD0 SCK0 RTS0 CTS0

TP_SPI0_CS0 TP

7 6 5 4 3 2 1

U_SPI

I/O VL1 I/O VL2 I/O VL3 I/O VL4 I/O VL5 I/O VL6 I/O VL7 I/O VL8

VL

7 6 5 4 3 2 1

2

USART1

TP_SPI1_SPCK

V_3.3 B

TP_SPI1_MISO TP

CAN_RXD CAN_TXD

CAN_RXD CAN_TXD

TP_SPI1_CS2 TP TP_SPI1_CS1 TP

CAN_Status_A2 CAN_Status_B2

CAN_Status_A2 CAN_Status_B2

7 6 5 4 3 2 1

7 6 5 4 3 2 1

TP_SPI1_CS0 TP TP

SPI0

CAN Tranceiver CAN.SchDoc

TP_SPI1_MOSI TP

LED Display LED_Display.SchDoc

TP_SPI0_CS3 TP TP_SPI0_CS2 TP

TP

V_3.3 USART0

ACC_SD_5 1 ACC_PWM_5 3 4 5 6 7 8 9

C43 100nF

4

TP TP_SPI0_MISO TP

TP_SPI0_CS1 TP

5 4 3 2 1

10

EN

TP

3

TP_SPI0_SPCK TP_SPI0_MOSI

SPI0_NPCS0 SPI0_NPCS1 SPI0_NPCS2 SPI0_NPCS3 SPI0_MISO SPI0_MOSI SPI0_SPCK

MAX3001EEUP+

TP

5 4 3 2 1

GND

TP_URT_SCK0 TP_URT_SCK1 TP TP TP_URT_TXD0 TP_URT_TXD1 TP TP TP_URT_RXD0TP_URT_RXD1 TP TP

5 4 3 2 1

11

20 18 17 16 15 14 13 12

19

GND

VCC

C42 100nF

I/O VCC1 I/O VCC2 I/O VCC3 I/O VCC4 I/O VCC5 I/O VCC6 I/O VCC7 I/O VCC8

V_5 A

ACC_SD ACC_PWM SPI1_NPCS0 SPI1_NPCS1 SPI1_NPCS2 SPI1_MISO SPI1_MOSI SPI1_SPCK

TP_URT_CTS0 TP_URT_CTS1 TP_URT_RTS0 TP_URT_RTS1 TP TP

U5A RXD0 TXD0 SCK0 RTS0 CTS0 RXD1 TXD1 SCK1 RTS1 CTS1 TWD TWCK SPI0_NPCS0 SPI0_NPCS1 SPI0_NPCS2 SPI0_NPCS3 SPI0_MISO SPI0_MOSI SPI0_SPCK CAN_RXD CAN_TXD SPI1_NPCS0 SPI1_SPCK SPI1_MOSI SPI1_MISO SPI1_NPCS1 SPI1_NPCS2 DRXD DTXD SW3 IRQ0

81 82 86 85 88 89 90 91 13 14 18 19 20 21 22 23 24 25 26 46 47 49 50 55 56 59 60 73 74 75 80

PA0/PGMEN0 PB0 PA1/PGMEN1 PB1 PA2 PB2 PA3 PB3 PA4/PGMNCMD PB4 PA5/PGMRDY PB5 PA6/PGMNOE PB6 PA7/PGMNVALID PB7 PA8/PGMM0 PB8 PA9/PGMM1 PB9 PA10/PGMM2 PB10 PA11/PGMM3 PB11 PA12/PGMD0 PB12 PA13/PGMD1 PB13 PA14/PGMD2 PB14 PA15/PGMD3 PB15 PA16/PGMD4 PB16 PA17/PGMD5 PB17 PA18/PGMD6 PB18 PA19/PGMD7 PB19 PA20/PGMD8 PB20 PA21/PGMD9 PB21 PA22/PGMD10 PB22 PA23/PGMD11 PB23 PA24/PGMD12 PB24 PA25/PGMD13 PB25 PA26/PGMD14 PB26 PA27/PGMD15 PB27/AD0 PA28 PB28/AD1 PA29 PB29/AD2 PA30 PB30/AD3 AD4 AD5 AD6 AD7

SPI1_5

C

40 41 42 43 54 34 31 38 28 27 44 45 39 30 29 35 53 36 63 64 65 66 67 69 70 71 72 9 10 11 12 3 4 5 6

LED_A LED_B LED_C LED_D SW2 Act_RESET_CD Act_FAULT LED_SELECT_LEFT USB_DISABLE USB_MONITOR CAN_Status_A2 CAN_Status_B2 LED_ENABLE Act_OTW Act_RESET_AB SW1 ACC_SD LED_SELECT_RIGHT ADTRG Act_PWM_A Act_PWM_B ACC_PWM PWM3 Sensor_Encoder_Counter_1 Sensor_Encoder_Counter_2 Sensor_Speed TIOB1 SW1 LIMIT_SENSE2 LIMIT_SENSE1 BRAKE_SWITCH

LED_A LED_B LED_C LED_D LED_SELECT_RIGHT LED_SELECT_LEFT LED_ENABLE

A

LED_A LED_B LED_C LED_D LED_SELECT_RIGHT LED_SELECT_LEFT LED_ENABLE Student Board Replacemnet accelerator.SchDoc

ACC_SD_5 ACC_PWM_5 SPI0_NPCS0 SPI0_MOSI SPI0_MISO SPI0_SPCK

ACC_SD ACC_PWM ACC_CS ACC_DIN ACC_DOUT ACC_SCK Sensors Sensors.SchDoc

Sensor_Encoder_Counter_1 Sensor_Encoder_Counter_2 Sensor_LA_Position Sensor_Speed

B

Sensor_Encoder_Counter_2 Sensor_Encoder_Counter_1 Sensor_LA_Position Sensor_Speed

AD6 Sensor_LA_Position C

AT91SAM7X256-AU USB Connector USB.SchDoc USB_DISABLE USB_MONITOR

TP_ACT_PWM TP_ACT_PWM_B Act_PWM_A Act_PWM_B GND

TP_FAULT TP_RESET_AB

Act_FAULT Act_RESET_AB

P_Act 1 2 3 4 5

1 2 3 4 5

6 7 8 9 10

6 7 8 9 10

USB_DISABLE USB_MONITOR

GND V_12

DDM DDP

P_Break_&_Limit BRAKE_SWITCH R11 1 2 LIMIT_SENSE1 R12 3 4 LIMIT_SENSE2 R13 5 6

TP_OTW Act_OTW TP_RESET_CD Act_RESET_CD

87831-1041 V_3.3

Other.SchDoc

10k 10k 10k

DDM DDP

SW0 SW1 SW2 SW3

Power Supply Power.SchDoc RESET

Header 3X2

SW0 SW1 SW2 SW3

RESET

GND D

D Title Size:

A4

Number:

Revision:

Date: 3/09/2011 of Time: 3:44:16 p.m. Sheet File: G:\workspace\mariokart\Altium\Main Board\Main.SchDoc 1

2

3

Altium Limited 3 Minna Close Belrose NSW 2085 Australia 4

Mariokart An Autonomous Go-Kart - GitHub

Mar 9, 2011 - Make a robust platform for future projects ... Nice hardware platform for future years. - Project almost stuck to time ... Automation Software. 45d.

9MB Sizes 5 Downloads 159 Views

Recommend Documents

Embedded Hardware Design For An Autonomous Electric ... - GitHub
Mar 9, 2011 - Department of Electrical and Computer Engineering. University of .... At peak load, the steering motor can draw up to 10Amps continuously.

Further Evidence for an Autonomous Processing of ...
For such I tones, we expected from previous data .... ous data obtained in a comparable condition (Semal and ... license or copyright; see http://asadl.org/journals/doc/ASALIB-home/info/terms.jsp ..... "Mapping of interactions in the pitch memory.

An Evolutionary Approach to Designing Autonomous ...
robotic exploration of the Solar System pertains to the fundamental communication limits imposed by the vast distances of interplanetary space, limits which.

Design and Field Testing of an Autonomous ...
sors for estimating the vehicle's state with respect to its environment and with reference to some .... position with respect to the locally consistent submaps defined during route profiling. The inputs .... Given the dynamic and unstructured nature.

Visual Homing: experimental results on an autonomous ...
conversion is not required. .... The potential map of the same environment with the RMS (a) and ... used to create the map have been acquired on a grid with a.

Project AURORA: Towards an Autonomous Robotic ...
Application software is most written in C++, following ... The human-machine interface (HMI) is a part of the ... It includes the animation of the airship in a virtual.

An experimental spatio-temporal model checker - GitHub
logical spatial logics [10], whereas temporal information is described by a Kripke ..... minutes, depending on the formula, on a quite standard laptop computer.

Reimagining IT for an omnichannel world - GitHub
Figure 1: IT budgets are growing rapidly, and most of the expansion is in new projects. 25%. CAGR. Ratio. 2.4x. Indexed IT hours by project type. Note: Run category includes IT services, maintenance, admin, PMO admin and training time; grow category

Choosing an Appropriate Performance Measure - GitHub
We compare the performance of the classifier (here, we use a support vector machine) ... Meeting Planner. Washington, DC: Society for Neuroscience, 2011.

Emscripten: An LLVM-to-JavaScript Compiler - GitHub
Apr 6, 2011 - written in languages other than JavaScript on the web: (1). Compile code ... pile that into JavaScript using Emscripten, or (2) Compile a ... detail the methods used in Emscripten to deal with those ..... All the tests were run on a Len