ROS 学习笔记之五:对Arduino环境刮目相看

    接触Arduino是在2011年前后(https://user.qzone.qq.com/478273778/blog/1298984045),转眼已经 8 年了。
    当时对 Arduino 的看法是:给非专业人员玩玩的平台,所用 mega168及328 都太弱,程序封装后,资源消耗更多,留给编程人员的发挥空间太少了;且由于封装,编程是容易了 ,但性能降低了,本来单片机就跑不快,RAM又少,这样就没有什么实际价值了。
    所以基本上就是玩了一下,没有再深入。

    
    这次学习 ROS,因为 ROS 的经典平台 Turtlebot3 的控制器 Open CR 用了 Arduino 的 IDE,让我再次触及 Arduino 环境,发现它已经今非昔比了。
    查阅相关资料发现:Arduino 可以引入很多种开发平台,不再拘泥于 AVR 系列(即便后来出了mega2560,毕竟是 8 位机,性能平平),对主流的几款 MCU 都有支持,充分利用了开源的优势,让有兴趣的厂家或个人可以将自己所喜欢的硬件平台导入 Arduino IDE 中,既分享了它的易用特点,又化解了它原生硬件的性能束缚。
    我已经发现的非原生硬件平台就有:STM32、ESP8266、ESP32、nrf52。


    目前我主要对 STM32 比较感兴趣,所以先买了一块 Nucleo F103RB 体验一下。


    在ubuntu 16.04 中的 Arduino IDE 1.8.8 版本下安装了 STM32 开发板,用的是 STM32duino:
https://github.com/stm32duino/Arduino_Core_STM32
开发板导入地址:
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json


    似乎github上不止这一个,选择这个是因为它支持的开发板比较多,Nucleo系列基本上都支持了。


    安装后稍微费了一点周折:虽然 Nucleo 板的U盘模式 ubuntu 认识,但用此模式程序没有下载成功,只好尝试 STLink 模式,需要在 ubuntu下安装STLink的驱动。


    驱动安装后程序下载正常了,我尝试了三个例子:
    1、标准的 Blink,编译后下载,完全正常,似乎用的就是 Arduino的原生板,感觉不错。

    2、用的STM32自带的例子,驱动舵机,也是很正常,看源程序和原生的例程基本一样,看来STM32的硬件抽象做的不错。

    3、试验基于 ROS 的例程,前面已经在 Arduino IDE中安装了 ROS_LIB,并且基于 Arduino Nano 测试过例程,成功。将同样的例程 Blink 编译下载到 Nucleo F103RB上,完全一样!!!


    如此的话,Arduino IDE 的使用范围就大多了,难怪 OpenCR 的程序也选择了 Arduino 环境,它用的可是 STM32F746 啊,已经是 Cortex-M 系列中最强的 MCU 了,都可以在 Arduino IDE 下开发,不担心性能无法发挥,STM32的其它系列更应该没有问题。


    仔细看了安装后 STM32 库文件,发现用的是最新的 HAL 及 LL 库,这样结合 STM32 的资料以及 Arduino 的共享资源,应该使 STM32 开发更加容易了。很是期待......


    到目前唯一感到遗憾的是:基于 Arduino IDE 开发 STM32 程序的相关文档没有找到比较系统的,不知道是没有还是我没有找到?如果有高手知道盼指点,先谢了!

猜你喜欢

转载自blog.csdn.net/embedream/article/details/91822486