ImuCalibration/Gyroscopes
Turntable Procedure
Hardware
Pictures
Components
- audio-technica AT-LP120_USB Direct Drive Professional Turntable
- Olimex LPC H2148
- Omron rotary encoder
- Lisa/L+IMU, Xbee 2.4Ghz modem set, fibreglass mounting plates and general wiring components
- Encoder mount hoop - engineering shop?
Wiring
Encoder to LPC
- Black (common) to EXT2 GND
- Red 5~12 VDC to EXT2 Vin(5v)
- White OUTA to EXT1 PO.22
LPC to LPC
- EXT2 3.3v to EXT1 PO.22 (pull up resistor)
Software
LPC Code Modifications
In case of USB 2.0 A-B cable operation, ~/conf/airframes/Poine/turntable.xml has to be amended, as follows, and saved as ~/turntable_dev_usb.xml:
File: conf/airframes/Poine/turntable_dev_usb.xml |
main.CFLAGS += -DUSE_USB_SERIAL
main.srcs += $(SRC_ARCH)/usb_ser_hw.c
main.srcs += $(SRC_ARCH)/lpcusb/usbhw_lpc.c $(SRC_ARCH)/lpcusb/usbinit.c
main.srcs += $(SRC_ARCH)/lpcusb/usbcontrol.c $(SRC_ARCH)/lpcusb/usbstdreq.c
main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=UsbS
#main.CFLAGS += -DUSE_UART0 -DUART0_BAUD=B115200
#main.srcs += mcu_periph/uart.c
#main.srcs += $(SRC_ARCH)/mcu_periph/uart_arch.c
#main.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=PprzTransport -DDOWNLINK_DEVICE=Uart0
main.srcs += subsystems/datalink/downlink.c subsystems/datalink/pprz_transport.c
#main.CFLAGS += -DMB_TACHO
#main.srcs += $(MB)/mb_tacho.c
</makefile>
</airframe>
|
A new turntable session has to be added to ~/conf/control_panel.xml:
File: conf/control_panel.xml |
<session name="Flight with USB-serial_TT modem">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyACM0"/>
<arg flag="-nouplink" constant=""/>
<arg flag="-s" constant="115200"/>
</program>
<program name="Server"/>
<program name="GCS"/>
</session>
|
A new aircraft (A/C) named "TT" has to be built using the paparazzi centre:
File: conf/conf.xml |
<aircraft
name="TT"
ac_id="3"
airframe="airframes/Poine/turntable_dev_usb.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/dummy.xml"
settings=" settings/rotorcraft_basic.xml"
gui_color="blue"
/>
<aircraft
|
IMU Code Modifications
Similar files have to be created for the IMU cradle unit:
File: conf/control_panel.xml |
<session name="Flight USB-serial_TT @57600">
<program name="Data Link">
<arg flag="-d" constant="/dev/ttyUSB0"/>
<arg flag="-s" constant="57600"/>
</program>
</session>
|
The airframe is a standard rotorcraft file with the appropriate IMU defined.
File: conf/conf.xml |
<aircraft
name="TTIMU"
ac_id="4"
airframe="airframes/Audax/slh_lisa_mkk_i2c_indoor_tt_asp1.0.xml"
radio="radios/cockpitSX.xml"
telemetry="telemetry/default_rotorcraft.xml"
flight_plan="flight_plans/rotorcraft_basic.xml"
settings=" settings/rotorcraft_basic.xml"
gui_color="blue"
/>
<aircraft
|
Encoder Code Modifications
Line 43 in ~/sw/airborne/firmwares/motor_bench/main_turntable.c has to be amended to reflect the encoder's factory pulses per revolution (P/R) setting from default "#define NB_STEP 256". The encoder above has a factory resolution set at "300" (P/R). The resolution setting has to relect turntable velocity message outputs of ~200deg/s (3.49065rad/s) and ~270deg/s (4.71239rad/s) for 33rpm and 45 rpm respectively.
File: sw/airborne/firmwares/motor_bench/main_turntable.c |
#define NB_STEP 300
|
Calibration Session
Data Collection Setup
In Paparazzi Centre: