《痞子衡嵌入式半月刊》 第 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) 和 128×64 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程式,這有望帶來更小更高效的程式碼,並且肯定會帶來更大的靈活性。
項目官網://tinygo.org/
項目主頁://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主頁、知乎主頁、微信公眾號 平台上。
微信搜索”痞子衡嵌入式“或者掃描下面二維碼,就可以在手機上第一時間看了哦。