查看: 1512|回复: 0

[评测分享] 【Arrow 有好料】DFR0959 Beetle-RP2040 评测

[复制链接]
  • TA的每日心情
    慵懒
    2024-11-16 22:59
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2022-12-30 21:52:27 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 latera 于 2022-12-31 16:14 编辑

      通过Arrow 有好料的活动,申请了一个RP2040开发板来测试一下。
    DFR0959 beetle RP2040的大小就比拇指头大一点,相对的袖珍。
    图片1.png 图片2.png
    引出8个引脚,可以做GPIO,SPI,UART,I2C,和ADC功能开发。
    图片3.png
    Beetle比树莓派 PICO小很多,自然,接出来的引脚接也少了一大半。不过,我只是简单尝一下鲜而已。IO口多少也不太重要。Pico样子如下:
    图片4.png
    Beetle和Pi的电路结构其实也差不多。一个RP2040就是全部。电路可以参考如下:
    图片5.png
    板上有2个按键,一个是复位按键,一个是boot按键,用于烧录程序的。另外就是一个TypeC。
    板上还有一个小led灯,(但是电路图上)没有找到说明。但是可以在Arduino开发中知道这个led是接到RP2040的GPIO13。
    DFR0959介绍资料可以参考下面的网址:(官网)
    下面介绍一下,RP2040如何开发(把玩),其实Beetle的开发可以完全参考树莓派 Pico 的资料,树莓派 Pico 的中文网址如下:
    https://pico.org.cn/
    教程中介绍的开发方式有三种
    基于MicoPython SDK开发
    基于Arduino开发
    基于C/C++开发
    我这尝试使用使用Arduino开发和MicoPython SDK开发。
    首先是Arduinoa开发,上面dfroot的wifi网址就是重点介绍用Arduino开发的。
    第一步肯定是安装Arduino IDE和Beetle的开发板
    通过Arduino官网https://www.arduino.cc/en/software下载最新的IDE,
    图片6.png
    下载后直接安装。第一次打开Arduino时,可能会自动安装相关的工具,在窗口下方的Output页面会提示安装过程,等它安装结束即可。
    图片7.png
    然后就是安装Beetle的开发包,选择“File” -> “Preferences”, 点击如下按键,输入https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
    图片8.png
    确认后退出“Preferneces”窗口,Arduino就会自动下载开发包。如果不放心,可以关闭再重启。
    第二步就是将Beetle通过USB接入电脑,在Arduino IDE中的“Select Board”可以找到新识别的串口设备,我的是COM12,依次选择“DFRobot Beetle RP2040”和COM口。就相这个开发工程选好了开发平台。
    图片9.png
    第三步,码代码和下载测试。简单代码如下,其中 LED_BUILITIN是板载的led,D0和D3是我自己加的2个led。
    void setup() {
      pinMode(LED_BUILTIN, OUTPUT);//设置引脚为输出模式
      pinMode(D0, OUTPUT);
      pinMode(D3, OUTPUT);
    }
    void loop() {
      digitalWrite(LED_BUILTIN, HIGH); //为端口写高电平
      digitalWrite(D0, HIGH);
      digitalWrite(D3, HIGH);
      delay(1000);                    // 延时一秒钟
      digitalWrite(LED_BUILTIN, LOW);  //为端口写低电平  
      digitalWrite(D0, LOW);
      digitalWrite(D3, LOW);
      delay(1000);                   //延时一秒   
    }
    点击Arduino左上方的“->”箭头就可以一步完成编译和下载。下载之后,Beetle会自动重启。测试效果如下:
    图片10.png
    通过“Sketch”->“Show Sketch Folder”查看到生成的下载文件,文件格式是.uf2。可以通过Boot重刷固件。(下面有讲)
    MicroPython SDK开发,
    因为MicroPython需要用到官方的固件,先介绍一下用Boot按键重刷固件的方式。
    按住Boot按键,讲Beetle接入电脑。这时电脑会识别出一个U盘,直接将.uf2文件拖入U盘,就完成了烧录。
    MicroPython SDK开发第一步 烧录固件。
    从网址https://pico.org.cn/中下载UF2文件,我下载到的文件是rp2-pico-20221220-unstable-v1.19.1-782-g699477d12.uf2,按以上方法烧录固件。
    图片11.png
    第二步 串口连接
    使用串口终端工具或者串口调试工具,连接Beetle。我使用的是MobaXterm,连接方法就不多说了,串口格式115200,8,1,无校验。
    使用参考如下:
    https://datasheets.raspberrypi.org/pico/sdk/pico_python_sdk.pdf
    第三步 码代码
    首先通过简单的Hello world测试,在终端上输入print("Hello, Beetle!") ,Beetle就会通过终端回显以上命令和返回“Hello, Beetle!”
    显示结果如下:
    图片12.png
    然后可以测试一下板载led。
    在终端中依次输入2行
    from machine import Pin
    led = Pin(13, Pin.OUT)
    这就完成对GPIO13的引脚配置,分别输入
    led.value(1)
    led.value(0)
    可以实现led的亮和灭。其中1表示高电平,对应led亮。
    图片13.png
    当然,你也可以让它通过定时来循环闪烁。程序如下:
    from machine import Pin, Timer
    led = Pin(13, Pin.OUT)
    tim = Timer()
    def tick(Timer):
    global led
    led.toggle()
    tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)
    需要注意的是led.toggle() 和 tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)之间要有多行相隔才行。
    图片14.png
    图片15.png
    接着是板载的ADC测试。RP2040有内部温度的ADC,可以用来测试。测试代码如下
    import machine
    import utime
    sensor_temp = machine.ADC(4)
    conversion_factor = 3.3 / (65535)
    while True:
    reading = sensor_temp.read_u16() * conversion_factor
    temperature = 27 - (reading - 0.706)/0.001721
    print(temperature)
    utime.sleep(2)
    其中ADC(4)为内部温度检测的ADC通道。温度计算方法为:检测电压为0.706V时,对应温度为27摄氏度,电压每升高0.001721V,对应温度降低1摄氏度。
    输入最后一行后,多次换行,保证while命令结束,之后Beetle就会每2s回显一次温度值
    图片16.png
    以上就是初步的评测,有时间再尝试用C/C++的方式。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-25 10:51 , Processed in 0.126501 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.