无人机飞控PX4
PX4
陈 洪 伟
这个作者很懒,什么都没留下…
展开
-
电调升级步骤(飞控端)
1:把.out文件转换成sciprog格式的文件,由于在bootloader里面,用户接受电调程序的缓冲区buffer(L0 SARAM)长度只有0x1000,当用户程序块大于此长度时,要将程序分段,所以这里用perl写了个out2sciprog.exe程序,该程序首先会把.out转换成.hex文件,再将.hex按如下格式分段:{addr1}{length1}{block1}{a...原创 2017-07-23 09:41:00 · 365 阅读 · 0 评论 -
ESC_UP的框架
Frame of Esc_up.cpp首先是在nuttshell中给esc_up_main传入参数,如果传入的参数是'start update',那么会新建一个ESC_UP类,然后初始化这个类,在init函数里面首先配置管脚并且复位所有的电调,然后在init函数里面还有一个start函数,在这个start函数里面就是创建了一个task_main的任务,在task_main里面主要...原创 2017-07-23 10:13:00 · 97 阅读 · 0 评论 -
无人机sensor驱动
无人机系统的Sensors包括六轴LSM6DS3TR,地磁传感器LIS3MDL以及气压传感器LPS25HB,LSM6DS3TR六轴传感器负责检测飞机的三维加速度以及三维角速度用来解算飞机的姿态,地磁传感器LIS3MDL通过检测地球磁场用来解算飞机偏航角,Sensor与MCU之间是以SPI总线进行数据传输, Sensor的驱动程序设计以类的形式来编写,类与类之间...原创 2017-07-23 14:37:00 · 250 阅读 · 0 评论 -
PX4编译总结以及底层驱动流程
师父给的。Px4编译总结1.ld文件配置MCU /Firmware/nuttx-configs/typhoon/scripts2.配置NUTTX系统:修改defconfig /Firmware/nuttx-configs/typhoon/nsh由defconfig生成.config文件在目录/build_typhoon_default/typhoon/NuttX/...原创 2017-07-23 15:12:00 · 229 阅读 · 0 评论 -
PX4的UORB通信机制
在Firmware的msg文件夹里面,里面有很多.msg结尾的文件,这些msg文件在编译的时候可以生成h头文件,这些编译过程中生成的头文件一般是保存在build_default/src/module/uorb/topics。添加msg文件的时候,首先把写好的msg文件放在msg文件夹里面,然后还有一个需要修改的就是cmakelist这个文件,要在这个文件里面把你的msg文件的名字...原创 2017-07-23 16:19:00 · 409 阅读 · 0 评论 -
PX4里面怎么添加驱动程序
添加驱动程序例如,要把 GT100_esc.cpp添加到一个固件里面去,那么1.首先把h文件放到src/drv目录下面,2.然后新建一个文件夹,在这个文件夹里面放入.cpp文件和cmakelist文件,然后要修改cmakelist文件,其中有三个地方需要修改,一个是你新建的这个文件夹的名字需要修改,还有就是里面还要加上.cpp的名字。第三个地方就是,要把main函数的...原创 2017-07-23 16:22:00 · 265 阅读 · 0 评论 -
PX4中ESC的驱动框架
Cdev继承的是Device,然后I2C又是继承的CDev,然后ESC又是继承的I2C,Device---->cdev---->I2C---->ESC。在ESC的init函数里面:首先会调用I2C的init函数。然后配置RST管脚,然后配置电调的I2C地址,包括两个方面,一个是设置飞控程序里面的总线地址,另一个是motor端的I2C地址。在I2C的init函数里...原创 2017-07-23 20:10:00 · 191 阅读 · 0 评论 -
状态指示灯的框架
这个LED的框架和别的框架都是一样的,你看一下那个ESC的框架就明白了。Gpio_led.c:有一个gpio_led_main()函数,这个函数里面接收“start”命令,分配结构体,然后把gpio_led_start函数放到工作队列中,在gpio_led_start函数中,调用了一个open函数打开led设备,然后就是订阅了设备状态和电池状态的主题,然后又把gpio_led_cyc...原创 2017-07-24 20:38:00 · 150 阅读 · 0 评论