目前分類:未分類文章 (16)
- Dec 21 Thu 2023 14:21
股市的技術指標(RSI、KD、MACD)與物理力學的關係
- Nov 23 Thu 2023 11:58
設備用到的模組:串列資料傳輸轉換為網路通訊
- Feb 04 Thu 2021 20:07
[模組] LD3320 離線語音辨識晶片與 ESP32 無線傳輸
- Nov 15 Sun 2020 15:29
[應用] 生產線設備的數據分析 (以 C# 程式開發)
系統架構
![]() |
圖一:系統架構圖 |
- Jun 23 Tue 2020 07:03
[應用] Jitsi Meet server 視訊會議系統
一,準備工作
- 準備作業系統 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 啟動。
- 安裝過程:
- Feb 15 Sat 2020 10:30
[語音] 以 RESTful API 通訊的雲端語音合成 (Text To Speech) in C++ 開發
最近在研究語音合成技術,各家的平台大都以雲端的語音合成為主,少數還提供離線的語音合成。本文找了三家 (阿里、百度、同花順) 提供語音合成的平台,平台會提供各類開發的 SDK 和 RESTful API 兩種接口,其中它的SDK 就是根據自己使用的程式語言調用SDK的接口,例如在之前「中文語音合成+語音辨識 以百度的AI開放平台 in Python 開發 」一文中我們用 Python 語法調用它的 SDK 函數。
- Nov 12 Mon 2018 13:38
[應用] USB host 轉換到 RS-232 的解決方案
最近遇上一個問題,工業儀器設備越來越多採用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 設備上。
- Aug 29 Wed 2018 09:36
[語音] 中文語音合成+中文語音辨識 以百度的AI開放平台 in Python 開發
語音合成和語音辨識的技術存在數十年,不過近年來將這語音的技術應用在蘋果的Siri和亞馬遜的echo設備裡。對開發者而言,語音技術最麻煩的是各種語言、不特定人的字庫辭庫訓練,光要建立這龐大且精準的訓練庫就不是短時間能完成的。最近,發現百度(Baidu)提供中文語音合成和語音辨識的服務,網站如下:AI開放平台,裡面不只有語音技術服務,還有其他技術。調用百度各項技術的SDK,建立網路連結後,連上AI開放平台,便能取得合成的結果或者辨識的結果。另外,SDK也有提供各種程式語法的範例,如:Java、C++、C#、Python、Node.js ... 等等,以滿足各類程式開發者的需求。底下我以Python語法為例,開發一個中文語音合成+語音辨識的測試程式。
- Jul 19 Thu 2018 12:50
[模組] LoRa - Arduino MKRWAN 1300 通訊模組
最近從網上買了兩個Arduino MKRWAN,屬於LoRa開發板的一種,可以拿來研究物聯網的通訊傳輸,一個用來當發送端,另一個用來當接收端。首先瞭解開發板的架構,Arduino MKR WAN 1300開發板是由ATMEL SAMD晶片,再搭配 LoRa 模組所組成,系統方塊圖如下所示。
在下圖的左邊,ATMEL SAMD就是Arduino Zero開發板的控制器,以Cortex-M0為核心的晶片。而在下圖的右邊,LoRa模組是由Murata公司製作的通訊模組,該模組內部包含一顆STM32L系列的控制器和一顆SX1276 LoRa晶片。在市面上容易買到單獨SX1276/78晶片的LoRa模組,這種必須仔細了解SX1276內部暫存器的設定才能順利開發與運用。另外,也有一類模組還包含一顆控制器,通常這種模組是用 AT command 方式來控制 LoRa 傳輸,很多複雜的控制命令已經被封裝成 AT 指令了,對初次接觸LoRa開發的人來說會方便許多。
- Jan 27 Fri 2017 10:15
[APP] Android 頁面 layout 的基本設計
- Jul 27 Wed 2016 13:43
[APP] SIP Voip 在 Android 系統的開發
大約二十年前,VoIP 網路電話技術如火如荼地發展,隨著 Ethernet 網路越來越成熟,網路品質也越來越穩定,辦公室的桌上話機逐漸被網路電話所取代,當時的思科 (Cisco) 就是網路界的霸主。當時我們開發網路話機是以 embedded system 為架構的設計,如圖四所示,搭配 CTI 伺服器組成一套辦公室的電話系統解決方案。
近年來,隨著智慧型手機逐漸普及化,無線網路 (WiFi) 和行動數據的頻寬與通訊品質大幅提升,出現了許多軟體電話 (Soft Phone) 的 APP。其實,這些軟體電話也是網路電話的一種,從過去的桌上型網路電話,進化成行動型網路電話。軟體電話也存在很久了,過去主要安裝在 PC 上,但因為使用者操作起來並不像網路話機的方便,早些年這種安裝在 PC 上的軟體電話多半不流行。拜智慧型手機的快速發展之賜,軟體電話找到發展的空間,像 LINE、微信...等社群軟體都內建網路或視訊電話。
- Jun 10 Fri 2016 14:53
[APP] Android NDK 開發的初體驗
- Dec 18 Fri 2015 14:07
[模組] 三軸重力加速計 Accelerometer
三軸重力加速計是一種重力感測器,三軸指的是 X, Y, Z 軸,重力加速度就是我們高中理化曾學過的地心引力 (g)。由於這個重力加速度是地球的天然資源 (就像磁力線的指南針),所以當我們身體傾斜或翻轉時,透過地心引力的影響讓身體內部機構可感受到其傾斜或翻轉。於是,將此概念應用到科技工業上,像電玩的體感遊戲 (Wii, Kinect...)、飛行器、懸臂旋轉等都使用到相關元件,本文針對三軸重力加速計的晶片做測試研究,希望能獲得更多的應用靈感。首先,找一顆晶片試試吧!Arduino 開發套件常見的三軸加速計,使用的是 ADI ADXL335/345 晶片,因此我買了一個來測試玩玩看,並用 NXP LPC1114 晶片來設計系統。
- Dec 08 Tue 2015 20:25
[單晶片] 德州儀器 CC2540 藍芽開發 + ADC
德儀的 CC2540 / 2541 藍芽晶片已經推出市場幾年了,隨著模組廠商的努力開發,將藍芽模組設計成 SMD 貼合元件,對於小型設計廠商的我們真是大大的便利。目前的藍芽模組不僅體積越做越小,價格也越來越親民,如果自己有些 idea 想要設計電路板來驗證藍芽相關的應用的話,直接拿藍芽模組來實現是不錯的方法之一。此外,CC2540 本身就是一顆 8051 為核心的晶片,所以具備一些 MCU 的基本功能,若將其 MCU 與藍芽的功能都發揮出來,這樣不僅系統成本降低且耗電量也會減少。
我們拿市面上容易買到 HC-05 / HC-08 的藍芽模組來實驗,這塊模組原本是透過 UART 介面與外部的 MCU 溝通,讓使用者不需要為了藍芽的技術知識而傷腦筋。模組本身已經內建設計好藍芽的基本功能,使用者只需藉由 UART 介面設定參數便可動作。不過,我們卻想要把這塊模組改造,將本身的 MCU 與藍芽的功能發揮出來。首先,要準備德儀的 CC-Debugger 除錯器和安裝 IAR Embedded 軟體。接下來,將模組上面的五根接腳接出來,分別為 Vcc,、GND、RST、DC 和 DD,再連接到除錯器的相對應接腳,這樣就可以準備開發 CC2540 的韌體了。底下圖一所示就是將 CC-Debugger 連接到自製的藍芽開發板。
- Nov 01 Sun 2015 21:32
[APP] Android BLE範例程式 -- BluetoothLeGatt
在 Android 裡面的藍芽和低功耗藍芽 (Bluetooth Low Energy) 控制方式不一樣,這裡有一篇文章[連結]說明傳統藍芽與 BLE 有哪些部份不同。此外在 API 方面,很多低功耗藍芽的函式必須在 API level 18 以上才能使用,也就是 Android 4.3平台以上。上一篇介紹的 BluetoothChat 程式是採用傳統的藍芽控制方式,為了讓開發者認識 BLE 如何控制,Android 官方網站提供一個 BLE Gatt 的範例程式,圖一所示是這個範例程式的專案檔,主要的程式檔為 DeviceScanActivity、DeviceControlActivity 和 BluetoothLeService。
- Oct 21 Wed 2015 07:02
[APP] Android 藍芽範例說明 -- BluetoothChat
第一次寫 Android 藍牙連線程式還不知該如何開始 (新手上路),於是先找一本 APP 開發的書吧!也許從書中能獲得一些訊息。之前筆者主要使用的程式語言是 C/C++,所以初次看到 APP 的每個範例都不是很面熟。經過幾周的研讀後,給後進初學者的建議是先準備下列的書和開發環境:
- Java 8.0 程式語言 ,如果對 Java 語法不熟悉,最好有一本工具書能快速查詢。
- Android APP 程式設計,學習 UI 如何設計的概念。
- 開發 IDE 環境 Android Studio 1.4 以上
Android 官方的開發網站提供不少範例程式,由於先前開發藍牙相關的設備,因此我們從網站下載一個 BluetoothChat 程式來研究,藉此熟悉 Android SDK 來了解如何使用藍牙介面。首先了解一下這個範例有什麼功能,它的功能其實很簡單 (範例就是要簡單才夠力),即透過藍牙通訊在手機或平板上互傳訊息的程式。圖一是範例程式的專案打開後列出相關的檔案,包含設定檔、java程式檔、資源檔。然而主要的程式檔為MainActivity、BluetoothChatFragment、BluetoothChatService、DeviceActivity 這四個,另外還有一些程式檔案是 debug log 的用途,方便我們在 debug 模式下顯示於 IDE 的訊息。不過,初學者可以直接從上述的四個檔案來研究,log 以後有興趣再說。