2014年12月20日 星期六

如何燒錄 ESP8266 無線模組的韌體 ( 使用一鍵燒錄軟體,燒錄版本:0018000902 )

網頁最後修改時間:2016/12/19

從這一篇開始就是 ESP8266-ESP-01 進階的部分,會使用到 ESP8266 韌體更新。為了避免因為操作上的錯誤造成整個模組韌體掛掉,因此在此先說明如何使用韌體一鍵燒錄軟體恢復模組的韌體程式,先把起死回生藥帶在身上,闖關時才不會卡關!

藍牙入門學習套件相關資料

為了使擁有這些零件的使用者能夠找到原始商品的資料,所以將下架套件的資料移到這邊來,套件的部落格更新訊息可以到這邊查詢,造成不便請見諒 !

2014年12月9日 星期二

操控 ESP8266 無線模組 - 經由 AP、STA 和 AP+STA 三種模式,學習 ESP8266 AT 指令

網頁最後修改時間:2016/12/19
ESP8266, ESP-01 電路板接腳名稱
上一篇 "初遇 IoT ( Internet of Thing, 物聯網 ) - 使用 Arduino 控制 ESP8266 無線模組上傳資料到 IoT Server ( ThingSpeak )" 直接就以實際例子展示了 ESP8266 無線模組的使用方法,不過在此當時並未針對其 AT 指令有過特別介紹,為的是希望由例子中先知道 ESP8266 無線模組可以做什麼應用,直接由例子中不懂的地方找資料可以更容易的學習到東西,而不是只是重頭從最無聊的 AT 指令來認識 ESP8266 無線模組。

2014年11月24日 星期一

MPU6050 創意專題分享 - 多功能交通載具輔助系統


這是一份關於使用 MPU6050 所做的一個課堂上的專題報告,是利用 Arduino 取得 MPU6050 的六軸資料,利用互補濾波器去除加速度高頻雜訊與角速度的低頻影響,再經過運算得到腳踏車在轉彎時的角度數據。其中一軸的加速度用來控制煞車燈,另外運算所得的角度值作為腳踏車傾倒與方向燈的判別。

2014年11月17日 星期一

使用 Arduino UNO / Duemilnova 燒錄 Arduino bootloader


在網路上蒐一下 Arduino bootloader,可以找到下面這一段描述:
What is a Bootloader?
Atmel AVRs are great little ICs, but they can be a bit tricky to program. You need a special programmer and some fancy .hex files, and its not very beginner friendly. The Arduino has largely done away with these issues. They’ve put a .hex file on their AVR chips that allows you to program the board over the serial port, meaning all you need to program your Arduino is a USB cable.
The bootloader is basically a .hex file that runs when you turn on the board. It is very similar to the BIOS that runs on your PC. It does two things. First, it looks around to see if the computer is trying to program it. If it is, it grabs the program from the computer and uploads it into the ICs memory (in a specific location so as not to overwrite the bootloader). That is why when you try to upload code, the Arduino IDE resets the chip. This basically turns the IC off and back on again so the bootloader can start running again. If the computer isn’t trying to upload code, it tells the chip to run the code that’s already stored in memory. Once it locates and runs your program, the Arduino continuously loops through the program and does so as long as the board has power.

2014年11月8日 星期六

[ Wireless-RF@Arduino ] RGB LED 混色 - Arduino 的 Machester ( 曼徹斯特 ) 無線傳輸

本篇網頁中所使用到的零件可到下面商品網址訂購:


常常私底下被問到無線傳輸的一些問題,雖然不知道最後發問者是否解決了問題,但是總覺得是不是部落格關於無線模組的使用說明或是範例沒有能夠起到輔助的作用 !!!

從無線傳送端到無線接收端:
在傳送端的程式,先將所需要傳送的數據準備好;數據經過軟體計算之後產生編碼資料;編碼資料經過無線模組發送。
接收端的無線模組收到傳送端送來的資料之後,接收端開始解碼資料。解碼之後就是從傳送端送過來的未經編碼前的資料,這也是我們所要的。
ASK-433 或是 RF433MHz 兩個硬體雖然不同,但是因為硬體調制模式 ( Modulation Mode ) 是一樣的,所以傳送與接收端互換之後都還是可以正常接收資料的,而且只要資料編解碼是一致的,就能得到所需要的資料。

2014年10月28日 星期二

{ HZ1050 @ Raspberry Pi @ WIEGAND 模式 } 125KHz RFID 讀卡器使用說明

HZ-1050 125KHz RFID 讀卡器模組學習套件可至露天賣場訂購:
詳細的介紹,請上露天賣場。

HZ1050 韋根 34 讀取

本篇是整個 HZ-1050, 125KHz RFID 讀卡器套件 ( 本文簡稱 HZ1050 ) 使用說明的最後一篇。在這一篇中,將使用自己移植自 Arduino 的 wiegand 函式庫來完成跟 Arduino 一樣的讀取功能。

{ HZ1050 @ Arduino + 整合型 LCD } 125KHz RFID 讀卡器使用說明

HZ-1050 125KHz RFID 讀卡器模組學習套件可至露天賣場訂購:
本篇網頁中所使用到的零件可到下面商品網址訂購:
詳細的介紹,請上露天賣場。


Arduino + HZ1050 + { 5V0 } 整合型 LCD 實際接線圖

依照 "{ HZ1050 @ Arduino @ UART 模式 } 125KHz RFID 讀卡器使用說明" 網頁中所提供的電路圖,完成佈線之後實際的線路圖如上面照片所示。

在這篇網頁中,我們會將 UART 以及韋根格式的程式碼全部寫在一個檔案中,並且加入了整合型 LCD 顯示的程式碼,這也是第一次我們將整合型 LCD 用在 Arduino 中。

2014年10月27日 星期一

{ HZ1050 @ Arduino @ WIEGAND 模式 } 125KHz RFID 讀卡器使用說明

HZ-1050 125KHz RFID 讀卡器模組學習套件可至露天賣場訂購:
詳細的介紹,請上露天賣場。




延續上一篇 "{ HZ1050 @ Arduino @ UART 模式 } 125KHz RFID 讀卡器使用說明",這篇網頁主要用來說明在 Arduino 開發環境 中,使用兩支 IO 接腳以中斷的方式接收來自來自 HZ-1050 125KHz RFID 讀卡器 ( 文中簡稱 HZ1050 ) 回傳 RFID 卡號 ( 因為 HZ1050 主要是針對 EM4100 以及 EM4001 RFID 卡,因此以下在文中簡稱 EM 卡 ),並且將卡號輸出到 Serial Monitor 中。

Wiegand ( 文中稱為韋根 ) 26 / 34 的格式說明,請參考 "{ HZ1050 } WIEGAND ( 韋根 ) 26 / 34 介紹";電路佈線請參考上一篇的電路圖。

本篇是 Arduino 控制 HZ1050 系列的第二篇,這三篇依其接收方式不同有:
  1. UART
  2. Wiegand 26 / 34
  3. UART + Wiegand 26 / 34

前兩篇會將結果直接回傳到 Arduino 的 Serial Monitor 中;最後一篇則是另外再將結果顯示在 { 5V0 } 整合型 LCD 上。

2014年10月26日 星期日

{ HZ1050 @ Raspberry Pi @ UART 模式 } 125KHz RFID 讀卡器使用說明

HZ-1050 125KHz RFID 讀卡器模組學習套件可至露天賣場訂購:
詳細的介紹,請上露天賣場。


HZ-1050, 125KHz RFID 讀卡器 @ UART - 樹莓派範例實際接線

上篇講到使用 Arduino UART 的方式讀取 HZ-1050 125KHz RFID 讀卡器 ( 文中簡稱 HZ1050 ) 回傳 RFID 卡號 ( 因為 HZ1050 主要是針對 EM4100 以及 EM4001 RFID 卡,因此以下在文中簡稱 EM 卡 )。

本篇是 Raspbeey Pi ( 本文稱為樹莓派 ) 控制 HZ1050 系列的第一篇,這三篇依其接收方式不同有:
  1. UART
  2. Wiegand 26 / 34
  3. UART + Wiegand 26 / 34
這三篇的程式碼,會將輸出結果都會轉向到 { 3V3 } 整合型 LCD 上;但是可以經由自行修改將結果輸出到命令列視窗下,而且程式也預留比對成功或是失敗的程式碼區塊讓使用者可以自行加入處理的程式碼。

2014年10月24日 星期五

{ HZ1050 @ Arduino @ UART 模式 } 125KHz RFID 讀卡器使用說明

HZ-1050 125KHz RFID 讀卡器模組學習套件可至露天賣場訂購:
詳細的介紹,請上露天賣場。


這篇網頁主要用來說明在 Arduino 開發環境 中,使用 UART 讀取來自於 HZ-1050 125KHz RFID 讀卡器 ( 文中簡稱 HZ1050 ) 回傳 RFID 卡號 ( 因為 HZ1050 主要是針對 EM4100 以及 EM4001 RFID 卡,因此以下在文中簡稱 EM 卡 ),並且將卡號輸出到 Serial Monitor 中。

本篇是 Arduino 控制 HZ1050 系列的第一篇,這三篇依其接收方式不同有:
  1. UART
  2. Wiegand 26 / 34
  3. UART + Wiegand 26 / 34
前兩篇會將結果直接回傳到 Arduino 的 Serial Monitor 中;最後一篇則是另外再將結果顯示在 { 5V0 } 整合型 LCD 上。

2014年10月23日 星期四

{ HZ1050 } WIEGAND ( 韋根 ) 26 / 34 介紹

HZ-1050 125KHz RFID 讀卡器模組學習套件可至露天賣場訂購:
詳細的介紹,請上露天賣場。



在 HZ-1050 125KHz RFID 讀卡器模組 ( 文中簡稱 HZ1050 ) 上方,根據跳線帽對 Wiegand Code ( 文中稱韋根碼 ) 的設定,可以讓 HZ1050 由 D0 與 D1 兩根接腳輸出韋根 24 或韋根 34 格式的編碼:

D0 與 D1 一般時候為高準位 ( HIGH ),要輸出 bit 為 1 時,D1 拉低準位,D0 維持高準位;要輸出 bit 為 0 時,D0 拉低準位,D1 維持高準位。

所以要讀取韋根碼,使用接腳中斷的方式偵測負緣 ( 或稱為降緣,Falling Edge ) 觸發,可以很容易的達到這個目的。

2014年8月30日 星期六

{ Server 篇 } Bluetooth USB Dongle 初體驗 - Linux 篇 ( BlueZ , Serial Port Profile )

Bluetooth USB Dongle ( USB 藍牙卡 ) 是藍牙入門套件其中的一個配件,可至露天賣場訂購:

繼續上一篇 "{ Client 篇 } Bluetooth USB Dongle 初體驗 - Linux 篇 ( BlueZ , Serial Port Profile)" 所談到的 Bluetooth USB Dongle ( USB 藍牙卡,文中簡稱 BTdongle ) 裝設在樹莓派上,如何在 Wheezy-Raspbian 作業系統下使用 BlueZ Stack 來撰寫 SPP-Server 或是 SPP-Client 的程式。

2014年8月23日 星期六

{ Client 篇 } Bluetooth USB Dongle 初體驗 - Linux 篇 ( BlueZ , Serial Port Profile)

Bluetooth USB Dongle ( USB 藍牙卡 ) 是藍牙入門套件其中的一個配件,可至露天賣場訂購:

經過前面幾篇藍牙配件 ( USB 轉串列介面線、HC-05 主從一體藍牙模組和 USB 藍牙卡 ) 的使用說明網頁,相信各位對於藍牙入門套件中這幾個配件的安裝以及操作上現在應該都不成問題了。

在上一篇 "Bluetooth USB Dongle 初體驗 - Windows 篇 ( 7:免驅;8:BlueSoleil )" 網頁中,重點都著重在 Windows 作業系統中完成 Bluetooth USB Dongle ( USB 藍牙卡,文中簡稱 BTdongle ) ) 虛擬 COM 連接埠的建立以及連線上;而在接下來的兩篇網頁中,切換作業系統到 Linux 環境下,使用 BlueZ 的 Bluetooth Stack 完成 BTdongle 作為 SPP Server 以及 SPP Client 的建立,讓前面介紹的兩個手機程式 ( 藍牙串口助手以及 BTSCmode )可以連接並互傳文字訊息。

2014年8月5日 星期二

Bluetooth USB Dongle 初體驗 - Windows 篇 ( 7:免驅;8:BlueSoleil )

Bluetooth USB Dongle ( USB 藍牙卡 ) 是藍牙入門套件其中的一個配件,可至露天賣場訂購:

BTdongle, 2 x 虛擬 COM 連接埠, Windown 7 ( 32-bit )

此篇網頁主要在說明,如何在 Windows 7 ( 32-bit, 文中簡稱 W7-32 ) 和 Windows 8.1 ( 64-bit,文中簡稱 W81-64 ) 中使用套件中的 Bluetooth USB Dongle ( USB 藍牙卡,文中簡稱 BTdongle ) 與 HC-05 互傳文字訊息。

2014年8月3日 星期日

HC-05 主從一體藍牙模組初體驗 03 (BTSCmode.apk Eclipse 編譯環境說明 )

HC-05 主從一體藍牙模組是藍牙入門套件其中的一個配件,可至露天賣場訂購:

BTSCmode 主畫面

關於 "HC-05 主從一體藍牙模組初體驗" 共分為三篇,裡面說明了 HC-05 處於主動角色與從動角色時如何與手機配對與搜尋周邊藍牙裝置的方法,裡面同樣也針對使用到的 AT 指令做深入的探討與實機演示,並且提供了兩個 Android 手機 APP 軟體做為測試之用 ( 一個可由 Play store 下載;另一個則是經過修改 ( 購買套件者提供原始碼 ),擁有 SPP 藍牙 Server 與 Client 功能的 APP ),這幾篇網頁相關連結如下:
*******************************************************************************
這篇網頁是 "HC-05 主從一體藍牙模組初體驗" 的第三篇。主要是簡單說明 BTSCmode Android 手機 APP 在 Eclipse 的編譯時需要注意的地方,不涉及程式碼的說明,畢竟這不是 Android 手機程式的教學,只是為了讓有原始碼的使用者能夠更方便的做修改並且傳送到自己的手機做測試。

2014年7月29日 星期二

HC-05 主從一體藍牙模組初體驗 02 ( AT 指令說明與使用演示、主動角色 )

HC-05 主從一體藍牙模組是藍牙入門套件其中的一個配件,可至露天賣場訂購:

關於 "HC-05 主從一體藍牙模組初體驗" 共分為三篇,裡面說明了 HC-05 處於主動角色與從動角色時如何與手機配對與搜尋周邊藍牙裝置的方法,裡面同樣也針對使用到的 AT 指令做深入的探討與實機演示,並且提供了兩個 Android 手機 APP 軟體做為測試之用 ( 一個可由 Play store 下載;另一個則是經過修改 ( 購買套件者提供原始碼 ),擁有 SPP 藍牙 Server 與 Client 功能的 APP ),這幾篇網頁相關連結如下:
*******************************************************************************
這篇網頁是 "HC-05 主從一體藍牙模組初體驗" 的第二篇。主要注重在 AT 指令的實機演示以及參數的詳細說明,並且說明在 HC-05 為主動角色時,如何使用 BTSCmode 讓 HC-05 主動連接到手機端。

樹莓派中 USB 藍牙卡的驅動與設置

USB 藍牙卡 ( USB Bluetooth Dongle ) 是藍牙入門套件其中的一個配件,可至露天賣場訂購:

USB 藍牙卡與樹莓派

樹莓派本身沒有藍牙裝置,最常使用的就是 USB 藍牙卡 ( Bluetooth USB Dongle ) 與藍牙轉串列介面模組,這兩樣東西都是賣場藍牙入門套件其中的一樣配件,之後都會在部落格中提到。而在這篇網頁中,將會說明如何在樹莓派裡安裝藍牙所需套件,正確安裝以及啟動藍牙管理器 ( Bluetooth Manager ) 連接外部藍牙裝置。

安裝與測試藍牙裝置會需要進入到樹莓派的桌面,若是不直接使用 AV 或是 HDMI 輸出視頻,請至網頁最下方所提供的部落格連接,至少安裝編輯環境中的第二發與第三發的軟體,這樣就可以遠端連線至樹莓派或是其桌面下進行必要的操作。

所使用的硬體環境為:
  • Raspberry Pi Model B 512MB RAM ( Wheezy-Raspbian )
  • Bluetooth USB Dongle
  • 有線網路

HC-05 主從一體藍牙模組初體驗 01 ( 硬體接線、從動角色 )

HC-05 主從一體藍牙模組是藍牙入門套件其中的一個配件,可至露天賣場訂購:

關於 "HC-05 主從一體藍牙模組初體驗" 共分為三篇,裡面說明了 HC-05 處於主動角色與從動角色時如何與手機配對與搜尋周邊藍牙裝置的方法,裡面同樣也針對使用到的 AT 指令做深入的探討與實機演示,並且提供了兩個 Android 手機 APP 軟體做為測試之用 ( 一個可由 Play store 下載;另一個則是經過修改 ( 購買套件者提供原始碼 ),擁有 SPP 藍牙 Server 與 Client 功能的 APP ),這幾篇網頁相關連結如下:
*******************************************************************************
這篇網頁是 "HC-05 主從一體藍牙模組初體驗" 的第一篇。主要是說明 HC-05 的硬體接線方式,如何進入 AT 模式以及訊息傳送模式;從動角色與手機 SPP 藍牙 Client 端的連接;以及相關 AT 指令說明與演示。

2014年7月28日 星期一

{ 內建四種控制模式整合型 1602 英文字型液晶螢幕 } IIC 通訊模式下,LCD 控制功能展示

3V3, 內建四種控制模式整合型 1602 英文字型液晶螢幕, IIC 通訊模式

Note:預設出貨設定是 IIC 通訊控制模式。經過簡單的改裝之後,就可以變成與上圖一樣可使用四種通訊模式控制的 1602 英文字型液晶螢幕。

這片外觀與一般 1602 英文字型液晶螢幕相無異的 LCD ( 正面如上圖,背面如下 3V3 與 5V 兩款 )
3V3 與 5V0 兩種不同電源輸入的 1602 LCD 背面

在不須外掛任何晶片的情況之下,可以使用四種方法來做控制:
  • 並行通訊
    • 4-bit 匯流排模式
    • 8-bit 匯流排模式
  • 串列通訊
    • IIC ( or 稱 I2C) 模式
    • 4 線 SPI 模式

[ { 3V3 } 整合型 1602 LCD ] 使用樹莓派 ( Raspberry Pi ) 偵測環境溫溼度 ( DHT-11 ) 與環境光源強度 ( BH1750 )

本篇網頁中所使用到的零件可到下面商品網址訂購:

使用樹莓派偵測環境溫溼度與環境光源強度

環境溫溼度與光的強度偵測時常用在氣候偵測或是 DIY 製作上,配合使用整合型 1602 LCD 可以非常方便的將所取得的數值或是文字直接顯示在這一片液晶螢幕上,若是使用 { 3V3 } 版本的整合型 LCD,整體接線可以更加的簡化 ( 不需要接調字亮度的可變電阻);。

在這篇網頁中,您將看到:
  • 如何同時控制兩個 I2C 裝置 ( BH1750 環境光源強度偵測模組和整合型 LCD [ IIC 模式 ] )
  • 如何取得單線式通訊的 DHT-11 感測器的溫、濕度值
網頁中所提供的三個樹莓派的 .C 檔案,放置在雲端硬碟中 ( DHT-Light-LCDI2C )。這幾個原始碼使用 wiringPi 函式庫 ( 請自行安裝 )並以編譯成執行檔可直接使用,有購買的請使用所提供的資料下載連結自行下載。

目錄中包含三個 .C 檔,描述如下 :
  1. 讀取 DHT-11 溫溼度值並顯示在整合型 LCD 螢幕上
    displayDHT.c
  2. 讀取 BH1750 光源強度值 ( Lux ) 並顯示在整合型 LCD 螢幕上
    displayLUX.c
  3. 讀取 DHT-11 溫溼度值和 BH1750 光源強度值 ( Lux ) 並顯示在整合型 LCD 螢幕上
    LTRDisplay.c
資料夾目錄

2014年7月19日 星期六

怎麼用 Arduino 控制 WS2812B 做流星燈

網頁最後修改時間:2016/03/02
網頁中所使用的全彩 LED 焊接電路板可至露天賣場訂購:
如果有購買賣場的 WS2812B 焊接電路板,這網頁中所使用到的兩個 Arduino 程式碼已經放置在雲端硬碟中,可直接至雲端硬碟中下載。


這篇網頁主要是使用 WS2812B 焊接電路板實現流星燈往復閃過眼前的感覺 !

流星燈動作照片

2014年7月7日 星期一

世足用的穿戴式科技:TI eZ430 運動手錶 ( eZ430-Chronos Watch )

露天賣場訂購 
進球顯示 GOAL 在 eZ430-Chronos 手錶上

開始之前,先看影片中 Goal Control 4D System 的介紹 !

有沒覺得下面這個影片上的手錶很熟悉 ? 沒錯 ! 就是之前用在控制小車的手錶,現在在世足的 Goal Control 4D 系統就是用它來輔助裁判確認球是否進球門的穿戴式科技 !!!

怎麼動作的 ? 看影片中的進球與手錶的反應就知道 !



eZ430 運動手錶控制樹莓派小車 ( 開迴路控制 )

網頁最後修改時間:2016/05/06

網頁中所用到的主要零件,可至露天賣場訂購:
賣場中各 LED 驅動晶片簡介與比較,請參考部落格網頁 "PWM LED 驅動晶片比較 - [雙線式通訊] LPD6803、LPD8806、LPD1109,[ 單線式通訊 ] WS2811 和 WS2812" 中的說明。


在這個網頁中,主要是展示 L298N 馬達驅動板的使用方法,以及怎麼使用 LPD8806 作為 PWM 訊號產生器控制馬達的轉速。

小車全部用到的零件如下圖所示,小車底部是鋰電池放的地方。

使用樹莓派取得 eZ430-Chronos 運動手錶三軸加速度數值與按鈕狀態

露天賣場訂購 

這一篇文章主要是 "eZ430 運動手錶控制樹莓派小車 ( 開迴路控制 )" 網頁關於 eZ430-Chronos-915 ( eZ430) 運動手錶的通訊建立說明。
eZ430-Chronos Watch with Raspberry Pi

在下面的網頁中,我們將會說明如何使用樹莓派 ( Raspberry Pi ) 抓取 eZ430 運動手錶的資料,包括:三軸加速度和手錶上的按鈕 ( 左上、左下和右上 );以及如何安裝 eZ430 Chronos Control Center (eZ430 控制中心) 在樹莓派上。
eZ430 Chronos Control Center 在樹莓派的顯示畫面
eZ430 Chronos Control Center 在樹莓派的顯示畫面

使用 RTL-SDR 與 TI eZ430 運動手錶 ( eZ430-Chronos Watch ) 破解停車場閘門遙控器訊號

露天賣場訂購 

Source:http://www.ontarioparking.com

兩位來自特拉維夫 ( Tel Aviv ) 大學的學生 Ido Livneh 和 Gil Freidlin,使用軟體無線電裝置 ( RTL-SDR, Software Defined Software ) 負責接收及破解閘門遙控器的訊號,再將遙控器的訊號解碼後複製到 TI eZ430 運動手錶裡,當手錶的按鈕被按下後就會發出跟閘門遙控器相對應的控制訊號出去,此時閘門就會很容易地被開啟或是關閉。

整個過程被分解為兩個步驟:

第一個步驟是使用 HDSDR ( High Definition Software Defined Radio ) 硬體及軟體接收來自遙控器的訊號,在經由 Windows 裡的無線電軟體解出訊號,然後將訊號編碼下載到 TI eZ430 運動手錶裡。

訊號解碼及複製階段

我們看一下遙控器發射與接收裝置外型與它內部所使用編解碼晶片後不難了解,就是去破解發射晶片的發射編碼,而接收端並不需要去管它。
遙控器發射器 ( 右 ) 與接收器 ( 左 )
近看遙控器的發射 ( 右, PT2260 encoder ) 與接收 ( 左, PT2272 decoder ) 的晶片

如果看過部落格裡的 "[ Wireless-RF] 使用樹莓派模擬 HT12E 遙控器編碼晶片的編碼格式" 就會發現兩者最終目的是相同的,只不過差別在所使用的發射端接收裝置與所要破解的晶片,觀念上是可以相通的。

訊號傳送階段

相關軟硬體的需求,可以參考下面的說明以及文字上所提供的連結網址下載所需要的東西。

硬體需求:
  1. A standard PC running windows.
  2. TI ez430 Chronos watch kit, along with its RF access point and, and reprogramming dongle. It costs 58$ (as of May 2014) directly from the TI e-store, or 99$ from amazon.
  3. RTL-SDR USB Radio kit. We specifically used RTL2832+R820. It can be bought for about $10-$15 at eBay.
  4. The remote control that you wish to copy. 

軟體需求:
  1. TI Chronos Control Center. It installs the drivers for the access point as well. Installing the 3rd party drivers on windows8 might be problematic. If so, follow these instructions to proceed. 
  2. TI Code Composer Studio V5. Use this IDE in order to compile and upload the code to the watch platform. Watch this for good initial tips for working with the IDE. You can otherwise use the control center to update the code on the watch without connecting it directly to the computer. This is a slower process and much more costly as per the watch's battery life. 
  3. The code of our Chronos project. You can find it here
  4. Aiding python scripts. You can find them here. In there you will find:
    a. configure_chronos.py – our configuration tool that connects to the watch through its RF access point.
    b. chronic.py – library needed for communication with the Chronos watch.
    c. analyze_signal.py - our analysis tool that will analyze the original RF signal, and output the needed configuration for the watch.
    d. gilido_params.txt - this is the parameters file output for our remote control. You don't need it, but it can be used as reference. 
  5. Be sure to be running python2.7. You also need to download the pyserial python library. We recommend using pip tool that finds, downloads and installs the correct version of python libraries. 
  6. The HDSDR software and other necessary tools, as well as a practical "how to" guide can be found here. A good and comprehensive installation guide can be found here. Higher permissions are required for the installation process. 
  7. You can visually analyze the wave file outputs using the open-source audacity platform which we recommend. It's not needed in order to complete the task, but it's nice and it helped us in debug. If you have access to MATLAB environment, it can be easily done through it as well. 

整份文件 ( 23頁 ) 可由此下載:Copy2GO: Low cost copy lab for simple remote controls using TI-Chronos platform .pdf


更多詳細關於複製訊號到手錶上去的資料,請再參閱該份文件,所有資料都在上面。


<< eZ430-Chronos-Watch 賣場部落格系列文章 >>

2014年7月1日 星期二

如何使用 Borch BMP180 數位氣壓感測器模組計算溫度、大氣壓力與海拔高度 ?

Borch BMP180 數位氣壓感測模組可至露天賣場訂購:
Borch BMP180 Digital Barometric Pressure Sensor, source: http://www.bosch-sensortec.com/
在這篇網頁,我們將說明如何使用 I2C 通訊方式取得 BMP180 裡的溫度與壓力的原生資料 ( raw data ),並藉由晶片內部存放在 EEPROM 裡的 11 個校正係數,計算出氣壓模組現處環境的溫度 ( 真實溫度 ) 與大氣壓力 ( 真實壓力 )。微處理器間的電路接線與程式測試,請參考後續的部落格網頁中的說明。

由於高度不同產生的大氣壓力也不同,所以由 BMP180 所計算出來的壓力和溫度值,可以用來計算出現處環境的海拔高度作為 "高度計" 使用,但前提是:海平面的壓力必須清楚得知 !

得到高度可以做什麼 ? GPS 導航時,若沒有高度計,上下橋就不知道是在橋上或是橋下;做室內導航時,就不知道現在是在一樓還是在二樓。這些都只是其中的一些應用,所以根據官網以及網路上的資料, BMP180 可以應用在下面的用途上:
  • 加強 GPS 精確導航能力 ( 航位推算,坡度 ( 上下橋 ) 檢測等 ) 
  • 室內與室外導航 
  • 休閒、體育和醫療健康等監測
  • 天氣預測
  • 垂直速度指示 ( 上升 / 下降速率 ) 
  • 風扇轉速控制 ( 利用溫度值 )

BMP180 模組使用提示 - Arduino 接線與程式測試

網頁中所使用的零件可至露天賣場訂購:
I2C 電壓轉換電路請參照下面網頁的說明
BMP180 的晶片使用說明與溫度、氣壓和海拔高度的計算,請參考下面網頁中的說明

如果沒有購買賣場的 BMP180 數位氣壓感測器模組,在沒有賣場提供的程式碼之下,這網頁中的內容就對你幫助不大。

Arduino + I2C 電壓準位轉換電路 + BMP180 數位氣壓感測模組,可在外接其他不同電壓準位的 I2C 裝置

這篇網頁主要是說明如何 BMP180 數位氣壓感測模組與 Arduino 的接線與程式測試,使用 Arduino 本身硬體 I2C 做通訊,並且將輸出結果直接輸出到 Serial Port 上,所有計算過程與結果可直接輸出到其 Arduino Monitor 或是 Serial Port 軟體上。實際完成的接線如上圖所示,程式測試結果請看下面的程式測試部分。

BMP180 模組使用提示 - 單晶片接線與程式測試

網頁最後修改時間:2016/08/03

網頁中所使用的零件可至露天賣場訂購:
I2C 電壓轉換電路請參照下面網頁的說明
BMP180 的晶片使用說明與溫度、氣壓和海拔高度的計算,請參考下面網頁中的說明
    單晶片的配置是最小可動作的線路,接線電路圖可在上述零件購買之後所提供的資料連結的雲端硬碟資料夾 ( schematics\8051_燒錄器.pdf  )中找到,照著電路圖接就可以了。

    如果沒有購買賣場的 BMP180 數位氣壓感測器模組,在沒有賣場提供的程式碼之下,這網頁中的內容就對你幫助不大。

    AT89S52 + I2C 電壓準位轉換電路 + BMP180 數位氣壓感測模組 + {5V}整合型 1602 LCD @ I2C Mode

    這篇網頁主要是說明如何 BMP180 數位氣壓感測模組與 AT89S52 的接線,並且使用 Bit-Banging 的方式模擬 I2C 通訊,讀取與控制 BMP180 與 整合型 1602 LCD,接線與程式測試的結果就如上圖所示。

    BMP180 模組使用提示 - Raspberry Pi 接線與程式測試

    網頁中所使用的零件可至露天賣場訂購:
    I2C 電壓轉換電路請參照下面網頁的說明
    BMP180 的晶片使用說明與溫度、氣壓和海拔高度的計算,請參考下面網頁中的說明

    如果沒有購買賣場的 BMP180 數位氣壓感測器模組,在沒有賣場提供的程式碼之下,這網頁中的內容就對你幫助不大。

    Raspberry Pi + BMP180 數位氣壓感測模組 + {3V3}整合型 1602 LCD @ I2C Mode

    這篇網頁主要說明如何使用賣場所提供的樹莓派 ( Raspberry Pi ) BMP180 程式。這程式只包含一個檔案,所有 BMP180 的操作、溫度、大氣壓力、海拔高度,以及反算海平面壓力與大氣壓力都在其中,經由檔案開頭處的參數設定,就可以很方便操控整個程式 !

    2014年6月18日 星期三

    [ wireless-RF ] Arduino 之間或與 Raspberry Pi 之間的 RF 433MHz 通訊

    網頁中所使用的零件可至露天賣場訂購:

    RF 模組測試 - VirtualWire 函示庫

    許多最近購買無線發射接收模組套件的使用者,來信、留言或是線上討論了一些問題,因此我花了一些時間做了個實驗,使用兩組 Arduino ( Arduino Duemilanove 和 Arduino Pro Mini ) 並使用 VirtualWire 函示庫來做為RF 發射與接收效果的測試,而這兩塊 Arduino 板子不一定要跟我用一樣,用手邊現有的就可以了。

    [ Wireless-RF ] RF433MHZ 無線發射接收模組搭配 HT12( D / E ) 遙控器編碼解碼晶片

    網頁中所使用的零件可至露天賣場訂購:



    本文主要介紹使用 HT12E 與 HT12D 兩顆晶片,做為無線發射編碼與無線接收模組解碼的方法。除了套件中的零件之外,另外還需要兩塊電路板與 5V (使用三顆鹼性電池) 電源供應 ( 雖然可以使用其它電壓輸入,但是在線路未測試成功之前,建議不要使用其它電壓做測試,避免錯誤時找不到原因 ),麵包板跳線可以使用單芯線取代。

    HT12E 與 HT12D 簡單使用介紹請參考網頁最下方連結檔案,電路圖與麵包板配線方法請看網頁接下來的說明。

    [ Wireless-RF ] RF433 MHZ 搭配微控制器的使用方法

    [ Wireless-RF ] RF433MHZ 無線發射接收模組搭配 Raspberry Pi 控制 74HC595 操控 HT12E 遙控器編碼晶片

    網頁中所使用的零件可至露天賣場訂購:


    使用 75HC595 可以簡單的使用 Raspberry Pi ( 樹莓派 ) 三支 GPIO 接腳設定 HT12E 編碼晶片的位址與資料,可一次控制多達 256 個 HT12D 解碼晶片,很值得學習與使用!

    Raspberry Pi + 74HC595 + HT12E + RF 發射模組

    [ Wireless-RF] 使用樹莓派模擬 HT12E 遙控器編碼晶片的編碼格式

    網頁中所使用的零件可至露天賣場訂購:

    樹莓派控制 RF 發射模組使用 HT12E 編碼模擬

    網路上有許多關於使用無線發射接收模組遙控家用電源開關的例子,但都只侷限在對於市面上各種遙控器的控制,若是能夠直接瞭解其編碼原則以及傳輸格式的話,那不管是哪一種型式的無線電源控制器都能夠一通百通,玩弄於股掌之間。

    本篇文章主要的用意,是要與大家分享如何使用樹莓派來模擬 HT12E 晶片的編碼,並藉由無線發射模組遙控遠端 HT12D 所連接的四顆 LED;若將 LED 換成繼電器,就可以用來無線控制電源的開關,而且可控制到 256 組的無線接收端,每一組控制端可再接四個繼電器,換算起來一組無線發射模組可控制 1,024 顆繼電器。

    要知道怎麼做,就請繼續往下看吧!!

    RF433MHz入門學習套件系列文章

    無線發射接收模組套件可至露天賣場訂購:

    此 RF 433 MHz 入門學習套件,可以學習到無線發射接收模組使用與控制的方法,不管是微控器或是樹莓派都可容易的上手,賣場部落格相關系列文章有:

    套件中 HT12E、HT12D、RF433MHz 無線發射接收模組規格資料請至露天賣場觀看


    RF433MHz(無線發射接收模組)入門學習套件
    RF433MHZ入門學習套件 - 加購 RF433 MHZ 無線發射接收模組
    RF433MHZ - ASK 無線發射接收模組套件


    RF433MHZ入門學習套件 - 加購 433MHZ - ASK 無線發射接收模組套件

    2014年5月19日 星期一

    [ { 5V } 整合型 1602 LCD ] 使用單晶片 ( AT89S51 ) 偵測環境溫溼度 ( DHT-11 ) 與環境光源強度 ( BH1750 )

    本篇網頁中所使用到的零件可到下面商品網址訂購:

    使用單晶片偵測環境溫溼度與環境光源強度

    環境溫溼度與光的強度偵測時常用在氣候偵測或是 DIY 製作上,配合使用整合型 1602 LCD 可以非常方便的將所取得的數值或是文字直接顯示在這一片液晶螢幕上,不要再使用 UART 將資料取出了!

    在這篇網頁中,您將看到:
    • 讓單晶片 8051 動作的基本電路
    • 如何同時控制兩個 I2C 裝置 ( BH1750 環境光源強度偵測模組和整合型 LCD [ IIC 模式 ] )
    • 如何取得單線式通訊的 DHT-11 感測器的溫、濕度值
    網頁中所提供的三個單晶片 AST89S51, Keil C 專案檔會放置在雲端硬碟中 ( display_lcd+dht11+bh1750 ),並完成設置與編譯完成可直接使用 .hex 燒錄,有購買的請使用所提供的資料下載連結自行下載,目錄中包含三個專案檔,內容有:
    1. 讀取 DHT-11 溫溼度值並顯示在整合型 LCD 螢幕上
      display_lcd+dht11.uvproj
    2. 讀取 BH1750 光源強度值 ( Lux ) 並顯示在整合型 LCD 螢幕上
      display_lcd+bh1750.uvproj
    3. 讀取 DHT-11 溫溼度值和 BH1750 光源強度值 ( Lux ) 並顯示在整合型 LCD 螢幕上
      display_lcd+dht11+bh1750.uvproj
    資料夾目錄

    2014年4月3日 星期四

    [版本更新至 1.36 ] Raspberry Pi - BCM2835 C 語言函式庫


    [2014/04/03] bcm2835 版本更新至 1.36

    1.36 Make automake's test runner detect that we're skipping tests when not root, the second one makes us skip the test when using fakeroot (as used when building Debian packages). Contributed by Guido Günther.

    1.35 Fix build errors when compiled under Qt. Also performance improvements with SPI transfers. Contributed by Udo Klaas.

    1.34 Added bcm2835_i2c_write_read_rs() which writes an arbitrary number of bytes, sends a repeat start, and reads from the device. Contributed by Eduardo Steinhorst.

    1.33 Added command line utilities i2c and gpio to examples. Contributed by Shahrooz Shahparnia.

    1.32 Added option I2C_V1 definition to compile for version 1 RPi. By default I2C code is generated for the V2 RPi which has SDA1 and SCL1 connected. Contributed by Malcolm Wiles based on work by Arvi Govindaraj.

    1.31 Fix a GCC warning about dummy variable, patched by Alan Watson. Thanks.

    1.30 10 microsecond delays from bcm2835_spi_transfer and bcm2835_spi_transfern for significant performance improvements, Patch by Alan Watson.

    1.29 Further fix to SPI from Peter Würtz.

    1.28 Fixed a problem where bcm2835_spi_writenb() would have problems with transfers of more than 64 bytes dues to read buffer filling. Patched by Peter Würtz.

    1.27 bcm2835_gpio_set_pad() no longer needs BCM2835_PAD_PASSWRD: it is now automatically included. Added suport for PWM mode with bcm2835_pwm_* functions.

    1.26 Added missing unmapmem for pads in bcm2835_close to prevent a memory leak. Reported by Hartmut Henkel.

    2014年4月1日 星期二

    到貨啦 ! 整套的樹莓派外殼、攝像機固定架與保護套, Sweetbox, Heatsinks, ScorPi, CAMlot

    慶祝到貨 !!! Sweetbox + Heatsink + 整合型{ 4/8BIT,IIC,4SPI }1602英文字型LCD螢幕
    SPI 通訊控制模式

    小、又貼身的樹莓派外殼 Sweetbox,使用瑞士 EMS 生產的的 Nylon 材料製成,耐衝擊又不派掉落,可隨身攜帶,裝拆都很方便。

    若手邊有官方攝像機的話,配合 ScorPi (樹莓派攝像機可撓性固定架) 和 CAMlot (真皮材質樹莓派攝像機保護套),不但可保護攝像機又可任意調整攝像機角度,整體配合起來非常簡潔美觀,有設計感!

    2014年3月6日 星期四

    [ 新版本 0.7 釋出 ] WebIOPi - 使用瀏覽器 (或手機) 控制樹莓派的 GPIO

    最新版本:Version 0.7 ( 2014-03-01 )
    WebIOPi 版本更新發佈網址:Internet of Things framework
    WebIOPi 說明、安裝、使用說明網址WebIOPi

    新版本 0.7 增加了很多樣東西的支援,例如 PiFace Digital 擴充卡、溫溼度感測器,還有特別支援用來支援 GertBoard 的 MCP3002 ADC 和 MCP4802 DAC 晶片,和修正一些使用者反應的問題。作者花了很長的一段時間才又推出這增強版,如果覺得 WebIOPi 好用的話,別忘了 Donote 一下以感謝他的貢獻與分享!

    下面是一段關於 0.7 版的 WebIOPi 加入支援 PiFace 的展示影片,可以藉由 WebIOPi 的網頁介面控制與設定 PiFace 上的 IO 開啟與關閉的時間


    2014年2月24日 星期一

    L298N 馬達驅動板接線說明與正反轉程式測試

    網頁最後修改時間:2016/05/06

    欲操作直流馬達或是步進馬達,可上露天賣場選購此電路板

    馬達驅動板的應用實例,可參考部落格的網頁:

    Note:此網頁並不會說明 L298N 馬達驅動板的規格,這些資料都列在露天賣場上,有需要再利用連結點擊前往。


    L298N 馬達驅動板說明:

    下圖是 L298N 馬達驅動板實體圖上各接腳的說明,請使用它作為下面各電路接線圖輔助之用
    L298N 馬達驅動板個接腳說明

    在接下來的兩個圖面:一個是 L298N 晶片內部功能方塊圖,清楚的圖示出整個晶片受控與輸出的功能方式,紅色字的部分對應到電路圖的電源標示;另一個則是 L298N 馬達驅動板的設計電路圖,其中更特別標示出跳線帽 ( 黃色兩小啞鈴圖示 ) 的位置。

    對照與比對 L298N 資料手冊 ( Page1 ) 的方塊圖與 L298N 馬達驅動板電路圖,應該不難了解這些跳線帽的功能,和圖面中各電源的名稱定義與關係。

    L298N 晶片內部功能示意圖
    L298N 晶片內部功能示意圖 ( source: STMicroelectronics L298N datasheet )

    L298N 馬達驅動板電路圖

    在 L298N 馬達驅動板電路圖中,IN1 和 IN2 控制 OUT1 與 OUT2 的輸出電源;而 IN3 和 IN4 控制 OUT3 與 OUT4 的輸出電源。

    輸出電源的極性控制則是經由兩個輸入端的組合而定 ( 可使用下面表格來對照 L298N 晶片內部功能示意圖 ),這些控制方法將會用在馬達轉向控制與程式撰寫上。

    ENA
    ( ENB )
    IN1
    ( IN3 )
    IN2
    ( IN4 )
    OUT1
    ( OUT3 )
    OUT2
    ( OUT4 )
    馬達狀態
    0XXXX無動力停止
    100快速煞車
    10101正轉
    11010反轉
    111快速煞車

    詳細的接線圖如下所示,點擊可放大看看原圖。
    L298N 馬達驅動板,正反轉建議接線
    電源接線方式 (A):L298N 馬達驅動板,正反轉建議接線

    實際接線 (A) 的情況如下圖所示,電路圖中的 BAT1 就是照片中綠色轉接頭連接的地方,依照實際馬達驅動電壓輸入就可以了 ( 此處使用的電壓必須大於 5V,小於 5V 時必須使用兩組電源輸入,也就是要使用下面 (B) 的接線方式 )。
    馬達正反轉控制線路照片 ( 使用外接電源 DC 12V )
    馬達正反轉控制線路照片 ( 使用外接電源 DC 12V )

    或許有人會問,樹莓派是 3V3 的邏輯準位,這樣行得通嗎 ?

    先不說是實驗求得結果,而是由規格書上 ( L298N, Page 3 ) 來看
    • Ven = L ( Enable Low Voltage ):-0.3 ~ 1.5V
    • Ven = H ( Enable High Voltage ):2.3  ~ Vs ( Vs 指的是邏輯電壓,這裡是指降壓之後的 DC 5V )
    所以使用 3V3 邏輯準位是可以正常動作的。

    下面兩個電路圖 ( B ) 和 ( C ) 是電源部分其他接線的方式,提供給有需要的人做參考;使用上,建議使用電源接線方式 (A) 就可以了。
    電源接線方式 (B):L298N 馬達驅動板,正反轉接線
    電源接線方式 (C):L298N 馬達驅動板,正反轉接線

    馬達正反轉測試:

    點擊下方的連結或是輸入下面指令下載測試程式
    pi@raspberrypi ~ $ cd Codes
    pi@raspberrypi ~/Codes $ wget -O - http://goo.gl/RiNF15 | tar zxvf -
    .... << 過程省略 >> ....
    pi@raspberrypi ~/Codes $ cd Motor_FR/
    pi@raspberrypi ~/Codes/Motor_FR $ ls -l
    總計 12
    -rwxr-xr-x 1 pi pi 7242  2月 23 19:36 motorfr
    -rw-r--r-- 1 pi pi 3102  2月 23 19:36 motorFR.c
    pi@raspberrypi ~/Codes/Motor_FR $
    

    馬達正反轉測試程式碼 (http://goo.gl/RiNF15)

    直接輸入 ./motorfr 就會出現下面的選單,讓使用者選擇兩顆馬達的轉向
          Motor Control
    ------------------------------
    
      1: motor 1, forward
      2: motor 1, backward
      3: motor 1, stop
      4: motor 2, forward
      5: motor 2, backward
      6: motor 2, stop
    
    ------------------------------
    Select:
    
    

    這是個較容易完成的測試,原始程式碼與編譯的指令都在 motorFR.c 裡面。若需要對馬達進行轉速控制的話,可參考 "eZ430 運動手錶控制樹莓派小車 ( 開迴路控制 )" 網頁中,使用 LPD8806 作為 L298N 馬達驅動板 PWM 信號產生器的馬達轉速控制那一節的介紹說明。