Difference between revisions of "Current sensor"

From PaparazziUAV
Jump to navigation Jump to search
Line 1: Line 1:
If you have a current sensor like the one from sparkfun (AttoPilot Voltage and Current Sense Breakout [http://www.sparkfun.com/commerce/product_info.php?products_id=9028 Current sensor] it is very easy to get the paparazzi working with that.
It is very easy to get the Paparazzi system working with a current sensor.  
 
I have only a TWOG 1.0 so i am only able to descibe the way for this device. The Tiny v2 should be the same.


Examples are the one from Sparkfun (AttoPilot Voltage and Current Sense Breakout [http://www.sparkfun.com/commerce/product_info.php?products_id=9028 Current sensor] or a linear hall-effect device such as the Allegro ACS755. The [http://www.teamnovak.com/products/data_logger/2000_sentry/index.html Novak Sentry current sensor] is based on the ACS755LCB-100 hall-effect sensor and has a range of 100A.


== Hardware ==
== Hardware ==


[[Image:Example.jpg|thumb|right|float|Connected current sensor to the Twog]]
[[Image:Example.jpg|thumb|right|float|Current sensor connected to the TWOG v1]]
I use the current sensor also for power supply so i have 3 wires to the current sensor. The + and - pole and the wire for the current measurement. The + and - have to be soldered directly to the cabels which came from the power supply. The 3rd wire is connected to the VI pin on the sparkfun breakout board. It must have a voltage between 0 and 3.3V. On the Twog or Tiny side you connect the 3rd wire to the ADC_3 or ADC_4 pin.
Typically, the current sensor is used to measure the current flowing through the main battery (rather than the motor). Connect the + and - pole of the sensor through the battery red lead and the wire for the current measurement. The + and - have to be soldered directly to the cables which came from the power supply. The 3rd wire is connected to the "VI" pin on the sparkfun breakout board. It must have a voltage between 0 and 3.3V. On a TWOG v1 or Tiny v2 board, you connect the current sense output wire ("IA" on the AttoPilot sensor) to the ADC_3 or ADC_4 pin.


== Airframe integration ==
== Airframe integration ==


In the BAT section of the airframe file add this lines:
In the BAT section of the airframe file add these lines:


   <define name="ADC_CHANNEL_CURRENT" value="ADC_3" />
   <define name="ADC_CHANNEL_CURRENT" value="ADC_3" />
Line 19: Line 18:
   <define name="MILLIAMP_AT_FULL_THROTTLE" value="4000" unit="mA"/>
   <define name="MILLIAMP_AT_FULL_THROTTLE" value="4000" unit="mA"/>


The right multiplicator for the raw measurement conversion depends on the current sensor. The sparkfun sensor returns a voltage of 0 V - 3.3 V it is linear and at 90.15 A it reaches the maximum of 3.3 V. The Twog have a A/D with 10-bit precision wich leads to 1024 different values for the voltage. So you can calculate the multiplicator with the following formula:
The correct multiplier for the raw measurement conversion depends on the current sensor. The Sparkfun sensor returns a linear voltage of 0 V - 3.3 V and at 90.15 A it reaches the maximum of 3.3 V. The TWOG v1 or Tiny v2 have a A/D converter with 10-bit precision (1024 different values)to represent the voltage. So you can calculate the multiplicator with the following formula:


'''1000 / precision * A_at_max_voltage'''
'''1000 / precision * A_at_max_voltage'''


In case of the sparkfun sensor precision is 1024 and A_at_max_voltage is 90.15 => 1000/1024*90.15 = 88.037
For the Sparkfun sensor, the precision is 1024 and A_at_max_voltage is 90.15 => 1000/1024*90.15 = 88.037
For the ACS755LCB-100 sensor, there is a 0.6 volts offset and


In the makefile section following lines must set to you needs (ADC_0 - ADC_2 are in use for IR sensors):
In the makefile section following lines must set to you needs (ADC_0 - ADC_2 are in use for IR sensors):
Line 32: Line 32:
== Display on ground station ==
== Display on ground station ==


After following the instruction the energy consumed during the flight is send in the BAT message. Use the Messages application to show it.
The total energy consumed during the flight (in mAh) is send in the BAT message. Use the Messages application to show it.
In the fbw_status message the current value show the actual current flow through the current sensor.
The actual current flowing through the current sensor (in mA) is shown the is sent in the "fbw_status" message.  


You can display the energy or current on the GCS by just drag and drop them on the 2d map.
You can display the energy or current on the GCS by just drag and drop them on the 2d map.

Revision as of 11:19, 23 October 2009

It is very easy to get the Paparazzi system working with a current sensor.

Examples are the one from Sparkfun (AttoPilot Voltage and Current Sense Breakout Current sensor or a linear hall-effect device such as the Allegro ACS755. The Novak Sentry current sensor is based on the ACS755LCB-100 hall-effect sensor and has a range of 100A.

Hardware

Current sensor connected to the TWOG v1

Typically, the current sensor is used to measure the current flowing through the main battery (rather than the motor). Connect the + and - pole of the sensor through the battery red lead and the wire for the current measurement. The + and - have to be soldered directly to the cables which came from the power supply. The 3rd wire is connected to the "VI" pin on the sparkfun breakout board. It must have a voltage between 0 and 3.3V. On a TWOG v1 or Tiny v2 board, you connect the current sense output wire ("IA" on the AttoPilot sensor) to the ADC_3 or ADC_4 pin.

Airframe integration

In the BAT section of the airframe file add these lines:

 <define name="ADC_CHANNEL_CURRENT" value="ADC_3" />
 <define name="MilliAmpereOfAdc(adc)" value="(88*adc)"/>

and remove the line:

 <define name="MILLIAMP_AT_FULL_THROTTLE" value="4000" unit="mA"/>

The correct multiplier for the raw measurement conversion depends on the current sensor. The Sparkfun sensor returns a linear voltage of 0 V - 3.3 V and at 90.15 A it reaches the maximum of 3.3 V. The TWOG v1 or Tiny v2 have a A/D converter with 10-bit precision (1024 different values)to represent the voltage. So you can calculate the multiplicator with the following formula:

1000 / precision * A_at_max_voltage

For the Sparkfun sensor, the precision is 1024 and A_at_max_voltage is 90.15 => 1000/1024*90.15 = 88.037 For the ACS755LCB-100 sensor, there is a 0.6 volts offset and

In the makefile section following lines must set to you needs (ADC_0 - ADC_2 are in use for IR sensors):

 ap.CFLAGS += -DADC -DUSE_ADC_0 -DUSE_ADC_1 -DUSE_ADC_2 -DUSE_ADC_3
 ap.srcs += $(SRC_ARCH)/adc_hw.c

Display on ground station

The total energy consumed during the flight (in mAh) is send in the BAT message. Use the Messages application to show it. The actual current flowing through the current sensor (in mA) is shown the is sent in the "fbw_status" message.

You can display the energy or current on the GCS by just drag and drop them on the 2d map.