2017年11月14日 星期二

Slack結合Docker容器的應用

眼見就要年底了,也該把研究小組讀的東西整一整,做個小結。
目前的想法是用Slack當作使用介面,可以達到下面功能:

  • 查詢Docker的狀態
    • ps
  • 驅動Selenium script 
    • 指定要跑哪個script,給參數
    • 跑某個預設的mocha test suite
  • Build某個產品
參照

2017年5月3日 星期三

安裝Docker環境

今年的任務其中之一是研究用container部署測試環境,打算用docker+kurbernetes+selenium做一個可以快速部署多國語言的測試環境。

第一步先用ubuntu 16.04的環境安裝docker。就按照docker的unbuntu 安裝手冊一步一步往下裝。

碰到的問題:
1. 安裝tigervnc後,連接vnc出現圖形介面出不來,畫面灰灰的。
   請教同事後得知是xstartup的設定要修改如下:

2. 設定apt-key跟repository的時候一直出現錯誤,解決方法
sudo: unable to resolve host kvm-009421: Connection timed out


2017年4月14日 星期五

TJBOT:聲音輸入輸出設定

始料未及,在聲音的設定部分卡了很久。目前總結的一些設定的步驟如下:
1. 把該連接的usb裝置連接上去 
2. 安裝alsa 
sudo apt-get install alsa-base alsa-utils libasound2-dev
3. 檢查是不是有抓到音效卡
lsusb

4.檢查音效卡的設定,執行下面指令可帶出設定畫面,用F6選擇音效卡看詳細設定。
alsamixer

5. 試著錄聲音(arecord 命令參考,這裡假設只有一張外接的音效卡)
arecord -D plughw:1 –duration=10 -f cd -vv ~/rectest.wav

6. 試著播放聲音,聽一聽是否聲音清晰且沒雜音
aplay /usr/share/sounds/alsa/Front_Center.wav
speaker-test -c 2 -t wav -D hw:0,0
aplay rectest.wav
測試指令,它會依左聲道、右聲道的順序反覆播放,可以按「Ctrl+C」來停止。


參考資料

/etc/modprobe.d/alsa-base.conf
move to
/usr/shared/modprobe.d/alsa-base.conf





TJBot狀況

在淘寶買的螢幕包裹不知道卡在哪一關,已經過了一週遲遲沒有到貨,最近在公司沒時間弄,家裡又沒有螢幕,進度好卡啊~上網研究一下發現淘寶跟黑貓合作的直送服務評價不好,聽說包裹會失去蹤跡,害我有點挫,希望能順利送到啊。

覺得有需要量電壓的需求,研究了一下萬用電表使用方法,蠻有意思的。


2017年3月26日 星期日

TJBOT: 替換LED與外殼打磨


目前為止,嘗試了使用wire-pi函式庫,讓綠光LED發亮的部分完成,接下來要試用wire-pi去驅動RGB LED發光。


還有打磨3D列印TJBot的殼,現在完成相機架的安裝,列印出來的零件有點殘”墨“,要一個個打薄才能裝進去,變成比較費工的任務。

2017年3月23日 星期四

用nodejs控制RGB LED

因為買到的不是Neopixl可程式化的LED,需要再研究一下LED的規格看有沒有需要加電阻,


根據歐姆定律,
R=V/I
V 為電壓單位是伏特(V),I為電流單位是安培(A),R為電阻使用的單位是歐姆(Ohm)

試算一下如果Pi的輸出電壓是3.3V(查到的GPIO電壓 3.3v),算下來只需要15歐姆的電阻

R=3.3v-3.0V/0.02=15ohm

但手上好像沒這麼小的。很怕把pi燒掉,有查到可以使用緩衝版,這樣好像越買越多材料了,還是先試試看好了。

至於控制LED的library要怎麼替換呢?在網路上搜尋到有三種方法:
  • 使用pi-blaster函式
  • wiring-pi
  • RPI.GPIO函式, 但他是用python寫的, 所以還要使用python-shell呼叫
    • 參照如何用python控制Pi 3的GPIO
    • https://www.youtube.com/watch?v=b4_R1eX9K6s
    • https://einhugur.com/blog/index.php/xojo-gpio/working-with-leds-and-wiring-4-pin-rgb-led-to-raspberry-pi/
    • https://github.com/geerlingguy/raspberry-pi-dramble/tree/dfe8b763513566e664506ee06378b261673ab831/playbooks/roles/leds/templates
  • 電路的連接要參考一下Pi3的腳位,不太確定應該怎麼接,找到一個arduino的專案參考



2017年3月21日 星期二

使用Watson Conversation寫一個chatbot

先前想寫一隻爬匯率的chatbot, 進度一直停留在可以抓到匯率, 但對話的部分還不知道從何下手, 剛好看到 developerWorks上有相關的文章, 先來研究一下Watson conversation service, 看是不是能達到我想要的功能.

概念:
Intent
Entities
Dialog

結合watson developer cloud的node sdk.

2017年3月15日 星期三

完成TJBOT還需要做的事情


1. 安裝nodejs
2. 安裝vnc(會議室只有投影機, 一次只能一個人連線)
    Pi 3 vnc 更新, TigerVnc install
3. 安裝vim(程式編輯器)
    sudo apt-get install vim
    vim教學
4. 申請Twitter帳號(參考, 參考二
a. 要使用twitter的api必須先申請twitter帳號    
b. 連到https://apps.twitter.com/ 建立一個新的 Twitter App 。     
c. 輸入 Name, Description, URL 。    
d. 到控制面板的 Keys and Access Tokens ,建立一個 Access Token 。    
e. 紀錄 Consumer Key, Consumer Secret, Access Token, Access Token Secret 在修改nodejs的設定的時候        會用到

5. 研究rpi-nodejs的專案 (需要公對母接線,對接pi跟麵包板, LED, 電阻)








6. 部署三塊
  • Speech to Text : 用語音控制LED變色
  • Sentiment Analysis: 用Watson Tone Analyzer與Twitter API判別大眾對某個語詞的感覺
  • Conversation:使用Watson Speech to Text, Conversation, 與Text to Speech服務建立一個可以回答問題的機器人

另外可同時並行的有
  • 機器人的殼安裝


延伸應用

2017年3月14日 星期二

Raspberry pi 無線上網 & LED連接

不想把Pi註冊到公司的資產系統上接受掃描,所以只能用自己的4G上網(參照:用usb連接iphone個人熱點上網

測試結果,連接自家Access Point或者是透過iphone wifi連接個人熱點上網,兩者都可以透過GUI設定成功連網。iphone的部分需注意個人熱點名稱不能含中文字,會跳出認證參數錯誤的視窗。

所有材料都差不多到貨了,才悲劇發現TJBot的code用的是Neopixel的LED,連接使用nodejs的ws281x函式庫,跟之前買的RGB共陽的LED不能直接替換,要改程式,電路連接方式要研究一下,找到參考資料如下。



補充資料

  • 在辦公室不方便每次聚會都搬著螢幕,應該要把vnc設定起來比較方便(參考Problem vnc server設定
  • Raspbian常用的套件參考此文




2017年3月9日 星期四

Rapsberry Pi 系統安裝與相機模組安裝


這次跟同事一起玩的小計畫, 要做的是IBM開源的這個機器人TJBOT













設定TJBOT需要的環境參照developerWorks 跟兩段Ustream上面的影片 (影片一  影片二)。

首先要安裝raspberry pi (官方文件 網友提供中文版本)安裝很順利,目前已經裝好了OS跟相機模組。可以參考下面的步驟,因為不同的OS有的工具程式不一樣,所以分成windows跟Mac有不同的安裝步驟。
我自己使用的是Mac的步驟:簡單筆記一下
清空SD
1. 使用SD Format把SD卡清空

燒錄OS
a. 確認SD卡的代號
diskutil list
b. unmount SD卡(假設上一步驟找出來的disk號碼是3)
diskutil unmountDisk /dev/disk3
c. 拷貝img檔到SD卡
sudo dd bs=1m if=2017-02-16-raspbian-jessie.img of=/dev/rdisk3
d. 退出SD卡

sudo diskutil eject /dev/rdisk3


接著先把無線網路設定起來, 參照鏈結。因為有連接螢幕,幾乎沒有用到命令列的地方。
點右上角的wifi按鈕, 選到要連接的AP,輸入密碼就完成連接。

參考用的config檔案完全沒用到:
# WPA-Personal(PSK) with TKIP and enforcement for frequent PTK rekeying
network={
 ssid="example"
 proto=WPA
 key_mgmt=WPA-PSK
 pairwise=TKIP
 group=TKIP
 psk="not so secure passphrase"
 wpa_ptk_rekey=600
}




2017年2月28日 星期二

Unicode & code conversion study

UTF-8 vs UTF-16
https://zh.wikipedia.org/wiki/UTF-8

2017年2月26日 星期日

Arduino 資料收集

介紹擴充板
S4A介紹
S4A實驗(台中教育局)
葉難


買過的買家
http://class.ruten.com.tw/user/index00.php?s=buyic&d=3085726&o=0&m=1


RJBot port到Arduino的環境
1. Arduino 使用javascript控制GPIO的能力  https://create.arduino.cc/projecthub/glowascii/basic-arduino-javascript-workshop-88c8df
2. GPIO的https://create.arduino.cc/projecthub/glowascii/basic-arduino-javascript-workshop-88c8df

3. TJBot Source  https://github.com/ibmtjbot/tjbot
https://www.instructables.com/id/Build-TJ-Bot-Out-of-Cardboard/


http://adilmoujahid.com/posts/2015/07/practical-introduction-iot-arduino-nodejs-plotly/

2017年2月23日 星期四

Robot之路 - Day2

找了很多資料都不太清楚
最後找到這篇才做出第一個facebook chatbot
https://github.com/jw84/messenger-bot-tutorial


















學到
  • 新增git remote 
    • =>https://git-scm.com/book/zh-tw/v1/Git-%E5%9F%BA%E7%A4%8E-%E8%88%87%E9%81%A0%E7%AB%AF%E5%8D%94%E5%90%8C%E5%B7%A5%E4%BD%9C
  • 新增粉絲專頁, 設定WebHook
  • 設定Procfile for hekuro

  • https://www.sitepoint.com/building-facebook-chat-bot-node-heroku/

下一關:
  • 整合這個殼跟匯率的爬蟲

2017年2月22日 星期三

Chatbot之路 - Day1 寫一隻抓匯率的chatbot

需求:

  • 讀台銀的匯率網頁
  • 使用者可以輸入“日元” 回傳即時匯價
  • 到價通知
    • 系統預設的匯價
    • 使用者設定匯價
  • 畫面下方預設選項
元件:
  • server端http request抓出幣別-匯價
學習
  • 在Heroku上面部署node.js
  • 串Line/FB前端  
  • 資料庫
進度
2/23
  • 申請Heroku/Line developer 帳號 
  • 後端parse匯率done
  • Problem: WebHook 測試一直失敗