這個機器人應用,可讓機器人變成火警情報員

可編程全地形機器人HEXA在正式面向用戶時,曾發起「HEXA人類導師計劃」,獲得很多用戶的購買申請,隨着體驗的深刻,很多用戶開發出了許多有趣實用的機器人應用,咱們將陸續把這些應用的代碼分享出來,感興趣的夥伴們能夠嘗試體驗。今天分享的是用戶RiverLLZ開發的火情警報的機器人應用(Skill)——Fire Marshall Robhtml

輸入圖片說明

我在入手HEXA以前,曾玩過Arduino套件。因此在拿到HEXA以後很天然就想把兩樣」混搭」一下。在Arduino套件裏我有一個火焰傳感器,是以前在網上買的,很是便宜。要是能把它裝在HEXA上,這就是個救火隊長機器人了。編程

這個傳感器是3pin的,介紹裏寫它能探測看到80cm之內的火焰。3個針腳分別是3.3V電壓和模擬地,以及一個GPIO接口。根據HEXA的開發文檔介紹:https://documentation.vincross.com/Introduction/hardware.html#hardware-interfaces ,HEXA的硬件接口能夠很方便接上。檢測原理是,當傳感器的紅外元件檢測到火焰時,就會將HEXA GPIO接口的電壓拉低。微信

gpio, _ = gpio.High(2); // I connect the sensor to GPIO pin 2

if !gpio {
    // detected fire, do something
}

運行這個skill時,HEXA的頭部會持續轉動,檢測周邊環境。當它檢測到火焰時,會對着火焰的方向拍張照片,而剛剛拍攝的火場照片會自動經過Base64編碼的方式傳到與機器人鏈接的手機的相冊裏。而後在完成了報警任務後,HEXA會自動轉過頭向着相反的方向逃跑(挺貴的,心疼)。如下是調用的核心函數。函數

gpio2, _ = gpio.High(2); // initialize

// detected
if !gpio2 {
   time.Sleep(800 * time.Millisecond)
   // take photo
   log.Info.Println("DETECTED")
   buf := new(bytes.Buffer)
   log.Info.Println("JPEG")
   jpeg.Encode(buf, media.SnapshotYCbCr(), nil)
   log.Info.Println("BASE64")
   str := base64.StdEncoding.EncodeToString(buf.Bytes())
   log.Info.Println("SENDING")
   framework.SendString(str)
   log.Info.Println("Sent:", str[:20], len(str))
   // turn back and leave
   hexabody.MoveHead(hexabody.Direction()-180, 100)
   hexabody.WalkContinuously(0, WALK_SPEED)
   time.Sleep(Waiting * time.Millisecond)
} else {
   hexabody.StopWalkingContinuously()
   hexabody.MoveHead(hexabody.Direction()-60, MOVE_HEAD_DURATION)
}

如今這個skill更像個理想形態的功能,它展現了HEXA怎麼檢測和應對火情的。它還須要更多改進,不管是硬件方面仍是編程方面,也許有一天HEXA真的可以成爲保護人類生命的火場英雄呢?!工具

簡單介紹一下HEXA,它是一個能夠靈活適應多種場景的全地形可編程機器人,集成了各類必要的傳感器,並搭載強大易用的機器人軟件操做系統( MIND OS )。做爲一個機器人開發平臺,官方提供了完整的開發工具,喜歡機器人或者想要作機器人開發的朋友,能夠直接跳過底層的硬件電路和結構力學,用 HEXA 直接上手來學習和開發機器人應用。對於HEXA開發感興趣的朋友能夠加入交流羣,QQ羣:455783546;微信羣能夠掃下面二維碼:學習

輸入圖片說明

最後打一個硬廣:雙十一期間,HEXA工程機正在低價發售,能夠直接優惠1111元,另外現貨發售。活動時間到11月11日,近期想要入手的話是一個合適的機會。開發工具

購買地址:Vincross官網ui

輸入圖片說明

相關文章
相關標籤/搜索