項目分享| STM32+樹莓派實現6s解魔方機器人

2021-02-15 達爾聞說

不想錯過我的推送,記得右上角-查看公眾號-設為星標,摘下星星送給我

給你個魔方,最快多久可以恢復? 我們這有臺機器人,最快6s可以復原,有沒有人敢來PK的?

視頻中的解魔方機器人出自達粉工控小弟之手,耗時4個月,全部費用約2500元,所以各位摩拳擦掌想一試的兄弟們要考慮下自己的財力喲。

◆ 解魔方機器人看著挺複雜的,其實功能非常清晰明了:整體系統由上位機與下位機構成,上位機的功能是:採用 Raspberry Pi4 作為主控制器,使用 OV5647 攝像頭模組作為圖像採集與識別的設備;下位機採用 STM32 系列的單片機作為主控制器,使用六臺步進電機作為執行機構。

智能解魔方機器人的工作流程:Raspberry Pi4 調用 OV5647 攝像頭模組對魔方六面的色塊信息進行採集,將採集到的圖像進行邊緣分割及二值化,通過顏色閾值對比,得到相對應顏色值,生成色彩信息字符串。色彩信息字符串傳入 Kociemba 算法,通過 Kociemba 算法解算出魔方還原指令,將還原指令通過 HC05 藍牙模組發送至下位機,下位機解析魔方還原指令後執行相應的動作,實現魔方還原。 

上位機狀態顯示採用 0.96 寸的 OLED 顯示屏;

上位機電源變換中,電源輸入為 DC 12V 電壓,DC 6V 電源使用 XL4005 降壓晶片獲得,DC 5V 電源使用 XL4005 降壓晶片獲得,DC 3.3V 使用 AMS1117-3V3 降壓晶片獲得。

處理器採用 STM32F103RCT6;

下位機與上位機的通信方案採用 HC-05 藍牙模組進行無線通信;驅動器採用東芝 TB67S109AFTG 步進電機驅動器;下位機電源變換中,電源輸入為 DC 12V-DC 24V 的寬電壓,DC 12V 電源使用 XL4005降壓晶片獲得,DC 5V電源使用XL4015降壓晶片獲得,DC 3.3V使用AMS11173V3 降壓晶片獲得。

有了硬體後就開幹,主要硬體設計內容 

智能解魔方機器人的設計內容還是圍繞上位機設計與下位機設計,確保他們都可以完成各自的工作。在上位機的設計中,難點在於:圖像採集及圖像處理、解魔方算法設計、魔方還原指令的生成。

單板計算機主要負責圖像處理、解魔方算法的運行、上位機主程序運行。圖像採集設備主要負責採集魔方的六面的色塊信息。上位機輔助處理器主要功能為協助上位機做拍照平臺控制、補光燈亮度調節、驅動上位機狀態顯示器件。補光燈主要負責提供合適的光源,輔助圖像採集設備準確無誤的採集魔方六面色塊。上位機電源系統主要為單板計算機、補光燈等部分提供額定電源,保證上位機各部分供電正常。拍照平臺作為輔助圖像採集設備使用。上位機狀態顯示主要負責提示拍照順序、顯示當前補光燈的亮度等級、顯示當前拍照的魔方面的序號。按鍵主要功能為控制補光燈的亮度與控制拍照平臺的轉動。 

而下位機相對簡單些,需要魔方還原指令的解析,還需要順滑的硬體電氣連接,機械結構的設計應考慮穩定性、準確性、靈活性,確保在執行機構動作時,不會產生超量的機械誤差。在還原指令無誤的情況下,提高下位機的設計品質,可大幅度提高還原速度與還原準確性。  

解魔方算法是智能解魔方機器人的「靈魂」 , 一套高效的解魔方算法可以大幅度提高智能解魔方機器人還原魔方的速度。 這裡採用的是直接調用 Kociemba 算法庫。在 Python3 中,官方提供了一個 Kociemba 算法庫,可以直接調用,使用非常方便。更詳細的Kciemba 算法庫的配置方法在開源的文檔中有介紹,可以在「達爾聞說」微信回覆:解魔方機器人,獲取。

除了解魔方算法,上位機其他軟體功能也非常重要的:圖像採集、圖像處理、解魔方算法運行、串口發送四大功能,圖像採集需要配置攝像頭的驅動,圖像處理需要配置好 OpenCV 的環境,解魔方算法的運行需要配置支持環境,串口功能需要配置相應的波特率、奇偶檢驗位、數據位等參數。

上位機主程序流程圖

下位機的軟體流程就非常的簡單,主控晶片是STM32,自然下位機的軟體設計語言採用 C語言。使用官方提供的標準庫開發,移植性高且開發周期更快。

在STM32正常供電後,片上系統開始初始化,完成內核及外設的復位。調入系統初始化函數,按照初始化函數的基本配置,對 GPIO、USMART、PWM、定時器、中斷等外設進行初始化配置。配置完成後,系統開始對外部中斷進行監聽,當外部中斷發生後, 進入外部中斷服務程序。外部中斷服務程序中,打開串口中斷,使能步進電機驅動器的 EN 埠。此時,系統開始監聽串口中斷,當串口接收中斷發生後,程序進入串口中斷 服務程序。對接收到的魔方還原指令進行解析,驅動相應的步進電機轉動。 

整個系統調試主要對機器人的魔方還原算法、顏色識別這兩項做重點的調試,通過多次隨機打亂還原測試,Kociemba 魔方還原算法都能夠正常進行還原。工控小弟分享了上面提到的上位機和下位機的原理設計圖,以及魔方機器人的製作說明文檔,給願意做的小夥伴一些參考,在「達爾聞說」微信回覆:解魔方機器人,獲取。另外,如果你想和工控小弟交流,可以加入達爾聞交流群,添加妮姐微信(459888529),備註技術交流即可入群。做這個項目正是疫情期間,工控小弟在自己家中臨時搭建了簡陋的工作檯完成了這個機器人。妮姐想說,只要你願意做,就會有100種方法可以成功,加油吧!我們是妮mo,達爾聞創始人,只講技術不撩漢的小姐姐。達爾聞在線教育平臺旨在服務電子行業專業人士,提供技能培訓視頻,覆蓋各細分領域熱門話題,比如嵌入式,FPGA,人工智慧等。並針對不同人群量身定製分層級學習內容,例如常用知識點,拆解評測,電賽/智能車/考研等,歡迎關注。

點讚,在看,轉發三連哦

相關焦點

  • 我用樹莓派兩個小時造了一臺電腦
    我一開始聽同事說到這個名稱還以為是可以吃的派。其實樹莓派晶片是一款針對電腦業餘愛好者、教師、小學生以及小型企業等用戶的迷你電腦晶片,上面預裝著Linux系統,體積僅信用卡大小。很多技術咖都在樹莓派上開發了各種好玩的項目。魔鏡魔鏡誰是世界上最美的女人? 一塊雙面鏡 + 廢舊顯示屏 + 樹莓派 = Smart Mirrow 市面上的好的智能鏡子價格不菲,甚至有上萬的,買一個35美金的樹莓派自己DIY 一面鏡子的確非常有意義。
  • 我終於擁有了樹莓派
    具體的操作步驟如下,首先在樹莓派控制臺輸入以下指令以在軟體源中查找並下載安裝一個叫做xrdp的軟體。如果需要在移動環境下使用樹莓派,前段時間看到了稚暉君(真的強烈推薦您去B站瀏覽這個被稱為野生鋼鐵俠的男人發布的視頻)的作品,他將6英寸屏幕與充電寶結合,製作了一塊能夠給樹莓派供電的1080p便攜屏幕。看到視頻的那一瞬間,我的直覺告訴我,這就是世界上最適合作為樹莓派可移動配件的設備了。
  • 樹莓派「小霸王學習機」來了,一個自帶鍵盤的電腦,售價不到500元
    相比樹莓派4,樹莓派400主要的改變有: 從鍵盤角度來看,功能還是比較齊全,但明顯要比標準鍵盤要窄一些。 既然是拆箱,就要「一拆到底」,接下來一起看下樹莓派400的「內部世界」(主要還是便宜)。
  • 樹莓派4B的夏天
    不知道你們的樹莓派是否又進入吃灰的狀態了??是否你們已經學會了樹莓派的各種騷操作?如今突然看到開源的OpenRA,心中也是一激動,然後想是否有人已經嘗試過在樹莓派上運行了呢?我一查,還真有人已經玩兒的不亦樂乎了!
  • 樹莓派,不玩不知道(一)
    那吾輩在此,不妨往死裡糙磨這個「中年」樹莓派。但是,這番折騰,還是需要一些目標的。這樣,我們就可以不斷地從目標的達成中,獲得正反饋,進而給堅持不斷探索以堅實的理由——在用拖把擦拭地板時候,我這樣想。創意總是豐富的,搜索知乎上可以找到不少相關的問題,比如這個:有哪些對樹莓派的有趣改造和擴展應用1。筆者從這裡找到很多好玩的創意,非常希望能將這些創意在樹莓派上實現。
  • 玩機-樹莓派
    昨天說到ngrok內網穿透,我弄了個樹莓派,今天就說說,如何樹莓派入門。
  • 用樹莓派製造一支敲擊樂隊
    它可以讓你可以通過樹莓派或同一網絡上的任何其他設備(手機,平板或計算機)以交互方式控制你的機器鼓。稍後我會在樹莓派上安裝它。在這裡可以預覽:http://pibeat.banjowise.com/代碼在 GitHub 提供下載:https://github.com/mnkii/pibeat2、編碼擊鼓模式的 Python 腳本。
  • 挑戰樹莓派:RISC-V 微型計算機 PicoRio 發布
    RIOS 方面表示,PicoRio 對標的正是基於 ARM 架構的開源微型計算機系統 Raspberry Pi (樹莓派)。挑戰樹莓派作為最成功的微型計算機,開源的樹莓派在技術圈和學術界一直廣受編程愛好者的好評,各路大神基於樹莓派製作的新奇玩意兒層出不窮,圍繞這款微型計算機已經形成了一種獨特的 DIY 文化,相關的開源軟體生態建設也十分豐富。據統計,截至 2019 年 12 月,樹莓派的全球銷量已經突破 3000 萬套 。
  • 等等黨的勝利:樹莓派4首發8GB版,售價75刀,還可嘗鮮64位作業系統
    推出一年,樹莓派 4 已經賣出了近 300 萬臺。但美中不足的是,樹莓派 4 的內存最大只有 4G。官方博客表示,樹莓派使用的 BCM2711 晶片可以尋址高達 16GB 的 LPDDR4 SDRAM,但 8G 的 LPDDR4 封裝一直是一個障礙,因為這個封裝必須是為樹莓派單獨設計的。這使得 8GB 版本的研發周期要比預期中長一些。
  • 用樹莓派從零打造一臺街機
    RetroPieRetropie可以將你的樹莓派或者PC變成一臺復古遊戲機模擬器。RetroPie在樹莓派上提供了SD卡的鏡像文件,只需要刻錄到SD卡後,就可以運行各種不同的模擬器,傳輸Roms到樹莓派後就可以開始回味經典遊戲了。
  • PiSwitch:用樹莓派製作 Switch 遊戲機
    因為我的項目經常被拆開並重建或重新使用。我非常喜歡這個特殊的1/8插孔。我之所以選擇它,是因為能清晰的從頂部看到並徹底的了解它的工作原理。我建議將導線用熱熔膠粘合在樹莓派的底部,同時底部的接口能固定細線,並保護它們免受損壞和短路。
  • 個頭小本事大:13種20 美元以下的樹莓派 Zero 替代品
    這些超小型的單板計算機大受歡迎,而且會在相當長的一段時間內成為創客和 DIY 社區的樹莓派項目的一部分。 為了實現更小尺寸和有效地控制價位,它們不得不在許多特性上做出讓步,如放棄專用網口、採用更慢的處理器等(與其它們同族的全功能版相比)。 早先的一篇文章中,我們羅列了樹莓派的最佳替代品。
  • 「樹莓派+1萬塊樂高」打造樂高分類器,樹莓派官方轉發,網友:我想借來用兩天
    這個分類器由樹莓派和1萬塊樂高積木組成,耗時2年打造,真的是「用樂高搞定樂高」,堪稱最硬核的「套娃」。我們先來感受一下它龐大的外形:最近,如此硬核的設備也得到了樹莓派官方轉發。Daniel的技術是在前人的基礎上完成,但更加先進:它可以識別出所有曾經使用過的樂高積木,甚至是從未見過的積木。
  • 全開源PicoRio對標銷量超3000萬件的樹莓派
    但許多人可能並不了解2012年面世的基於Arm晶片的微型電腦樹莓派(Raspberry Pi)對Arm生態成功的重要性。樹莓派是為學習計算機編程教育而設計,2019年12月全球銷量超過了3000萬件,對Arm生態的成熟、甚至嵌入式系統的發展都意義重大。
  • 樹莓派4最新8 GB版本售價75美元
    在樹莓派4(Raspberry Pi 4)上市將近一年之後,官方現在推出了版本更新,提供8 GB的快閃記憶體版本,而2 GB版本則從原本的45美元降低至35美元,另外,作業系統也更名成為Raspberry Pi OS。
  • 電路城樹莓派試用活動第一周:開發環境的搭建(一)
    這次的開發是準備將原先單片機的一個應用進行升級改造,對於這種項目來說,樹莓派的板子主要是替代單片機進行GPIO口操作,同時建立一個友好的人機互動界面,所以一開始規劃就從這兩點出發,新增外設儘可能簡單,不考慮外接顯示器,一切都用WiFi無線功能,搭建Windows下遠程連接進行開發的環境。
  • 用STM32單片機實現nrf24無線控制電機和舵機
    nrf24L01 模塊3、一塊L298N電機驅動模塊4、兩個PS2 遙感模塊5、一個電機6、一個舵機介紹:nrf24L01 一個作為發送模塊,一個作為接收模塊;L298N 用來驅動電機兩個PS2 分別用作控制舵機旋轉 和 電機調速及正反轉這個小項目參考一個老外的實例
  • 就能用樹莓派製作一臺復古遊戲機
    實際上,你只需一部樹莓派和一些簡單的工具便可製作一部復古遊戲機,整個過程非常簡單。如果你對此感興趣,不妨通過本文的指南動手嘗試。步驟3:格式化SD卡在系統安裝之前你需要把SD卡格式化,你可以使用Windows內置的格式化功能或是第三方工具實現這一點。
  • 樹莓派4散熱風扇發布,售價 5 美元
    樹莓派基金會今天為樹莓派4發布了一款外設散熱風扇,售價 5 美元,旨在解決樹莓派4運行過程中過熱的問題。
  • 應該怎樣用Raspberry Pi 4 做一個星戰中的BD-1 陪伴機器人
    這是漂移菌大神的一篇文章,估計他忘了標記原創了,就直接複製過來,對樹莓派感興趣的朋友可以添加他的公眾號 - 「騎驢玩兒漂移」,點擊左下角的「閱讀原文