人體姿態(tài)控制見得多了,手機(jī)姿態(tài)控制的來一個(gè)?
左右前后傾斜手機(jī),面前的小車也跟著移動(dòng):
看這靈活的身姿,轉(zhuǎn)個(gè)彎也毫無問題:
絕對(duì)正兒八經(jīng)的“手機(jī)遙控器”,可以倒翻小車看看這個(gè)輪胎轉(zhuǎn)動(dòng):
再一看,誒,車上又有我們熟悉的樹莓派:
這就是油管主 MohammadReza Sharifi 用樹莓派 DIY 的“手機(jī)姿態(tài)控制”的機(jī)器小車。
而整個(gè)項(xiàng)目的花銷只有大概 40 英鎊,不到 350 元!
手機(jī)加速計(jì)操控小車
那么,這個(gè)拿手機(jī)當(dāng)遙控器的小車在結(jié)構(gòu)上有什么特殊之處呢?
Sharifi 老哥公布了他所采用的全部材料:
樹莓派 ×1
HC05 藍(lán)牙模塊 ×1
L298 電機(jī)驅(qū)動(dòng)器 ×1
機(jī)器人底盤 ×1(還是非常便宜的塑料材質(zhì))
直流齒輪馬達(dá) ×4
跳線 ×n
嗯…… 畢竟總成本只有約 40 英鎊,還要啥自行車呢。
而安裝在底板上的價(jià)格不到 3 英鎊的 Raspberry Pi Pico,無疑就是小車的核心了。
這是樹莓派今年年初發(fā)布的微型處理器新品,基于其自研的 RP2040 芯片構(gòu)建,搭載雙核 ARM Cortex M0 + 處理器,運(yùn)行頻率 133MHz,內(nèi)置 264KB 的片上 RAM。
和以往的樹莓派產(chǎn)品相比,Raspberry Pi Pico 更擅長(zhǎng)低時(shí)延的 I / O 通信和模擬信號(hào)輸入。
而 Sharifi 老哥就是打算用 Raspberry Pi Pico 實(shí)時(shí)處理運(yùn)動(dòng)數(shù)據(jù),并將信息發(fā)送給小車的電機(jī)驅(qū)動(dòng)程序,帶著小車跑起來的。
那么樹莓派接收到的運(yùn)動(dòng)信息又從何而來呢?
智能手機(jī)中的加速計(jì)。
這是手機(jī)內(nèi)部的一個(gè)傳感器組件,用于檢測(cè)手機(jī)受到的加速度的大小和方向。
(很多人會(huì)把加速計(jì)功能叫做重力感應(yīng)功能,這是因?yàn)槭謾C(jī)靜置時(shí)只受到重力加速度)
這就是 Sharifi 老哥的“手機(jī)姿態(tài)控制”的完整思路,即通過藍(lán)牙設(shè)備將手機(jī)加速計(jì)的運(yùn)動(dòng)數(shù)據(jù)傳給樹莓派,再控制機(jī)器小車移動(dòng)。
三小時(shí)編寫代碼
要在手機(jī)加速計(jì)和 Raspberry Pi Pico 之間傳遞數(shù)據(jù),當(dāng)然還是得靠代碼。
Sharifi 老哥使用的是一個(gè)叫做 MIT App Inventor 的代碼開發(fā)平臺(tái):
這是由一個(gè)基于模塊的可視化編碼平臺(tái),可以相對(duì)輕松地開發(fā)移動(dòng)設(shè)備應(yīng)用程序:
在確定手機(jī)加速度計(jì)的角速度和加速度的大小,以及機(jī)器小車的相對(duì)坐標(biāo)軸這些任務(wù)上,Sharifi 老哥花了不少時(shí)間。
不過最終他還是在三小時(shí)內(nèi)完成了構(gòu)思和編程。
像這樣,手機(jī)連接藍(lán)牙,打開開發(fā)好的 App:
和設(shè)備成功連接之后,轉(zhuǎn)動(dòng)手機(jī),四個(gè)小輪胎也就跟著開始轉(zhuǎn)了:
這一次的項(xiàng)目是基于 Sharifi 老哥自己的 Redmi Note 9 Pro 手機(jī)的安卓開發(fā)項(xiàng)目。
他表示,下一步打算用 Python 整一個(gè) iOS 程序,爭(zhēng)取早日把 iPhone 也變成遙控器。
下載:
https://github.com/mohammadreza-sharifi/Control-Raspberry-Pi-Pico-Robot-using-Android-Phone-Accelerometer
參考鏈接:
https://www.raspberrypi.com/news/raspberry-pi-pico-robot/
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。