1. 1 不可撤销
  2. 2 小年兽 程嘉敏
  3. 3 手放开 李圣杰
  4. 4 迷人的危险3(翻自 dance flow) FAFA
  5. 5 山楂树之恋 程佳佳
  6. 6 summertime cinnamons / evening cinema
  7. 7 不谓侠(Cover 萧忆情Alex) CRITTY
  8. 8 神武醉相思(翻自 优我女团) 双笙
  9. 9 空山新雨后 音阙诗听 / 锦零
  10. 10 Wonderful U (Demo Version) AGA
  11. 11 广寒宫 丸子呦
  12. 12 陪我看日出 回音哥
  13. 13 春夏秋冬的你 王宇良
  14. 14 世界が终わるまでは… WANDS
  15. 15 多想在平庸的生活拥抱你 隔壁老樊
  16. 16 千禧 徐秉龙
  17. 17 我的一个道姑朋友 双笙
  18. 18 大鱼  (Cover 周深) 双笙
  19. 19 霜雪千年(Cover 洛天依 / 乐正绫) 双笙 / 封茗囧菌
  20. 20 云烟成雨(翻自 房东的猫) 周玥
  21. 21 情深深雨濛濛 杨胖雨
  22. 22 Five Hundred Miles Justin Timberlake / Carey Mulligan / Stark Sands
  23. 23 斑马斑马 房东的猫
  24. 24 See You Again Wiz Khalifa / Charlie Puth
  25. 25 Faded Alan Walker / Iselin Solheim
  26. 26 Natural J.Fla
  27. 27 New Soul Vox Angeli
  28. 28 ハレハレヤ(朗朗晴天)(翻自 v flower) 猫瑾
  29. 29 像鱼 王贰浪
  30. 30 Bye Bye Bye Lovestoned
  31. 31 Blame You 眠 / Lopu$
  32. 32 Believer J.Fla
  33. 33 书信 戴羽彤
  34. 34 柴 鱼 の c a l l i n g【已售】 幸子小姐拜托了
  35. 35 夜空中最亮的星(翻自 逃跑计划) 戴羽彤
  36. 36 慢慢喜欢你 LIve版(翻自 莫文蔚) 戴羽彤
  37. 37 病变(翻自 cubi) 戴羽彤
  38. 38 那女孩对我说 (完整版) Uu
  39. 39 绿色 陈雪凝
  40. 40 月牙湾 LIve版(翻自 F.I.R.) 戴羽彤
夜空中最亮的星(翻自 逃跑计划) - 戴羽彤
00:00 / 04:10

夜空中最亮的星 能否听清

那仰望的人 心底的孤独和叹息

夜空中最亮的星 能否记起

那曾与我同行 消失在风里的身影

我祈祷拥有一颗透明的心灵

和会流泪的眼睛

给我再去相信的勇气

越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请指引我靠近你

夜空中最亮的星 是否知道

那曾与我同行的身影 如今在哪里

夜空中最亮的星 是否在意

是等太阳先升起 还是意外先来临

我宁愿所有痛苦都留在心底

也不愿忘记你的眼睛

哦 给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行 哒~

我祈祷拥有一颗透明的心灵

和会流泪的眼睛 哦

给我再去相信的勇气

哦 越过谎言去拥抱你

每当我找不到存在的意义

每当我迷失在黑夜里

噢喔喔 夜空中最亮的星

请照亮我向前行

摊牌了……开始入坑硬件开发……Arduion点亮oled小屏

前言

最近又迷上硬件开发了,之所以说是"又”,是因为我之前就对硬件开发有想法,也可以说,在我这我觉玩硬件的都是牛人。

之前入手树莓派就是为了玩硬件,然后搞过一段时间,硬件没学起来,linux倒是有了不少长进。不过没有长进的原因之一,就是我一直觉得硬件入门比较难,要动电路设计、数电模电转换等等,总之在我以前的认知中,我觉业余玩家没有积累根本玩不转。特别在看了稚晖君的相关作品之后,我更是觉得这入门太难了。

但是吧,跃跃欲试的想法却不曾磨灭,再加上之前也买了好多开发组件,所以也一直想着搞一下,总之就是缺少一个契机。

然而就在最近,这个契机就这么出现了,很神奇。

简单来说就是突然就有了想给自己房间整个小时钟的想法。

首先,我翻出了之前买的手环(因为表带断了,所以一直没有戴),想着把它用起来当个桌面时钟用,但是发现官方app下架了,主要是app登录不上了,时间没法同步了,所以手环就pass掉了,但是我又不想买(这种小玩意还要自己买?),然后就又一次有了搞硬件的想法,而且最近一直很流行小电视,B站相关视频一直很火,准确地说也是稚晖君带火的,也是从那一刻我就又开始了解Arduion,一通了解之后,我才发现arduion要比树莓派简单的多呀,而且教程多,主要是价格便宜,一碗面就可以买一个开发板,你说呢?

反正就是两三天之后,我就在某宝下单了arduion开发板、8266开发板、两块0.96oled显示屏,打算撸一个迷你小屏,可以当桌面小时钟、小气象站。然后,就有了今天这篇好玩的内容。

今天我们主要分享分别通过arduion开发板和8266来点亮oled屏幕。

忘记说了,对于arduion8266,代码是一样的。好像也忘记分享arduion的相关用法了,那就明天补上吧!

效果图镇楼:

再来一张小小的全家福:

点亮之旅

焊武帝

收到的屏幕引脚是没有焊接的(忘记拍未焊接的照片了),所以我要先自己手动把引脚焊接上,这点工作量很小,分分钟就可以搞定,然后还顺手把开发板上的老板送的引脚也焊上了:
博客园没法传视频,移步知乎查看

拼装接线

接线直接参考网上的教程即可,好多都给出了接线的示意图。

OLED只有四个引脚:

  • GND是接地,接开发板的GND即可;

  • VCC是电源,接开发板3.3V电压就可以,如果接5v可能会烧屏,我没敢试;

  • SCL是控制线,应该是控制屏幕刷新频率的

  • SDA是数据传输线,也就是说我们显示的内容是通过这根线发送给oled的,spi之所以快就是因为数据传输线比较多,可以说双工况传输

arduion

arduion接线很简单,因为我买的oled只有四根线。收到货才知道,oled分两种,一种是i2c(也叫iic,我买的就是这种的)四根线,另一种是SPI,比i2c接的线多,据说效率要比i2c高,这一块等后续熟悉了,都会了解到。

下面是官网给出的arduion uno r3I/O引脚图,我买到的不是官方原板,所以价格低,意大利官方原板价格120左右,国产的可以卖十块了。

arduion而言,点亮oled的话,只需要把oled的四个引脚分别接到arduion开发板上即可,接线对应关系如下:

序号 OLE引脚 ARDUION引脚
1 GND GND(左侧第六个或者第七个,或者右侧第四个,只要是接地即可)
2 VCC +3v3(左侧第四个)
3 SCL A5(左侧最后一个,或者右侧第一个)
4 SDA A4(左侧倒数第二,或者右侧第二个)

以上接线,我都亲自测试了,都可以正常点亮。因为我买的这个板子是升级板,所以它还有另一种接线方式,这里就不分享了,感兴趣的小伙伴可以留言。

8266

8266这个芯片不知道有没有小伙伴之前了解过,我是最近才接触到了,了解之后发现这一块芯片早物联网时代简直是神一样的存在。

被封神的核心原因——价格低,这是它最核心的优势,不到十块钱的价格,就可以创建wifi热点、实现wifi通信,实现真正的万物互联;另一个比较强的点是,它的生态体系上不仅支持arduion,而且原生支持lua,对python也有支持,这样它的可玩性就很高,很受圈内认识追捧,应该算得上这个领域的国产之光了,甚至连某乎都有"8266是否会取代arduion"这样的问题。

而且,今天我已经用它实现了一个微型服务器,明天我会分享出来。只有4M的内存,性能虽然不高,但是从物联网方面来讲,可玩性还是很高的。

下面是卖家提供的引脚图:

oled连接8266接线对应关系如下如下:

序号 OLED引脚 8266引脚
1 GND GND(随便接,只要是接地就行)
2 VCC 3v3(选3v3就行,卖家给的图上说5v也可以,慎试)
3 SCL D1GPIO5,左侧第二个)
4 SDA D2GPIO4,右侧第三个)

撸代码

虽然咱也是写代码的民工(最近不是官方给人认证了嘛,新生代农民工),但是javaarduion代码区别还是很大的,它更像c++,第一次可以抄抄改改,只要跑起来就行,关于代码我参考了文档1博客的相关内容,同时还参考了官方demo

#include <SPI.h> // 加载SPI库
#include <Wire.h> // 加载Wire库
#include <Adafruit_GFX.h> // 加载Adafruit_GFX库
#include <Adafruit_SSD1306.h> // 加载Adafruit_SSD1306库

// 定义 OLED屏幕的分辨率
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);

void setup() {
  Serial.begin(9600); // 设置串口波特率

  Serial.println("OLED FeatherWing test"); // 串口输出
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // 设置OLED的I2C地址

  display.clearDisplay(); // 清空屏幕

  display.setTextSize(2); // 设置字体大小
  display.setTextColor(SSD1306_WHITE); // 设置字体颜色
  display.setCursor(0, 0); // 设置开始显示文字的坐标
  display.println("Hello World!"); // 输出的字符
  display.println("   by syske");
  display.display(); // 使更改的显示生效
  delay(1000);
}

void loop() {
  // put your main code here, to run repeatedly:
}

下面就我目前了解到的知识点,做一个简单的介绍和讲解。

上面的代码中,首先我们要引入需要的库,这一点和java引包有点像;然后定义全局变量,紧接着是arduion两个核心方法,一个是setup,一个是loop

其中setup方法只会执行一次,就类型于一个初始化的操作,我们可以在里面进行基本的配置,从业务层面来说,我们可以用它来进行连接wifi,或者获取远程数据等操作,具体根据自己的需求。这里我在这个方法内部直接打印了hello world这样的信息,每一步操作都有说明,这里的波特率一般卖家提供的资料里面都有,如果没有,可以问下卖家。

loop方法是会循环执行的,按照我的理解,loop应该是在setput方法之后执行,之后loop方法会一直执行。在点亮oled之后,我参照B站上一个外国大佬的视频,做了一个动态表情,效果还不错,有需要资源的小伙伴可以留言。

显示效果如下:

博客园没法传视频,移步知乎查看

代码如下太长了,放上来编辑器都变卡了,逻辑上说很简单,就是先把gif的每一帧保存下来,然后转成bpm,通过工具转成数组,接着轮流展示每一帧(写在loop中)。需要代码和工具的小伙伴,私信我哦!

总结

好了,今天就到这里吧,没什么好总结的,但是整个过程还是很有意思。

最后,还想说的是,某种程度上我能进入到IT这个行业,都是因为硬件开发,因为我小时候最爱捣鼓的就是这些硬件玩意,但是那会就玩的比较低端,主要是维修东西,然后拆卸各种家电(是的,就是妈见打系列,但是我一般拆完都可以复原在,这一点也算是天赋吧),偶尔改装个小玩意,有时候会去捡垃圾,淘各种电子物件,如果能满血复活,会开心好久,所以一直对高科技相关的内容比较感兴趣,也一直喜欢各种各种软件。

如果当初早一点接触arduion的话,保不准我现在已经是个硬件大佬了。

好了,废话就先说这么多吧,明天我们再来分享更有意思的内容哦!

参考文档

[1].ESP8266+0.96oled入坑指南: https://blog.bbskali.cn/1276.html

posted @ 2021-08-21 22:42  云中志  阅读(289)  评论(0编辑  收藏  举报