PX4(PIXHAWK)源码开发人员文档(二)——Hello Sky

来源:互联网 发布:著名 淘宝店主 90后 编辑:程序博客网 时间:2024/06/07 21:40
origin: http://blog.csdn.net/lkk05/article/details/48443681
前提
  •  用UART1连接PX4FMU和计算机
  •  安装PX4Toolchain
  •  注册Github账户

Step 1: 准备源码文件

为了方便管理代码,可以使用Git版本控制系统,在 GitHub上 fork和更新源码。

不注册GitHub的话,可以在PX4 console中输入下面的命令:

[plain] view plain copy
  1. git clone https://github.com/PX4/Firmware  

更新the git submodules,在 PX4 console上输入:

[plain] view plain copy
  1. cd Firmware  
  2. git submodule init  
  3. git submodule update  

文件准本完成,编译操作系统,输入:

[plain] view plain copy
  1. make archives  

submodules或者NuttX 配置改变,重新编译。

Firmware/src/examples/ 新建目录px4_simple_app,在目录中新建文件module.mk并添加如下内容:

[plain] view plain copy
  1. MODULE_COMMAND      = px4_simple_app  
  2. SRCS            = px4_simple_app.c  

Step 2: 最小程序

在px4_simple_app目录下创建px4_simple_app.c文件。

遵循PX4 CodingStyle 编辑如下代码:

[cpp] view plain copy
  1. /** 
  2.  * @file px4_simple_app.c 
  3.  * Minimal application example for PX4 autopilot. 
  4.  */  
  5.    
  6. #include <nuttx/config.h>  
  7. #include <stdio.h>  
  8. #include <errno.h>  
  9.    
  10. __EXPORT int px4_simple_app_main(int argc, char *argv[]);  
  11.    
  12. int px4_simple_app_main(int argc, char *argv[])  
  13. {  
  14.     printf("Hello Sky!\n");  
  15.     return OK;  
  16. }  

Step 3: 在NuttShell中注册应用并build

完成了应用并可以运行,但是没有在NuttShell 命令中注册。为将应用编译到固件当中,将其填加到需要build的模块中。该配置位于:

Firmware/makefiles/nuttx/config_px4fmu-v2_default.mk

在上面的文件中的任意位置,为应用创建一行:

[plain] view plain copy
  1. MODULES     += examples/px4_simple_app  

然后编译,并清除已经build的应用:

[plain] view plain copy
  1. make clean  
  2. make px4fmu-v2_default -j4  

如果没有注册新的app,只需要对新增的builds执行下述命令:

[plain] view plain copy
  1. make px4fmu-v2_default -j4  

Step 4:加载应用并测试

使能uploader 然后重置电路板:

[plain] view plain copy
  1. make upload px4fmu-v2_default -j4  

在重置电路板之前显示如下一系列信息:

[plain] view plain copy
  1. Generating /Users/user/src/Firmware/Images/px4fmu.px4  
  2. Loaded firmware for 5,0, waiting for the bootloader...  

电路板充值并上载后,打印:

[plain] view plain copy
  1. Found board 5,0 on /dev/tty.usbmodem1  
  2. erase...  
  3. program...  
  4. verify...  
  5. done, rebooting.  

运行px4 Toolchain 下的TeraTerm,运行File/New connection,选择飞控所在的串口,点击OK。按回车,出现nsh>.

NSH连接的情况下,切换到shell.如果没有看到输出,敲击Enter键,会得到NSH提示;

或者也可以,使用QGroundControl进行NuttShell (NSH),使用Mini-USB连接Pixhawk,按照下图进行。点击QGroundControl上的终端输出,并敲击Enter键。

[plain] view plain copy
  1. nsh>  

输入 help,并敲击Enter:

[plain] view plain copy
  1. nsh> help  
  2.   help usage:  help [-v] [<cmd>]  
  3.   
  4.   [           df          kill        mkfifo      ps          sleep         
  5.   ?           echo        losetup     mkrd        pwd         test          
  6.   cat         exec        ls          mh          rm          umount        
  7.   cd          exit        mb          mount       rmdir       unset         
  8.   cp          free        mkdir       mv          set         usleep        
  9.   dd          help        mkfatfs     mw          sh          xd            
  10.   
  11. Builtin Apps:  
  12.   reboot  
  13.   perf  
  14.   top  
  15.   ..  
  16.   px4_simple_app  
  17.   ..  
  18.   sercon  
  19.   serdis  

px4_simple_app 现在成为可用的指令。输入px4_simple_app敲击Enter:

[plain] view plain copy
  1. nsh> px4_simple_app  
  2. Hello Sky!  


版权声明:本文为博主[翻译]文章,未经博主允许可以转载,注明博客出处:[http://blog.csdn.net/lkk05]
阅读全文
0 0
原创粉丝点击