回答

收藏

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

#板卡评测 #板卡评测 2296 人阅读 | 0 人回复 | 2022-12-30

本帖最后由 latera 于 2022-12-31 16:14 编辑

  通过Arrow 有好料的活动,申请了一个RP2040开发板来测试一下。
DFR0959 beetle RP2040的大小就比拇指头大一点,相对的袖珍。
引出8个引脚,可以做GPIO,SPI,UART,I2C,和ADC功能开发。
Beetle比树莓派 PICO小很多,自然,接出来的引脚接也少了一大半。不过,我只是简单尝一下鲜而已。IO口多少也不太重要。Pico样子如下:
Beetle和Pi的电路结构其实也差不多。一个RP2040就是全部。电路可以参考如下:
板上有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,
下载后直接安装。第一次打开Arduino时,可能会自动安装相关的工具,在窗口下方的Output页面会提示安装过程,等它安装结束即可。
然后就是安装Beetle的开发包,选择“File” -> “Preferences”, 点击如下按键,输入https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
确认后退出“Preferneces”窗口,Arduino就会自动下载开发包。如果不放心,可以关闭再重启。
第二步就是将Beetle通过USB接入电脑,在Arduino IDE中的“Select Board”可以找到新识别的串口设备,我的是COM12,依次选择“DFRobot Beetle RP2040”和COM口。就相这个开发工程选好了开发平台。
第三步,码代码和下载测试。简单代码如下,其中 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会自动重启。测试效果如下:
通过“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,按以上方法烧录固件。
第二步 串口连接
使用串口终端工具或者串口调试工具,连接Beetle。我使用的是MobaXterm,连接方法就不多说了,串口格式115200,8,1,无校验。
使用参考如下:
https://datasheets.raspberrypi.org/pico/sdk/pico_python_sdk.pdf
第三步 码代码
首先通过简单的Hello world测试,在终端上输入print("Hello, Beetle!") ,Beetle就会通过终端回显以上命令和返回“Hello, Beetle!”
显示结果如下:
然后可以测试一下板载led。
在终端中依次输入2行
from machine import Pin
led = Pin(13, Pin.OUT)
这就完成对GPIO13的引脚配置,分别输入
led.value(1)
led.value(0)
可以实现led的亮和灭。其中1表示高电平,对应led亮。
当然,你也可以让它通过定时来循环闪烁。程序如下:
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)之间要有多行相隔才行。
接着是板载的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回显一次温度值
以上就是初步的评测,有时间再尝试用C/C++的方式。
分享到:
回复

使用道具 举报

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

本版积分规则

关闭

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