發表文章

目前顯示的是 4月, 2025的文章

還記得Taiwanduino嗎?

圖片
還記得Taiwanduino嗎? Taiwanduino是一個Made in Taiwan的觸控、音效Arduino開發板套件,它是在2016年OpenLab.Taipei「週三來碗Arduino」聚會中發起一項的open-source hardware專案,曾經於Maker Faire Taipei展出,其營收會幫助OpenLab.Taipei及臉書社團Arduino.Taipei持續運作。 輕觸"臺灣"上的其中一個圓點,喊出「Taiwan number one」的口號,實現方式是將口號以PCM的格式錄製於5V SPI flash中,讀取後直接以PWM輸出到一顆NPN電晶體驅動喇叭;觸控也是以CapacitiveSensor函式庫來實現。電路中沒有功率放大器IC、沒有MP3播放模組,也沒有獨立的觸控IC,將所有功能集結在一顆ATmega328P當中。用最簡潔的硬體設計以韌體實現豐富功能,我認為就是一個良好的MCU應用典範。 這次收到的訂單比較特別,買家要將四個Taiwanduino帶出國交流,拜託了OpenLab.Taipei熱心志工幫忙組裝,再特別附上英文版文宣寄出。 開發心路: https://will-123456.blogspot.com/2016/05/taiwanduino.html 專案連結: https://github.com/will127534/Taiwanduino Taiwanduino的粉專: https://www.facebook.com/Taiwanduino 即刻下單: https://shopee.tw/product/174651435/5959971906/ 關於OpenLab.Taipei 2010年,創辦人鄭鴻旗先生和一群喜愛科技藝術與開源的朋友們成立OpenLab.Taipei,是台灣第一個自造者空間(maker space),Arduino.Taipei亦由OpenLab.Taipei分支出來。十多年來均以非營利的方式經營著線上及實體社群,幫助maker解決各種工具借用和疑難雜症。

NUC1263 LLSIClock開發筆記:運用指標提高LLSI Frame Buffer的可讀性、易用性

圖片
LLSI設計時大概是考量到系統整體效能,資料是以32-bit的寬度寫入LLSI FIFO的。因此最直接的方式就是將frame buffer宣告成32-bit的陣列,這個方式拿來點四色”ARGBW” LED時倒是沒什麼問題。但是當我試著用LLSI點亮三色ARGB七段顯示器的時候就有發現,1個顏色8-bit,1顆ARGB LED 3個顏色總共24-bit,資料的排列順序會就變成下面這樣 …  (第一行的註解是指第幾顆LED) // 2nd 1st 3rd 2nd 4th 3rd 6th 5th uint32_t g_au32frameBuffer[6] = {0xRRBBGGRR, 0xGGRRBBGG, 0xBBGGRRBB, 0xRRBBGGRR ...} 光用看的是不是就很頭大? 再想到之後要去個別調整每一顆ARGB LED的色彩、亮度,頭就更大了。這也讓我開始思考, 有沒有辦法將陣列宣告成8-bit,然後以32-bit的格式來讀取8-bit陣列,寫入LLSI的FIFO。 完整程式碼一樣可以看留言區或是GitHub https://github.com/danchouzhou/LLSIClock/blob/main/firmware/LLSI_RGB/main.c 從32-bit陣列轉變成8-bit陣列 陣列如果變成這樣讓g_au8frameBuffer[0]~[2],儲存第1顆ARGB LED的R, G, B;g_au8frameBuffer[3]~[5],儲存第2顆ARGB LED的R, G, B,以此類推,是不是直觀許多呢? volatile uint8_t g_au8frameBuffer[24] = { // R G B 0x80, 0x00, 0x00, // Red 0x80, 0x20, 0x00, // Orange 0x40, 0x40, 0x00, // Yellow 0x00, 0x80, 0x00, // Green 0x00, 0x00, 0xFF, // Blue 0x00, 0x40, 0x80, // Indigo 0x80, 0x00, 0xFF...