實物化編程的方法及其在機器人領域的應用
【技術領域】
[0001] 本發明屬于人機交互領域,具體涉及到一種實物化編程的方法及其在機器人領域 的應用。
【背景技術】
[0002] 進入21世紀,信息技術推動下知識社會的形成及其對技術創新的影響進一步被 認識,科學界進一步反思對創新的認識:技術創新是一個科技、經濟一體化過程,是技術進 步與應用創新"雙螺旋結構"(創新雙螺旋)共同作用催生的產物,而且知識社會條件下以 需求為導向、以人為本的創新2.0模式(創客)進一步得到關注。在這個世紀里,創客將成 為世界的領導者,引領世界走向更加輝煌的一頁。
[0003] 伴隨著當代中國乃至世界對創客的越來越關注,全民創客時代已經來臨。在互聯 網時代的今天,計算機和網絡已經成為人們生活中必不可缺少的一部分。作為創客,也必須 掌握一項基礎技能,就是"編程"。程序是計算機的大腦,也只有掌握"編程"的技能,然后才 能夠參與到計算機創新制作過程中來。
[0004] 傳統的編程通常是通過鍵盤輸入文本語言來完成。這種編程方式對于計算機初 學者而言,理解和使用起來很不方便,主要原因是傳統編程語言中的語法和復雜指令,難以 被理解和記憶,同時還需要進行大量輸入工作。而一般兒童和新手很難記住和理解程序語 言的語法、邏輯關系和程序架構等非常專業的知識。此外,對文字掌握得還不純熟的兒童來 說,程序的文本編輯方式缺乏直觀性,兒童無法采用傳統的編程方式來創作自己的程序。圖 形化編程向兒童提供了一種編程的可行途徑。它將各種編程的概念轉化為顯示在屏幕上的 各種圖形,兒童只需要對于各種圖形進行拖動,就可以完成編程的整個過程。而實物編程被 認為是圖形化編程的一個分支。與圖形化編程不同之處在于,實物編程對于程序的操作超 越了計算機屏幕的限制。實物編程通過觸覺、物理感知等技術與實物交互,再將實物邏輯轉 化為程序邏輯來進行編程。與直接讓兒童操控電腦相比,讓兒童通過操縱實物來進行創作, 更容易讓兒童投入到整個過程當中。通過實物編程系統,兒童可以對程序語言的邏輯有更 加直觀的理解。程序不再是一行行枯燥的代碼,而是一組形象甚至一組實物的組合,兒童通 過對實物的拼接組合,就可以完成普通程序語言通過鍵盤輸入代碼完成的工作。實物編程 的特點決定了它更適合兒童進行編程操作。
[0005] 現有技術中國專利CN102136208A公開了一種實物編程方法和系統,通過圖像采 集實物編程塊的表面識別碼,再轉換為對應的功能語義序列,用戶通過在攝像區域擺放具 有識別碼的實物模塊來進行簡單編程,這種實物化的編程方法雖然簡單,但其仍然是一種 乏味的程序,并不能很好地激發兒童及新手的學習興趣;同時,該方案只能使用已經在計算 機中設定好的程序,無法讓兒童以及新手展開開放性思維去自己創建,不具有更深遠的教 育意義。
【發明內容】
[0006] 本發明的目的在于提供一種實物化編程的方法以及其在機器人領域的應用,使得 兒童和新手可以擺脫編程語言繁冗的語法,能更好地學習和理解程序設計本身的邏輯。
[0007] 本發明的技術方案為:一種實物化編程的方法,其步驟為:
[0008] (1)搭建帶有主控板的運行對象;
[0009] (2)選取合適的實物編程積木搭建程序邏輯;
[0010] (3)連接實物編程模塊與主控板;
[0011] (4)啟動主控板內的裝載程序把實物編程模塊對應的程序邏輯裝載到主控板的存 儲器中;
[0012] (5)主控板內CPU解析程序并判斷程序邏輯是否正確;
[0013] (6)如果程序邏輯正確,則執行程序,并驗證程序的執行是否正確;如果程序邏輯 不正確,則向錯誤的編程積木模塊反饋信息,修改實物編程模塊對應的程序,返回上述步驟 (3)繼續,直到正確為止;
[0014] (7)如果運行對象運行正確,就結束任務;否則,移動和更換編程積木來修改程序 后繼續上述步驟(3),直到運行對象運行正確為止。
[0015] 進一步地,所述實物編程積木包括基礎編程指令積木、延時類指令積木、傳感器指 令積木和其他指令積木。其中,基礎編程指令積木包括:如果判斷指令積木、循環做指令積 木、賦值指令積木、計算指令積木、布爾判斷指令積木。
[0016] 進一步地,所述指令積木內部含有一個單片機通過存儲器存儲為該指令模塊標識 的一個唯一的ID;或者,所述指令積木內部含有芯片并通過撥碼開關存儲為該指令模塊標 識的一個唯一的ID。
[0017] 進一步地,步驟(4)所述的裝載程序通過電路信號,從第一個連接的實物編程積 木開始,依次讀取每一個實物編程模塊中的唯一ID,一并把讀取到的實物編程模塊的網絡 連接關系存儲到主控板內的存儲器中。
[0018] 優選地,在實物編程積木上裝置LED燈,主控板檢測到錯誤程序模塊輸出信號,對 應的LED燈就會亮起。
[0019] 實物化編程方法可應用于機器人領域,其具體步驟為:
[0020] (1)構思與設計將要搭建的機器人;
[0021] (2)搭建機器人,其由主控板以及傳感器和發聲發光等模塊組成;
[0022] (3)根據步驟(1)中所構思的機器人,選取實物編程積木來搭建程序邏輯;
[0023] (4)連接實物編程模塊與機器人內的主控板;
[0024] (5)啟動主控板內的裝載程序把實物編程模塊對應的程序邏輯下載到主控板存儲 器中;
[0025] (6)機器人運行:主控模塊解析并執行被裝載的程序。
[0026] 與現有技術相比,本發明具有如下的優點和技術效果:
[0027] 1、本發明將傳統編程語言的復雜語法簡單化為編程積木的拼接,使兒童以及新手 能夠容易地學習編程。
[0028] 2、本發明通過實物化的編程控制機器人運行,讓兒童以及新手能夠更形象具體地 理解程序,設計程序,修改程序。
[0029] 3、實物編程本身是在開放的空間完成編程過程,所以多個用戶可以在開放的空間 內對于同一個任務展開協作。
[0030] 4、本發明可應用在機器人領域,并支持大部分傳感器,兒童可以通過操作傳感器 了解各種傳感器的應用原理,這大大增加了編程的趣味性。
【附圖說明】
[0031] 圖1為本發明的實物化編程方法的流程圖;
[0032] 圖2為本發明的基礎類指令模塊示意圖;圖2a-如果判斷指令模塊,圖2b-循環 做指令模塊,圖2c-賦值指令模塊,圖2d-計算指令模塊,圖2e-布爾判斷(比較)指令模 塊;
[0033] 圖3為本發明延時指令模塊示意圖;
[0034] 圖4為本發明傳感器輸入類指令模塊示意圖;其中圖4a-傳感器輸入指令模塊, 圖4b-模擬傳感器輸入模塊;
[0035] 圖5為本發明示例機器人小車專用指令模塊;其中圖5a-機器人前進指令模塊, 圖5b-機器人左轉指令模塊,圖5c-機器人右轉指令模塊,圖5d-機器人后退指令模塊, 圖5e-機器人停止指令模塊;
[0036] 圖6為本發明其它類傳感器指令模塊;其中圖6a-"永遠為1"指令模塊,圖6b- "數字值"指令模塊;
[0037] 圖7為本發明實物指令模塊的實體示例圖;
[0038] 圖8為本發明實物指令模塊拼接程序示例圖;
[0039] 圖9為本發明的實物指令模塊內部原理圖;圖9a為芯片加編碼的開關方式原理 圖,圖9b是單片機加存儲器的方式方案原理圖;
[0040] 圖10為使用本發明實物化編程方法控制機器人行動的系統示意圖;
[0041] 圖11為本發明示例沿線機器人與黑線關系框圖;
[0042] 圖12為本發明示例沿線機器人程序流程圖;
[0043] 圖13為本發明示例沿線機器人用實物化編程模塊實現的程序;
[0044] 圖14為主控板與實物編程模塊的連接以及其內部組成圖;
[0045] 圖15為裝載程序工作原理流程圖;
[0046] 圖16為主控板解析程序工作原理流程圖。
【具體實施方式】
[0047] 下面結合具體實例和附圖對本發明技術方案作進一步說明。所舉的實施例僅是對 本發明產品或方法作概括性例示,有助于更好地理解本發明。應當指出,對于本技術領域的 普通技術人員來說,在不脫離本發明技術原理的前提下,還可以作出若干改進和變型,這些 改進和變型也應該視為落在本發明的保護范圍之內。
[0048] 如圖1為本發明的實物化編程方法的流程圖,其具體步驟為:
[0049] (1)搭建帶有主控板的運行對象,該運行對象可以是沿線機器人,掃地機器人等可 以實現程序運行的任何運行對象。
[0050] (2)選取合適的實物編程積木搭建程序邏輯;
[0051] 所述實物編程積木包括基礎編程指令積木、延時類指令積木、傳感器指令積木和 其他指令積木。如圖2為基礎編程指令示意圖,其包括:如果判斷指令、循環做指令、賦值指 令、計算指令、布爾判斷指令,具體如下:
[0052] 圖2a為如果判斷指令模塊:如果【判斷條件】滿足,則執行【YES】下面的指令,否 則執行【NO】下面的指令,完事后,然后執行【下一條指令】,其中【判斷條件】通常接傳感器;
[0053]圖2b為循環做指令模塊:當【判斷條件】滿足時,循環執行【DO】下面的指令,否則, 則執行【下一條指令】,【判斷條件】通常接傳感器;
[0054]圖2c為賦值指令模塊:把【數字值】接口所指定的值賦值給【變量】接向的變量, 完事后,然后執行【下一條指令】;
[0055]圖2d為計算指令模塊:【變量】與【數字值】進行板子模塊上指定的運算符〈加減 乘除〉運算后,把結果賦值給【被賦值變量】,完事后,然后執行【下一條指令】;
[0056] 圖2e為布爾判斷(比較)指令模塊:返回【變量1】與【變量2】或【數字值】進行 板子模塊上指定的運算符〈等于、不等于、大于、小于、大于等于、小于等于〉比較結果