2016年10月20日 星期四

24G感測器-IoT應用架構

物聯網英文名稱為 Internet of Things,將可以接受訊息但原本無法連上網路的物品,透過技術貼上電子標籤,使用者就能夠從網路找到物品相對應的位置、收集每個物品傳送的訊息,也可透過電腦集中管理機器、設備、甚至是在操作的人員,同時對家裡的設備、汽車進行定位、遙控、搜尋,有效防止物品遭竊.
利用之前文章所用的雷達感測器利用IO控制燈泡開關並且透過藍芽將資料傳送到NB, 由NB的GUI(監控介面)透過網路將資料丟到Web sever去做資料的收集.
重點學習: 利用c#所寫的監控程式要利用藍芽接收資料並且透過 WiFi連上internet傳送資料到免費的雲端空間( https://thingspeak.com/ 如何申請網路上很多教學可參考).


GUI顯示有燈泡On/Off次數, On的累積時間, Off的累積時間. 而上傳到thingspeak的資料為On/Off的時間點跟On的累積時間.



以下是c# 傳送field1 and field2的代碼


後續資料分析可以看出何時onoff頻繁及燈泡壽命時間端看資料如何去運用!!


2016年9月9日 星期五

Nordic nRF51822 - UART over BLE application

UART over BLE application
一. 目的:
利用Nordic ble_app_uart sample upload 到PCA10001開發板並且利用 Nordic Dongle 或是支援BLE的移動裝置進行UART 資料送收
手機有支援BLE
二. 開發環境所需的應用軟體:
1. Jlink驅動安裝
2. Nordic nRFgoStdio安裝
3. nRF51SDK安裝
4. 開發工具我用的是 Keil ARM
5. 手機上APP 安裝 Nordic 的 nRF Toolbox
三. 測試畫面:
先利用nRFgoStdio燒錄 softdevice code
再利用keil把
C:\Keil_v5\ARM\Pack\NordicSemiconductor\nRF_Examples\11.0.0-2.alpha\ble_peripheral\ble_app_uart
安裝路徑下的sample code直接upload到開發版以手機和dongle 進行測試






2016年7月24日 星期日

Arduino與光碟機的結合

繼拆了軟碟機之後, 看到網路上的同學有的利用光碟機做 mini CNC的馬達應用,  所以就手癢把家裡兩台好的光碟機拆了, 拿了兩個步進馬達做X,Y軸, Z軸部分再用雷射頭做.
以下列出所需要的軟硬體項目:
硬體:
1.  Arduino 開發板
2. 步進馬達驅動(以前用兩顆FT5754步進馬達DRIVER, 現在直接買現成for arduino 腳位專用的L293D電機驅動擴展板)
3. 光碟機步進馬達XY軸架構
圖一:Arduino L293D電機驅動擴展板
圖二:光碟機步進馬達架構
軟體:
1. Arduino 1.6.9 software
2. 免費向量繪圖軟體Inkscape + unicorn GCode extension(用作輸出 G-code的好用工具)
3. GRBL for Arduino
參考網站:
1. https://www.marginallyclever.com/2015/01/choose-controller-electronics-first-cnc/
2. http://www.instructables.com/id/Mini-CNC-Machine-Arduino-Based-Adafruit-Driver-Mot/step7/Make-your-own-gcode-files/
3. https://github.com/MakerBlock/TinyCNC-Sketches
準備好軟硬體的工具後就可以開始動手玩mini CNC了.
1. 首先 把硬體部分接好參照前一篇量好步進馬達的腳位, 一組會導通的Pin接A+ A-, 另一組 接B+ B-. 這樣基本上馬達就可以動作了.
2. 再來就是要把mini CN Plotter 的FW upload 到你arduino的板子
3. 準備好你的Gcode

這個部分要注意一下因為我使用 unicorn 所以它是以字樣圖形從中間對分, 作者註釋
Usage
  • Size and locate your image appropriately:
    • The CupCake CNC build platform size is 100mm x 100mm.
    • Setting units to mm in Inkscape makes it easy to size your drawing.
    • The extension will automatically attempt to center everything.
  • Convert all text to paths:
    • Select all text objects.
    • Choose Path | Object to Path.
  • Save as G-Code:
    • File | Save a Copy.
    • Select MakerBot Unicorn G-Code (*.gcode).
    • Save your file.
4. 用Grbl controller 列印

5. 用Grbl controller 列印成品







2016年7月14日 星期四

Arduino控制軟碟機的步進馬達

前幾天整理零件櫃找到一台 31/2"軟碟機
順手把它拆開, 拿它的馬達來做實驗看是否能控制
3 1/2"的軟碟機的馬達為 四線式Bipolar 步進馬達,  兩線圈 四線控制用兩個 H-bridge 來控制
拆開時的排線為包含一的遮斷開關的7PIN 排線, 這時要用三用電表 量一下,  4PIN中如下圖
綠色框 中的第1pin 跟 第3pin 有阻抗,  第 2pin 跟 第4pin 有阻抗,  所以我們就知道它的架構了
利用for Arduino 用的motor control 去控制真的是超簡單,  不像我之前用51去做那樣複雜, 簡單的接線,  簡單的程式你就可以控制步進馬達.
DK Electronics的arduino library直接找個範例就可以動




2016年7月7日 星期四

Ardroid系統利用藍芽結合arduino做IR傳送與接收

之前利用過8051跟PIC去做紅外線的練習
紅外線研究(1)-- PIC18F4553接收
紅外線研究(2)-- AT89C52發射
這兩篇都是自己寫解接收的IR的波形再去做傳送!
而現在Arduino的東西都已經幫我們寫好了, 真是世代交替, 好用的工具出得很快
這篇的應用是把所學過的工具程式做一個整合
1. Android系統介面設計及藍芽控制
2. Arduino UNO控制IR 接收與傳送
先把控制端硬體線路接好
藍芽模組

硬體完成後, 在來就是Arduino上的程式
程式規劃為
1. 紅外線接收學習
    a. Arduino紅外線模組接收到遙控器的訊號, 再經由藍芽模組傳送到Andriod 裝置
    b. Andriod 裝置接收到的IR 訊號儲存成csv檔便於以後直接輸出
2. 紅外線遙控家電
    a. Android裝置經由學習到的IR訊號直接發送經由藍芽模組由arduino接收並送出IR訊號
程式部分先利用NB C#的控制介面做驗證
初步驗證可以遙控到 SONY_TV, Hitachi冷氣, TBC數位盒, 再來就開始著手Andriod上的程式開發.

2016年6月14日 星期二

Android系統控制藍芽A2DP裝置

前一陣子著手寫android系統控制藍芽(Serial Port Profile)透過另一個藍芽(SPP)去接收另一個裝置的資料後, 想到家裡有A2DP 的喇吧, 想說若是要測試這種喇吧是否可以寫一個控制的APP去連上這個裝置然後控制左聲道發聲, 右聲道無聲,  量測左聲道, 反之, 右聲道發聲,  左聲道無聲, 量測右聲道.
設定研究目標:
1. 手機藍芽連上藍芽A2DP裝置
2. 透過藍芽撥放1KHz tone
3. 聲音左右聲道控制
程式架構:
1. 開啟藍芽
2. 搜尋藍芽裝置

3. 配對與連接此音箱裝置








4. 設定播放參數與聲音檔
mPlayer = new MediaPlayer();
String file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)+"/1K.mp3";
mPlayer.setDataSource(new FileInputStream(file).getFD());
mPlayer.setAudioStreamType(mAudioManager.STREAM_MUSIC);
mPlayer.setVolume(1.0f, 0f);
mPlayer.prepare();
mAudioManager.setStreamVolume(mAudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(mAudioManager.STREAM_MUSIC), 1);
mPlayer.start();
5. 測試




2016年6月5日 星期日

手機或平板利用藍芽接收24G雷達感測器資料

接續 Arduino利用藍芽模組接收24G雷達感測器資料這篇文章把原本是用NB接收資料做處理的功能變成用android 手機或者是平板來接收資料!
給之前沒接觸的朋友兩點建議
1. 先了解android程式框架, 語法可以邊寫邊學(編譯器會幫你除錯)
2. 認識藍芽的基本架構( 你要連接哪一種 profile)
[Android]藍牙主動發起配對實例這裡是網路覺得很有用的文章
在寫這個 APP花最多時間的是 決定哪一種畫面來顯示你要的結果, 結果利用TabHost這類 來做畫面的處裡(雖然這類已經被android遺棄, 但還是可以用)
決定操作方式後就開始撰寫程式
1. 藍牙設定頁面包括開啟BT按鈕, 搜尋BT按鈕, 送command edittext和按鈕, 接收資料並顯示
2. Show Data 頁面包含接收資料按鈕, 接收資料並顯示, 時間注示, 圖形顯示

上面兩張圖是在兩台不同廠牌的平板執行畫面.
底下為整個執行影片

2016年5月26日 星期四

Arduino利用藍芽模組接收24G雷達感測器資料

用之前手上的小玩具Arduino-UNO加上HC-05藍芽模組接收另一個HC-05藍芽模組傳送的雷達感測器資料(我用兩個都是HC-05, 可以設定為master或slaver,可利用率較大)
1. 首先 去下載 Arduino的最新版本
2. 用AT command 去設定HC-05(一個master, 一個為slaver)
    AT+ROLE=1 為master
    AT+ROLE=0 為slaver
再來下 AT+BIND=slaver'BDA =>AT+LINK=slaver'BDA這樣以後開機就可以自己連上

3. 透過arduino-UNO本身driver帶出的COM port上傳code到板子
4. 上機端的程式用C# 開發
雷達感測器本身會針對環境去calibration靈敏度然後有感測到環境變化後丟出資料做處理
此環境可以應用於物聯網概念, 照明控制, 環境感測家電控制

2016年5月21日 星期六

三軸辨識系統-手機篇

為了測試一些手持裝置, 一開始要在手機上裝上自己要用的測試APP
首先要安裝一些開發的軟體
1. 請到 Oracle 下載並安裝 JDK 1.6 (也就是 Java SE 6 )以上版本.
2.請到 Android Developer 網站 下載並安裝 Android SDK.
3.請到 Eclipse 網站 下載並安裝最新版的 Eclipse IDE for Java Developers.
4.安裝最新版的 Android Development Tools (ADT) for Eclipse.
安裝完後!
先規劃自己想要的GUI
用一個 Listview做子項目測試的menu


再來就要找時間整合一下 三軸手機平板測試系統了.


馬達應用-旋轉的可靠度測試

幫廠商設計一個利用SLIM7的馬達做產品的旋轉可靠度測試展示影片
用到比較特別的元件:爪缸跟 timer



詳細說明在另一個Blog
AT自動化測試工作室