HonestQiao 发表于 2023-7-11 14:06:31

Arduino Uno R4 WiFi版初体验之疯狂告白

本帖最后由 HonestQiao 于 2023-7-11 14:08 编辑

千呼万唤十二年,Arduino官方今年终于发布了新一代的Ardui Uno R4,距离R3发布已经12年了。




相较于2011年发布的R3,R4的硬件,看起来,似乎提升了一大截:




核心芯片从8位的AVR,升级到了32位的Arm cortex M4。
用的芯片是瑞萨的RA4M1,据说最近推得很猛。另外,瑞萨还给Arduino基金赞助了,相当相当大的赞助。

更好的消息是,这次终于推出了自带WiFi模块的版本,不用再搭一个WiFi小片片了:



这个WiFi功能,由一块ESP32-S3-Mini提供,看了就有点莫名其妙,因为这块ESP32-S3-Mini可以全面吊打主控芯片RA4M1:




不过,还是第一时间在DFRobot抢购了一块Arduino Uno R4 WiFi版。
WiFi版还板载一个LED点阵,可不不用接线就点灯玩。
不过这个点阵,强迫症看了挺着急的,直接看图,你说急不急?



这都3202年了,WS2812B都满地跑了,就不能给力一点吗?




R4板子到手后,和R3对比了一下:




好在大小一样,Arduino接口一样,扩展板可以直接使用,不用二次投资了。


既然有LED点阵,吐槽归吐槽,吐完好好点个灯玩玩。
这个点阵是8*12个的,显示汉字会比较拮据,但显示英文和简单的图形,还是可以的。
想一想,8*12的点阵,用来做告白再好不过了,板载的,不怕接线不好点亮出问题。


下面就是参考第三方的分享,以及官方的点阵点灯代码,实现的告白专用代码:

#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;

// 参考:https://juejin.cn/post/7128690033669701639
unsigned char Light = //'全亮'
{
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
};

unsigned char Dark = //'全灭'
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};

unsigned char bigheart = //'大心'
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 0, 0, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
};

unsigned char smallheart = //'小心'
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 1, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
unsigned char I = //'I'
{
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 1, 0, 1, 1, 0, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0,
};
unsigned char L = //'L'
{
0, 0, 1, 1, 1, 1, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 1,
0, 0, 1, 1, 1, 1, 1, 1,
};
unsigned char O = //'O'
{
0, 0, 1, 1, 1, 1, 0, 0,
0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0,
};
unsigned char V = //'V'
{
0, 0, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
0, 1, 0, 0, 0, 0, 1, 0,
0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 1, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
};
unsigned char E = //'E'
{
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
};
unsigned char U = //'U'
{
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
1, 0, 0, 0, 0, 0, 0, 1,
1, 1, 0, 0, 0, 0, 1, 1,
0, 1, 1, 0, 0, 0, 1, 1,
0, 0, 1, 1, 1, 1, 0, 0,
};

void setup() {
Serial.begin(115200);
matrix.begin();
Clear();
delay(3000);
}
void loop() {
//主代码循环运行:
unsigned int d = 500;
unsigned int d2 = 100;
Display(I);delay(d);Clear();
Display(L);delay(d);Clear();
Display(O);delay(d);Clear();
Display(V);delay(d);Clear();
Display(E);delay(d);Clear();
Display(U);delay(d);Clear();
for(int i=0;i< 5;i++) {
    Display(bigheart);delay(d2);Clear();
    Display(smallheart);delay(d2);Clear();
}
uint8_t arr = {1};
for(int i=0;i< NUM_LEDS;i++)
{
    arr = 1;
}
for(int i=0;i< 5;i++) {
    Display(bigheart);delay(d2);Clear();
    Display(smallheart);delay(d2);Clear();
    matrix.loadPixels(arr, NUM_LEDS);delay(d2);Clear();
}
}

void Display(unsigned char lattice)//显示函数
{
uint8_t arr = {0};
for(int r = 0; r < 8; r++)
{
    for(int c = 0; c < 8; c++)
    {
      arr = lattice;
    }
}
matrix.loadPixels(arr, NUM_LEDS);
}

void Clear()//清除函数
{
uint8_t arr = {0};
matrix.loadPixels(arr, NUM_LEDS);
}


这面代码的点阵数据部分,是参考了8*8的点阵图形数据,再实际点亮LED的时候,扩展到8 * 12的,然后使用官方提供的专用点灯调用点亮。


编译下载运行后,具体效果如下:




视频效果:【打开声音效果更好】
https://www.bilibili.com/video/BV1pa4y1F7oX


整体看来,这个效果还是挺好的。

天气炎热,宅在家里,不如把这个R4给点好了,向你心爱的Ta,来一场告白吧!!!



木子呢 发表于 2023-7-11 14:22:37

沙发沙发,来贡献个赞!!!{:6_202:}

hnyzcj 发表于 2023-7-11 16:10:33

现在的ARDUINO都带这个功能了,赞一个

Amos Young 发表于 2023-7-12 10:53:15


蹲一个后续

Amos Young 发表于 2023-7-13 17:39:48

现在的ARDUINO都带这个功能了,赞一个

三春牛-创客 发表于 2023-7-16 22:04:17

点赞点赞!

三春牛-创客 发表于 2023-7-16 22:05:42

这个点阵不错,不过作品好像用不上……

三春牛-创客 发表于 2023-7-16 22:07:42

很少作品是板子裸露的吧。除非没有盒子的作品。

花生编程 发表于 2023-7-17 21:51:43

赞一个!

花生编程 发表于 2023-7-17 21:52:48

不错不错

腿毛利小五郎 发表于 2023-7-18 11:42:14

泰裤辣!

DFSJbR7vUjw 发表于 2023-7-20 10:15:46

还是你最懂浪漫
页: [1]
查看完整版本: Arduino Uno R4 WiFi版初体验之疯狂告白