mingzhe123 发表于 2024-11-30 22:50

【Follow me第二季第4期】任务一:搭建环境并开启第一步Blink三色LED / 串口打印He...

本帖最后由 mingzhe123 于 2024-12-1 12:14 编辑

<p>2024年得捷电子和eeworld论坛联合举办的Follow me活动第二季已经进行到第4期,有幸再次参见,趁着这次周末有时间,将任务做了。</p>

<p>对于Arduino,并不是很陌生,之前也是用ESP32、ESP8266做了不少好玩的东西。但对于主控为树莓派系列的MCU,但使用Arduino开发还是第一次接触,虽然我也有树莓派4<img height="28" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/smiling-face-with-open-mouth-and-cold-sweat_1f605.png" width="28" /></p>

<p>本次任务除了申请官方指定的<span style="color:#000000;">Arduino&reg; Nano RP2040 Connect</span>,还申请了另外一块开发板<a>RASPBERRY PI PICO 2,<span style="color:#000000;">帮助更好的完成任务,并碰撞出更多的灵感。</span></a></p>

<p><span style="font-size:16px;"><strong><span style="color:#000000;">开发板简介</span></strong></span></p>

<p><span style="font-size:16px;"><strong><u>Arduino</u>&nbsp;Nano RP2040 Connect</strong></span>开发板集成了 Raspberry&nbsp;<a href="https://www.elecfans.com/tags/pi/" style="cursor:pointer; text-decoration:none; color:#4298ba; word-break:break-all" target="_blank"><u>Pi</u></a>&nbsp;Foundation 开发的 RP2040&nbsp;<u>微控制器</u>与 u-blox NINA-W102&nbsp;<u>Wi-Fi</u>&nbsp;和<u>蓝牙</u>无线电模块,以及一个丰富的先进<u>传感器</u>甚至能够支持<u>人工智能</u><a href="https://www.elecfans.com/v/tag/2562/" style="cursor:pointer; text-decoration:none; color:#4298ba; word-break:break-all" target="_blank"><u>算法</u></a>。事实上,该板包括一个支持语音激活功能的数字麦克风、一个六轴惯性运动传感器 (IMU)、一个小型 RGB&nbsp;<a href="https://www.hqchip.com/app/1721" style="cursor:pointer; text-decoration:none; color:#4298ba; word-break:break-all" target="_blank"><u>LED</u></a>&nbsp;和广泛可用的闪存 (16 MB),甚至能够满足最苛刻的要求应用程序。</p>

<p>新板从 Raspberry Pi RP2040 继承了对 Micro<u>Python</u>&nbsp;和 C/<u>C++</u>&nbsp;语言的<u>编程</u>支持,两者均基于为 Raspberry Pi Pico 板开发的&nbsp;<u>SD</u>K。与 Arduino 系列中的所有其他板一样,<u>最新</u>添加的<u>产品</u>支持本地编程环境,例如著名的 Arduino IDE(现在为 2.0 版)。</p>

<h3>框架图</h3>

<p>开发板框图如图 1&nbsp;所示。核心由 RP2040 微控制器表示,能够通过经典的&nbsp;<u>USB</u>&nbsp;连接与主机开发和调试环境进行<u>通信</u>,并通过四通道 SPI 串行高速存储器与 16-MB 外部闪存进行通信。速度<u>接口</u>。3.3V&nbsp;<u>电源</u>由 MP2322 稳压器提供,输入源可从 USB&nbsp;<u>端口</u>&nbsp;(V&nbsp;<sub>USB</sub>&nbsp;) 或外部电源 (V&nbsp;<sub>IN</sub>&nbsp;) 中选择。NINA W102 Wi-Fi/蓝牙模块通过 I&nbsp;<sup>2连接到 micro</sup>C、SPI、<u>UART</u>接口,连接RGB LED。至于其他传感器,<u>MEMS</u>麦克风通过脉冲密度调制(PDM)数字音频接口连接到micro,而六轴运动传感器和<u>认证</u>模块通过I&nbsp;<sup>2</sup>&nbsp;C总线连接。以 12 MHz 运行的外部 MEMS&nbsp;<u>振荡器</u>提供<u>时钟</u>脉冲。</p>

<div>&nbsp;</div>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 图 1:开发板框图</p>

<h2>组件</h2>

<p>该板的主要组件在图 2 中突出显示。首先,我们有 RP2040&nbsp;<u>芯片</u>,这是一个基于 ARM Cortex M0+ 的 32 位双核微控制器,工作频率为 133 MHz,并配有一个集成的 264-KB S<u>RAM</u>&nbsp;存储器。该&nbsp;<u>MCU</u>&nbsp;的卓越性能和高效率使其能够支持使用&nbsp;<u>T</u><a href="https://bbs.elecfans.com/group_715" style="cursor:pointer; text-decoration:none; color:#4298ba; word-break:break-all" target="_blank"><u>i</u></a>nyML、<u>TensorFlow</u>&nbsp;Lite 或 Edge Impulse 开发的<u>机器学习</u>算法。除了对 MicroPython 的全面支持(从 2021 年 7 月开始提供)外,该板还为<u>机器视觉</u>项目提供免费的 OpenMV 许可证。RP2040 微控制器提供的功能包括:</p>

<ul style=" list-style:outside none disc; color:#2f2f2f; white-space:normal; background-color:#ffffff">
        <li style=" list-style:unset">直接内存访问<u>控制器</u></li>
        <li style=" list-style:unset">USB 1.1 控制器和 PHY,具有主机和设备支持</li>
        <li style=" list-style:unset">8 个可编程 IO 状态机</li>
        <li style=" list-style:unset">用于扩展外设支持的可编程 IO</li>
        <li style=" list-style:unset">具有内部<u>温度传感器</u>的四通道&nbsp;<u>ADC</u>,0.5-MS/s,12 位转换</li>
        <li style=" list-style:unset">SWD调试</li>
        <li style=" list-style:unset">两个片上 PLL,用于生成 USB 和内核时钟</li>
        <li style=" list-style:unset">多种低功耗模式支持</li>
        <li style=" list-style:unset">USB 1.1 主机/设备</li>
        <li style=" list-style:unset">内部稳压器提供核心电压</li>
        <li style=" list-style:unset">先进的高性能总线/先进的外围总线</li>
</ul>

<div>
<div style="text-align: center;"><a style="cursor:pointer; color:#4298ba; word-break:break-all"></a></div>

<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;图 2:电路板的主要组成部分</p>
</div>

<p>在 MCU 之后,此卡的第二个优势无疑是连接性,它通过 u-blox NINA W102 无线电模块实现,这是一种廉价且易于适应的设备。该模块还增加了四个<u>模拟</u>&nbsp;GPIO(RP2040 只有四个模拟引脚),使总数达到八个,与其他 Arduino Nano 板一致。配备集成<u>天线</u>的无线电模块基于双核 Xtensa LX6&nbsp;<a href="https://www.elecfans.com/v/tag/132/" style="cursor:pointer; text-decoration:none; color:#4298ba; word-break:break-all" target="_blank"><u>CPU</u></a>,可以使用 SWD 接口和位于板背面的特殊焊盘独立于 RP2040 进行编程。在实践中,NINA W102 模块使用与&nbsp;<u>ESP32</u>&nbsp;模块相同的 CPU,ESP32 模块是最受<u>创客</u>欢迎的<u>硬件</u>平台之一,还有 Arduino 和 Raspberry Pi。RGB LED 连接到无线电模块,可以使用为模块本身开发的相同库 (WiFiNINA) 驱动。物联网应用中使用的连接需要高度的安全性,以便在所有操作条件下保持传输数据的一致性,并防止来自外部的潜在攻击。为此,设计人员采用了功能强大的加密协<u>处理器</u>,即已在 Arduino MKR 系列板上使用的&nbsp;<u>Microchip</u>&nbsp;ATECC608A。加密协处理器的特点是功耗特别低,提供对安全启动的支持、对非对称签名的硬件支持、验证、密钥协商、对对称算法(SHA-256 和 HMAC、AES-128)的硬件支持以及网络关键管理支持。物联网应用中使用的连接需要高度的安全性,以便在所有操作条件下保持传输数据的一致性,并防止来自外部的潜在攻击。为此,设计人员采用了功能强大的加密协处理器,即已在 Arduino MKR 系列板上使用的 Microchip ATECC608A。加密协处理器的特点是功耗特别低,提供对安全启动的支持、对非对称签名的硬件支持、验证、密钥协商、对对称算法(SHA-256 和 HMAC、AES-128)的硬件支持以及网络关键管理支持。物联网应用中使用的连接需要高度的安全性,以便在所有操作条件下保持传输数据的一致性,并防止来自外部的潜在攻击。为此,设计人员采用了功能强大的加密协处理器,即已在 Arduino MKR 系列板上使用的 Microchip ATECC608A。加密协处理器的特点是功耗特别低,提供对安全启动的支持、对非对称签名的硬件支持、验证、密钥协商、对对称算法(SHA-256 和 HMAC、AES-128)的硬件支持以及网络关键管理支持。设计人员包括一个功能强大的加密协处理器,即已在 Arduino MKR 系列板上使用的 Microchip ATECC608A。加密协处理器的特点是功耗特别低,提供对安全启动的支持、对非对称签名的硬件支持、验证、密钥协商、对对称算法(SHA-256 和 HMAC、AES-128)的硬件支持以及网络关键管理支持。设计人员包括一个功能强大的加密协处理器,即已在 Arduino MKR 系列板上使用的 Microchip ATECC608A。加密协处理器的特点是功耗特别低,提供对安全启动的支持、对非对称签名的硬件支持、验证、密钥协商、对对称算法(SHA-256 和 HMAC、AES-128)的硬件支持以及网络关键管理支持。</p>

<p>传感器设备包括 ST LSM6DSOX 六轴 IMU,它将 3D 加速度计和 3D&nbsp;<u>陀螺仪</u>与专用机器学习核心相结合。该组件主要用于&ldquo;永远在线&rdquo;操作要求特别低功耗的移动市场,具有以下技术特性:</p>

<ul style=" list-style:outside none disc; color:#2f2f2f; white-space:normal; background-color:#ffffff">
        <li style=" list-style:unset">3D 陀螺仪,&plusmn;2-/&plusmn;4-/&plusmn;8-/&plusmn;16-g 满量程</li>
        <li style=" list-style:unset">3D 加速度计,&plusmn;125-/&plusmn;250-/&plusmn;500-/&plusmn;1,000-/&plusmn;2,000-dps 满量程</li>
        <li style=" list-style:unset">先进的计步器、计步器和计步器</li>
        <li style=" list-style:unset">显着运动<u>检测</u>、倾斜检测</li>
        <li style=" list-style:unset">标准中断:自由落体、唤醒、6D/4D 定向、单击和双击</li>
        <li style=" list-style:unset">可编程有限状态机:加速度计、陀螺仪和外部传感器</li>
        <li style=" list-style:unset">机器学习核心</li>
        <li style=" list-style:unset"><u>嵌入式</u>温度传感器</li>
</ul>

<p>该设备可以使用专用的 Arduino LSM6DSOX 库轻松编程。</p>

<p>另一个相关的传感器是全向数字麦克风,可用于声音激活、<u>音频</u>控制,甚至人工智能<u>语音识别</u>。MP34DT05 麦克风实时捕捉和分析声音,可用于为任何项目创建语音界面。ST MP34DT05-A 是一款超紧凑、低功耗、全向、数字 MEMS 麦克风,内置<u>电容</u>感应元件和&nbsp;<u>I2C</u>&nbsp;接口。能够检测声波的传感元件采用 MEMS 工艺制造,而&nbsp;<a href="https://m.hqchip.com/app/1726" style="cursor:pointer; text-decoration:none; color:#4298ba; word-break:break-all" target="_blank"><u>IC</u></a>&nbsp;接口采用 CMOS 工艺制造,可在外部以 PDM 格式提供<u>数字信号</u>。MP34DT05-A 是一款低失真数字麦克风,具有 64-dB 的信噪比和 &ndash;26-dBFS &plusmn;3-dB 的灵敏度。可以使用专用的 Arduino PDM 库对该设备进行编程。</p>

<p>关于可编程 I/O 引脚,该板提供 8 个模拟输入引脚和 22 个数字 I/O 引脚(其中 20 个可配置为 PWM 发生器或外部中断)。引脚 13 上还提供了一个内置用户 LED。图 3显示了 Arduino Nano RP2040 连接板的完整引脚排列,该板也可提供预安装的插头引脚。引脚布局井井有条,所有模拟和电源引脚都在左侧接头上,数字引脚在右侧接头上。如图 1&nbsp;所示,RP2040 MCU 支持 UART、SPI 和 I&nbsp;<sup>2</sup>&nbsp;C 通信。</p>

<div>
<div style="text-align: center;"><a style="cursor:pointer; color:#0f769f; word-break:break-all"></a></div>

<p style="text-align: center;">图 3:电路板引脚排列</p>

<p><strong><span style="font-size:16px;">Raspberry Pi Pico 2</span></strong>是一款树莓派官方设计的低成本,高性能的微控制器开发板,具有灵活数字接口。硬件上,采用 Raspberry Pi 官方自主研发的 RP2350 微控制器芯片,搭载了双ARM Cortex M33或Hazard3处理器,高达 150MHz 的运行频率,内置了 520KB 的 SRAM 和 4MB 的内存,还板载有多达 26 个多功能的 GPIO 引脚。软件上,可选择树莓派提供的 C/C++ SDK,或者使用 MicroPython 进行开发。<br />
其主要特点包括:</p>

<p>RP2350 微控制器芯片<br />
双 Cortex-M33 或 Hazard3 处理器,最高频率可达 150MHz<br />
520KB 的 SRAM 和 4MB 的板载闪存<br />
USB 1.1,支持设备和主机模式<br />
低功耗睡眠和休眠模式<br />
通过 USB 大容量存储进行拖放编程<br />
26&times; 多功能 GPIO 引脚,其中 3 个可用于 ADC<br />
2&times; SPI, 2&times; I2C, 2&times; UART, 3&times; 12 位 500ksps 模数转换器(ADC),24&times; 可控 PWM 通道<br />
2&times; 定时器,带 4 个警报,1&times; AON 定时器<br />
温度传感器<br />
3 &times; 可编程 IO (PIO) 块,总共 12 个状态机,用于自定义外设支持<br />
灵活、用户可编程的高速 IO<br />
可以模拟 SD 卡和 VGA 等接口</p>

<h4>引脚图和设计文件</h4>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p><span style="font-size:16px;"><strong>开发环境搭建</strong></span></p>

<p>话不多说,开始进行开发环境搭建。</p>

<p>在arduino IDE中配置RP2040开发环境</p>

<p>&nbsp; &nbsp; 2.1】打开arduino IDE,点击File,然后点击首选项</p>

<p>&nbsp;</p>

<div style="text-align: center;"> &nbsp;</div>

<p>&nbsp;</p>

<p>2.2】将链接&nbsp;<a href="https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json" target="_blank">https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json</a>&nbsp;复制到其他开发板管理器地址中</p>

<p>&nbsp;</p>

<div style="text-align: center;"> &nbsp;</div>

<p>&nbsp;</p>

<p>单击&ldquo;确定&rdquo;</p>

<p>&nbsp; 2.3】进入开发板管理器中 安装RP2040。在搜索框中搜索RP2040,点击IN STALLED,弹出的窗口,点击OK,等待安装完成(我这个示先安装过)</p>

<p> &nbsp;&nbsp;&nbsp;</p>

<p>3】安装完成之后就可以使用Arduino&reg; Nano RP2040 Connect与<a>RASPBERRY PI PICO 2</a>了。</p>

<p> &nbsp;&nbsp;&nbsp;</p>

<p> &nbsp;</p>

<p><span style="font-size:16px;"><strong>任务一基础:</strong></span></p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;搭建环境并开启第一步Blink三色LED / 串口打印Hello DigiKey &amp; EEWorld!</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; 首先了解一下硬件资源,板子上自带了5颗LED灯,包括一颗电源灯,还有一颗RGB灯,最后一颗为通信指示灯。本次任务我适用RGB灯,其电路如下图,但是这几个脚直接接到内置的wifi模块上,查看资料后发现,可以直接通过封装好的库函数<a style="Open Sans&quot;, &quot;Lucida Grande&quot;, lucida, verdana, sans-serif; box-sizing:inherit; scrollbar-color:var(--color-scrollbar-body) transparent; letter-spacing:0.01em; color:var(--color-accent-4); cursor:pointer; transition:color 0.2s ease-out; white-space:normal; background-color:#ffffff"><span style="color:#000000;">WiFiNINA调用其控制函数控制其RGB灯。</span></a></p>

<p>&nbsp; &nbsp; &nbsp;&nbsp; 串口部分基础任务中直接走虚拟串口与PC直接通信。这部分和软件调试使用同一个usb口,因此不需要额外增加电路。</p>

<p> &nbsp;</p>

<p><span style="font-size:16px;"><strong>基础代码:</strong></span></p>

<pre>
<code class="language-cpp">#include &lt;WiFiNINA.h&gt;
//#include &lt;Arduino.h&gt;

void setup() {

Serial.begin(115200);

pinMode(LEDB, OUTPUT);
pinMode(LEDR,OUTPUT);
pinMode(LEDG,OUTPUT);

digitalWrite(LEDB,LOW);
digitalWrite(LEDR,LOW);
digitalWrite(LEDG,LOW);
Serial.println("The task began!!!");
Serial.println();
}

void loop() {

    delay(2000);
    digitalWrite(LEDB, HIGH);
    digitalWrite(LEDG, LOW);
    Serial.println("Hello DigiKey &amp; EEWorld!");
    delay(2000);
    digitalWrite(LEDB, LOW);//状态翻转
    digitalWrite(LEDG, HIGH);

}
</code></pre>

<p><span style="font-size:16px;"><strong>&nbsp;任务一进阶:</strong></span></p>

<p>&nbsp; 任务一进阶适用PICO2开发板与<strong><u>Arduino</u>&nbsp;Nano RP2040 Connect</strong>,其主要原理是PICO2的按键通过串口控制<strong><u>Arduino</u>&nbsp;Nano RP2040 Connect</strong>开发板上的RGB 灯,其系统架构图如下图所示:</p>

<p style="text-align: left;"> &nbsp;</p>

<p style="text-align: left;">其主要代码如下:</p>

<p style="text-align: left;">PICO2代码:</p>

<pre>
<code class="language-cs">int val;
const int BUTTON_PIN = 21; // the number of the pushbutton pin
const int SHORT_PRESS_TIME = 500; // 500 milliseconds
// Variables will change:
int lastState = LOW;// the previous state from the input pin
int currentState;   // the current reading from the input pin
unsigned long pressedTime= 0;
unsigned long releasedTime = 0;
char key_flag = 0;

void setup() {

Serial1.setRX(17);
Serial1.setTX(16);
Serial1.begin(115200); // opensserial port, sets data rate to 9600 bps
while(Serial.read()&gt;= 0){}//clear serialbuffer
pinMode(25,OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
Serial1.write(49);

}

void Key(void) {

delay(1);
}

void loop() {


delay(10);

// read the state of the switch/button:
currentState = digitalRead(BUTTON_PIN);

if(lastState == HIGH &amp;&amp; currentState == LOW)      // button is pressed
    pressedTime = millis();
else if(lastState == LOW &amp;&amp; currentState == HIGH) { // button is released
    releasedTime = millis();
    long pressDuration = releasedTime - pressedTime;

    if( pressDuration &lt; SHORT_PRESS_TIME )
      Serial.println("A short press is detected");
      key_flag = !key_flag;
       if(key_flag) {
          Serial1.write(49);
          Serial.println("49");
          digitalWrite(25,LOW);
       } else {
          Serial1.write(50);
          Serial.println("50");
          digitalWrite(25,HIGH);
       }
      
      
}

// save the the last state
lastState = currentState;

}</code></pre>

<p><u>Arduino</u>&nbsp;Nano RP2040 Connect代码:</p>

<pre>
<code class="language-cpp">#include &lt;WiFiNINA.h&gt;


int val;
void setup() {
Serial.begin(115200); // opensserial port, sets data rate to 9600 bps

Serial1.begin(115200); // opensserial port, sets data rate to 9600 bps
while(Serial1.read()&gt;= 0){}//clear serialbuffer
while(Serial.read()&gt;= 0){}//clear serialbuffer

pinMode(LEDB, OUTPUT);
pinMode(LEDR,OUTPUT);
pinMode(LEDG,OUTPUT);

digitalWrite(LEDB,LOW);
digitalWrite(LEDR,LOW);
digitalWrite(LEDG,LOW);
Serial.println("The pro task began!!!");
Serial.println();
}

void loop() {
if (Serial1.available() &gt; 0) {
    delay(100); // 等待数据传完
    int numdata = Serial1.available();
    val=Serial1.read();
    Serial1.println(val);
    if(val==49)
    {
      Serial.println("Test OK");
      Serial.println(val);

   // delay(2000);
      digitalWrite(LEDB, HIGH);
      Serial.println("Hello DigiKey &amp; EEWorld!");
      digitalWrite(LEDG, HIGH);
    }
    if(val==50)
    {
      Serial.println("Test OK!!!");
      Serial.println(val);

   //   delay(2000);
      digitalWrite(LEDB, LOW);
      Serial.println("Turn off the lights!");
      digitalWrite(LEDG, LOW);
    }
    while(Serial1.read()&gt;=0){} //清空串口缓存
}
}</code></pre>

<p><span style="font-size:16px;"><strong>总结:</strong></span></p>

<p>&nbsp;树莓派的MCU,通过arduino来开发难度降低了很多,用户只需要调动封装好的库函数即可。但是有一点要吐槽一下,本来是个及其简单的程序,适用arduino IDE开发却需要很长的编译时间,实在不敢恭维,后期有时间尝试一下VS Code。</p>

<p><span style="font-size:16px;"><strong>任务视频:</strong></span></p>

<p>232ff75a18e8790122d50b866d442195<br />
&nbsp;</p>
</div>

秦天qintian0303 发表于 2024-12-2 09:38

<p>论坛上线树莓派5了,赶紧申请&nbsp;&nbsp;</p>
页: [1]
查看完整版本: 【Follow me第二季第4期】任务一:搭建环境并开启第一步Blink三色LED / 串口打印He...