鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

很榮幸有機(jī)會(huì)參與芯板坊開展的鈦極小龜物聯(lián)網(wǎng)開發(fā)板評(píng)測(cè)活動(dòng)。該套件是北京鈦云物聯(lián)網(wǎng)推出的一套物聯(lián)網(wǎng)評(píng)估套件–鈦極小龜TiKit-T600-ESP8266B。

該硬件平臺(tái)是一款專門針對(duì)初學(xué)者入門的開發(fā)套件,由WiFi模組和各樣的傳感器等組合,但與其他物聯(lián)網(wǎng)公司不同的是,首先這家公司不是云平臺(tái)服務(wù)商,其次該套件設(shè)計(jì)還是比較用心的,最后,也是最獨(dú)特的是其使用Java語言進(jìn)行應(yīng)用功能的開發(fā)。

也就是說,即便你不是精通C語言的嵌入式工程師,你或許是擅長(zhǎng)java類的軟件工程師,以前苦無機(jī)會(huì)進(jìn)入嵌入式物聯(lián)網(wǎng)行業(yè)分一杯羹,而現(xiàn)在機(jī)會(huì)就擺在你的眼前。

一.硬件介紹

鈦極小龜物聯(lián)網(wǎng)開發(fā)套件(以后簡(jiǎn)稱:鈦極小龜評(píng)估板)如下圖1所示。拿到手后,相信你肯定會(huì)被其外包裝色彩與圖案設(shè)計(jì)所吸引,其設(shè)計(jì)顯得極具科技味道。套件的硬紙盒質(zhì)感非常好(就我目前拿到/買到的開發(fā)板包裝里,該包裝顯得很用心,算是最好的了!之前大很多數(shù)采用透明塑料盒進(jìn)行包裝的。)

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖1 鈦極小龜物聯(lián)網(wǎng)開發(fā)套件全家福照片

該包裝盒分為上下兩層,上部分用軟塑料內(nèi)嵌評(píng)估板,下部分裝有一根MicroUSB線,一個(gè)紅外遙控器,另外還有基本的使用說明文檔。另外,隨盒附送了一個(gè)鈦云物聯(lián)的宣傳單(封面有句話,很觸動(dòng)我:是時(shí)候用Java開發(fā)智能硬件了。之前聽說過有用javascript腳本語言進(jìn)行應(yīng)用開發(fā)的開發(fā)板,沒想到這次有機(jī)會(huì)玩玩用Java進(jìn)行開發(fā)的開發(fā)板,再次感謝芯板坊給我這次機(jī)會(huì))。

仔細(xì)端詳鈦極小龜評(píng)估板,你會(huì)發(fā)現(xiàn)其做工非常精細(xì),器件布局錯(cuò)落有致,設(shè)計(jì)風(fēng)格獨(dú)樹一幟,有別于其他眾多云平臺(tái)廠商推出的開發(fā)板,讓用戶很容易識(shí)別各功能模塊區(qū)域。該評(píng)估板上板載有液晶屏模塊,溫濕度傳感器模塊,麥克風(fēng)模塊,普通按鍵模塊,光照度傳感器模塊,紅外接收模塊,繼電器模塊和觸摸按鍵模塊。實(shí)物圖如下圖2所示。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖2 鈦極小龜評(píng)估板實(shí)物圖

二.軟件簡(jiǎn)介

鈦極OS是一個(gè)支持 Java 語言開發(fā)嵌入式智能硬件的物聯(lián)網(wǎng)操作系統(tǒng),支持大部分的Java特性,與標(biāo)準(zhǔn)Java兼容,并通過Eclipse進(jìn)行開發(fā),同時(shí)鈦極OS還支持多應(yīng)用。它的實(shí)現(xiàn)機(jī)制更像安卓、由內(nèi)核掌管底層硬件資源,軟硬隔離,同時(shí)集成高效的Java虛擬機(jī),通過對(duì)硬件抽象,異步IO, 多線程、沙盒運(yùn)行,事件驅(qū)動(dòng)以及面向?qū)ο蟮腏ava語言開發(fā)等多種技術(shù),使物聯(lián)網(wǎng)硬件應(yīng)用開發(fā)變得輕松且高效。

鈦極OS由操作系統(tǒng)(TOS)、Java虛擬機(jī)(TiJVM)、功能組件(TiRT)三部分構(gòu)成。TOS負(fù)責(zé)提供任務(wù)調(diào)度和控制、文件操作、基準(zhǔn)時(shí)鐘、資源的分配、外設(shè)操作(GPIO/UART…)等基礎(chǔ)服務(wù)。同時(shí)鈦極OS的特點(diǎn)是內(nèi)核OS支持第三方的RTOS,例如LiteOS、FreeRTOS等。TiJVM的作用是建立Java程序的運(yùn)行環(huán)境,實(shí)現(xiàn)Java語言的各種特性,同時(shí)TiJVM也是TOS的一個(gè)任務(wù)。

TiRT是為用戶開發(fā)應(yīng)用程序提供的基礎(chǔ)類支持,包括感知層控制、網(wǎng)絡(luò)通信協(xié)議、為物聯(lián)網(wǎng)的安全接入和身份鑒別提供的安全組件、圖形組件包。其體系結(jié)構(gòu)如下圖3所示。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖3 鈦極OS系統(tǒng)結(jié)構(gòu)圖

總體說來,鈦云物聯(lián)提供了豐富的例程資源供用戶遞進(jìn)式的學(xué)習(xí),由于時(shí)間有限,我此次沒有連接公有云、在手機(jī)上體驗(yàn)和編寫手機(jī)端的控制程序,稍感遺憾。將來時(shí)間允許的話,再進(jìn)行系統(tǒng)功能擴(kuò)展,相信會(huì)有另一番的體驗(yàn)。

三.項(xiàng)目簡(jiǎn)介

當(dāng)時(shí)我的申請(qǐng)計(jì)劃是用鈦極小龜物聯(lián)網(wǎng)開發(fā)套件搭建了一個(gè)移動(dòng)式環(huán)境監(jiān)測(cè)系統(tǒng)。在申請(qǐng)的時(shí)候,經(jīng)過分析、研究相關(guān)資料,從原理圖上可以得到結(jié)論:

若想將其安裝到移動(dòng)平臺(tái)上,除了繼電器接口外,別無它法(該套件沒有外擴(kuò)引出任何引腳!若想做更多擴(kuò)展要么換個(gè)平臺(tái)–鈦極OS(TiJOS)物聯(lián)網(wǎng)操作系統(tǒng)開發(fā)套件 ESP8266,當(dāng)然也可以借鑒我此次的設(shè)計(jì)方法)。

1. 系統(tǒng)功能簡(jiǎn)介。移動(dòng)式環(huán)境監(jiān)測(cè)系統(tǒng)具有的功能如下所示。

  • 用戶通過紅外遙控器指定移動(dòng)平臺(tái)移動(dòng)到預(yù)定地點(diǎn)的功能;
  • 具有SmartConfig配置聯(lián)網(wǎng)功能;
  • 移動(dòng)平臺(tái)可以隨時(shí)進(jìn)行環(huán)境參數(shù)的采集功能;
  • 移動(dòng)平臺(tái)通過MQTT協(xié)議將采集到的環(huán)境數(shù)據(jù)上傳到后臺(tái)云上(這里我采用的是本地私有云,當(dāng)然也可以擴(kuò)展到諸如阿里云等公有云平臺(tái)上)。

2. 系統(tǒng)通信協(xié)議

為了完成該套件與移動(dòng)平臺(tái)間的通信,即將該套件安裝到移動(dòng)平臺(tái)上,用戶可以通過紅外遙控器操作小車進(jìn)行環(huán)境監(jiān)測(cè),因此制定了如下表1所示的通信協(xié)議。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

表1 移動(dòng)式環(huán)境監(jiān)測(cè)系統(tǒng)通信協(xié)議

如前所述,因?yàn)樵撎准]有外擴(kuò)對(duì)外的引腳,所以在此次項(xiàng)目中,我通過將套件板載的繼電器與移動(dòng)平臺(tái)的GPIO引腳進(jìn)行連接,從而完成兩板子間的物理信道的連接。而實(shí)現(xiàn)邏輯上,移動(dòng)平臺(tái)上的主控系統(tǒng)通過統(tǒng)計(jì)EXIT接口接收到的中斷申請(qǐng)的次數(shù)來識(shí)別用戶的控制命令,命令編碼如上表左側(cè)所示。

比如,用戶按下紅外遙控器的按鈕,希望移動(dòng)平臺(tái)右轉(zhuǎn)時(shí),該套件在識(shí)別鍵碼后,通過吸合板載繼電器4次后,引發(fā)與其相連接的移動(dòng)平臺(tái)上的引腳有4次高低電平的變化,而該引腳復(fù)用了EXTI外部中斷功能,從而移動(dòng)平臺(tái)上的主控解析出相應(yīng)的電機(jī)動(dòng)作。套件與移動(dòng)平臺(tái)間硬件連線圖如下圖4所示。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖4 套件與移動(dòng)平臺(tái)間硬件連線圖

實(shí)物連接圖如上圖2中左上角紅色文字1/2/3所示,1為NC常閉引腳,2為COM公共引腳,3為NO常開引腳。這里連接原理如上圖4所示。

注意,這里板載繼電器電路是帶有防反向電動(dòng)勢(shì)的二極管保護(hù)電路,所以我直接將2塊板子直接相連結(jié)了。如果自行搭建繼電器電路時(shí),需要注意防反措施。原理圖如下圖5紅色圈所示。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖5 帶有二極管保護(hù)的繼電器電路

四.硬件實(shí)物

硬件實(shí)物如圖6所示。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

五.軟件設(shè)計(jì)

1. 鈦極小龜評(píng)估板程序

為了完成信號(hào)的采集,本軟件系統(tǒng)設(shè)計(jì)了3個(gè)線程,分別用于采集溫濕度、光線、環(huán)境音。示例代碼如下圖7和8所示。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖7 線程的調(diào)用

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖8 溫濕度信號(hào)采集類的設(shè)計(jì)

而在主循環(huán)中每1秒將采集到的信息發(fā)送到本地私有云上(效果如視頻所示),示例代碼如下圖9所示。另外采用監(jiān)聽器實(shí)時(shí)對(duì)紅外遙控器進(jìn)行解碼分析,如下圖10所示。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖9 向本地云發(fā)布MQTT消息

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

圖10 紅外解碼部分代碼

(2)小車的程序

這里小車主要有接收協(xié)議編碼、解析協(xié)議、小車行進(jìn)和壁障等四個(gè)功能,因?yàn)椴皇呛诵牟糠郑涫纠a略過。

六.實(shí)物

1. 測(cè)試問題

(1)當(dāng)網(wǎng)絡(luò)信號(hào)不好時(shí),日志會(huì)彈出如下圖10所示異常。另外,當(dāng)連接wifi模塊創(chuàng)建的網(wǎng)絡(luò)時(shí),系統(tǒng)能連接上,但是無法向本地云上傳相關(guān)數(shù)據(jù)。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

(2)在系統(tǒng)運(yùn)行時(shí),有時(shí)日志會(huì)列舉如下圖11所示的異常,經(jīng)查閱是與DHT11相關(guān)的,且評(píng)估板此時(shí)的DHT11是無法工作的,還沒有查出問題。

鈦極小龜,一款把Java語言應(yīng)用到低資源的MCU開發(fā)中的創(chuàng)意產(chǎn)品(鈦極智能)

六.使用心得

對(duì)于使用Eclipse進(jìn)行開發(fā)時(shí),沒有連接硬件進(jìn)行debug的功能,有些遺憾!從個(gè)人角度來說,每次都得Run as TiJOS Application,對(duì)于與硬件相關(guān)的應(yīng)用開發(fā),很難發(fā)現(xiàn)程序中潛在的邏輯/時(shí)序問題。

對(duì)我來說(大約花了3周時(shí)間里設(shè)計(jì)本項(xiàng)目),學(xué)習(xí)鈦極小龜評(píng)估板相關(guān)示例程序還是有一些難度的(約20年前學(xué)過Java語言,看到Java代碼確實(shí)有似曾相識(shí)的感覺,實(shí)則早已忘光了,所以還是花一些時(shí)間來慢慢熟悉和適應(yīng)的),但是相信對(duì)于Java工程師而言,肯定沒有問題!也就說該評(píng)估板確實(shí)可以說是一款顛覆傳統(tǒng)開發(fā)的物聯(lián)網(wǎng)開發(fā)套件,為不需懂硬件電路設(shè)計(jì)的Java工程師打開了物聯(lián)網(wǎng)世界開發(fā)的大門。

總體說來,鈦云物聯(lián)有別于傳統(tǒng)的云平臺(tái)廠商,通過創(chuàng)新性地把Java語言應(yīng)用到低資源、低成本的MCU開發(fā)中,從而降低了物聯(lián)網(wǎng)產(chǎn)品的開發(fā)難度和開發(fā)成本。個(gè)人相信其應(yīng)用前景將會(huì)非常廣泛。

本次試用活動(dòng)由芯板坊舉辦。帶大家體驗(yàn)鈦極物聯(lián)開發(fā)板大家可在芯板坊微信(xinzixun321),點(diǎn)擊菜單欄免費(fèi)申請(qǐng)。

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁
返回頂部