[心得] Ideas Hatch 專訪漢亞科技的文章 取得連結 Facebook X Pinterest 電子郵件 其他應用程式 - 9月 27, 2022 八月中,資策會來漢亞造訪,想深入了解目前國內物聯網開發的生態,花了一個半小時的互動專訪,我也述說過去使用國產 IC 的情況,最後由資策會人員整理成一篇文章。分享一篇刊登自 ideas Hatch 智造基地的專訪文章,底下是連結內容。https://www.ideas-hatch.com/news_detail.jsp?id=364&type_id=4 取得連結 Facebook X Pinterest 電子郵件 其他應用程式 留言
[筆記] ESP32 在 VS Code 開發環境的編譯與除錯 - 2月 28, 2021 # ESP32 評比與教學推薦 NodeMCU-32s 的理由 準備工作 1) 安裝 Visual Studio Code (VS Code),並安裝其他 C/C++ 插件。 2) 安裝 Python 套件 3) 下載並執行 Setup ESP-IDF Tools:檢查電腦系統的環境,並幫我們把編譯的工具鏈 tool chain 安裝起來。 4) 在 VS Code 安裝 ESP-IDF 插件,點選插件後,看到下圖一並設定路徑後,點擊安裝 ESP-IDF。安裝 v4.2 版本後,會詢問是否下載安裝工具鏈,如果系統已經有安裝,那就設好路徑即可。最後,再安裝 python 虛擬環境給 ESP-IDF,便完成整個環境設定。 圖一:ESP-IDF 擴充插件 建立專案 1) 從 ESP-IDF 選範例專案:按 F1 後,上方的選單輸入 " ESP-IDF: Show Examples Projects ",出現下圖二的範例專案列表,我們可以從中選一個範例來創建,例如我從當中選了 blink 或 hello_word。按下右上方的創建,就會在左半邊出現專案。 圖二:ESP-IDF 範例專案的列表 2) 編譯專案:按 F1 後,上方的選單輸入 " ESP-IDF: Build your project ",VS Code 環境就會開發進行編譯的工作,在下方的欄位會顯示編譯的過程。 3) 設定模組型號:按 F1 後,上方的選單輸入 " ESP-IDF: Device configuration ",彈出選項後,我們選擇 EPS32 為裝置的型號。 4) 電腦接上 ESP32 模組:按 F1 後,上方的選單輸入 " ESP-IDF: Select port to use ",在 VS Code 會自動彈出 COM port 讓我們選擇,點選 EPS32 連接的 COM 即可。 5) 燒錄程式碼到 ESP32:按 F1 後,上方的選單輸入 " ESP-IDF: Select Flash Method and Flash ",彈出選項 JTAG 或 UART,我們選擇 UART 為下載燒錄的方式 (前面我們已經設定 COM 了)。下載燒錄的方式設好了,下次只要... Read more »
[筆記] Raspberry Pi 樹莓派的軟體開發 - 8月 05, 2018 前言 本文的實驗過程是以樹莓派 3B+ 為主,Python是樹莓派板子上的操作系統所提供的程式語言,並且板子上的I/O介面控制官方建議用Python語法開發。因此,在樹莓派上寫程式的第一首選當然是Python,我們可以使用系統上內建的 Python 3 IDLE 或 Thonny Python IDE 的整合開發套件。雖然它是推薦的語法,不過樹莓派系統也可以使用 C/C++ 語言來開發程式,而且也內建一套IDE套件。底下就用簡單的程式碼來試試看這些開發套件。 C/C++開發 樹莓派官方的系統提供一套IDE軟體開發套件,稱為 Geany 。它可以編輯C/C++/Java/Python...等語法,並且編譯組建成執行檔,在樹莓派這樣的操作環境下,這已經算不錯的官方IDE套件了。 首先,打開Geany之後,先在工具列上選擇"專案",並創建一個新專案。舉例來說,我想要測試C++輸出功能,於是創建一個名為TestCpp的專案。接下來,在工具列上選擇"檔案",並創建一個"開新檔案",它會讓我們選個範本,此時選Main.cxx。系統幫我們在專案目錄下建立一個C++檔案,有main function的範本,如下圖一所示。 第二步,在這個檔案裡開始寫些簡單的code,寫個Hello World吧!順便編譯與組建一下,看看有沒有成功。不過,我的專業裏頭總不能只有一個Main檔案走遍天下吧?還是需要有些其他檔案來組建。新增一個加法函數的檔案,名為myadd.cxx,存放在專案的目錄下,這時就可以從main函數調用這個外部加法函數,試試看!一開始編譯,發現會產生編譯失敗,這是因為組建的命令沒設定妥當,預設的命令是編譯單一檔案,這會兒需要編譯一堆檔案,所以要調整命令,如圖二所示。再次編譯後,成功了,可以執行看看結果。 圖一:Geany IDE C++ 軟體開發環境 圖二:修改組建的命令 Python開發 樹莓派官方的系統內建兩套IDE軟體開發套件,一套稱為 Pytho... Read more »
[筆記] Jitsi Meet server 視訊會議系統 - 6月 22, 2020 一,準備工作 準備作業系統 Ubuntu 18.04 以上的 Server (無UI),或 Desktop (有圖形UI,但容量大)。 安裝並開啟 ssh:Desktop 版本才需要安裝 SSH server,Server 版本已經有了。在命令列輸入 #sudo apt-get install ssh,這樣我們便可從遠端 SSH-client 連線進入作業系統操作了。 設定系統 DNS:/etc/resolv.conf裡面要新增 DNS 服務器,如 nameserver x.x.x.x,這樣之後我們在更新軟體套件時才不會出錯。或者,修改 /etc/netplan/xxxx-init.yaml 檔案的內容,重新設定網路參數,這樣也行。 二,安裝 Jitsi Meet 服務器 設定域名 :到 DNS 註冊一個機器的域名對應到公網 IP 位址,比如在公網輸入meeting.jitsi.tw 便會指向安裝的服務器。不過,在測試階段,我們可以考慮架設一台本地DNS server (用Windows 2008/2012/2016...的環境),配置一個內部的域名,這樣暫時不用註冊一個公共的域名。 設定服務器的主機名稱 :修改 Linux 系統的 /etc/hostname內容,或者命令列 #sudo hostnamectl set-hostname meeting,這樣機器在網上能被其他電腦用名稱來訪問了。 開啟防火牆 :利用 ufw 命令開啟下列的埠,TCP 80 (http) 、 443 (https) 、 4443 (video/audio) 、 22 (SSH),以及 UDP 10000 (video/audio)。例如命令列 #sudo ufw allow 80/tcp,再把 ufw 啟動。 安裝過程 : a) 命令列 #sudo apt-add-repository universe:由社群維護的軟體庫新增到系統的更新列表上,基本上 OS 系統已經有預設了。 b) 安裝 apt-transport-https :這是 HTTP over TLS。 c) ... Read more »
初學 ESP32-S3 攝像模組的開發 - 2月 25, 2025 ESP32-S3模組的核心是 XTensa 雙核的處理器,運行最高時脈為 240MHz。這個無線模組具備 WiFi 2.4G 無線網路,還有低功耗的藍芽 BLE。模組外觀如下圖一,晶片本身帶有兩組 USB 介面,其中一組是 USB_UART 通訊介面,另一組為 USB OTG。圖一的右邊 type-C USB 是 serial 通訊端口,用來接 Arduino IDE 或者 debug 之用,圖一的左邊 type-C USB 則是 OTG 之用。 圖一:攝像模組的外觀 ESP32-S3 模組的硬體規格能從晶片命名來得知,我們從外觀圖知道這是 N16R8 編號,再根據技術文件的命名規則(下圖二),因此這顆模組帶有 Flash 16MB (Quad SPI) 以及 PSRAM 8MB (Octal SPI),這項資訊會用在稍後的 Arduino IDE 的環境設定。 圖二:晶片模組的命名規則 依據上述的規格,開啟 Arduino IDE,在工具欄位底下設定相關的參數,如下圖三。開發板選擇"ESP32S3 Dev Module",然後記憶體分配的模式設為Huge APP,這樣才有足夠的空間存放攝像模組的APP程式碼。 圖三:Arduino IDE 的環境配置 接下來,我們要驗證攝像模組是否能不能正常運作。因此,開啟範例選項,如下圖四,選擇 CameraWebServer 的參考範例。在範例的程式碼中,先要選擇這個模型,下面這段定義要被採用,編譯過程便會將模組對應的腳位啟用。最後,我們再填入無線網路的 ssid 與 password,並且檢驗編譯範例有沒有出現錯誤。 #define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM 圖四:攝像模組的參考範例 成功編譯後,再進行燒錄。在圖一的模組外觀,上面有兩顆小按鈕,左邊是 rese... Read more »
[模組] 三軸陀螺儀與加速規 Gyro & Accelerometer - 12月 24, 2015 # ADXL335 三軸加速計的 USB 體感搖桿 # 三軸重力加速計 Accelerometer (GY-61 ADXL335) 前言 前一篇 " 三軸重力加速計 " 介紹 ADXL335 晶片的重力加速計 (也稱加速規),主要能偵測出三軸的重力變化,便能得知物體轉動方向方位。有一個特殊情況可解釋陀螺儀的作用,當加速規放置水平時,此時轉動轉動 Z 軸,我們會發現 X/Y 軸的重力值變化量其實並不大,請參考底下的實驗影片。這樣的變化量可能被誤以為是雜訊,不容易判斷物體是否方向方位在改變。如果能再多計算每一軸轉動的速度,由轉動的角速度輔助,便能計算物體位移量。於是,陀螺儀正是用來計算角速度的,配合重力計一起使用。因此,若加速規再輔以陀螺儀的功能,這樣能更精準算出物體的移動與轉動方向 (我覺得這是很複雜的數學)。 設計流程 Arduino 官方網站 中提供好多種重力加速計與陀螺儀的模組,我便找了一顆 MPU6050 晶片來測試。這顆晶片不只具有三軸重力加速計,還有陀螺儀的功能,對外的通訊介面為 I2C 方式。首先,實驗過程我採用恩智浦的 LPC1114 控制器來比較一下 MPU6050 與 ADXL335 的重力數值,如圖一所示。圖一的 LCM 第一行顯示的是 MPU6050 X, Y, Z 軸的重力值,第二行顯示的是 ADXL335 的三軸重力值,我已經把兩塊模組的 X/Y 軸方向調整為一致了 (兩塊模組的三軸定義方向其實不太一樣,用軟體方式調整),如圖右下角所示。圖中,X 軸的重力值約為 -0.023g 和 -0.018g,Y 軸的重力值約為 -0.016g 和 0.018g,Z 軸的重力值約為 0.964g 和 1.112g。兩者數值的誤差,我的解釋是實驗過程並沒有做校正的動作,因此兩者模組存在一些誤差。撇開誤差,如果我們的實驗對精準度沒有要求太高的話,倒是很快取得三軸重力數值並計算出大概方位。 圖一:MPU6050 與 ADXL335的加速規數值 (單位 mg) 規格分析 下圖二是 MPU6050 晶片的陀螺儀規格,這顆可提供四種精度,... Read more »
[應用] USB host 轉換到 RS-232 的解決方案 - 11月 05, 2018 最近遇上一個問題,工業儀器設備越來越多採用USB介面取代RS-232,造成原本RS-232設備無法對接。就介面標準來看,在工業使用上 RS-232 是點對點的通訊協定,沒有主從分別的傳輸介面,傳輸距離數十公尺遠,如果再轉成 RS-485 傳輸距離更遠。相對於USB,具有主從架構的傳輸介面,因為來自電腦介面的標準,傳輸線距離僅數公尺遠。然而,坊間看到的 USB To RS232 轉換線只是 USB slave,必須接到電腦 (USB host),這種傳輸線無法直接接 USB儀器 (USB slave),所以我先要找到一個 USB host 轉換中介,再寫一個轉換程式後,才能把 USB儀器的數據轉到 RS-232 設備上。 目前找到的 USB host 開發平台有 FTDI VNC2 和 樹莓派 ...等方法,FTDI VNC2具有 USB host 接口功能,就像小型嵌入式系統,兼具體積小的特點,不過我們必須用 FTDI 專用的 IDE 來開發程式。而樹莓派本身就是一個以 Linux 為核心的操作平台,猶如一台小型電腦,可直接在上面以 C++ 語言來開發轉換程式,相較來說比較便利。底下我採用樹莓派的轉換方案,圖一是設備之間的方塊圖,中間以樹莓派系統當作轉換的中介,圖右邊的USB工業儀器接到樹莓派之後,樹莓派的操作系統便能辨識出 USB 裝置當作一個 ttyUSB 串口,我們開發一個轉換程式將從這個串口接收到的數據轉傳到圖左邊的串口。網路上有很多 ttyUSB 串口傳輸的程式,可以下載研究看看,圖三是我程式開發的流程圖。 圖一:解決方案方塊圖 圖二:實際操作的照片 圖三:程式設計的流程圖 int main(int argc, char **argv) { int i; char outBuf[32]; pthread_t threads[4]; memset( Buffer, 0 , sizeof(Buffer) ); for(i = 0; i < 4; i++) { usbPort[i] = fd[i] = -1; threads[i] = -1; ... Read more »
ESP-IDF 在 Visual Studio Code 教學 (不同於 ESP32 Arduino IDE) - 1月 17, 2022 # ESP32 在 VS Code 開發環境的編譯與除錯 距離上次寫關於 ESP-IDF 文章已經一年了,參考上面的連結,這期間 Espressif IDF 版本升了不少級數,在程式開發上又新增了一些便利的功能。首先在 Visual Studio Code 先安裝插件 Espressif IDF Configuration,如下圖影片所展示。現階段並沒有安裝最新的插件 v1.3.0,因為 VS Code 和 Espressif 之間似乎有不相容的問題,網上有人也提到遇到版本問題,所以我們現階段就安裝前一版本,等待一段時間後,問題解決了,再升級到最新版。 在 v1.2.0 Espressif 新增一個功能,創建新項目 (New Project),如下面影片所展示。我們從配置中能設定項目名稱,選定路徑,選擇使用的開發板型號,最後可以選擇由系統的 template 範例來創建新項目,或者自行手動添加項目所需的 Components 來創建。 創建項目後,我們可以在 VS Code 環境進行編譯,當然也可以在 Command Line 的終端機環境下編譯。在終端機環境下,我們必須先設定環境變數,執行 export.bat ,參考底下影片的操作。接著,我們就能以指令方式執行編譯," idf.py build ",然後燒錄上傳也是用指令執行。使用時,可先查看 idf.py 這個程式的說明。 終端機方式並不是我們首選的環境,回到 VS Code 環境上。有關編譯項目的參數,我們要打開 SDK Configuration,請參考下面影片所展示。SDK Configuration 畫面裡所有的配置是來自 sdkconfig 這個文件,可以用一般的文件方式打開來看看,裡面的參數主要定義 ESP32 系統層級的配置。除了這個文件之外,每個子項目或路徑底下還有個別的參數,檔名為 Kconfig.projbuild ,這文件檔採用結構式的編排,當 SDK 配置時會將這個檔案也一起載入,我們可以比對 Kconfig 檔案內容與 SDK 呈現的欄位之間的關係。... Read more »
留言