!REDIRECT "https://docs.px4.io/master/ko/middleware/modules_driver.html"
하위 분류:
소스 코드: drivers/adc/board_adc
ADC 드라이버입니다.
adc <command> [arguments...]
Commands:
start
test
stop
status print status info
Source: drivers/adc/ads1115
ads1115 <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a <val>] I2C address
default: 72
stop
status print status info
Source: drivers/osd/atxxxx
OSD driver for the ATXXXX chip that is mounted on the OmnibusF4SD board for example.
It can be enabled with the OSD_ATXXXX_CFG parameter.
atxxxx <command> [arguments...]
Commands:
start
[-s] Internal SPI bus(es)
[-S] External SPI bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-c <val>] chip-select index (for external SPI)
default: 1
[-m <val>] SPI mode
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
stop
status print status info
Source: drivers/batt_smbus
Smart battery driver for the BQ40Z50 fuel gauge IC.
To write to flash to set parameters. address, number_of_bytes, byte0, ... , byteN
batt_smbus -X write_flash 19069 2 27 0
batt_smbus
unseal Unseals the devices flash memory to enable write_flash
commands.
seal Seals the devices flash memory to disbale write_flash commands.
suspend Suspends the driver from rescheduling the cycle.
resume Resumes the driver from suspension.
write_flash Writes to flash. The device must first be unsealed with the
unseal command.
[address] The address to start writing.
[number of bytes] Number of bytes to send.
[data[0]...data[n]] One byte of data at a time separated by spaces.
stop
status print status info
소스 코드: drivers/lights/blinkm
unseal Unseals the devices flash memory to enable write_flash
commands.
소스 코드: drivers/telemetry/bst
bst <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a <val>] I2C address
default: 118
stop
status print status info
소스 코드: drivers/dshot
DShot 출력 드라이버입니다. FMU 드라이버와 유사하나, PWM 대신 ESC 통신 프로토콜처럼 DShot용 대체 용도로 활용할 수 있습니다.
다음 항목, 기능을 지원합니다:
- DShot150, DShot300, DShot600, DShot1200
- 별도의 UART를 통한 텔레메트리 통신, esc_status 메세지 전송
- CLI로의 DShot 명령 전송
Permanently reverse motor 1:
dshot reverse -m 1
dshot save -m 1
After saving, the reversed direction will be regarded as the normal one. So to reverse again repeat the same commands.
dshot <command> [arguments...]
Commands:
start Start the task (without any mode set, use any of the mode_*
cmds)
All of the mode_* commands will start the module if not running already
mode_gpio
mode_pwm Select all available pins as PWM
mode_pwm8
mode_pwm6
mode_pwm5
mode_pwm5cap1
mode_pwm4
mode_pwm4cap1
mode_pwm4cap2
mode_pwm3
mode_pwm3cap1
mode_pwm2
mode_pwm2cap2
mode_pwm1
telemetry Enable Telemetry on a UART
<device> UART device
reverse Reverse motor direction
[-m <val>] Motor index (1-based, default=all)
normal Normal motor direction
[-m <val>] Motor index (1-based, default=all)
save Save current settings
[-m <val>] Motor index (1-based, default=all)
3d_on Enable 3D mode
[-m <val>] Motor index (1-based, default=all)
3d_off Disable 3D mode
[-m <val>] Motor index (1-based, default=all)
beep1 Send Beep pattern 1
[-m <val>] Motor index (1-based, default=all)
beep2 Send Beep pattern 2
[-m <val>] Motor index (1-based, default=all)
beep3 Send Beep pattern 3
[-m <val>] Motor index (1-based, default=all)
beep4 Send Beep pattern 4
[-m <val>] Motor index (1-based, default=all)
beep5 Send Beep pattern 5
[-m <val>] Motor index (1-based, default=all)
esc_info Request ESC information
-m <val> Motor index (1-based)
stop
status print status info
소스 코드: examples/fake_gyro
fake_gyro <command> [arguments...]
Commands:
start
stop
status print status info
소스 코드: examples/fake_magnetometer
가상 지자계(sensor_mag)로서 지자계데이터를 내보냅니다. vehicle_attitude와 vehicle_gps_position이 필요합니다.
fake_magnetometer <command> [arguments...]
Commands:
start
stop
status print status info
소스 코드: drivers/gps
GPS driver module that handles the communication with the device and publishes the position via uORB. It supports multiple protocols (device vendors) and by default automatically selects the correct one.
The module supports a secondary GPS device, specified via -e
parameter. The position will be published on the second uORB topic instance, but it's currently not used by the rest of the system (however the data will be logged, so that it can be used for comparisons).
There is a thread for each device polling for data. The GPS protocol classes are implemented with callbacks so that they can be used in other projects as well (eg. QGroundControl uses them too).
시험을 진행할 때 GPS 신호를 속이는 목적으로 쓸만합니다(유효한 위치 정보를 가지고 있다고 시스템에 시그널을 보냄):
gps stop
gps start -f
GPS 장치 2개를 시작하려면(주 GPS 장치는 /dev/ttyS3에, 보조 GPS 장치는 /dev/ttyS4):
gps start -d /dev/ttyS3 -e /dev/ttyS4
전원 인가 상태에서 GPS 장치를 다시 시작하려면
ina226
gps <command> [arguments...]
Commands:
start
[-d <val>] GPS device
values: <file:dev>, default: /dev/ttyS3
[-b <val>] Baudrate (can also be p:<param_name>)
default: 0
[-e <val>] Optional secondary GPS device
values: <file:dev>
[-g <val>] Baudrate (secondary GPS, can also be p:<param_name>)
default: 0
[-f] Fake a GPS signal (useful for testing)
[-s] Enable publication of satellite info
[-i <val>] GPS interface
values: spi|uart, default: uart
[-j <val>] secondary GPS interface
values: spi|uart, default: uart
[-p <val>] GPS Protocol (default=auto select)
values: ubx|mtk|ash|eml
stop
status print status info
reset Reset GPS device
cold|warm|hot Specify reset type
Source: drivers/power_monitor/ina226
Driver for the INA226 power monitor.
Multiple instances of this driver can run simultaneously, if each instance has a separate bus OR I2C address.
For example, one instance can run on Bus 2, address 0x41, and one can run on Bus 2, address 0x43.
If the INA226 module is not powered, then by default, initialization of the driver will fail. To change this, use the -f flag. If this flag is set, then if initialization fails, the driver will keep trying to initialize again every 0.5 seconds. With this flag set, you can plug in a battery after the driver starts, and it will work. Without this flag set, the battery must be plugged in before starting the driver.
ina226 <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a <val>] I2C address
default: 65
[-k] if initialization (probing) fails, keep retrying periodically
[-t <val>] battery index for calibration values (1 or 2)
default: 1
stop
status print status info
Source: drivers/irlock
irlock <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a <val>] I2C address
default: 84
stop
status print status info
Source: drivers/magnetometer/lsm303agr
lsm303agr <command> [arguments...]
Commands:
start
[-s] Internal SPI bus(es)
[-S] External SPI bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-c <val>] chip-select index (for external SPI)
default: 1
[-m <val>] SPI mode
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-R <val>] Rotation
default: 0
stop
status print status info
Source: drivers/optical_flow/paw3902
paw3902 <command> [arguments...]
Commands:
start
[-s] Internal SPI bus(es)
[-S] External SPI bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-c <val>] chip-select index (for external SPI)
default: 1
[-m <val>] SPI mode
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-Y <val>] custom yaw rotation (degrees)
default: 0
stop
status print status info
Source: drivers/pca9685
pca9685 <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
reset
test enter test mode
stop
status print status info
Source: drivers/pca9685_pwm_out
This module is responsible for generate pwm pulse with PCA9685 chip.
It listens on the actuator_controls topics, does the mixing and writes the PWM outputs.
This module depends on ModuleBase and OutputModuleInterface. IIC communication is based on CDev::I2C
It is typically started with:
pca9685_pwm_out start -a 64 -b 1
Use the mixer
command to load mixer files. mixer load /dev/pwm_outputX etc/mixers/quad_x.main.mix
The number X can be acquired by executing pca9685_pwm_out status
when this driver is running.
pca9685_pwm_out <command> [arguments...]
Commands:
start Start the task
[-a <val>] device address on this bus
default: 64
[-b <val>] bus that pca9685 is connected to
default: 1
[-r <val>] schedule rate limit
default: 400
stop
status print status info
Source: drivers/rpm/pcf8583
pcf8583 <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
stop
status print status info
Source: drivers/optical_flow/pmw3901
pmw3901 <command> [arguments...]
Commands:
start
[-s] Internal SPI bus(es)
[-S] External SPI bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-c <val>] chip-select index (for external SPI)
default: 1
[-m <val>] SPI mode
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-R <val>] Rotation
default: 0
stop
status print status info
Source: drivers/pwm_out
This module is responsible for driving the output and reading the input pins. For boards without a separate IO chip (eg. Pixracer), it uses the main channels. On boards with an IO chip (eg. Pixhawk), it uses the AUX channels, and the px4io driver is used for main ones.
It listens on the actuator_controls topics, does the mixing and writes the PWM outputs.
The module is configured via mode_* commands. This defines which of the first N pins the driver should occupy. By using mode_pwm4 for example, pins 5 and 6 can be used by the camera trigger driver or by a PWM rangefinder driver. Alternatively, pwm_out can be started in one of the capture modes, and then drivers can register a capture callback with ioctl calls.
By default the module runs on a work queue with a callback on the uORB actuator_controls topic.
It is typically started with:
pwm_out mode_pwm
To drive all available pins.
Capture input (rising and falling edges) and print on the console: start pwm_out in one of the capture modes:
pwm_out mode_pwm3cap1
This will enable capturing on the 4th pin. Then do:
pwm_out test
Use the pwm
command for further configurations (PWM rate, levels, ...), and the mixer
command to load mixer files.
pwm_out <command> [arguments...]
Commands:
start Start the task (without any mode set, use any of the mode_*
cmds)
All of the mode_* commands will start pwm_out if not running already
mode_gpio
mode_pwm Select all available pins as PWM
mode_pwm8
mode_pwm6
mode_pwm5
mode_pwm5cap1
mode_pwm4
mode_pwm4cap1
mode_pwm4cap2
mode_pwm3
mode_pwm3cap1
mode_pwm2
mode_pwm2cap2
mode_pwm1
sensor_reset Do a sensor reset (SPI bus)
[<ms>] Delay time in ms between reset and re-enabling
peripheral_reset Reset board peripherals
[<ms>] Delay time in ms between reset and re-enabling
i2c Configure I2C clock rate
<bus_id> <rate> Specify the bus id (>=0) and rate in Hz
test Test inputs and outputs
stop
status print status info
Source: drivers/pwm_out_sim
Driver for simulated PWM outputs.
Its only function is to take actuator_control
uORB messages, mix them with any loaded mixer and output the result to the actuator_output
uORB topic.
It is used in SITL and HITL.
pwm_out_sim <command> [arguments...]
Commands:
start Start the module
[-m <val>] Mode
values: hil|sim, default: sim
stop
status print status info
Source: drivers/optical_flow/px4flow
px4flow <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a <val>] I2C address
default: 66
[-R <val>] Rotation (default=downwards)
default: 25
stop
status print status info
Source: drivers/rc_input
This module does the RC input parsing and auto-selecting the method. Supported methods are:
- PPM
- SBUS
- DSM
- SUMD
- ST24
- TBS 크로스파이어 (CRSF)
rc_input <command> [arguments...]
Commands:
start
[-d <val>] RC device
values: <file:dev>, default: /dev/ttyS3
bind Send a DSM bind command (module must be running)
stop
status print status info
Source: drivers/lights/rgbled_ncp5623c
rgbled <command> [arguments...]
Commands:
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a <val>] I2C address
default: 57
stop
status print status info
Source: drivers/roboclaw
This driver communicates over UART with the Roboclaw motor driver. It performs two tasks:
actuator_controls_0
uORB 토픽을 기반으로 모터를 제어합니다.- 바퀴 인코더를 읽고
wheel_encoders
uORB 토픽에 생짜 데이터를 내보냅니다
In order to use this driver, the Roboclaw should be put into Packet Serial mode (see the linked documentation), and your flight controller's UART port should be connected to the Roboclaw as shown in the documentation. For Pixhawk 4, use the UART & I2C B
port, which corresponds to /dev/ttyS3
.
The main loop of this module (Located in RoboClaw.cpp::task_main()
) performs 2 tasks:
- Roboclaw가 가동중인 경우
actuator_controls_0
메세지를 기록합니다 - Roboclaw의 인코더 데이터를 주기적으로 읽습니다.
Because of the latency of UART, this driver does not write every single actuator_controls_0
message to the Roboclaw immediately. Instead, it is rate limited based on the parameter RBCLW_WRITE_PER
.
On startup, this driver will attempt to read the status of the Roboclaw to verify that it is connected. If this fails, the driver terminates immediately.
The command to start this driver is:
$ roboclaw start
<device>
is the name of the UART port. On the Pixhawk 4, this is /dev/ttyS3
. <baud>
is te baud rate.
All available commands are:
$ roboclaw start <device> <baud>
$ roboclaw status
$ roboclaw stop
roboclaw <command> [arguments...]
Commands:
Source: drivers/safety_button
This module is responsible for the safety button. Pressing the safety button 3 times quickly will trigger a GCS pairing request.
safety_button <command> [arguments...]
Commands:
start
stop
status print status info
Source: drivers/tap_esc
This module controls the TAP_ESC hardware via UART. It listens on the actuator_controls topics, does the mixing and writes the PWM outputs.
Currently the module is implementd as a threaded version only, meaning that it runs in its own thread instead of on the work queue.
The module is typically started with: tap_esc start -d /dev/ttyS2 -n <1-8>
tap_esc <command> [arguments...]
Commands:
start Start the task
[-d <val>] Device used to talk to ESCs
values: <device>
[-n <val>] Number of ESCs
default: 4
Source: drivers/tone_alarm
This module is responsible for the tone alarm.
tone_alarm <command> [arguments...]
Commands:
start
stop
status print status info
Source: modules/vmount
Mount (Gimbal) control driver. It maps several different input methods (eg. RC or MAVLink) to a configured output (eg. AUX channels or MAVLink).
Documentation how to use it is on the gimbal_control page.
Each method is implemented in its own class, and there is a common base class for inputs and outputs. They are connected via an API, defined by the ControlData
data structure. This makes sure that each input method can be used with each output method and new inputs/outputs can be added with minimal effort.
Test the output by setting a fixed yaw angle (and the other axes to 0):
vmount stop
vmount test yaw 30
vmount <command> [arguments...]
Commands:
start
test Test the output: set a fixed angle for one axis (vmount must
not be running)
roll|pitch|yaw <angle> Specify an axis and an angle in degrees
stop
status print status info
Source: drivers/power_monitor/voxlpm
voxlpm [arguments...]
start
[-I] Internal I2C bus(es)
[-X] External I2C bus(es)
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
(default=1))
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-T <val>] Type
values: VBATT|P5VDC|P12VDC, default: VBATT
[-k] if initialization (probing) fails, keep retrying periodically
stop
status print status info