Проблемы с запуском двигателя BLDC при использовании Python и Pixhawk X7+. ⇐ Python
-
Anonymous
Проблемы с запуском двигателя BLDC при использовании Python и Pixhawk X7+.
Мой двигатель BLDC, подключенный к Pixhawk X7+, работает с использованием QGroundControl и один раз запускался с использованием следующего кода, но больше не работает. Он не только активируется, но и работает правильно при использовании QGC. Pixhawk имеет стек полетов ArduSub, а код написан на Python.
Код: время импорта
из pymavlink import mavutil # Создаем соединение мастер = mavutil.mavlink_connection('/dev/ttyACM1') # Подождите немного перед отправкой команд master.wait_heartbeat() # https://mavlink.io/en/messages/common.h ... ARM_DISARM # Рука # master.arducopter_arm() или: master.mav.command_long_send( master.target_system, мастер.целевой_компонент, mavutil.mavlink.MAV_CMD_COMPONENT_ARM_DISARM, 0, 1, 0, 0, 0, 0, 0, 0) # дождаться подтверждения постановки на охрану (можно проверить вручную с помощью master.motors_armed()) print("Ожидание постановки машины на охрану") master.motors_armed_wait() print('Вооружен!') # Инициализируйте двигатель с определенным значением ШИМ. номер_двигателя = 1 # Номер двигателя Initial_pwm = 1100 # Начальное значение ШИМ для инициализации двигателя print(f"Инициализация двигателя {motor_number} с помощью ШИМ: {initial_pwm}") msg = master.mav.command_long_send( master.target_system, master.target_comComponent, mavutil.mavlink.MAV_CMD_DO_SET_SERVO, 0, номер_двигателя, начальный_pwm, 0, 0, 0, 0, 0) # Дайте двигателю инициализироваться на мгновение print("Инициализация двигателя... (2 секунды)") time.sleep(2) # Отрегулируйте эту продолжительность по мере необходимости # Запустите двигатель с желаемым значением ШИМ (отрегулируйте по мере необходимости) Motor_speed = 1500 # Отрегулируйте это значение для управления скоростью двигателя. print(f"Двигатель {motor_number} работает на ШИМ: {motor_speed}") msg = master.mav.command_long_send( master.target_system, master.target_comComponent, mavutil.mavlink.MAV_CMD_DO_SET_SERVO, 0, номер_двигателя, скорость_двигателя, 0, 0, 0, 0, 0) время.сон(10) # Снятие с охраны # master.arducopter_disarm() или: master.mav.command_long_send( master.target_system, мастер.целевой_компонент, mavutil.mavlink.MAV_CMD_COMPONENT_ARM_DISARM, 0, 0, 0, 0, 0, 0, 0, 0) # дождаться подтверждения снятия с охраны master.motors_disarmed_wait() печать("Обезоружен")
Мой двигатель BLDC, подключенный к Pixhawk X7+, работает с использованием QGroundControl и один раз запускался с использованием следующего кода, но больше не работает. Он не только активируется, но и работает правильно при использовании QGC. Pixhawk имеет стек полетов ArduSub, а код написан на Python.
Код: время импорта
из pymavlink import mavutil # Создаем соединение мастер = mavutil.mavlink_connection('/dev/ttyACM1') # Подождите немного перед отправкой команд master.wait_heartbeat() # https://mavlink.io/en/messages/common.h ... ARM_DISARM # Рука # master.arducopter_arm() или: master.mav.command_long_send( master.target_system, мастер.целевой_компонент, mavutil.mavlink.MAV_CMD_COMPONENT_ARM_DISARM, 0, 1, 0, 0, 0, 0, 0, 0) # дождаться подтверждения постановки на охрану (можно проверить вручную с помощью master.motors_armed()) print("Ожидание постановки машины на охрану") master.motors_armed_wait() print('Вооружен!') # Инициализируйте двигатель с определенным значением ШИМ. номер_двигателя = 1 # Номер двигателя Initial_pwm = 1100 # Начальное значение ШИМ для инициализации двигателя print(f"Инициализация двигателя {motor_number} с помощью ШИМ: {initial_pwm}") msg = master.mav.command_long_send( master.target_system, master.target_comComponent, mavutil.mavlink.MAV_CMD_DO_SET_SERVO, 0, номер_двигателя, начальный_pwm, 0, 0, 0, 0, 0) # Дайте двигателю инициализироваться на мгновение print("Инициализация двигателя... (2 секунды)") time.sleep(2) # Отрегулируйте эту продолжительность по мере необходимости # Запустите двигатель с желаемым значением ШИМ (отрегулируйте по мере необходимости) Motor_speed = 1500 # Отрегулируйте это значение для управления скоростью двигателя. print(f"Двигатель {motor_number} работает на ШИМ: {motor_speed}") msg = master.mav.command_long_send( master.target_system, master.target_comComponent, mavutil.mavlink.MAV_CMD_DO_SET_SERVO, 0, номер_двигателя, скорость_двигателя, 0, 0, 0, 0, 0) время.сон(10) # Снятие с охраны # master.arducopter_disarm() или: master.mav.command_long_send( master.target_system, мастер.целевой_компонент, mavutil.mavlink.MAV_CMD_COMPONENT_ARM_DISARM, 0, 0, 0, 0, 0, 0, 0, 0) # дождаться подтверждения снятия с охраны master.motors_disarmed_wait() печать("Обезоружен")
Мобильная версия