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?