pixhawk学习笔记---创建新的应用程序
2015-06-26 20:53
176 查看
最近转到无人机领域的开发中,感觉和以往搞android驱动差别比较大,以前搞android驱动的时候网上的资料满天飞,但是现在关于飞控相关的资料却少之又少,一些资料都是从原理上入手,讲的是天花乱坠,看半天也不知所云,我打算从实际应用的角度来记录我飞控代码的学习之路,希望我能坚持下来。
首先看一下飞控代码的组成架构:
飞控代码以nuttx实时操作系统为核心, 驱动层通过采集加速度、陀螺仪、磁力计、气压计传感器的值来控制无人机的飞行姿态,通过uorb来实现各个进程之间的通信,控制无人机的飞行可以通过遥控器或是mavlink消息来完成,下面我就讲一下怎么创建一个新的应用程序。
每学习一门新的语言都是以"hello world!"开始,学习一门新的系统也不例外:
1. 在Firmware/src/modules目录下建立一个px4_simple_app文件夹,在这个文件夹中建立一个module.mk文件,将下列信息写入此文件:
MODULE_COMMAND =px4_simple_app
SRCS = px4_simple_app.c
2. 在上述文件夹中在新建一个px4_simple_app.c的文件:
#include <nuttx/config.h>
#include <stdio.h>
#include <errno.h>
__EXPORT int px4_simple_app_main(int argc,char *argv[]);
Int px4_simple_app_main(int argc,char *argc[])
{
printf(“Hello Sky\n”);
return 0;
}
3. 注册此app:
在Firmware/makefiles/config_px4fmu-v2_default.mk中加入:
MODULES += modules/px4_simple_app
然后编译烧写,之后再终端中 输入"?",在列表中就会看到px4_simple_app,然后输入“px4_simple_app start”,就会看到 “Hello Sky”的字样,这样在nuttx上的第一个应用程序就成功跑起来啦。
首先看一下飞控代码的组成架构:
飞控代码以nuttx实时操作系统为核心, 驱动层通过采集加速度、陀螺仪、磁力计、气压计传感器的值来控制无人机的飞行姿态,通过uorb来实现各个进程之间的通信,控制无人机的飞行可以通过遥控器或是mavlink消息来完成,下面我就讲一下怎么创建一个新的应用程序。
每学习一门新的语言都是以"hello world!"开始,学习一门新的系统也不例外:
1. 在Firmware/src/modules目录下建立一个px4_simple_app文件夹,在这个文件夹中建立一个module.mk文件,将下列信息写入此文件:
MODULE_COMMAND =px4_simple_app
SRCS = px4_simple_app.c
2. 在上述文件夹中在新建一个px4_simple_app.c的文件:
#include <nuttx/config.h>
#include <stdio.h>
#include <errno.h>
__EXPORT int px4_simple_app_main(int argc,char *argv[]);
Int px4_simple_app_main(int argc,char *argc[])
{
printf(“Hello Sky\n”);
return 0;
}
3. 注册此app:
在Firmware/makefiles/config_px4fmu-v2_default.mk中加入:
MODULES += modules/px4_simple_app
然后编译烧写,之后再终端中 输入"?",在列表中就会看到px4_simple_app,然后输入“px4_simple_app start”,就会看到 “Hello Sky”的字样,这样在nuttx上的第一个应用程序就成功跑起来啦。
相关文章推荐
- 黑马程序员--预处理3中指令
- Linux 启动过程的详细解释
- php开发第一课
- 正则表达式
- Intent启动系统组件(activity,service,BroadReceiver)-android学习之旅(四十九)
- Intent启动系统组件(activity,service,BroadReceiver)-android学习之旅(四十九)
- Intent启动系统组件(activity,service,BroadReceiver)-android学习之旅(四十九)
- 最小生成树与最小树形图
- Pig python udf简介
- 影响显示结果的语系变量 (locale)
- SVM入门(一)至(三)
- JavaSE笔记之<初始化顺序深入>
- CWE-469: Use of Pointer Subtraction to Determine Size
- linux程序设计——多个源文件的问题,makefile的语法(第九章)
- linux程序将文件存到nfs上可能引起程序异常
- 配置ssh信任
- Java传值还是传引用
- 如何发布打包并发布自己的Android应用(APP)
- 基于端口号的虚拟主机配置
- 循环打印一个菱形英文字母...