使用NFC卡編寫機器人程序的系統的製作方法
2023-05-29 03:28:16

本發明涉及一種機器人通信系統,具體涉及一種基於nfc技術的手持編程系統。
背景技術:
nfc近場通信技術是由非接觸式射頻識別及互聯互通技術整合演變而來,在單一晶片上結合感應式讀卡器、感應式卡片和點對點的功能,能在短距離內與兼容設備進行識別和數據交換。工作頻率為13.56mhz,但是使用這種手機支付方案的用戶必須更換特製的手機。目前這項技術在日韓被廣泛應用,他們的手機可以用作機場登機驗證、大廈的門禁鑰匙、交通一卡通、信用卡、支付卡等。
兒童程序設計已經越來越成為一種學習熱點,但是程序設計通常必須使用電腦,這為兒童的視力保護帶來了一些問題。
技術實現要素:
本發明所要解決的技術問題是如何通過nfc技術,不適用電腦,也能通過讀取nfc編程塊的順序與內容來實現編程。
本發明通過下述技術方案實現:
使用nfc卡編寫機器人程序的系統,包括至少一個手持nfc讀卡器,其特徵在於,還包括所述手持nfc讀卡器可以讀寫的nfc卡;
nfc卡:通用的nfc卡,內部寫有標識id。不同的nfc卡標識id不一樣。
根據權利要求1所述的使用nfc卡編寫機器人程序的系統,其特徵在於,還包括手持nfc讀卡器可以通過手持移動到nfc卡上面位置,並讀取nfc卡內部的卡標識id。
根據權利要求1所述的使用nfc卡編寫機器人程序的系統,其特徵在於,還包括手持nfc讀卡器內部具有緩衝區,可以記錄下讀取的每個nfc卡的順序。
根據權利要求1所述的使用nfc卡編寫機器人程序的系統,其特徵在於,所述手持nfc讀卡器可以根據記錄下的每個nfc卡的順序,依次將每個nfc卡對應的標識id轉化為程序的一行代碼。
本發明與現有技術相比,具有如下的優點和有益效果:
1、使用nfc卡編寫機器人程序的系統,無需電腦即可實現編程;
2、使用nfc卡編寫機器人程序的系統,成本低廉,易於推廣。
附圖說明
此處所說明的附圖用來提供對本發明實施例的進一步理解,構成本申請的一部分,並不構成對本發明實施例的限定。在附圖中:
圖1為本發明nfc標籤示意圖;
圖2為本發明nfc標籤讀取示意圖;
圖3為本發明nfc標籤示意圖;
圖4為本發明讀卡器示意圖;
圖5為本發明讀卡器工作示意圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚明白,下面結合實施例和附圖,對本發明作進一步的詳細說明,本發明的示意性實施方式及其說明僅用於解釋本發明,並不作為對本發明的限定。
實施例
如圖1至5所示,本發明使用nfc卡編寫機器人程序的系統,包括至少一個手持nfc讀卡器,還包括所述手持nfc讀卡器可以讀寫的nfc卡;nfc卡:通用的nfc卡,內部寫有標識id,不同的nfc卡標識id不一樣。還包括手持nfc讀卡器可以通過手持移動到nfc卡上面位置,並讀取nfc卡內部的卡標識id。還包括手持nfc讀卡器內部具有緩衝區,可以記錄下讀取的每個nfc卡的順序。所述手持nfc讀卡器可以根據記錄下的每個nfc卡的順序,依次將每個nfc卡對應的標識id轉化為程序的一行代碼。每個nfc標籤代表了一個或者一段指令。通過若干個nfc標籤的前後順序排列,每個nfc標籤內部的指令段就構成了一段由若干個子指令段構成的程序。現在,將若干nfc標籤排列在桌面上,然後需要設計一個nfc讀卡器,依次掃過這些nfc標籤後,就成準確無誤地按照順序讀出每個nfc標籤中的內容,並且按照順序組成程序。核心解決技術:
如圖1所示,每個nfc標籤都有一個唯一的序列號,剩餘的存儲空間用以存儲c語言程序的一個片段或者一段用於tts的文本內容。如圖2所示,讀卡器具有nfc讀卡功能,通過手持按順序掃描nfc標籤,來依次讀取nfc標籤中的內容。由於手持讀寫,難免由於移動速度,或者移動位置偏差,造成漏讀。因此在讀卡器中設計了讀兩次,比較結果的功能,通過以下步驟實現:
a、正向依次讀取每個標籤的序列號和存儲的數據;
b、將每個標籤的序列號和數據分別記錄下來;
c、以相反的次序再次讀取每個標籤的序列號和數據;
d、再次將每個標籤的序列號和數據分別記錄下來;
e、將兩次得到的序列號和數據做對比,如果完全相同,則說明沒有誤讀和遺漏;
f、如果兩次得到的結果不同,則安排第三次讀取,結果與前兩次作比較;
g、將與第三次比較完全一致的結果視為正確結果。
由於手持讀寫,難免重複讀出一個卡。因此在手持讀卡器中有去除重複讀的功能,通過以下步驟實現:
a、任意兩個標籤存儲的數據可能相同,但是序列號不同;
b、讀取每一個標籤的同時,記錄下它的序列號;
c、將序列號與讀上一個標籤所記錄下的序列號作比較;
d、如果兩個序列號比較相同,說明是重複讀取了同一個標籤,將不會安排讀取其中的數據;
e、同時啟動定時器,2秒後清除記錄下的序列號並關閉定時器,以便下次讀取此標籤;
f、如果兩個序列號比較不同,說明讀到不同的標籤,此時更新所記錄的序列號為本次讀取到的序列號。
手持讀卡器通過無線通信,將代碼發送到機器人。機器人可以執行代碼。
手持讀卡器上有led燈,表明連接wifi狀態與讀卡狀態。
手持讀卡器上沒有按鈕。開始、執行、取消,都是使用讀卡器讀專用的nfc標籤來執行。因此不需要按鈕。
如圖4所示nfc讀卡器的硬體組成:
nfc讀卡器的主控晶片為stm32f103,通過串口與nfc讀卡模塊pn532和wifi模塊esp8266相連接。stm32f103還外接一個蜂鳴器和4個發光二極體。蜂鳴器用以在掃描到nfc標籤後,發出聲音表示掃描完成。4個發光二極體分別用以顯示讀卡器當前的wifi連接狀態、tcp伺服器連接狀態和當前的工作狀態。
其中nfc標籤格式如表1所示:
表1
page0和page1以及page2的第1個字節是卡片的7位元組序列號及其校驗字節,其中bcc0=0x88⊕sn0⊕sn1⊕sn2,bcc1=sn3⊕sn4⊕sn5⊕sn6,sn0是製造商代碼,由於mifareultralight是nxp公司出品,因而sn0固定為04h。page2的第2個字節internal作為內部數據保留。以上共10個字節出廠時固化在存儲區內,用戶無法更改。
page3是一次性燒錄(onetimeprogrammable,otp)頁,該頁的內容在卡片出廠時全部被
寫為「0」,用戶使用時只能把某一位的內容寫為「1」,而永遠也不能把「1」寫為0,也就是說,新寫入的4位元組內容與卡內原來的內容進行異或,異或後的結果存儲在卡片中。
控制類標籤和數據類標籤
控制類標籤以「#」號開頭,寫在標籤內第4頁的第一個字節。用以控制對標籤的讀取。
控制類標籤有3種:「start」、「run」、「cancel」。
「start」標籤表示數據類標籤的起始。在「#」號後寫入「start」,後接小車的id和密碼。讀完「start」標籤後,讀卡器應立即開始讀數據類標籤。
「run」標籤表示數據類標籤讀取結束。在「#」號後寫入「run」。讀完「run」標籤後,讀卡器立即將「start」標籤和「run」標籤之間讀到的所有數據發送至tcp伺服器。
「cancel」標籤表示數據類標籤讀取結束。在「#」號後寫入「cancel」。讀完「cancel」標籤後,讀卡器立即將「start」標籤和「cancel」標籤之間讀到的所有數據刪除。
數據類標籤只存儲數據。
nfc讀卡器的工作流程如圖5所示:
nfc讀卡器從nfc標籤中讀取小車的id、密碼和要運行的程序,通過wifi連接到tcp伺服器,然後將讀到的數據發送到tcp伺服器。此時tcp伺服器根據發送來的小車的id和密碼將程序發送給對應的小車,小車就可以根據發送到的程序運行起來。
nfc讀卡器的準備工作:
nfc讀卡器剛上電時:
led1用以表示讀卡器與wifi連接狀態,此時不停的閃動,表示沒有連接到wifi。
led2用以表示與tcp伺服器連接狀態,此時不停的閃動,表示沒有連接到tcp伺服器。
led3用以表示讀卡器是否讀到「start」標籤,此時熄滅,表示沒有讀到「start」標籤。
led4用以表示讀卡器內是否已經讀到程序標籤,此時熄滅,表示沒有讀到程序標籤。
先用手機來配置nfc讀卡器要連接wifi的ssid和passwd。
配置好wifi參數後。讀卡器開始連接wifi。連接成功後,led1停止閃動,保持長亮。
nfc讀卡器開始通過wifi連接tcp伺服器。如果連接成功,led2停止閃動,保持長亮。
nfc讀卡器開始工作:
讀取任何標籤後,蜂鳴器會響一聲。若讀取到1秒內讀取過的標籤,蜂鳴器低音響一聲。若讀到沒有讀過的標籤或者一秒前度過的標籤,蜂鳴器高音響一聲。
讀到「start」標籤之前,讀卡器並不會存儲讀到的數據。
讀到「start」標籤後,led3亮起,表示nfc讀卡器要開始讀取數據類標籤。
讀到第一個數據類標籤後,led4亮起,表示nfc讀卡器中已經存儲有數據。便於決定是否將讀到的數據發送出去。
讀完所有要發送的數據類標籤後,需要再讀取一個「run」控制類標籤,將讀到的數據發送至tcp伺服器。