Actuator Faulhaber (#3283)

* Actuator Faulhaber

code style

activate

fix test

* Update conf/modules/actuators_faulhaber.xml

* try to fix

* Update conf/modules/actuators_faulhaber.xml

* 16-bit code
This commit is contained in:
Christophe De Wagter
2024-06-12 09:03:14 +02:00
committed by GitHub
parent 19be47a427
commit 4b4ebface9
5 changed files with 467 additions and 2 deletions
+10 -2
View File
@@ -23,6 +23,7 @@
<define name="RADIO_FMODE" value="RADIO_AUX2"/>
<define name="RADIO_FBW_MODE" value="RADIO_AUX3"/>
<define name="RADIO_CONTROL_THRUST_X" value="RADIO_AUX4"/>
<define name="RADIO_PARACHUTE" value="RADIO_AUX6"/>
<!-- EKF2 configure inputs -->
<define name="INS_EKF2_GYRO_ID" value="IMU_PIXHAWK2_ID"/>
@@ -41,8 +42,6 @@
<!-- Log in high speed (Remove for outdoor flights) -->
<!-- <define name="IMU_LOG_HIGHSPEED" value="TRUE"/> -->
<define name="SERVO_ROTATION_MECH_IDX" value="0"/> <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!! FIXMEEE !!!!!!!!!!!!!!!!!!!!!!!!!! -->
</target>
<target name="nps" board="pc">
@@ -106,6 +105,8 @@
<configure value="TRUE" name="UAVCAN_USE_CAN1"/>
<configure value="TRUE" name="UAVCAN_USE_CAN2"/>
</module>
<!-- Rotation mechanism actuator on UART -->
<module name="actuators" type="faulhaber"/>
<!-- Control -->
<module name="stabilization" type="indi">
@@ -179,6 +180,10 @@
<servo no="6" name="BSERVO_RUDDER" min="-3250" neutral="0" max="3250"/>
</servos>
<servos driver="Faulhaber">
<servo no="0" name="ROTATION_MECH" min="29" neutral="1707" max="3385"/>
</servos>
<commands>
<axis name="ROLL" failsafe_value="0"/>
<axis name="PITCH" failsafe_value="0"/>
@@ -221,6 +226,9 @@
<set servo="BAIL_LEFT" value="($servo_hold? RadioControlValues(RADIO_ROLL) : actuators_pprz[6])"/>
<set servo="BFLAP_LEFT" value="($servo_hold? RadioControlValues(RADIO_ROLL) : actuators_pprz[7])"/>
<set servo="BPARACHUTE" value="RadioControlValues(RADIO_AUX6)"/-->
<!-- Rotation mechanism -->
<set servo="ROTATION_MECH" value="rotwing_state_skewing.servo_pprz_cmd"/>
</command_laws>
+45
View File
@@ -0,0 +1,45 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="actuators_faulhaber" dir="actuators" task="actuators">
<doc>
<description>
Actuators Driver for the Faulhaber controller
</description>
<configure name="FAULHABER_DEV" value="UARTX" description="UART port (default UART4)"/>
</doc>
<settings>
<dl_settings>
<dl_settings NAME="Faulhaber">
<dl_setting var="faulhaber.mode" min="0" step="1" max="4" shortname="mode" module="modules/actuators/actuators_faulhaber" handler="SetMode"/>
<dl_setting var="faulhaber.setpoint_position" min="0" step="1000" max="3600000"/>
<dl_setting var="faulhaber.real_position" min="0" step="1000" max="3300000"/>
</dl_settings>
</dl_settings>
</settings>
<dep>
<depends>uart</depends>
<provides></provides>
</dep>
<header>
<file name="actuators_faulhaber.h"/>
</header>
<init fun="actuators_faulhaber_init()"/>
<periodic fun="actuators_faulhaber_periodic()" freq="50"/>
<event fun="actuators_faulhaber_event()" />
<makefile target="!sim">
<configure name="FAULHABER_DEV" default="UART4" case="upper|lower"/>
<define name="FAULHABER_DEV" value="$(FAULHABER_DEV_LOWER)"/>
<define name="USE_$(FAULHABER_DEV_UPPER)"/>
<define name="$(FAULHABER_DEV_UPPER)_BAUD" value="B115200"/>
<file name="actuators_faulhaber.c"/>
<test>
<define name="USE_UART4"/>
<define name="PERIODIC_FREQUENCY" value="500"/>
<define name="FAULHABER_DEV" value="uart4"/>
<define name="get_servo_min_FAULHABER" value=""/>
<define name="get_servo_max_FAULHABER" value=""/>
<define name="get_servo_idx_FAULHABER" value=""/>
</test>
</makefile>
</module>