MQTT 使用與連結 今天介紹 硬體的 MQTT 使用與連結實際操作部分,會有較多程式碼。 安裝程式庫 一般來說安裝的程式庫會介紹找Adafruit MQTT這...
硬體開發介紹(二) 上一篇介紹硬體的溫斯度讀取,看是沒有相關其實今天要來介紹真正上雲端的部分!實際把家裡的溫度濕度傳送到雲端。 ThingSpeak 雲端平台...
開發工具介紹(二) 昨天介開發工具 Windows, Linux, MacOSX 都可以使用的 Arduino 工具。介面簡單操作直覺但是其實還是很多不便利的,...
2.4GHz 裝置 再來介紹 2.4Ghz 的裝置,這部分 IoT 主要的是應用使用的頻譜區塊。因為是開放的共用區塊只有台灣還是得經過NCC認證才可販售,應用的...
硬體開發介紹(一) 前幾天介紹一些開發工具現在使用 PlatformIO 來開發,現在進入正式開發先從小東西開始!溫度。這邊就紹如何取的溫度,依照手邊材料目前有...
大多數時候我們使用 Arduino 這類開發板的時候都會使用 Arduino 提供的 IDE或者像是 ESP32/ESP8266 官方提供的開發工具,不過當有一...
開發工具介紹(一) 前幾天一直都在介紹相關知識與論述,現在進入開發階段會介紹幾個基本開放源碼的免付費工具。一般來說都是跨平台的開發工具 Windows, Lin...
2020 年中的時候意外看到了旗標的「雷切外殼復古街機」這個產品,以前在學 PHP 的時候很常的時間都是看旗標的書,沒想到這幾年旗標還有針對自造者領域推出產品。...
我們已經在 mrb_exec 中將 IREP 的資訊讀取完畢,現在我們就可以開始針對 OPCode 的方式來讀取。 基本上在處理的時候會是一個無限迴圈,我們會不...
因為我們的目標是要能讓自製的 Ruby VM 運行在微控制器上並且在螢幕上顯示訊息,這次使用的是 TFT 螢幕型號是 ST7735 因為不同的硬體會有差異,在設...
延續上一篇的進度,我們將會開始撰寫 mrb_exec 的內容,我們先參考 mruby-L1VM 的方式直接讀取用於參考的 nlocals、nregs 和 nir...
對一個非本科的工程師來說,對於這類知識大多是第一次接觸的,雖然跟讀資工的同事聊過他們在學校也只有實作簡單的功能,不過至少在要開始嘗試的時候會相對容易許多。在這樣...
上一篇我們已經了解了 mruby 編譯出來的檔案大致上有怎樣的結構,要能夠執行 Ruby 只需要實際上存取機器碼的區段讀取出來之後依照行為執行就可以了,不過在...
第一次看到 HAL(Hardware Abstraction Layer)是在 mruby/c 的原始碼裡面,我們可以透過編譯時提供 -DMRBC_USE_HA...
從前面兩篇文章我們已經透過 mruby-L1VM 大致上了解了 mruby 生成的機器碼檔案包含了哪些資訊,不過還有幾個相對重要而且會經常被使用的方法需要提出來...
這次的實作分為兩個階段,第一階段我們直接用 C 語言在電腦上實作來驗證我們自己實作的 Ruby VM 是可以運作的,第二階段則是將程式碼放到 D1 Mini 上...
雖然我們已經可以使用 pio test 對我們撰寫的 Ruby VM 進行測試,但是使用 pio run 編譯的時候還是會出現無法正常運作的錯誤,我們需要對原始...
經過了一個月的嘗試,我們大致上已經掌握了能夠自己實現非常基礎的 Ruby VM 的能力。雖然在鐵人賽之前也花了一個月左右的時間去驗證整個想法是否可行,然後在鐵人...
在前面的實作中,我們已經可以將文字印出在 TFT 螢幕上,接下來我們要結合迴圈跟繪製文字的機制來製作簡易的跑馬燈效果。 繪製方法 之前我們用來印出訊息的 put...
在上一篇我們已經實作到要呼叫方法,但是卻無法從 IREP 中獲取要呼叫的方法名稱。因此我們要實作對應的方法來幫助我們讀取到 IREP 中的 POOL 和 SYM...
不知道大家有沒有思考過「強型別」語言跟「弱型別」語言的差異在哪邊,在強型別語言中每一種變數的「型別」都是固定的,也就是說當我們「編譯」的時候就會知道「類型」不對...
透過前幾天加入的比較、迴圈的支援後,假設我們希望在 TFT 螢幕上繪製文字跑馬燈就必須處理字串,也就是能將字串讀取進來。不過在這之前我們需要將 mrb_valu...
經過前面幾天的分析,我們目前已經有一個可以撰寫 Ruby VM 的環境,也了解該如何從 mruby 的機器碼中讀取到實際上要執行的 ISEQ 區段,這篇文章會先...
在前面的實作中,我們是直接對 OP_SEND 放入 printf 的處理將結果印出來,但這樣就表示我們在 Ruby 不論呼叫任何方法都只會將他印出來,這並不是我...
經過幾天的努力,我們已經可以在我們自己實作的 Ruby VM 中進行加法的運算,不過到目前爲止都還是停留在透過除錯訊息看到結果的狀況,因此我們要來實作 Ruby...
之前我們有提到過 loop 方法因為我們並沒有實作 Block 機制而無法使用,而 Block 和 Method 實際上是在 Ruby 的 IREP 中製作出一...
延續昨天的進度,當我們成功呼叫了 Block 之後會發現缺少了 OP_ENTER (51) 這個 OPCode 的實作,這個實作是用來將我們進入 Block 的...
經過將近一個月的努力,現在我們現在要擴充 OPCode 的處理也容易很多,階段性的目標是要能在 TFT 螢幕上顯示一些訊息跟動畫,因此除了前面能讓 Ruby 運...
在上一篇我們已經能夠利用 mrb_state 去儲存整個 Ruby VM 運行時共有的狀態,接下來我們要利用 mrb_state 將 Ruby 中呼叫的方法和...
因為我們已經將 mrb_value 套用到我們的 Ruby VM 中,也因此能夠更加彈性的處理各種類型的資料,現在就讓我們將字串的支援加入到裡面吧! 跟之前的方...