RF24 專屬於 nRF24L01 的程式函式庫。

nRF24L01

我在大學研究的專題可以說是自幹一個 Zigbee 的無線網路系統,我所採用無線傳輸模組是不在 IEEE 規範中的 2.4GHz 無線網路模組 nRF24L01,並且利用 Arduino 以及 Raspberry Pi 做雛形開發。很久之前還有為了它與 Launchpad 之間的通訊而寫過一篇文章。至於我專題的細節,改天再來說說。

繼續閱讀 “RF24 專屬於 nRF24L01 的程式函式庫。”

Energia – 讓你用 LaunchPad 像 Arduino 一般容易!

Energia

先前曾介紹過 TI LaunchPad ,當時所推薦的 IDE 是 TI 自己出的 CCS 這個軟體,不過在最近我找到了一個更好用、更簡單、更輕巧的 IDE ,那就是 Erengia。這個 IDE 與 Arduino IDE 以及 Processing IDE 所用的是相同的環境,唯一不同的只有編譯器的部分。

Energia 與上述其他兩個IDE都是屬於開放源碼的產物,專案開始於2012年1月,由 Robert Wessels 所主導,他當時希望的是,能夠把 Wiring 與 Arduino 的編寫架構方式套到 TI MSP430 LaunchPad 上。

繼續閱讀 “Energia – 讓你用 LaunchPad 像 Arduino 一般容易!”

專題研究日記 Day Demo

nRF24L01

這系列文的上一篇是 Day 1 今天這篇就變成了 Day Demo 了,老實說,好像,似乎跳得非常快啊 XD

昨天,也就是星期五那天,是我們系上的專題展示與口試的日子。

我用輕鬆愉快的心情去面對,但結局實在令我有點兒的意外,我的成績居然低到連我自己都覺得很不可思議的地步,哈哈哈。

這是一個失敗,對我來說是個非常失敗的局面。

我想了想,除了簡報出了一些差錯之外,其他應該沒有什麼太大的問題。

簡報上,當我發現我似乎放太少應該要放的東西的時候,再加上我自己莫名其妙的自亂陣腳,中間亂講了一通不知所云的東西之後,我就已經有預感,「死啊,這分數感覺上不高。」

結果,還真的很不好。導致我鬱卒了一小段時間,惱怒的說了幾句評審老師的不是之後我就開始自省。檢視著自己的問題,期待下次(希望沒有)會更好。

若你想問起我的專題的細節部分,我目前還不打算放出來,不過我會開始整理內容,逐步的去寫下我研究的過程。雖然我做的東西看起來是個不知所以然的東西,也看起來沒有一點市場價值,而且目前也還沒有一個友善的介面去給使用者操作…

我想靠自己的力量去完成想做的東西,而不只是去找程式碼來用跟修改這樣而已。

專題研究日記 Day 1

標題寫著 Day 1 ,實際上則是不知道進行到了第幾天了,姑且就把開始紀錄的這天當作第一天吧!畢竟,歷史是從有文字紀錄才開始的。

大三的我目前正努綠的實現我一直想要做的一項東西,她的架構其實頗為龐大,為了節省時間以及避免不必要的研究耽誤到了畢業的良辰,我將研究計畫縮減到簡單的核心部分。未來再從這個當作雛形的核心慢慢地擴展成我期望的那個樣貌。

幾天來,專題的進展速度讓我自己有點嚇到。因為前面兩個月以來我都在做與專題不相關或稍微相關的研究,或是修改一些理論性較重的設計稿,幾乎沒有去實作那些內容。就在上上星期隻到這星期六要專題口試後,我才開始卓少把那堆理論的設計逐漸的實驗與實作,也順勢刪除了一些不合用的設計。

這驗證了一件事情,大學生的效率往往出現在死線即將到來之前便會成為指數等級的成長。

專題研究日記 Day 1

▲正在開發時經常發生的事情…

目前專案用到兩種程式語言,一是古老但很好用的C,另一個則是先進的C#。C主要是用在單晶片的程式上面,畢竟編譯器也只支援C來做為開發的程式語言。

而C#則是為了能夠快速實現一些功能而選擇的程式語言,主因是她的IDE非常好用,很快地就能把一個小小的但又符合需求的應用程式生出來,另外一個原因則是,她也能夠轉移平台到Linux上,我認為她是電腦端應用程式開發上另一個非常好的選擇。

目前程式碼總長度超過700行,除了幾個區動用的library不是自己寫的之外,幾乎每個功能都是由自己一個個刻出來並加以驗證。有趣的是,因為每個功能都必須要經過測試才能夠驗證動作是否正常,所以每個功能的設計我有大半時間都在做燒錄IC、插拔板子、編譯…之類的等待時間,平均一個功能的完整實現約需要耗費一個小時。目前最久的紀錄是,用約5小時,只為了開發一個功能…Orz

今天,完成度粗估60%~65%。最令我開心的是,經過了約七天的時間,主要功能與動作都已經完成了!

然後,我決定在此公告,未來這個專題完成且時機成熟,將會公開這個專題的內容,給有興趣的朋友玩玩。

Open Hardware,正在改變世界的新開放觀念。

Code Composer Suite 安裝

CCS安裝

Code Composer Suite(CCS),是一套由TI德州儀器所出的IDE,專門用來開發與設計由TI所出品的可程式IC,例如:MSP430系列、Stellaris系列等等。 這套開發軟體有兩種版本,一種是免費的,一種是付費的,兩者之間的差異只在於可編譯的程式大小。不過別擔心,TI很有良心,免費版本下的編譯可達32KB(比KEIL還多)。因此,若沒有太大需求,免費的版本就足以應付許多設計。

下載

CCS有兩種安裝方式:網路安裝、離線安裝,以及兩種作業系統的支援:Windows、Linux。請點此進入下載頁面,選擇你的作業系統以及安裝方式。 下載前還需要申請成為TI會員以及申請書,很好申請,就照表格寫就行了。填寫完成後,TI會寄一封信到你的信箱,裡頭付有你的專屬下載連結,這時就大大方方的直接下載吧!

CCS安裝

安裝

安裝之前 請先確認你的PC有安裝Java的虛擬機器JRE,若沒有請記得先安裝!

Windows

執行 ccs_setup_5.1.0.xxxxx.exe檔案(xxxxx代表版本號)

CCS安裝

選擇你想裝的位址,你也可以把它安裝成eclipse的一個部分。

CCS安裝

選擇你想要安裝的內容,這部分就根據你手上現有裝置做勾選,這邊以MSP430與Stellaris為例。因為我已經安裝過,所以會呈現灰色字樣。當然,你也可以直接全選,不過檔案會非常大。

CCS安裝

到此,點下下一步之後就會開始安裝了!

Linux

執行 ccs_setup_5.1.0.xxxxx.bin ,建議執行方式是:

剩下部分與Windows雷同,加上我沒有圖片,就省略了 XD

問題

CCS於Linux下的Launchpad是無法正常燒錄的,請參考這篇文章。我的解決方式是,用CCS寫Launchpad的Code,然後用這篇文章的工具燒錄與測試,頗方便。

當LaunchPad遇上nRF24L01

時間過得真快,又到了一週一文的截止時間後了(?),今天要來跟大家談談Jack和Rose相遇的故事,讓我們把時間回到1912年的鐵達尼號…

啊,不對,是LaunchPad與nRF24L01才對。LaunchPad我相信有在關注Single.9的朋友們應該不會很陌生才是,假如你是隨Google大神的指引而來到寒舍的話,那麼你可以先參考這篇文章後在來看也不遲。

開始之前

今天的豬腳是清蒸的主角是這個小小的傢伙,nRF24L01。別看他如此嬌小的樣貌,他的內部功能可以說是應有盡有,而且能力不輸ZigBee呢!

nRF24L01

特色:

  • 使用2.4GHz全球開放頻寬
  • 126個可選擇頻道
  • 可設定收發位址及頻率
  • 1 與 2 Mbps 的資料傳輸速率
  • 可程式控制的輸出功率(最大0dBm,消耗11.3mA)
  • 1.9~3.3V低電壓
  • 使用SPI界面控制
  • 詳細請參考Data Sheet

硬體設定

節錄自SPI的紀錄,大概就是長這樣:

白話文解釋:

nRF24L01模組上的第12腳分別接上電壓不可超過3.6V

程式設定

網路上已經有人幫nRF24L01寫了API以及SPI,這大大的減少了我們在軟體上面的設定時間,我們要作的就是把API以及SPI給包到我們的程式裡面這樣就算是做完基本定義了。之後在參考SPI.c的內容與註解來進行更細節的程式規劃,當然,如果需要的話,你也可以參考Data Sheet來作其他的細節設定,無論如何,真要謝謝這不知名的朋友無私的分享這樣的東西。

檔案請點這邊下載(含UART以及收發範例),註解翻譯並不是完全的,因為實在很不想翻(別打我)。

下載完之後,請將之放到與你主程式相同的資料夾裡,然後如以下include到你的程式。對了main.c裡面是簡易的範例程式可以參考看看。

話說我好像還沒寫 CCS 的使用說明,下次文章更新的時候我會順便寫的…(鞠躬)

如何使用

使用方法請參考SPI.c以及範例程式…基本上都有稍做翻譯了,這邊貼上接收與發射的主要程式片段。

發射(Tx)

以上,是 nRF24L01 與 LaunchPad 邂逅的方式,而他們的邂逅當然也有拍下珍貴的紀錄喔!(咦?)

如何在Linux中使用LaunchPad?(安裝設定篇)

MSP430 Launchpad是TI(德州儀器)所推出的一種超小型單晶片實驗板,其特色為太多多餘的元件在板子上,所以又稱為核心實驗板,細節內容你可以參考這篇文章

而今天主要是要來教各位如何在Linux上使用這個小巧又便宜的實驗板,嗯?你說CCS本身就有出Linux版本?喔,是的,的確有出,但是他的Debug並沒有支援這板子上面的USB裝置,雖然Linux可以辨認,但就是無法使用。關於這點,TI討論區上有人曾經問過,而TI工程師也很認真的回覆了,詳情可以點這裡前往。

最近因為自己有點怪怪的,又把小筆電的作業系統從Windows換成Ubuntu然後發現要拿作專題的MSP430 LaunchPad居然不能用…百般搜尋後,終於在Hack a day找到要的資料,建議閱讀原文,因為以下將直接解釋安裝步驟。(作業系統環境是Ubuntu其他環境不清楚能否正常執行)

安裝MSPGCC

第一步是安裝必須的套件與環境,請打開終端機(或用Ctrl+Alt+T)然後輸入以下指令:

裝完之後,用SVN下載原始碼:

接下來開始進行編譯!

在這會顯示一些資訊要你選擇,基本上就是一直按Enter到底,最後要記得選YES。

這個步驟會用掉很多時間約20~45分鐘,依電腦效能而定。這段時間你可以逛逛臉書或者是看看其他的文章

編譯完成之後,我們要把這個專門給MSP430的編譯器加入到Path中,方便未來使用。請執行以下指令:

在檔案最後面加入:

然後用Ctrl+X儲存並離開。 重新載入Path設定。

安裝MSPDebug

接下來是安裝mspdebug程式,剛剛那些步驟是在裝編譯環境,這個則是燒錄與除錯用的。 請先到MSPDebug下載最新的檔案,然後開始編譯…

別擔心,這個的編譯與安裝速度很快就完成了!

連接LaunchPad

在終端機下這個指令,這個指令是連接到Launchpad,通常剛安裝好是無法正常工作的,錯誤訊息如下顯示…原因是,沒有適當的驅動。

所以…要來弄一下驅動,讓Linux可以辨認與使用這個裝置。

輸入:

然後重啟。

重新下指令,這時應該應該可以正確連上,並且進入另一個操作介面。

那麼這個要如何使用呢?你可以先到Hack a day看底下的說明,或者等我假日更新…最近有點忙,這篇原訂昨天發表的文章拖到今天才發…囧。      

MSP 430 Launch Pad Experiment: Blink LED.

摸了一陣子的 Launch Pad 後,除了因為它便宜、嬌小且功能充足之外的驚訝,剩下的就是不斷閱讀英文文件的地獄…還好,有人弄了一個中文的教學站點,方便初學者入門,也讓我好開始起頭,雖然後來發現我還是參考官方Blog以及IDE內的範例程式比較多就是了,哈。

那麼,我們開始進入今天的主題。

今天要呈現給各位的是微電腦系統最喜歡的 Hello, World 方式,讓 LED 閃來閃去! (戴墨鏡)

摸了一陣子的 Launch Pad 後,除了因為它便宜、嬌小且功能充足之外的驚訝,剩下的就是不斷閱讀英文文件的地獄…

還好,有人弄了一個中文的教學站點,方便初學者入門,也讓我好開始起頭,雖然後來發現我還是參考官方Blog以及IDE內的範例程式比較多就是了,哈。

繼續閱讀 “MSP 430 Launch Pad Experiment: Blink LED.”