目前分類:未分類文章 (16)

瀏覽方式: 標題列表 簡短摘要
        過去常常思考一個問題,股市的量價關係如何與物理力學產生連結呢?股市的技術指標如何與牛頓定律扯上關係呢?我在這裡不探討數學式子,單純從概念來思考。以下謹代表個人研究心得,不負責盈虧。首先,股市的成交量能代表推力或衰退力道,股價代表移動的距離大小,股本可視為一個物體的質量。在股海時間久了,普遍的認知就是股本越大越需要更大的成交量能來推動價格,小股本的公司只需一點推力就能產生推升的效果,這樣的邏輯可以套用到力學當中的牛頓第二定律 F = MA。
 
        股市中,常見的技術指標 RSIKD、MACD,根據定義 RSI 代表強弱指標,以價格的最高最低來計算 RSI 數值。我們試著把價格高低點想像成移動的距離遠近,移動距離越大是不是代表發力的力道越大?於是,RSI 指標從 50 開始往上增加時,表示開始發力,F 開始產生作用,產生加速度 A 的移動,如下圖所示。

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        工廠生產設備遇到網路化的問題,偏偏產線設備不具有網路端口,這時候可以使用 RS-232 to Ethernet 模組來解決,下圖一所示。有些設備不具有網路,只要將下圖的模組 RS-232 配置設定好後(圖四),設備與模組間就算搞定了,接下來再設定網路模式。
 
設備用到的模組:串列資料傳輸轉換為網路通訊
圖一:RS-232 to Ethernet 轉換模組
 

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

 
文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

系統架構

        以下內容是實際應用在工廠的案例。在提升工廠的設備產能效率上,需要將產線上的設備進行 e 化,並且收集各個設備的數據,在後端進行數據分析。首要,設備要具備連網的功能,如果無法連網,也要開發一個類似 gateway 的轉換器與設備相連,將該設備網路化。工廠網路化之後,工業連線有一套資料傳輸標準,稱為 MODBUS [1],每台設備皆可透過這套通訊協定傳送資料,如下圖所示。最後,收集來的資料必須找個地方存放以便分析,安裝一套資料庫或使用既有的資料庫是不錯的選擇,而後端的資料庫可以依照使用者的熟悉度安裝與配置,目前這工具分別與 Oracle、SQLite、MS SQL測試過連線和讀寫。
        實際開發的過程中,遇到最大的挑戰是產線設備的聯網,有些產線的環境比我們想像的還惡劣 [2]。並非所有生產設備都具有網路接口,有的設備只有 RS-232/RS-485 接口,有的設備只有 USB 輸出,在不更換產線設備的前提下,我們需要在設備外面再連一個轉換器,將接口轉換成網路讓生產線具有聯網的功能,參考 [3][4] 文章的說明。
系統架構圖
圖一:系統架構圖
 

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

一,準備工作

  1. 準備作業系統 Ubuntu 18.04 以上的 Server (無UI),或 Desktop (有圖形UI,但容量大)。
  2. 安裝並開啟 ssh:Desktop 版本才需要安裝 SSH server,Server 版本已經有了。在命令列輸入 #sudo apt-get install ssh,這樣我們便可從遠端 SSH-client 連線進入作業系統操作了。
  3. 設定系統 DNS:/etc/resolv.conf裡面要新增 DNS 服務器,如 nameserver x.x.x.x,這樣之後我們在更新軟體套件時才不會出錯。或者,修改 /etc/netplan/xxxx-init.yaml 檔案的內容,重新設定網路參數,這樣也行。

二,安裝 Jitsi Meet 服務器

  1. 設定域名:到 DNS 註冊一個機器的域名對應到公網 IP 位址,比如在公網輸入meeting.jitsi.tw 便會指向安裝的服務器。不過,在測試階段,我們可以考慮架設一台本地DNS server (用Windows 2008/2012/2016...的環境),配置一個內部的域名,這樣暫時不用註冊一個公共的域名。
  2. 設定服務器的主機名稱:修改 Linux 系統的 /etc/hostname內容,或者命令列 #sudo hostnamectl set-hostname meeting,這樣機器在網上能被其他電腦用名稱來訪問了。
  3. 開啟防火牆:利用 ufw 命令開啟下列的埠,TCP 80 (http)443 (https)4443 (video/audio)22 (SSH),以及 UDP 10000 (video/audio)。例如命令列 #sudo ufw allow 80/tcp,再把 ufw 啟動。
  4. 安裝過程

 

漢亞科技 Han-Ya 發表在 痞客邦 留言(1) 人氣()

        最近在研究語音合成技術,各家的平台大都以雲端的語音合成為主,少數還提供離線的語音合成。本文找了三家 (阿里、百度、同花順) 提供語音合成的平台,平台會提供各類開發的 SDK 和 RESTful API 兩種接口,其中它的SDK 就是根據自己使用的程式語言調用SDK的接口,例如在之前中文語音合成+語音辨識 以百度的AI開放平台 in Python 開發 一文中我們用 Python 語法調用它的 SDK 函數。

 

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        最近遇上一個問題,工業儀器設備越來越多採用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 設備上。

 

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        語音合成和語音辨識的技術存在數十年,不過近年來將這語音的技術應用在蘋果的Siri和亞馬遜的echo設備裡。對開發者而言,語音技術最麻煩的是各種語言、不特定人的字庫辭庫訓練,光要建立這龐大且精準的訓練庫就不是短時間能完成的。最近,發現百度(Baidu)提供中文語音合成和語音辨識的服務,網站如下:AI開放平台,裡面不只有語音技術服務,還有其他技術。調用百度各項技術的SDK,建立網路連結後,連上AI開放平台,便能取得合成的結果或者辨識的結果。另外,SDK也有提供各種程式語法的範例,如:Java、C++、C#、Python、Node.js ... 等等,以滿足各類程式開發者的需求。底下我以Python語法為例,開發一個中文語音合成+語音辨識的測試程式。

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        最近從網上買了兩個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開發的人來說會方便許多。

 

文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        前陣子在開發安卓系統的 SIP 撥號功能 (參考 "SIP Voip 在 Android 系統上的開發" 一文),底層 NDK 設計與編譯大致完成,接下來要設計使用者頁面。首先,必須在腦海中約略規劃一個使用者頁面的雛形,再根據這個雛形設計一個符合 Android 系統的 layout。我們可以思考整個頁面該如何的布局,是垂直型排列或者水平的排列?還是類似表格式的布局?
 
        就布局而言,安卓系統的 Layout 分成三大類型,分別是 LinearLayoutRelativeLayout  TableLayout。LinearLayout 顧名思義就是內部 Widget 元件必須是直線布局,直線的排列可分為垂直或水平 (這裡可沒有斜線喔!)。RelativeLayout 是指內部的元件屬於不規則型的布局方式,每個元件彼此間靠著相對位置來排列。TableLayout 是指元件排列方式屬於表格類型,由幾行幾列所組成。
文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        大約二十年前,VoIP 網路電話技術如火如荼地發展,隨著 Ethernet 網路越來越成熟,網路品質也越來越穩定,辦公室的桌上話機逐漸被網路電話所取代,當時的思科 (Cisco) 就是網路界的霸主。當時我們開發網路話機是以 embedded system 為架構的設計,如圖四所示,搭配 CTI 伺服器組成一套辦公室的電話系統解決方案。

 

       近年來,隨著智慧型手機逐漸普及化,無線網路 (WiFi) 和行動數據的頻寬與通訊品質大幅提升,出現了許多軟體電話 (Soft Phone) 的 APP。其實,這些軟體電話也是網路電話的一種,從過去的桌上型網路電話,進化成行動型網路電話。軟體電話也存在很久了,過去主要安裝在 PC 上,但因為使用者操作起來並不像網路話機的方便,早些年這種安裝在 PC 上的軟體電話多半不流行。拜智慧型手機的快速發展之賜,軟體電話找到發展的空間,像 LINE、微信...等社群軟體都內建網路或視訊電話。

文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

Android NDK 開發的初體驗

 
<遇上 NDK 編譯的問題>
文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        三軸重力加速計是一種重力感測器,三軸指的是 X, Y, Z 軸,重力加速度就是我們高中理化曾學過的地心引力 (g)。由於這個重力加速度是地球的天然資源 (就像磁力線的指南針),所以當我們身體傾斜或翻轉時,透過地心引力的影響讓身體內部機構可感受到其傾斜或翻轉。於是,將此概念應用到科技工業上,像電玩的體感遊戲 (Wii, Kinect...)、飛行器、懸臂旋轉等都使用到相關元件,本文針對三軸重力加速計的晶片做測試研究,希望能獲得更多的應用靈感。首先,找一顆晶片試試吧!Arduino 開發套件常見的三軸加速計,使用的是 ADI ADXL335/345 晶片,因此我買了一個來測試玩玩看,並用 NXP LPC1114 晶片來設計系統。

文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

       德儀的 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 連接到自製的藍芽開發板。

文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        在 Android 裡面的藍芽和低功耗藍芽 (Bluetooth Low Energy) 控制方式不一樣,這裡有一篇文章[連結]說明傳統藍芽與 BLE 有哪些部份不同。此外在 API 方面,很多低功耗藍芽的函式必須在 API level 18 以上才能使用,也就是 Android 4.3平台以上。上一篇介紹的 BluetoothChat 程式是採用傳統的藍芽控制方式,為了讓開發者認識 BLE 如何控制,Android 官方網站提供一個 BLE Gatt 的範例程式,圖一所示是這個範例程式的專案檔,主要的程式檔為 DeviceScanActivity、DeviceControlActivity 和 BluetoothLeService。

文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()

        第一次寫 Android 藍牙連線程式還不知該如何開始 (新手上路),於是先找一本 APP 開發的書吧!也許從書中能獲得一些訊息。之前筆者主要使用的程式語言是 C/C++,所以初次看到 APP 的每個範例都不是很面熟。經過幾周的研讀後,給後進初學者的建議是先準備下列的書和開發環境:

  1. Java 8.0 程式語言 ,如果對 Java 語法不熟悉,最好有一本工具書能快速查詢。
  2. Android APP 程式設計,學習 UI 如何設計的概念。
  3. 開發 IDE 環境 Android Studio 1.4 以上

        Android 官方的開發網站提供不少範例程式,由於先前開發藍牙相關的設備,因此我們從網站下載一個 BluetoothChat 程式來研究,藉此熟悉 Android SDK 來了解如何使用藍牙介面。首先了解一下這個範例有什麼功能,它的功能其實很簡單 (範例就是要簡單才夠力),即透過藍牙通訊在手機或平板上互傳訊息的程式。圖一是範例程式的專案打開後列出相關的檔案,包含設定檔、java程式檔、資源檔。然而主要的程式檔為MainActivityBluetoothChatFragmentBluetoothChatServiceDeviceActivity 這四個,另外還有一些程式檔案是 debug log 的用途,方便我們在 debug 模式下顯示於 IDE 的訊息。不過,初學者可以直接從上述的四個檔案來研究,log 以後有興趣再說。

文章標籤

漢亞科技 Han-Ya 發表在 痞客邦 留言(0) 人氣()