一種基于多語(yǔ)義的實(shí)物編程系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于人機(jī)交互領(lǐng)域,具體涉及到一種具有多語(yǔ)義和二維連接特性的實(shí)物編程系統(tǒng)。
【背景技術(shù)】
[0002]個(gè)人和計(jì)算機(jī)等數(shù)字化設(shè)備的普及,使兒童生活在一個(gè)被計(jì)算設(shè)備包圍的環(huán)境中,很多工作領(lǐng)域都涉及到計(jì)算機(jī)。在兒童時(shí)期教授計(jì)算機(jī)科學(xué)十分重要,需要使兒童在幼兒園和小學(xué)時(shí)期接觸問(wèn)題求解和計(jì)算方法等。讓兒童學(xué)習(xí)編程最直接的好處兒童可以通過(guò)編程學(xué)習(xí)到最先進(jìn)的技術(shù),增強(qiáng)對(duì)計(jì)算機(jī)科學(xué)的興趣,此外編程對(duì)兒童的數(shù)學(xué)、科學(xué)知識(shí)、語(yǔ)言、創(chuàng)造力和社交能力等方面都起到積極、重要的作用。實(shí)物交互技術(shù)允許兒童將操作物拿在手上與計(jì)算機(jī)進(jìn)行交互,減少了繁復(fù)的語(yǔ)法規(guī)則對(duì)兒童學(xué)習(xí)編程造成的障礙,并且可以使兒童在編程學(xué)習(xí)過(guò)程中更加投入。因此,實(shí)物編程是一種可行的學(xué)習(xí)編程的途徑。
[0003]專(zhuān)利ZL 201210251967公開(kāi)了一種基于紅外和無(wú)線傳輸技術(shù)的實(shí)物編程方法和系統(tǒng),與電腦相連的無(wú)線處理模塊通過(guò)輪詢編程塊序列獲得實(shí)物程序語(yǔ)義,通過(guò)計(jì)算機(jī)映射語(yǔ)義完成任務(wù)。專(zhuān)利ZL 2013104147570公開(kāi)了一種便攜式的實(shí)物編程系統(tǒng),其處理和顯示單元完全獨(dú)立于電腦,而其實(shí)物編程塊仍為簡(jiǎn)單的線性連接方式。以上專(zhuān)利有以下不足之處:實(shí)物編程塊的功能單一,每個(gè)實(shí)物編程塊僅能表示一個(gè)語(yǔ)義,由于每個(gè)編程塊的內(nèi)部都嵌入了電子元器件,造成該實(shí)物編程系統(tǒng)的成本較高。其次,實(shí)物編程塊僅能線性連接,沒(méi)有充分發(fā)揮立體塊的優(yōu)勢(shì)。再次,編程塊所傳遞的編程概念比較簡(jiǎn)單,僅有簡(jiǎn)單的順序概念和參數(shù)概念。
【發(fā)明內(nèi)容】
[0004]針對(duì)上述問(wèn)題,本發(fā)明提出一種支持多語(yǔ)義和二維連接特性的實(shí)物編程系統(tǒng),包括一 LED Pad和實(shí)物編程塊(參考:一種便攜式實(shí)物編程系統(tǒng),申請(qǐng)?zhí)?2013104147570),除上述專(zhuān)利中所包含的編程概念,本發(fā)明向用戶傳達(dá)布爾邏輯和分支等概念,完善編程工具中所教授的編程結(jié)構(gòu)。其中的實(shí)物編程塊具有多語(yǔ)義特性,可以通過(guò)手勢(shì)改變其語(yǔ)義;此夕卜,實(shí)物編程塊還支持二維連接方式,不再是單一的線性連接方式,可以更好的映射分支等編程結(jié)構(gòu)。LED Pad中的處理模塊在信息處理的算法上進(jìn)行了改進(jìn),使其可以識(shí)別到用戶通過(guò)手勢(shì)改變的語(yǔ)義,并將二維連接方式的編程塊進(jìn)行排序,在LED Pad內(nèi)部存儲(chǔ)為一維結(jié)構(gòu)。本發(fā)明中每個(gè)任務(wù)分為兩個(gè)階段,編程階段和運(yùn)行階段。編程階段,擺放實(shí)物編程塊構(gòu)建迷宮出逃路徑,運(yùn)行階段,LED Pad依次讀取編程命令,控制系統(tǒng)反饋,用戶需要進(jìn)行適當(dāng)?shù)妮斎搿?br>[0005]本發(fā)明的技術(shù)方案為:
[0006]一種多語(yǔ)義和二維連接的實(shí)物編程系統(tǒng),如圖1所示,其組成包括:
[0007]1)實(shí)物編程處理和顯示單元——LED Pado LED Pad包括迷宮識(shí)別模塊、無(wú)線處理模塊、實(shí)物編程處理模塊、顯示模塊。作為主要控制單元,LED Pad處理實(shí)物編程塊發(fā)送的無(wú)線信息,以及按照設(shè)定的編程規(guī)則識(shí)別多語(yǔ)義實(shí)物編程塊的當(dāng)前語(yǔ)義并對(duì)編程語(yǔ)義進(jìn)行排序,向用戶提供反饋。迷宮識(shí)別模塊的功能是根據(jù)當(dāng)前所選迷宮的RFID標(biāo)簽信息加載相應(yīng)的迷宮結(jié)構(gòu)信息,以便判斷用戶擺放的程序的正確性。每一張紙質(zhì)地圖的左下角處都附有一個(gè)RFID標(biāo)簽,用戶貼上紙質(zhì)迷宮的同時(shí),LED Pad內(nèi)部也會(huì)加載其對(duì)應(yīng)的迷宮結(jié)構(gòu)信息。
[0008]進(jìn)一步的,LED Pad中的無(wú)線處理模塊包含一單片機(jī)和一無(wú)線模塊;無(wú)線處理模塊用于接收實(shí)物編程塊發(fā)送的無(wú)線信息,識(shí)別編程塊當(dāng)前的語(yǔ)義,并根據(jù)無(wú)線信息將編程塊語(yǔ)義進(jìn)行排序;本方法中無(wú)線處理模塊根據(jù)實(shí)物編程塊發(fā)送的前一個(gè)塊的信息和自身信息對(duì)編程塊語(yǔ)義序列進(jìn)行排序。本發(fā)明中實(shí)物編程塊和LED Pad之間采用無(wú)線信號(hào)通信;兩個(gè)相鄰的編程塊之間采用近距離的紅外通信。
[0009]進(jìn)一步的,在編程階段,LED Pad中的實(shí)物編程處理模塊根據(jù)對(duì)應(yīng)關(guān)系轉(zhuǎn)換規(guī)則將實(shí)物語(yǔ)義序列轉(zhuǎn)換成程序功能語(yǔ)義序列,并判斷該編程塊是否合法,提供正誤的反饋;在運(yùn)行階段,逐次讀取命令并監(jiān)聽(tīng)傳感器的狀態(tài),執(zhí)行當(dāng)前的命令。
[0010]2)實(shí)物編程塊。實(shí)物編程塊是系統(tǒng)的主要輸入工具,實(shí)物編程塊的組成和功能可參見(jiàn)上述專(zhuān)利。本系統(tǒng)中增加了多語(yǔ)義實(shí)物編程塊,可以識(shí)別用戶的搖晃手勢(shì)變換語(yǔ)義。
[0011]進(jìn)一步的,多語(yǔ)義實(shí)物編程塊包括一個(gè)三軸加速度計(jì)模塊和用于顯示的LED矩陣模塊。多語(yǔ)義實(shí)物編程塊通過(guò)實(shí)時(shí)采集加速度值采用決策樹(shù)方法來(lái)識(shí)別是否為語(yǔ)義切換手勢(shì),如果是,就將編程塊的語(yǔ)義設(shè)置下一個(gè)語(yǔ)義,并通過(guò)LED顯示當(dāng)前語(yǔ)義的圖標(biāo)。
[0012]3)實(shí)物編程塊除上述專(zhuān)利提到的語(yǔ)義外,本發(fā)明中增加了 “與邏輯”和“或邏輯”以及“分支”等實(shí)物編程塊,用于向兒童傳遞相關(guān)的編程思想。其中“與邏輯”和“或邏輯”以及“分支”等編程塊可以與傳感器編程塊按照二維連接方式進(jìn)行連接。
[0013]進(jìn)一步的,二維連接方式是指“與邏輯”和“或邏輯”以及“分支”等實(shí)物編程塊可以在其上下方連接傳感器塊,組成一個(gè)完整的語(yǔ)義,而該編程塊的前后方擺放其他編程塊表示程序的執(zhí)行順序,編程塊不再是單一的線性擺放規(guī)則。
[0014]進(jìn)一步的,實(shí)物編程塊之間采用紅外通信的方式,紅外信號(hào)不僅作為激活信號(hào),更多的是傳遞自身的二進(jìn)制識(shí)別碼。
[0015]進(jìn)一步的,本發(fā)明采用脈寬調(diào)制的方法發(fā)送紅外信息,前一個(gè)實(shí)物編程塊將自身的二進(jìn)制識(shí)別碼按照自定義的紅外通信協(xié)議編碼后以紅外脈沖波的形式發(fā)送給當(dāng)前實(shí)物編程塊從而激活當(dāng)前實(shí)物編程塊,當(dāng)前被激活的實(shí)物編程塊根據(jù)紅外通信協(xié)議解碼得到該紅外信息,即前一個(gè)實(shí)物編程塊的二進(jìn)制識(shí)別碼。
[0016]進(jìn)一步的,該實(shí)物編程塊將自身的二進(jìn)制識(shí)別碼,前一個(gè)塊的二進(jìn)制識(shí)別碼和當(dāng)前的語(yǔ)義狀態(tài)發(fā)送給LED Pad的無(wú)線處理模塊。并向外發(fā)射經(jīng)過(guò)紅外通信協(xié)議編碼的自身二進(jìn)制識(shí)別碼的紅外脈沖,用于激活后續(xù)的實(shí)物編程塊。
[0017]4)所述“與邏輯”和“或邏輯”編程塊在編程階段可以連接兩個(gè)傳感器A和B,構(gòu)成“A與B”( “A或B”)的語(yǔ)義,如圖2所示。兩個(gè)傳感器的位置可以交換,符合“與邏輯”和“或邏輯”的交換律。只有當(dāng)“與邏輯”(“或邏輯”)與傳感器都擺放正確,LED Pad才會(huì)給出當(dāng)前單元格的正確反饋,否則,LED Pad將提示錯(cuò)誤。運(yùn)行階段,LED Pad會(huì)根據(jù)“與邏輯”和“或邏輯”的規(guī)則判斷用戶是否正確觸發(fā)了相關(guān)傳感器。即如果當(dāng)前單元格是“與邏輯”和傳感器A及B組成,則只有當(dāng)用戶同時(shí)觸發(fā)傳感器A和B才能使LED Pad的光點(diǎn)通過(guò)該單元格;如果當(dāng)前單元格是“或邏輯”和傳感器A及B組成,則用戶至少觸發(fā)其中一個(gè)傳感器即可使LED Pad的光點(diǎn)通過(guò)該單元格。
[0018]5)所述分支編程塊(IF編程塊)可以連接兩個(gè)傳感器A和B,并由傳感器A和B引導(dǎo)兩條不同的路徑,表示IF (A) Then...,Else IF(B)Then…的語(yǔ)義,如圖3所示。用戶根據(jù)分支路徑的地圖擺放兩個(gè)分支程序,其擺放順序可以隨機(jī)。運(yùn)行階段,當(dāng)執(zhí)行到IF單元格后,LED Pad在兩個(gè)相關(guān)的傳感器A和B之間閃爍,監(jiān)聽(tīng)用戶對(duì)傳感器的觸發(fā),一旦用戶觸發(fā)其中一個(gè)傳感器,LED Pad將依次執(zhí)行相應(yīng)傳感器引導(dǎo)的分支程序。
[0019]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的優(yōu)點(diǎn)和技術(shù)效果:
[0020]1.本發(fā)明給出實(shí)物編程塊具有多語(yǔ)義特性。本發(fā)明的實(shí)物編程塊具有多個(gè)編程語(yǔ)義,可以識(shí)別用戶的晃動(dòng)手勢(shì),并改變當(dāng)前語(yǔ)義。通過(guò)手勢(shì)改變語(yǔ)義的方法節(jié)省了系統(tǒng)所需的編程塊的個(gè)數(shù),使得編程塊更加靈活,便于擴(kuò)展,同時(shí)增加了系統(tǒng)的趣味性。
[0021]2.本發(fā)明的實(shí)物編程塊支持二維連接方式。本發(fā)明的實(shí)物編程塊除了傳統(tǒng)的線性連接方式外,增加了二維連接方式。編程塊的上下前后四個(gè)面均可以連接其他編程塊。二維連接的方式增強(qiáng)了系統(tǒng)的趣味性,同時(shí)使得分支等編程概念的映射更加直觀。
[0022]3.擴(kuò)展了編程概念,增加了布爾邏輯。本發(fā)明在上述專(zhuān)利的基礎(chǔ)上增加了布爾邏輯(“與邏輯”和“或邏輯”)的概念,且其擺放方式符合布爾邏輯中的交換律,運(yùn)行階段與其相關(guān)的傳感器的觸發(fā)方式與布爾邏輯的計(jì)算方式相同。
[0023]4.擴(kuò)展了編程概念,增加了分支結(jié)構(gòu)。本發(fā)明在上述專(zhuān)利的基礎(chǔ)上增加了分支結(jié)構(gòu)(IF編程塊),IF編程塊可以以二維連接方式連接兩個(gè)傳感器,并引導(dǎo)兩個(gè)不同的分支程序。運(yùn)行階段,傳感器的觸發(fā)滿足了 IF的條件,LED Pad將執(zhí)行被觸發(fā)的傳感器所引導(dǎo)的分支程序。
[0024]5.增強(qiáng)了對(duì)編程塊語(yǔ)義進(jìn)行排序的穩(wěn)定性。實(shí)物編程塊激活后向LED Pad的無(wú)線模塊發(fā)送信息包含了通過(guò)對(duì)紅外信息解碼得到的前一個(gè)塊的二進(jìn)制識(shí)別碼Pre_ID和自身的二進(jìn)制識(shí)別碼Self_ID,LED Pad的無(wú)線模塊通過(guò)這兩個(gè)信息對(duì)編程塊的語(yǔ)義進(jìn)行排序,較上述專(zhuān)利根據(jù)添加時(shí)間的先后順序更加穩(wěn)定可靠。
【附圖說(shuō)明】
[0025]圖1系統(tǒng)連接結(jié)構(gòu)圖;
[0026]圖2布爾邏輯(“或邏輯”)的連接示意圖;
[0027]圖3分支編程塊(IF)的連接示意圖;
[0028]圖4編程塊內(nèi)部處理流程;
[0029]圖5 LED Pad基本處理流程圖。
【具體實(shí)施方式】
[0030]為了使本技術(shù)領(lǐng)域的技術(shù)人員更好的理解,下面結(jié)合附圖和實(shí)施方式對(duì)本交互方法作進(jìn)一步的詳細(xì)說(shuō)明:
[0031]本發(fā)明中,支持編程塊的內(nèi)部處理流程如圖4所示。編程塊的處理主要發(fā)生在編程階段,主要負(fù)責(zé)編程塊的連接和語(yǔ)義選擇。
[0032]1.初始化。在程序開(kāi)始處,對(duì)編程塊內(nèi)部的無(wú)線模塊通訊、紅外通訊、三軸加速度計(jì)和定時(shí)器進(jìn)行初始化。如果當(dāng)前是多語(yǔ)義編程塊,那么進(jìn)入步驟2,否則跳轉(zhuǎn)至步驟4。
[0033]2.監(jiān)聽(tīng)手勢(shì)。編程塊通過(guò)監(jiān)聽(tīng)三軸加速度值的變化,實(shí)時(shí)判別是否觸發(fā)了手勢(shì)。如果觸發(fā)了手勢(shì),則改變當(dāng)前的語(yǔ)義,并改變編程塊頂部的LED矩陣的顯示,如顯示為向左的方向箭頭表示向左方向塊。
[0034]進(jìn)一步的,編程塊通過(guò)采集三軸加速度計(jì)的狀態(tài),并使用線性分類(lèi)器對(duì)三個(gè)軸X、Y、Z軸的加速度值進(jìn)行分類(lèi),識(shí)別當(dāng)前手勢(shì)。進(jìn)入步驟3。
[0035]3.檢測(cè)語(yǔ)義狀態(tài)。實(shí)物編程塊解碼得到紅外信息,