PX4飞控学习与开发(六)-利用 VScode 修改源码

7 篇文章 12 订阅
5 篇文章 0 订阅

努力学习,珍惜时间;全力以赴,创造未来
克制欲望,摒除心魔;心向何处,往来圣贤
功崇惟志,业广惟勤;惟克果断,乃罔后艰
面临困难,切莫不安;由浅入深,抽丝剥茧
持之以恒,攻坚克难;绳锯木断,水滴石穿
一日三省,积累经验;博学笃志,刻苦钻研
劝君牢记,戒骄戒懒;一生勤勉,无愧世间

  1. 先将 Firmware源代码导入 VScode 中,具体步骤为:
  • 打开 VScode,进入软件主界面,如果进入的不是主界面,就按快捷键 Ctrl+Shift+N来进入主界面,如下图所示:
    在这里插入图片描述

    图1 VScode主界面
  • 点击界面中的 Add workspace folder, 选择 Firmware所在的文件夹,然后点击右
    下角的 Add即可添加固件代码。添加完了之后,就可以看到软件左栏有代码目录:
    在这里插入图片描述

    图2 选择目录
  1. 现在在代码中添加一个简单的应用程序(demo),主要步骤如下:
  • 第一步,在 VScode 左栏代码目录中找到目录:Firmware/src/examples/, 在该目录下新建一个子目录,可以命名为:my_example_app;
  • 第二步,在新建的目录下,新建一个c文件,可以命名为:my_example_app.c;
  • 第三步,打开新建的c文件,并填入以下代码:
    /****************504实验室************************* 
      Date:2020年9月3日
      File name:my_example_app.c
      Author:sjm
      说明:文件用于测试Pixhawk代码
      ********************************************************/
      #include <px4_posix.h>//包含了打印信息函数:PX4_INFO
      __EXPORT int my_example_app_main(int argc, char *argv[]);

      int my_example_app_main(int argc, char *argv[])
      {
          PX4_INFO("Hello Sky!");
          return OK;
      }

需要说明的是:以上代码是让系统控制台在调用 my_example_app指令时,打印信息 Hello Sky,控制台在 QGC 地面站中,后续会具体说明;此外,这些信息是在主函数命名的,主函数命名方式为 C文件的名称 + _main, 这样在控制台输入命令时,就可以从该入口进入函数。最后,文件开始的注释说明其实可以使用 Snippet 插件,这样一次设置好后,以后可以快捷调用。

  • 第四步,仍在该目录下,新建一个 txt文件,名为:CmakeLists.txt,里面写入以下代码:
   ######################504实验室##########
      #Date:2020年9月3日
      #File name:CmakeList.txt
      #Author:sjm
      #说明:文件用于测试Pixhawk代码的编译内容
      ##################504实验室################
      PX4_add_module(
          MODULE examples__my_example_app
          MAIN my_example_app
          STACK_MAIN 2000
          SRCS
              my_example_app.c
          DEPENDS
              platforms__common
          )

Cmakelist 文件用于编译,也是新建模块时必不可少的一个文件。

  1. 查看代码运行的效果
    如果想从仿真中查看的话,需要进入文件夹:Firmware/cmake/configs/, 并打开文件:posix_sitl_default.cmake, 添加下面一行代码:
examples/my_example_app

然后打开终端,进入Firmware文件夹,输入指令: make posix_sitl_default jmavsim
, 即打开仿真环境,过一会直接输入指令:my_example_app,即可看到终端窗口输出了
Hello Sky!, 如图3所示:
在这里插入图片描述


图3 jMAVSim仿真效果图

如果需要在飞控板中运行,则打开同目录下的文件`nuttx_px4fmu-v2_default. cmake`, 同样添加代码:
examples/my_example_app

编译下载代码到飞控板子上,然后连接飞控与计算机,打开 QGC 地面站,进入Analyse-->Mavlink Console, 这个 Console就是前面说的控制台,在控制台下先输入help, 可以看到可以启动的模块,然后再输入指令my_example_app, 可以看到上面同样输出了:

Hello Sky!

在这里插入图片描述


图4 控制台界面

  1. VScode 的一些使用技巧
  • Ctrl+Shift+L选中文件中所有同名变量;
  • 快速注释:先 Ctrl+K, 再Ctrl+C;
  • 快速取消注释:先Ctrl+K, 再Ctrl+U;
  • 撤回:Ctrl+Z;
  • 取消撤销:Ctrl+Y
  • 6
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
您可以按照以下步骤下载PX4的bootloader: 1. 首先,确保您的硬件是PX4支持的型号,比如Omnibus F4 SD。您可以参考\[1\]中的链接获取更多关于Omnibus F4 SD的信息。 2. 将安装到无人机上,并连接电调。如果您使用的是UBEC供电,将UBEC的正极连接到的VBAT接口,负极接地。如果您使用的是电池供电,可以直接将电池连接到。请注意,这是基于\[2\]中的引用。 3. 下载PX4固件后,如果您发现没有姿态信息,您可以在nsh终端中执行"attitude_estimator_q stop"命令来解决此问题。这是基于\[2\]中的引用。 4. 打开QGroundControl(QGC)地面站,并切换到固件下载页面。插上,并下载最新的PX4固件。您可以参考\[3\]中的引用来了解更多关于固件下载的详细步骤。 5. 下载完成后,打开QGC并连接到。将机型设置为四旋翼,并进行传感器校准等操作。 6. 如果在调试过程中遇到接收机无法被识别的问题,您可以尝试使用PPM协议。将板上的PPM脚短接,并将接收机连接到RCIN口。这是基于\[3\]中的引用。 希望以上步骤对您有帮助! #### 引用[.reference_title] - *1* *2* *3* [PX4装机教程(四)F4刷写PX4](https://blog.csdn.net/qq_38768959/article/details/106988811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值