山姆的編程實作分享。。。

Sam Blog, Sam Sharing, Sam Studio

2019年5月8日

Anki is no longer manufacturing robots



看到這篇報導真令人傷感 😨
設計這麼優良的玩具機器人竟然也撐不下去, 還想買台來研究說...
The once-hot robotics startup Anki is shutting down after raising more than $200 million

這也間接的告訴我們, 機器人的研發不能只靠單項 "使人快樂" 而存活下來,
未來的機器人還必須具備 "幫助人類”這個因子,進而產生" 依賴” , 例如: 醫療, 家居照護...等等. 這樣產品週期才會長。

2019年5月7日

分享3D STL 檔案 : ESP8266 WiFi 擴充板保護殼


終於有了3D 列印機了😄,  一開始是列印玩家分享的一些3D模型來練練基本功及熟悉 FLUX 的脾氣, 再來, 當然就是自己設計3D模型 ~

底下這個是使用Fusion 360 軟體設計出來的3D模型,

這個case是用來保護 ESP8266 WiFi 模組, 以免模組背面不小心短路損毀,
透過 Cura 4.0 轉出來STL檔案可在下面連接取得
ESP8266 保護殼 STL 檔案

底下這張照片是透過FLUX列印出來的成品, 內部上下有4個卡鉤用來卡住PCB板,
所以拆裝時要有個傾斜角.

和ESP8266模組結合的樣子

2019年5月6日

Arduino 教學影片


還在猶豫要不要跳入 Dart / Flutter ?



還在猶豫要不要跳入 Dart / Flutter ? 底下這篇文章或許可以幫你做出決定

Why you should use Google Flutter ?

以我個人使用過後的感想是 "值得投資".

原因如下:

1. 文章中的 "Fast development", "Flexible UI".... 等等的這些制式優點我就不再論述了.

2. Hot Reload 真的很酷,  不僅僅是在PC Emulator端可以做到Hot Reload, 連實機的debug都可做到, 這對工程師而言真的是一項開發福音. (PS: 事實上, iOS app的開發, 在Swift導入的同時也就一併提供這項功能.)

3. Performance / Speed: 從目前丟出來的一些數據真的不差, 代表它體質好!

4. Flutter is Free. 這項對大眾真的有感. 要做到 single codebase 可以build出 iOS 和 Android app, Flutter 並不是首例, 但是加上 "Free" 就真的是一項創舉了, 這對平台的推廣真的是一項大助力, 這也是我看好它會成功的原因之一, 畢竟Google 推的東西並不是樣樣成功😁.

5. Flutter is open source framework. 這項對個體戶而言就幫助不大了, 畢竟Resource有限, Resource要花在刀口上; 但就研發團隊而言就是另一項助力了. 因為受制於3rd party (=黑盒子)一直是軟體開發的一個痛, 而時效, 差異化往往又是產品成敗的關鍵. 所以對講求開發時程以及製作差異化的研發團隊而言open source 就是很大的優點. 想必這open source 的做法也是Google針對平台的推廣拉攏公司團隊下的一步棋.

一項產品的成功與否, 不是產品本身要好就可以了, 在我看來Flutter本身是一個很好又有潛力的開發平台, 它已具備成功的基因, 再加上 "Free" 以及 " Open Source" 這兩項因素, 個人認為它至少會是下一個Android App 共同開發平台,  所以我給它 "值得投資"的評語, 也因此我在年初也跳入 Flutter 開發行列, 你呢 ?

2019年5月5日

入手 FLUX Delta+ 3D 列印機


在創客的這條的道路上, 個人的創意可以透過 Arduino open source的平台來完成電子及軟體的設計, 但是沒有機構的實體化, 總是感覺虛虛的, 沒有完成感.
也因為如此, 讓我想購入3D列印機...

於是, 就在上個月購入一台二手的文青機 -- FLUX Delta+


拿到手後, 立馬透過 Flux Studio 教學學程列印了內建3D模型,  過程及成品都不錯 :)
前主人機子顧的不錯!

接著就測試雷雕功能 (這功能也是我選擇這機子的一項原因)
首先是抓雷射頭Z軸的offset (+0.6mm)

接著就在隨機附贈的樟木上做雷雕的測試

以上兩項測試: GOOD!😊

2019年4月23日

ESP32-CAM ( Ai-Thinker Module )


今天拿到了新板子 -- ESM32-CAM
順勢測試一下ESP-IDF開發環境以及這塊板子Camera的效能

以下參考資料都來自 Ai-Thinker提供的 ESP32_CAMERA_QR 使用教程
https://github.com/donny681/ESP32_CAMERA_QR/wiki

Step 1: 首先, 照 ESP32_CAMERA_QR 使用教程連接 USBtoTTL, 注意喔! 這塊板子的工作電壓是5V,不是3.3V !

Step 2: 接著就下載原始碼
git clone https://github.com/donny681/ESP32_CAMERA_QR.git

Step 3: 再來當然就是 make flash (build code 以及 download code, 一指令搞定)

Step 4: 接著就是透過 make monitor 來觀察 camera 運作狀況了
Conclusion:
1. 初試結果,感覺效能不好 (官網資料就不是很好啊,自己要買還嫌)

2. 範例程式穩定度很差,stream mode 常跑不到100 frames 就hang住了


rst:0x1 (POWERON_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10088
load:0x40080400,len:6380
entry 0x400806a4

.................
WiFi connected
Starting web server on port: '80'
Starting stream server on port: '81'
Camera Ready! Use 'http://192.168.11.12' to connect
MJPG: 3156B 68ms (14.7fps), AVG: 68ms (14.7fps), 0+0+0+0=0 0
MJPG: 3170B 37ms (27.0fps), AVG: 52ms (19.2fps), 0+0+0+0=0 0
;
;
MJPG: 3890B 20ms (50.0fps), AVG: 38ms (26.3fps), 0+0+0+0=0 0
MJPG: 3953B 63ms (15.9fps), AVG: 40ms (25.0fps), 0+0+0+0=0 0
MJPG: 3841B 16ms (62.5fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0
MJPG: 3848B 64ms (15.6fps), AVG: 40ms (25.0fps), 0+0+0+0=0 0
MJPG: 3845B 20ms (50.0fps), AVG: 39ms (25.6fps), 0+0+0+0=0 0

掛了! :-( :-( :-(

3. 再來就是身為工程師的你來改進它吧!

2019年4月12日

It's time to use Linux / Ubuntu by using Windows Subsystem



The Windows 10 build 14393 or later version is ready to Linux installation by using the Windows Subsystem.

By this way you don't need to setup a virtual machine or reboot into Linux by using a dual-boot PC.

The detail installation guide for Linux on Windows system, please follow below two links

https://www.makeuseof.com/tag/linux-beginners-guide/

https://www.makeuseof.com/tag/linux-desktop-windows-subsystem/







2019年4月2日

2019年3月5日

[Arduino 學堂 #12] 解放ESP32吧!


影片內容:
1. 告訴你在 Arduino ESP32 Library裡的Setup()以及Loop()函數, 事實上是跑在FreeRTOS的一個Task上
2. 並且, 若你沒有以Multi-Tasking 的概念來撰寫你的程式的話, 代表你只有用到ESP32的單核心而已,以一個雙核心的SoC而言, 真的浪費了!
3. 分享一個 Three Tasks 範例模板給大家
4. 範例下載路徑是 https://mega.nz/#!LrwUjQAK!kP4l7R6DEaZip_y8tq6Q9hjHPH5wXmTjgBxSc_iI-Bc
5. 從範例的UART-Log,可以看到雙核心被充分利用到
6. 另外在Task Create的建立宣告時, 最後一個參數 "xCoreID", 建議填入 "taskNO_AFFINITY", 交由RTOS來做CPU核心的最佳化
7. 當然你也可以直接指定哪個Task跑在哪一個核心上, 如何你認為你的直接指定比FreeRTOS的Task Scheduler做的更好的話

以下為影片部分畫面:



[Arduino 學習筆記 #1] 軟體安裝及開發環境建構
[Arduino 學習筆記 #2] 葵花寶典導讀及IO實作
[Arduino 學習筆記 #3] Arduino 的屠龍刀 & 倚天劍
[Arduino 學習筆記 #4] 一窺 Arduino UNO 電路設計
[Arduino 學習筆記 #5] ADC的使用及電表程式教學
[Arduino 學習筆記 #6] Arduino Inside - Core Start-up & Initialization
[Arduino 學堂 #7] Debounce 及 外部中斷 (上)
[Arduino 學堂 #8] Debounce 及 外部中斷 (下)
[Arduino 學堂 #9] FreeRTOS is ready to Go!
[Arduino 學堂 #10] Fast PWM, Phase correct PWM 分清楚 ?
[Arduino 學堂 #11] ESP32 安裝及WiFi/BT測試
[Arduino 學堂 #12] 解放ESP32吧!
[Arduino 學堂 #13] Android / iOS App 開發平台/方式

2019年3月1日

[Arduino 學堂 #11] ESP32 安裝及WiFi/BT測試



影片內容:
1. 把 Arduino UNO, MKR WiFi 1010 以及 ESP32 做一個超級比一比
2. 分享 ESP32 的 Arduino IDE package 安裝及設定步驟
3. ESP32 package URL    https://dl.espressif.com/dl/package_esp32_index.json
4. ESP8266 package URL  http://arduino.esp8266.com/stable/package_esp8266com_index.json
5. 教導如何透過Arduino WiFi Scan / BLE Scan 範例, 在收到ESP32板子的第一時間來驗證 ESP32 WiFi / Bluetooth 功能
以下為影片部分畫面:







[Arduino 學習筆記 #1] 軟體安裝及開發環境建構
[Arduino 學習筆記 #2] 葵花寶典導讀及IO實作
[Arduino 學習筆記 #3] Arduino 的屠龍刀 & 倚天劍
[Arduino 學習筆記 #4] 一窺 Arduino UNO 電路設計
[Arduino 學習筆記 #5] ADC的使用及電表程式教學
[Arduino 學習筆記 #6] Arduino Inside - Core Start-up & Initialization
[Arduino 學堂 #7] Debounce 及 外部中斷 (上)
[Arduino 學堂 #8] Debounce 及 外部中斷 (下)
[Arduino 學堂 #9] FreeRTOS is ready to Go!
[Arduino 學堂 #10] Fast PWM, Phase correct PWM 分清楚 ?
[Arduino 學堂 #11] ESP32 安裝及WiFi/BT測試
[Arduino 學堂 #12] 解放ESP32吧!
[Arduino 學堂 #13] Android / iOS App 開發平台/方式


熱門文章