Team Chopper Distributed Communication Nodes for Autonomous Helicopters Shirley Choi

advertisement
Team Chopper
Distributed Communication Nodes for
Autonomous Helicopters
Shirley Choi
Bejan Hafezzadeh
Joseph Kaiser
Sean Norwood
Itay Tenne
Introduction
Subterranean Mapping Using Wire Suspended by Two
Autonomous Co-operative Helicopters
Overview
• Topological Avionics Diagram
• CAIN PCB (Can Avionics Interface Node)
–
–
–
–
•
Block Diagram (all ICs in relative location)
Schematic
Layout
Pictures
JOANN protocol
–
–
–
•
•
•
Normal Mode
Key features & Terminology
Abstract CAIN Block Diagram & Unit Example
Comprehensive Example
Inverted
Mode
Part List
Division of Labor
Schedule
DeSalvo Tandem
Topological Diagram
Satellites
INS
Flight
Computer
IMU
RS232
RS644
Magnetometer
RS232
RS232
Interface
Board
Interface
Board
Interface
Board
Pressure Sensors
GPS
Interface
Board
RS232
Interface
Board
Power Generator
Power Board
CAN Multi-Drop Bus
All Boards
Interface
Board
Interface
Board
RS232
RS232
Bluetooth
Module
On board
Radio
Interface
Board
Servo Isolation
PWM signals
Servos
RC receiver
Bluetooth
Host PC
for test, debug, and
configuration
USB
To GPS
USB
Ground
Radio
Error Correcting
GPS
RC Transmitter
Servo battery
CAIN PCB Block Layout
RS232-0
RS644
TWI/SPI
ADC
addr
ISP
JTAG
Addr/data
CAN transceiver CAN transceiver
/
/
CAN bus
CAN bus
NV RAM
Atmel
AT90CAN128
RS232-1
PWM
(6 channels)
EEPPOM
LEDs
Jumpers/Selectors
CAIN Schematic
CAIN 6-Layer PCB
TOP
PWR
SIG1
SIG2
GND
BOTTOM
CAIN Revision 1 Pictures
Status
• Processor & All peripherals
functional
• I2C EEPROM untested
• NVRAM untested
TOP Populated
Bottom Populated
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
Alternator
3.73-30 Volts
Depending on Motor Speed
Three phase Rectifier
Outputs 5.4-40.5 Volts D.C.
Regulated DC-DC switching converter
Converts to 5.4 Volts D.C.
+5 Volts
Switching Converter
+3.3 Volts
Switching Converter
+8.5 Volts
Switching Converter
-8.5 Volts
Switching Converter
JOANN Protocol
“Jolly Old Avionics Node Networking”
(actually named in retribution to JOANN for the shopping cart)
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
Terminology
• “socket”: a FIFO buffer which is
• “node”: one of the physical CAIN
used as a global source or sink,
PCBs
analogous to vertices in a directed • “FIFO buffer”: First In First Out
graph.
buffer that passes data along the
• “channel”: a custom struct which
channel
holds all information about the
channel between two sockets,
including the id_path, transit_delay,
Source Port
source and sink pointer, etc.,
Sink Port
analogous to an edge.
Source Socket
• “id_path”: FIFO buffer of multiple IDs
linking nodes and sockets.
Sink Socket
• “port”: a FIFO buffer for low level onChannel
chip external interface (UART, I2C,
CAN,PWM_IN, PWM_OUT…)
Simple Example
Select Devices in config.h
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
UART1_DEVICE = IMU
UART1_DEVICE = GPS
UART1_DEVICE = PRESSURE
…
PWM_CH_1_DEVICE = SERVO
I2C_DEVICE = EEPROM
…
dev_m_parser()
get_dev_m_data() or ISR()
router()
process_1()
Device_m
Port_A
s_sock_1
d_sock_1
s_sock_2
Device_n
Port_B
d_sock_3
s_sock_3
d_sock_2
send_dev_m_data() or ISR()
dev_n_dispatcher()
router()
process_2()
Less simple example
BLUETOOTH
IMU
servo_ch1
servo_ch2
servo_ch3
rcvr_ch1
rcvr_ch2
rcvr_ch3
GPS
ELAN 5P
servo_ch1
servo_ch2
servo_ch3
rcvr_ch1
rcvr_ch2
rcvr_ch3
Code Example
Init_ports();
#if UART0_DEVICE == IMU
Init_buffer(A,SIZE_A);
XRAM_PTR += SIZE_A; //… same for all
#endif //attach UART_PORT to IMU SOCKET
Init_buffer(B, SIZE_B);
Init_buffer(C, SIZE_C);
//Channel ID_paths used to connect sockets
//could make as many as you want
Init_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);
Mainloop()
{
router() //Background Kernel
#if UART0_DEVICE == IMU
imu_service();
#endif //… same for all
gps_service();
elan_service();
rcvr_service();
servo_service();
bluetooth_service();
process1();
process2();
process3();
}
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
RC
Receiver
PWM
Demodulator
PWM
Port
To servos
41958
2915
5267
31958
21850
28910
9481
9185
42018
CAN Parser / Dispatcher
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
2
1
3
4
Part List
Module
Cost
Sub Total
Custom Cain PCBs
Manufacturing
150
Assembly
100
Custom Power PCB
Manufacturing
100
Assembly
100
Components
50
250
Components
50
300
CAIN PCB for:
200
STk500/501 development board
200
JTAG In Circuit Emulator
IMU Node
300
GPS Node
300
Servo Node
300
Flight Computer Node
300
Bluetooth Node
300
Miscellaneous Small Parts
Donated
170
Total: $2320
Funded by Prof. Meyer and UROP
1500
COTS Bluetooth Module
Custom Avionics Flight Box
Donated
Part List
Provided by Prof. Meyer:
Parts
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
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?
Download