資料介紹
描述
介紹
教您的孩子如何寫字既有趣又令人沮喪。讓這項(xiàng)活動變得更酷將大大有助于讓您的孩子更加專注于這項(xiàng)任務(wù)。還有什么比機(jī)器人更酷的呢?...樂高機(jī)器人!
讓我們?yōu)檫@個(gè)項(xiàng)目設(shè)定一些目標(biāo):
- 搭建樂高打印機(jī)。應(yīng)該可以用普通的黑色記號筆書寫。運(yùn)動應(yīng)該盡可能接近人類。
- 對打印機(jī)進(jìn)行編程以寫入字母表中的字母。筆畫應(yīng)該類似于正常人會做的筆畫。
- 與亞馬遜 Alexa 集成。關(guān)于如何繪制字母的指示應(yīng)由 Alexa 通過語音給出。還可以創(chuàng)建一個(gè)測驗(yàn)?zāi)J剑蛴C(jī)隨機(jī)抽取一個(gè)字母,讓孩子嘗試猜出正確答案。
- 由于電機(jī)聲音很大,請避免在 Alexa 說話的同時(shí)運(yùn)行它們。
構(gòu)建打印機(jī)
x 和 y 運(yùn)動是使用與樂高 42097 套裝(緊湊型履帶起重機(jī))中的其中一個(gè)可擴(kuò)展腿類似的構(gòu)造完成的:
其中兩個(gè)放在一起,一個(gè)在另一個(gè)的擴(kuò)展中:
兩個(gè)蝸輪都與同一根軸相連,而這根軸又由大型 EV3 電機(jī)驅(qū)動:
電機(jī)不直接驅(qū)動軸,而是通過離合器齒輪(零件號 6198486),然后是普通齒輪(零件號 4514558),然后使用兩個(gè) 4 齒齒輪(零件號 4248204)以 90 度角驅(qū)動。
這可以保護(hù)樂高零件在驅(qū)動電機(jī)時(shí)不會出現(xiàn)任何錯(cuò)誤。
筆夾在兩個(gè)帶輪胎的大輪子之間:
移動筆的輪子不是直接驅(qū)動的,而是由四個(gè)齒輪組成的鏈條驅(qū)動,以降低轉(zhuǎn)速并增加扭矩:
這是必要的,因?yàn)槲也荒芡ㄟ^直接從中型電機(jī)驅(qū)動它來獲得好的結(jié)果。旋轉(zhuǎn)中的小錯(cuò)誤(即使是 1 度)意味著筆太低或太高并且沒有接觸到紙。第一個(gè)齒輪(來自電機(jī))是 12 齒,驅(qū)動輪子的齒輪是 36,因此轉(zhuǎn)速降低了 3 倍。
“y”部分在輪子上,因?yàn)樗枰瑒印?/font>“x”部分是固定的。
“Y”,完全組裝:
和“X”:
構(gòu)建軟件
- 設(shè)置您的 EV3 程序塊和 VS 代碼:https ://www.hackster.io/alexagadgets/lego-mindstorms-voice-challenge-setup-17300f
我將 VS Code 配置為將這些類型的文件上傳到 EV3;
"ev3devBrowser.download.include": "{**/*.py,**/*.ini,**/*.sh,,**/*.svg}",
確保列表中有 *.svg,否則您將無法運(yùn)行程序。
- 字母格式:
我們將使用SVG 格式來表示如何繪制字母表中的字母。
讓我們以字母“B”為例:
指示將是這樣的:
- 從頂部開始到底部
- 回到頂部,在中間畫一條曲線
- 然后在底部畫一條曲線
我們可以用這種格式表示這些信息:
"http://www.w3.org/2000/svg" width="100" height="100">
<rect width="100" height="100" fill="beige"/>
<line x1="30" y1="10" x2="30" y2="90" stroke="black" >
line> "M 30 10 A 35 20 0 1 1 30 50" fill="black" fill-opacity="0.1" stroke="black">
"M 30 50 A 40 20 0 1 1 30 90" fill="black" fill-opacity="0.1" stroke="black">
我創(chuàng)建了一個(gè)小程序來模擬打印機(jī)。這會記錄打印機(jī)將執(zhí)行的所有動作,并使用打印機(jī)在紙上繪制的內(nèi)容創(chuàng)建圖像。它對實(shí)驗(yàn)有很大幫助,因?yàn)樗\(yùn)行起來要快得多。請檢查項(xiàng)目附件中的“Printer Simulation”文件。
讓我們?yōu)樽帜?B 運(yùn)行它:
注:(0, 0)原點(diǎn)在左上角,x 向右增長,y 向下增長。有些公式的符號與正常笛卡爾坐標(biāo)系中的符號相反!
程序剖析(“打印機(jī)模擬”python 文件):
- SVG 文件被解析。
- 程序只知道如何解釋和。從 它只知道 M - 移動到,L - 線和 A - 弧。更多信息在這里。
- 線 (draw_line) 是直截了當(dāng)?shù)摹鶕?jù)線的公式計(jì)算導(dǎo)數(shù)(斜率)來計(jì)算電機(jī)的速度。
- 對于圓弧,首先需要發(fā)生以下事情:
1. 給定兩個(gè)點(diǎn) ((x, y) 和 (dx, dy)),我們必須找到將通過它們且水平半徑為 rad_x 且垂直半徑為 rad_y 的橢圓。
M 和 A 的格式為:
"M x y"
"A rx ry x-axis-rotation large-arc-flag sweep-flag x y"
- 通解(如果存在)由兩個(gè)橢圓組成。這些是通過求解兩個(gè)二次方程組(橢圓的兩個(gè)點(diǎn)的參數(shù)方程)找到的。函數(shù) solve_ellipse 就是這樣做的。我嘗試使用SymPy來求解它,但它在 EV3 程序塊上運(yùn)行速度非常慢(求解一個(gè)方程組大約需要 30 秒)。
- 從這兩個(gè)橢圓有四個(gè)可能的路徑(?。?。使用 large-arc-flag 和 sweep-flag 屬性選擇正確的一個(gè)。更多信息在這里。
- 從“開始”角度開始,直到達(dá)到“結(jié)束”角度,我們計(jì)算x 和 y的導(dǎo)數(shù)以找到電機(jī)需要運(yùn)行的速度,將它們都運(yùn)行 0.1 秒并重復(fù)該過程。這與PID 算法類似,只是沒有誤差的導(dǎo)數(shù)部分。我們只使用誤差的整數(shù)部分來校正路徑,因?yàn)榍€非常簡單并且結(jié)果足夠好。
現(xiàn)在讓我們在真正的打印機(jī)上運(yùn)行它——參見(“使用 EV3 繪制字母 B”python 文件)
Alexa 整合
第 0 步 - 將附件中的所有內(nèi)容復(fù)制到 VS Code 項(xiàng)目。
它應(yīng)該是這樣的:
確保在 svg 目錄中解壓 SVG zip:
忽略 package-lock.json 和 node_modules/
第 1 步 - 連接 EV3 程序塊和 Alexa:https ://www.hackster.io/alexagadgets/lego-mindstorms-voice-challenge-mission-1-f31925
第 2 步 - 在 Alexa 開發(fā)人員控制臺中創(chuàng)建新技能并選擇自定義技能和 Alexa 托管 (Node.js):https ://www.hackster.io/alexagadgets/lego-mindstorms-voice-challenge-mission-3-4ed812
第 3 步 - 轉(zhuǎn)到“構(gòu)建”選項(xiàng)卡并將模型(在附件中提供)復(fù)制到 JSON 編輯器并保存。還要確保您啟用了“自定義界面控制器”和“自動委派”設(shè)置。您可以在“接口”選項(xiàng)卡中找到它們。保存并構(gòu)建模型。
第 4 步 - 轉(zhuǎn)到“代碼”選項(xiàng)卡并創(chuàng)建此圖像中的文件。如果它們已經(jīng)存在,則從 Alexa 創(chuàng)建的 hello world 的附件中復(fù)制代碼。保存并部署。
第 5 步 - 轉(zhuǎn)到“測試”選項(xiàng)卡并啟用技能測試。
第 6 步 - 使用 VS Code 在 EV3 程序塊上運(yùn)行 script3r.py 文件。(查看鏈接的教程)
有關(guān)代碼的詳細(xì)信息:
因?yàn)殡姍C(jī)噪音很大,我們不希望 Alexa 在電機(jī)運(yùn)行時(shí)說話。這就是為什么我們不僅要啟用自定義事件,還要啟用 ini 文件中的語音數(shù)據(jù):
[GadgetSettings]
amazonId = YOUR_OWN_AMAZON_ID
alexaGadgetSecret = YOUR_OWN_SECRET
[GadgetCapabilities]
Custom.Mindstorms.Gadget = 1.0
Alexa.Gadget.SpeechData = 1.0 - viseme
在從 EV3 向 Alexa 發(fā)送“說話”命令后,我們將等待靜音。這是這樣做的:
def on_alexa_gadget_speechdata_speechmarks(self, directive):
try:
if self._waiting_for_speech:
if directive.payload.speechmarksData[-1].value == 'sil':
self._waiting_for_speech = False
except KeyError:
print("Missing expected parameters: {}".format(directive), file=stderr)
由于我們不希望電機(jī)控制干擾發(fā)送或接收通知,我們將使用不同的線程:
self._waiting_for_speech = True
threading.Thread(target=self.draw_letter, args=(
payload["letter"], False), daemon=True).start()
我們在新線程中做的第一件事是等待 Alexa 說完:
while self._waiting_for_speech:
sleep(0.1)
在發(fā)送給 Alexa 的每個(gè)“說出”命令后,我們都執(zhí)行相同的操作:
self._waiting_for_speech = True
self.send_custom_event('Custom.Mindstorms.Gadget', 'speak', {'txt': pos_title.text})
while self._waiting_for_speech:
sleep(0.1)
意圖
model.js 中定義了三個(gè)意圖:
- LearnIntent - 這有一個(gè)類型為“Letter”的插槽。可以通過說“畫字母 {Letter},學(xué)習(xí)字母 {Letter},寫字母 {Letter}”開始。此意圖將向 EV3 發(fā)送命令以繪制請求的字母,同時(shí)提供有關(guān)如何繪制它的語音指示。
- PlayGameIntent - 沒有插槽。從說“玩游戲”或“測驗(yàn)”開始。它將隨機(jī)選擇字母表中的一個(gè)字母并請求 EV3 繪制它。沒有給出語音指示。
- PlayGameAnswerIntent - 有一個(gè)“字母”類型的插槽。這是從說出先前意圖的答案開始的。答案可以是:“{Letter}”、“答案是{Letter}”、“字母{Letter}”等
LearnIntent 的用戶、回顯設(shè)備、自定義技能、lambda 函數(shù)和 EV3 程序塊之間的交互:
PlayGameIntent/PlayGameAnswerIntent 的交互與 LearnIntent 的交互類似。
附上源碼:
- script3r.py - 這是在 EV3 程序塊上運(yùn)行的主要文件。
- script3r.ini - 包含 Amazon Gadget 的密鑰及其功能。
- SVG.zip - 包含 svg 格式的所有字母的 zip 文件。它必須在項(xiàng)目的根目錄中提取并與 script3r.py 和 scrip3r.ini 文件一起復(fù)制到 EV3 程序塊上。
- model.json - 此文件包含 Alexa 自定義技能的交互模型。必須在 Alexa Developer Console -> Script3r -> Build -> Interaction Model -> JSON Editor 中復(fù)制過來。復(fù)制后保存并構(gòu)建。
- package.json - 在 Alexa Developer Console -> Script3r -> Code -> Skill Code -> lambda -> package.json 中復(fù)制
- util.js - 包含 lambda 函數(shù)使用的一些實(shí)用程序。在 Alexa Developer Console -> Script3r -> Code -> Skill Code -> lambda -> util.js 中復(fù)制這個(gè)
- index.js - Alexa 自定義技能的主要代碼。在 Alexa Developer Console -> Script3r -> Code -> Skill Code -> lambda -> index.js 中復(fù)制這個(gè)
- 瑪麗亞機(jī)器人開源硬件
- 華夫餅機(jī)器人開源硬件
- 機(jī)器人開源硬件
- 手勢控制機(jī)器人開源硬件
- 掃地機(jī)器人開源資料 43次下載
- 喂機(jī)器開源硬件
- 導(dǎo)航機(jī)器人開源硬件
- microBit Bus(機(jī)器人汽車)開源硬件
- 線跟隨機(jī)器人開源硬件
- 開源硬件聾啞人輔助門
- 開源硬件機(jī)器人設(shè)計(jì)
- 樂高步進(jìn)機(jī)器人開源分享
- 基于DSP和PC的農(nóng)業(yè)機(jī)器人控制系統(tǒng) 17次下載
- 主流的開源硬件有哪些詳細(xì)資料說明
- 樂高NXT機(jī)器人系統(tǒng)C++程序設(shè)計(jì) 91次下載
- 字節(jié)發(fā)布機(jī)器人領(lǐng)域首個(gè)開源視覺-語言操作大模型,激發(fā)開源VLMs更大潛能 360次閱讀
- 機(jī)器人技術(shù)中常用的路徑規(guī)劃算法的開源庫 843次閱讀
- 用小安派開源硬件制作一個(gè)桌面天氣站 809次閱讀
- 尋找開源硬件成功的觸發(fā)器 636次閱讀
- 面對疫情 醫(yī)療機(jī)器人能幫上什么忙? 2126次閱讀
- dfrobotSparki機(jī)器人套裝簡介 2064次閱讀
- 醫(yī)用機(jī)器人的定義_醫(yī)用機(jī)器人發(fā)展 3122次閱讀
- 協(xié)作機(jī)器人的起源_為什么需要協(xié)作機(jī)器人 8127次閱讀
- 如何區(qū)分機(jī)器人、協(xié)作機(jī)器人和移動機(jī)器人? 6828次閱讀
- 機(jī)器人編程常用的四大語言 4.9w次閱讀
- 軟體機(jī)器人 前所未見的機(jī)器人 3692次閱讀
- 機(jī)器人的最佳編程語言是什么?機(jī)器人十大流行編程語言匯總 3.4w次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 6363次閱讀
- 開源硬件究竟有多“Open”?看完這個(gè)你就清楚了 6939次閱讀
- 看樂高機(jī)器人如何搖身一變成樂隊(duì)? 4125次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論
查看更多