《痞子衡嵌入式半月刊》 第 23 期
痞子衡嵌入式半月刊: 第 23 期
这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。
本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。
上期回顾 :《痞子衡嵌入式半月刊: 第 22 期》
唠两句
昨天是小寒。冷气积久而寒,小寒是天气寒冷但还没有到极点的意思。
转眼进入2021年了,对于2020年痞子衡做过年终总结,虽然写了2016年至今的最高年产量93篇原创文章,但这个成绩痞子衡并不满意,总感觉写得远远不够,过去的一年还是有不少时间是懈怠的,新的一年痞子衡会在RISC-V方向上多发力,争取成为早期布道者之一,立个flag在此,希望年终不被打脸。
本期共收录 1条资讯、3个项目、1个工具,希望对你有帮助!
资讯类
1、乐鑫科技发布 ESP32-S3 芯片,精准聚焦 AIoT 市场
为响应市场对 AI 算力的技术需求,乐鑫科技近日推出了 ESP32-S3 芯片,这是一款集成 2.4 GHz Wi-Fi 和 Bluetooth LE 5.0 的 MCU 芯片,支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器,主频高达 240 MHz,内置 512 KB SRAM (TCM),具有 44 个可编程 GPIO 管脚和丰富的通信接口。与 ESP32 相比,ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM,支持用户配置数据缓存与指令缓存。
项目类
1、GuiLite - 适用全平台的超轻量级GUI库
GuiLite是一个具有5000行C++代码的准系统GUI框架,它可以在所有平台上运行(例如,iOS,Android,Linux,Windows,macOS,Docker和带或不带OS的MCU)。
GuiLite是可嵌入的,它在其他UI框架内运行(例如,Qt,MFC,Winform,Cocoa)。您可以同时使用GuiLite功能和主机UI功能。GuiLite独立于OS和图形库呈现UI。GuiLite可以使用多种语言(例如,Swift,Java,C#,Golang)。
2、OLED-Boy - 基于 ATmega328P 的迷你 OLED 游戏机
这是网友 aziddy 的一个开源作品,基于经典的 Adafruit Feather 328P 开发板(MCU主控是微芯公司的ATmega328P) 和 128x64 OLED 屏的mini电子游戏机。
项目硬件连接相当之简单,将 Adafruit Feather 328P 开发板连上锂电池和 OLED 屏以及几个轻触开关即可(示意图用得是Fritzing,是个能够支持面包板视图的电路设计软件)。
作者在这个简易硬件板上一共实现了 4 个示例小游戏,下面是其中一个小游戏的效果:
3、PIKOCUBE - 可 WiFi 控制的由 54 颗 LED 组成的可编程骰子
PIKOCUBE是一个非常有趣的项目,它是个可编程骰子,带有 54 颗 LED、陀螺仪,支持 WiFi 控制。项目所有资料都是公开的,包含PCB图纸,结构设计,Arduino 代码,上位机端App。
你只需要按下一个按钮就可以开始把玩骰子了,当骰子启动后再按一次按钮就可以启用 WiFi 并连接到预定义的网络,稍后,你可以使用 Blynk APP 来控制骰子。
这枚骰子主要由一个 ESP8285-01F、六块 PCB 和 54 颗 LED 组成。其结构设计十分巧妙,在制作的过程中也处处体现出结构的精巧。
PIKOCUBE主要部件简介:
1、内部的陀螺仪传感器可以检测运动和骰子的位置。
2、WiFi MCU 的尺寸为 10×12mm。
3、骰子内部的控制器旁有一个 150mAh 的锂电池和充电电路。
4、每块 PCB 板的尺寸为 25×25mm,包括了九个 WS2812-2020 迷你 LED 像素。
5、骰子内部的控制器旁有一个 150mAh 的锂电池和充电电路。
工具类
1、TinyGo - 基于LLVM,针对小型设备的Go编译器
TinyGo是一个将Go语言带入具有单处理器内核的微控制器和小型系统的项目,其通过创建基于LLVM的新编译器来实现在微控制器上运行Go程序,这有望带来更小更高效的代码,并且肯定会带来更大的灵活性。
项目官网:https://tinygo.org/
项目主页:https://github.com/tinygo-org/tinygo
TinyGo目前已支持多达48种不同的板和设备,如Arduino Nano33 IoT、Adafruit Circuit Playground Express、BBC micro:bit等等。
如下是一个非常简单的LED闪烁demo:
package main
import (
"machine"
"time"
)
func main() {
led := machine.LED
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
for {
led.Low()
time.Sleep(time.Millisecond * 1000)
led.High()
time.Sleep(time.Millisecond * 1000)
}
}
欢迎订阅
文章会同时发布到我的 博客园主页、CSDN主页、知乎主页、微信公众号 平台上。
微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。
最后欢迎关注痞子衡个人微信公众号【痞子衡嵌入式】,一个专注嵌入式技术的公众号,跟着痞子衡一起玩转嵌入式。
衡杰(痞子衡),目前就职于某全球顶级半导体原厂MCU系统部门,担任高级嵌入式系统应用工程师。
专栏内所有文章的转载请注明出处:http://www.cnblogs.com/henjay724/
与痞子衡进一步交流或咨询业务合作请发邮件至 hengjie1989@foxmail.com
可以关注痞子衡的Github主页 https://github.com/JayHeng,有很多好玩的嵌入式项目。
关于专栏文章有任何疑问请直接在博客下面留言,痞子衡会及时回复免费(划重点)答疑。
痞子衡邮箱已被私信挤爆,技术问题不推荐私信,坚持私信请先扫码付款(5元起步)再发。