AcmeIot-1-基于Nuttx和ESP32的ROS節點


作為一個程序愛好者,而不是作為工作者,首要的精神是什么呢,應該是生命不熄,折騰不止吧。這個系列我們搗鼓一些有意思可能又沒啥用的東西。

前面的分享 Uav開發雜記-2-無人機的RTOS 中提到了很多的RTOS,可以發現我最喜歡的還是Nuttx,這個系列我們基于Nuttx搞一些有意思的東西,同時分享一些關于Nuttx與Iot相關的知識。

玩Iot首先需要一款硬件,自己設計是最好的了,不過比較費時費力,我們就在網上選一款吧,對這款硬件的要求還是要明確的:

  • 小巧精致

  • 帶屏幕

  • 能wifi聯網

stm32的開發板大多比較大,接口豐富,入門學習比較好,不過太板磚啦,而且不直接支持wifi,stm32這一年價格飛漲,還是選一款國產芯片吧。

esp32就成為一個首選啦,樂鑫推出的國產mcu具有非常強大的功能,稍微列一下它的參數

32-bit MCU & 2.4 GHz Wi-Fi & Bluetooth/Bluetooth LE

  • Xtensa 雙核 32位 LX6 微處理器,支持高達 240 MHz 的時鐘頻率

  • 448 KB ROM、520 KB SRAM、16 KB RTC SRAM、4 MB SPI flash

  • wifi和藍牙支持

  • 外設包括電容式觸摸傳感器,霍爾傳感器,SD 卡接口,以太網,高速 SPI,UART,I2S 和 I2C

非常強大的配置,如果io資源再豐富一些可以搞飛控了,還要啥stm32呀。

硬件強大也要配上完善的軟件資源才能玩的溜吧,esp32提供了非常完善的軟件框架esp-idf,包含的軟件包可以滿足基本所有的Iot應用,它基于freertos內核。

不過為了發揮生命不熄,折騰不止的精神,我們能不能不使用esp-idf提供的現有的軟件框架去玩這一款芯片呢,基于Nuttx去開發。

之前有提到樂鑫現在也是Nuttx的主要貢獻者之一,為Nuttx提供了esp32的bsp和board支持,基于這個我們就可以在Nuttx上開發esp32啦。

PX4基于Nuttx系統,主要使用了Nuttx的任務管理、文件系統、bsp功能,實際上Nuttx還有強大的網絡軟件棧、設備驅動、圖形UI支持,這里我們去發掘Nuttx的更多應用。

Nuttx支持第三方的圖形庫LVGL,可以提供非常美觀和友好的UI圖形支持,NXP提供了GUI Guider這個UI設計器,可以方便的為LVGL設計UI界面。

這里我們搭建了esp32+nuttx+LVGL的環境,可以寫出一個 hello 的應用了,只寫一個這樣的應用不是一件好玩的事情吧。

結合無人機和ROS的應用,將esp32作為ros的節點,做一個ros的顯示控制mini終端是一件很有意思的事情吧。

以下是簡單的界面效果:

AcmeIot-1-基于Nuttx和ESP32的ROS節點的圖1

這個演示還比較有限,沒有演示ros數據顯示與控制的效果,會在這個后面的分享中完善,并且逐步分享Nuttx的相關知識,可以認為這是一個持續推進的業余項目吧。歡迎大家持續關注

如果要說做這個有什么應用價值,我也不知道有什么應用需求,只是覺得能做它,并且還蠻有趣的吧。大家覺得呢?

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1