2017年11月6日 星期一

[RPI3] 安裝opencv 3.3



最近想在Rpi3上使用opencv ,網路上找到許多方法,有的版本不太符合經測試後將安裝過程紀錄於此以下設定以2017-06-21-raspbian-jessie版本為準 紅色粗體字表示設定項目 藍色粗體字表示指令 黑色粗體字表示編輯內容、選擇設定或輸入

2017年10月28日 星期六

[RMT Processing] v1.04 訊號資料可以存檔了

新功能:
  • 解決UI在Windows使用非預設佈景主題文字大小設定時,因畫面變更導致程式出錯問題
  • 除了設定之UI元件外,其他所有UI元件均改用獨立執行緒進行更新,增加程式穩定性與反應時間
  • 訊號處理程序使用獨立執行緒,減少因圖檔下載時間過久而導致程式沒有反應的問題
  • 每個訊號的振幅差值、警告數與Nan數等資料,以 CSV 格式存檔,供資料分析使用
  • 可設定抓取資料的間隔時間 (Interval) ,範圍1~10秒,以減少累積資料量

2017年10月26日 星期四

[RMT Processing] v1.03

v1.03版功能
  • 新增 NaN訊號偵測,但可能產生少數假訊號,假訊號數量通常只有1~2個,因此設定偵測的數量 (Max Nan) 不要設定太小。當大量NaN產生時,容易有4級以上地震發生。
  • 計算圖檔下載、訊號計算、搜尋NaN等所花費的時間。如果程式沒有回應,可能是在下載時伺服器回應時間過久所致,目前發現警告訊號數量多時容易有此現象,只要稍待片刻程式即可恢復正常。
  • 訊號處理結果直接標示在Output Image
  • 檔案依類別統一存放在指定根目錄下的分類目錄

2017年10月22日 星期日

[RMT Processing] 測試版 v1.02

  • 為避免電腦時間誤差, 擬用圖片上的時間做為檔名, 先框出日期時間的字元位置, 為後續OCR樣本擷取與比對做準備
  • 加快約10倍的calc處理速度,原本需0.25s, 現在只要0.012s, 下圖片中的0.025s是包括框出字元的分離時間.

2017年10月19日 星期四

[RMT Processing] 測試版 v1.01

增加功能:
1.指定影像儲存目錄
2.拍照
3.錄影
4.超過警告量設定時自動存圖 (Auto Save Warning Image)
5.組態設定存檔 (RMTProcessing.cfg, 第一次執行會自動產生預設之設定)

2017年10月18日 星期三

[RMT Processing] 測試版 v1.0


現在可以偵測18個站台是否被擠壓,右上角Setting可設定
  • Sound超過警告數量Warn時是否要發出聲音提示。
  •  Diff:震幅差距 當訊號小於震幅差距時,該訊號會被標示為警告
  • Warn:警告數量設定

2017年10月17日 星期二

[RMT Processing] AOI 定義

有空就做一點, 找出AOI區域, 共有 18*3=54個. 如果要用CUDA,需要54個平行處理單元.

[RMT] RMT Processing

開始進行 RMT 研究專案, 使用C#語言, 載入RMT圖檔進行分析, 打算用CUDA加速, 須用 DLL import 連結.

網址 : https://github.com/ghostyguo/RMTProcessing



2017年10月14日 星期六

[CUDA] SDK安裝、範例編譯與 HelloCuda 程式





最近想玩玩 CUDA programming,以下是一些收集到的資料,先筆記一下。我使用Visual Stidio 2015來開發,安裝時須順便安裝Windows10 SDK

2017年10月13日 星期五

ESP32的SPIFFS

最近發現ESP32也有支援SPIFF, 打開範例 SPIFFS_Test 就可以看到, 但是測試了一下卻發現無法使用:
  
經日本網友協助實測發現需要修改一下才能使用在這邊紀錄一下:

    if(!SPIFFS.begin(true)){
        Serial.println("SPIFFS Mount Failed");
        return;
    }


據日本網友測試,有的板子Serial無法使用Baud到1152000,可以改成9600 試試。

2017年8月18日 星期五

[Java] 抓取RMT圖存檔的程式

這是寫給 RMT 地震研究用的 Java 程式, 功能是抓取 RMT 圖檔作為紀錄, 存檔後可以用 ffmpeg 轉成影片. 使用這個程式需先安裝兩個必要程式: 

2017年7月9日 星期日

[ESP32] 改寫自ESP8266的WebServer 類別

ESP8266 的範例 (程式庫) 提供一個 WebServer 類別可以在 web client 連線時分析其 request 字串取出 url 以及 key-value 參數ESP32 至目前為止並無提供此函數 
本專案改寫自 ESP8266 的程式庫,因 ESP8266 有提供 SPIFF 的檔案系統ESP32 的檔案系統則是在 SD 卡上原來的 ESP8266 的程式庫版本有使用 FS 直接將檔案內容作為回應的 method 因為我實驗用的 ESP32 devkit 板沒有 SD 卡插槽,因此目前這個改寫的版本沒有 FS 的功能

完整程式碼在 https://github.com/ghostyguo/ESP32_WebServer_Test

2017年7月4日 星期二

[Linkit7697] BLE SimplePeripheral 範例研究


最近剛出爐的7697,具有BLE功能,SimplePeripheral範例中使用BLE點亮LED,在範例目錄…\Arduino15\packages\LinkIt\hardware\linkit_rtos\0.7.11\libraries\LBLE\examples\SimplePeripheral之下有個aia檔,它用了實驗性的Bluetooth LE extension,匯入AppInventor後的畫面如下:

2017年6月17日 星期六

在mac OSX下設定ESP32的發展環境

idf 環境, 原廠設定的說明文件: https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain
有以下要修正與注意的地方:
  • 環境變數設定在 ~/.profile , 應為 ~/.bash_profile 才對
  • 原廠 esp32 dev board 使用 cp2102 晶片, 所以在 mac 上需安裝 CP2102 的 driver
  • make menuconfig 時 (在檔案 sdkconfig 裡面) 設定的通訊 port (CONFIG_ESPTOOLPY_PORT) 為 /dev/cu.SLAB_USBtoUAR
arduino 環境, 原廠設定的說明文件: https://github.com/espressif/arduino-esp32#instructions-for-mac , 如果重新啟動 arduino 後找不到 esp32, 要到 Preference 裡面去修改 Sketchbook location 的設定

2017年6月13日 星期二

[ESP32] arduino環境下的ADC test

經測試發現原本ESP3216CHADCWiFI啟動後, 只剩下GPIO 36393435 32336隻腳可以用,這6隻腳都是屬於ADC1的channel, esp-idf 環境尚未測試,所以規劃時可以將這6隻腳對應到原本 arduino 的A0~A5
測試程式如下

2017年6月4日 星期日

ESP32 使用 I2C LCD

ESP32 晶片原本有 2 組 I2C 介面, 它的 Arduino Core 預設支援一組I2C, IO21為SDA, IO22為SCL, 要注意的是:
  1. 須選用3.3V的LCD模組
  2. 因為 ESP32 使用 4 組 timer 去支援 16ch 的 PWM, 且須先使用 attach 將某個 ch 與 pin 連接, 因此沒有原生的 AnalogWrite(), 而是使用ledcAnalogWrite(), 導致某些版本的 I2CLCD 程式庫編譯時會發生錯誤, 因此須使用直接呼叫Wire程式庫的版本, 例如 https://github.com/esp8266/Basic/tree/master/libraries/LiquidCrystal

2017年5月30日 星期二

在ESP32使用mqtt publish與subscribe

要在ESP32上使用mqtt, 需先到 Sketch>Include Library>Manage 下載安裝 PubSubClient 程式庫, 以下為 ESP32 的程式

在RPi3上安裝mosquitto (mqtt broker)

以下設定以2017-04-10-raspbian-jessie版本為準
------ 安裝
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients  

2017年5月8日 星期一

適用於ESP32 server應用的HttpRequestString類別



最近在測試ESP32他的SimepleWiFiServer範例直接使用WiFiServer類別建立server,ESP8266則直接提供WebServer類別,server.on()函數可以根據url後面的字串自動呼叫處理函數,這功能在ESP32目前尚無法使用因此撰寫了 HttpRequestString 類別用來支援參數分析只要將GET後面的字串帶入就可得到 Uri與參數的Name-Value該類別使用了 String 類別WString.hESP32提供的如果用於其他Core須自行修改例如 #include <String.h>

2017年4月19日 星期三

解決RPi3的WiFi設定為AP後子網路內的裝置無法互相連線的問題

想用RPi3打造智慧家庭的閘道器, 參考這篇 [Raspberry Pi 3] 多了WiFi,價格不變,輕鬆打造隨身無線基地台 , 把Wifi設定為AP後, 發現子網路內的裝置無法互聯, 修改方式很簡單, 只要在原文調整防火牆的 IP 偽裝設定這一段加一行iptables的設定就可以了, 修改後的設定步驟如下:
sudo iptables -F
sudo iptables -F -t nat
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o wlan0 -j ACCEPT

2017年3月12日 星期日

[python] 從台灣yahoo下載公司的基本資料



這個程式從每日成交資訊讀取股市代號, 然後從yahoo下載公司基本資料,存成CSV檔,例如1101台泥https://tw.stock.yahoo.com/d/s/company_1101.html
附註ETF權證特別股等沒有公司基本資料可下載

[python] 下載台灣股市的每日成交資訊




下載台灣股市的每日成交資訊, 存成CSV檔

2017年2月23日 星期四

[golang] 使用Golang 抓取LASS JSON API的資訊



LASSjson api2層的json結構,網路搜尋到的json範例,多是只能抓取一層,能抓取第2層的例子,卻只能在第2層放內建的intfloat之類的資料型態,因LASS2層資料用golangjson讀取後會形成一個map的資料結構,所以須使用interface陣列才能進去讀取第2層。

2017年1月12日 星期四

[python] 抓取台灣上市櫃公司股票資訊

以前看到電視的股票分析師在電視上報股票, 老是遮遮掩掩的, 那時就用MFC寫程式從yahoo抓資料, 找出分析說的是那隻, 研判是要炒作還是出貨, 後來也寫過群益API的期貨交易程式. 程式功能要全部自己來, 要花很多時間. 近來python很紅, 不是語言本身很強, 而是有太多已經ready的package可用, 現在甚至在連手機上都已經可以寫python了, 想想以後未必會在windows上做這件事,所以想轉換到python上, 逐步建立自己的工具程式. 第一步當然是先抓到股名代碼名稱, 這從證券交易所抓每日收盤行情就可以了. 因為yahoo有提供全世界股票的資料, 如果要抓個股, 從yahoo抓比較方便, 就不用每天抓收盤行情存資料庫了