team chopper distributed communication nodes for autonomous helicopters shirley choi bejan...

32
Team Chopper Distributed Communication Nodes for Autonomous Helicopters Shirley Choi Bejan Hafezzadeh Joseph Kaiser Sean Norwood Itay Tenne

Post on 19-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Team Chopper

Distributed Communication Nodes for Autonomous Helicopters

Shirley Choi

Bejan Hafezzadeh

Joseph Kaiser

Sean Norwood

Itay Tenne

Introduction

Overview

• Topological Avionics Diagram

• CAIN PCB (Can Avionics Interface Node)– Block Diagram (all ICs in relative location)

– Schematic

– Layout

– Pictures

• JOANN protocol– Key features & Terminology

– Abstract CAIN Block Diagram & Unit Example

– Comprehensive Example

• Part List

• Division of Labor

• Schedule

Subterranean Mapping Using Wire Suspended by Two

Autonomous Co-operative Helicopters

Normal Mode

Inverted Mode

DeSalvo Tandem

Topological Diagram

Bluetooth

Host PCfor test, debug, and

configuration

Servos RC receiver

RC Transmitter

PWM signalsRS232 Servo battery

On board Radio

RS644

USB

Error Correcting GPS

Power Board

Power Generator

All Boards

Flight Computer

Interface Board

IMU

Interface Board

GPS

Interface Board

Pressure Sensors

Interface Board

Magnetometer

Interface Board

INS

Satellites

RS232 RS232 RS232 RS232

Interface Board

Interface Board

Ground Radio

To GPS

Interface Board

BluetoothModule

RS232

USB

CAN Multi-Drop Bus

Servo Isolation

CAIN PCB Block Layout

ISP

TWI/SPI ADC

JTAG

addr

Addr/data

Atmel

AT90CAN128

CAN transceiver/

CAN bus

LEDs

Jumpers/Selectors

PWM (6 channels)

RS232-1

RS232-0 RS644 NV RAM

EEPPOM

CAN transceiver/

CAN bus

CAIN Schematic

CAIN 6-Layer PCB

TOP PWR SIG1

SIG2 GND BOTTOM

CAIN Revision 1 Pictures

TOP Populated Bottom Populated

Status• Processor & All peripherals

functional• I2C EEPROM untested• NVRAM untested

Power Distribution Board

• Takes AC from the onboard Brushless Alternator

• Converts to DC

• Regulates the DC it to 5.4Volts D.C.

• Converts the 5.4Volts D.C. to many other voltages (+5V,+3.3V,±8.5V)

• Will be implemented on a PCB

Power Distribution Board

• To be implemented on a Printed Circuit Board

• Will use on chip switching converters for high efficiency.

• Will use Surface mount chips for low noise and ruggedness.

Power Supply Board

Alternator3.73-30 Volts

Depending on Motor Speed

Three phase RectifierOutputs 5.4-40.5 Volts D.C.

Regulated DC-DC switching converterConverts to 5.4 Volts D.C.

+5 VoltsSwitching Converter

-8.5 VoltsSwitching Converter

+8.5 VoltsSwitching Converter

+3.3 VoltsSwitching Converter

JOANN Protocol

Key Features• Generic and Powerful• Easy to use • Conceptually similar to a

directed graph• FIFO buffers are pervasively

used as sockets• Sockets and Channels are

established during initialization.

• Kernel runs in background and routes source to destination.

• Configurable Real-Time Transit Delays

“Jolly Old Avionics Node Networking”(actually named in retribution to JOANN for the shopping cart)

Terminology

• “socket”: a FIFO buffer which is used as a global source or sink, analogous to vertices in a directed graph.

• “channel”: a custom struct which holds all information about the channel between two sockets, including the id_path, transit_delay, source and sink pointer, etc., analogous to an edge.

• “id_path”: FIFO buffer of multiple IDs linking nodes and sockets.

• “port”: a FIFO buffer for low level on-chip external interface (UART, I2C, CAN,PWM_IN, PWM_OUT…)

• “node”: one of the physical CAIN PCBs

• “FIFO buffer”: First In First Out buffer that passes data along the channel

Source Port

Sink Port

Source Socket

Sink Socket

Channel

Simple Example

Port_ADevice_m

Port_BDevice_n

s_sock_1 d_sock_1 s_sock_2

d_sock_2d_sock_3 s_sock_3

get_dev_m_data() or ISR()dev_m_parser()

router()process_1()

send_dev_m_data() or ISR()router()

dev_n_dispatcher()process_2()

Select Devices in config.h• UART1_DEVICE = IMU

• UART1_DEVICE = GPS

• UART1_DEVICE = PRESSURE

• …

• PWM_CH_1_DEVICE = SERVO

• I2C_DEVICE = EEPROM

• …

On-Board Ports• UART0 (RS232 or TTL)

• UART1 (RS232,RS644 or TTL)

• CAN

• SPI

• I2C

• GP I/O & ADC

• PWM_CH_m OUT

• PWM_CH_n IN

servo_ch1

rcvr_ch1

servo_ch2

servo_ch3

rcvr_ch2

rcvr_ch3

servo_ch1

rcvr_ch1

servo_ch2

servo_ch3

rcvr_ch2

rcvr_ch3

BLUETOOTH

GPS ELAN 5P

IMU

Less simple example

Mainloop(){

router() //Background Kernel#if UART0_DEVICE == IMUimu_service();#endif //… same for allgps_service();elan_service();rcvr_service();servo_service();bluetooth_service();process1();process2();process3();

}

Init_ports();

#if UART0_DEVICE == IMUInit_buffer(A,SIZE_A);XRAM_PTR += SIZE_A; //… same for all#endif //attach UART_PORT to IMU SOCKETInit_buffer(B, SIZE_B);Init_buffer(C, SIZE_C);

//Channel ID_paths used to connect sockets//could make as many as you wantInit_buffer(ID_path, SIZE_PATH);Link_to_ID_path(B);Link_to_ID_path(C);Link_to_ID_path(SERVO1);//last one on path is object ID

//Create channel object linking A to SERVO1//Locally, only a single edge//Globally, a path defined here is propagated.Create_new_channel(A,ID_path);

Code Example

Controller Area Network (CAN)

• We will use CAN to transmit data between our avionics equipment

• CAN is a multicast serial bus standard that allows for high data transfer rates

• It allows for priority-based bus arbitration, ideal for our system

Standard CAN Data Frame

• The 11 bit identifier field allows for bus arbitration

• 4 bit DLC field declares the length of the data packet in the following field

• The integrity of the data is protected by a checksum (CRC)

CAN Controller

• CAN controller on the AT90CAN128

Microcontroller

Memory mapping on CAIN board

RC Demodulation

RCReceiver

PWMDemodulator

CAN Parser / Dispatcher

41958

2915

31958

28910

9185

PWMPort

To servos

5267

21850

9481

42018

Servos

• Motor with an onboard controller

• Gets position Signals and moves to that position

• Receives commands via PWM

• 5volt supply needed

GPS

• NMEA standard– GPGGA sentence identifier

• RS232 interface

• ASCII messaging format

NMEA: Latitude longitude altitude

GPS

• Tested the GPS with GPSolution

Flight Box

• Isolate vibration from the helicopter

• A damper-spring system

• Provide shielding for the power board

• Designed with Solidworks, analyzed by Ansys

• Carbon fiber and aluminum

• Will be machined and assemble in ITLL

Example: GPS board mounting

1

2

3

4

Part List

Module Cost Sub Total

Custom Cain PCBs    

Manufacturing 150  

Assembly 100  

Components 50  

  300  

CAIN PCB for:    

IMU Node 300  

GPS Node 300  

Servo Node 300  

Flight Computer Node 300  

Bluetooth Node 300  

    1500

     

COTS Bluetooth Module   Donated

Custom Power PCB    

Manufacturing 100  

Assembly 100  

Components 50  

    250

Custom Avionics Flight Box   200

STk500/501 development board   200

JTAG In Circuit Emulator   Donated

Miscellaneous Small Parts   170

Total: $2320

Funded by Prof. Meyer and UROP

Part ListParts quantity

Chopper 1

Digital Servos 1

586-Engine-P 1

GPS 1

STK500 development board

2

RC receiver 1

Shopping Cart 1

12V battery 2

Provided by Prof. Meyer:

Division of Labor

• Bejan– I2C on chip communication

– Node testing routines

• Itay– RC demodulation

– JOANN development

• Joe– Power PCB

– Servo driver

• Sean– JOANN development

– CAIN PCB revision 2

• Shirley– Flight Box

– GPS

• All– Testing and Debugging

Updated Gantt Chart

Goals Toward Milestones

• Milestone I– Completion of the power board PCB– Completion of the fabrication of the flight box– Completion of the Servo node– Completion of JOANN research development

• Milestone II– Fully tested JOANN– System completely interfacing thought CAN bus– Shopping Cart testing

Goals Toward Expo

• Completion of CAIN PCB revision 2

• System Identification

• Hopefully Hovering!

Questions?