資料介紹
描述
簡(jiǎn)介 :: 2017 年秋季
連大家都喜歡分享成功的作品和驚艷的原型機(jī),這里我要換個(gè)思路:幾乎所有的業(yè)余級(jí)機(jī)械臂制造商都專注于工業(yè)型機(jī)械臂,我打算用機(jī)械和功能幾乎與人體相同,但盡可能以最便宜的方式。但由于材料和組件的能力,它變成了一個(gè)失敗的故事,然而失敗的故事也是一個(gè)吸取教訓(xùn)的故事。
起初,我開始注意和研究我的手的動(dòng)作及其尺寸,甚至在四處走動(dòng)時(shí),所以我冒了很大的風(fēng)險(xiǎn),因?yàn)槲腋浇膸缀跛腥硕伎赡苷J(rèn)為我有很強(qiáng)的心理素質(zhì)疾病 :)
第一次設(shè)計(jì)在2-3個(gè)月內(nèi)完成,然后使用紙板和牙簽制作原型。很高興看到機(jī)械方法是否令人滿意并能夠達(dá)到基本要求。

然后我休息了很長(zhǎng)時(shí)間以思考更好的意見。
最初的設(shè)計(jì)在機(jī)械方面有很多部分,應(yīng)該對(duì)其進(jìn)行優(yōu)化。所以,我決定從頭開始,一開始就選擇了材料:Balsa Wood,但這個(gè)選擇會(huì)迫使我比我想象的更早結(jié)束項(xiàng)目。無(wú)論如何,我可以說(shuō)它運(yùn)作良好。
2018 年秋季 :: 從零開始
決定材料后,我重新開始了機(jī)械設(shè)計(jì),盡可能使用單體零件。所有掌骨/近端/內(nèi)側(cè)/遠(yuǎn)端“骨骼”、梯形和手腕部分都經(jīng)過(guò)設(shè)計(jì)、虛擬組裝并在計(jì)算機(jī)上相互交互。在那段時(shí)間里,我也注意到我現(xiàn)在的設(shè)計(jì)有些東西是撐不住的。為什么?
因?yàn)樵诔跏茧A段,手掌是完全平坦的,與大多數(shù)其他可用的機(jī)器人手一樣。所以它會(huì)導(dǎo)致物體滑出,即使手指是閉合的。

然而,人的手掌卻并非如此。如果你把手指伸直,從側(cè)面看,你可能會(huì)認(rèn)為它是平的。但是當(dāng)你直接面向指尖看時(shí)(你也可以觸摸你的手的頂部),很明顯你的手掌有一個(gè)由掌骨形成的凹陷結(jié)構(gòu),由一個(gè)凹陷的梯形引導(dǎo)。順便說(shuō)一句,當(dāng)您合上手指時(shí),它們會(huì)從四面八方和您的手掌覆蓋一個(gè)球形體積。
所以我將其反映到我的設(shè)計(jì)中:梯形被重塑為凹面,因此由于掌骨與梯形對(duì)齊,手掌變得凹陷。只需要通過(guò)調(diào)整角度進(jìn)行幾次試驗(yàn),是的,它在理論上是有效的:)

那時(shí),我也想超越單純的機(jī)械,開始思考驅(qū)動(dòng)。但是怎么辦?我不得不使用伺服電機(jī),但即使我使用最小的類型,我也沒有地方在包括手腕在內(nèi)的手部找到它們。我注意到,我只需要 12 個(gè)伺服器用于手部和手腕部分來(lái)模仿它們的所有動(dòng)作。同時(shí),我也決定了如何模仿“筋”和“筋”:經(jīng)過(guò)嘗試幾種不同的材料,我發(fā)現(xiàn)魚繩是最好的“筋”,因?yàn)樗膹?qiáng)度和柔韌性,而將橡膠包裝成“筋” (我們還將討論它們)。在這些試驗(yàn)中,我還使用 6 毫米 PVC 管實(shí)現(xiàn)了“肌肉導(dǎo)向”。

很明顯,還應(yīng)該設(shè)計(jì)手臂部分。但是由于前臂具有扭轉(zhuǎn)和杠桿運(yùn)動(dòng),所以只剩下一個(gè)可能的地方用于伺服系統(tǒng):上臂。
也可以驅(qū)動(dòng)上臂,但在上臂-肩部連接上建立萬(wàn)向接頭將極其復(fù)雜和困難。無(wú)論如何,上臂可能只是杠桿,整個(gè)結(jié)構(gòu)可能會(huì)被肩部轉(zhuǎn)動(dòng),所以我決定將機(jī)械結(jié)構(gòu)限制在肩部。
第一個(gè)問題:扭腕
拼好Hand和Wrist部分后,開始研究Front Arm,立馬問題來(lái)了:我的手怎么扭?
或許直到現(xiàn)在你也從未想過(guò)這一點(diǎn)。從機(jī)械上講,扭轉(zhuǎn)動(dòng)作需要樞軸連接。但是它是如何組裝到人體上的呢?我尋求的答案在 Stan Prokopenko 的網(wǎng)頁(yè)上:https ://www.proko.com/types-of-joints/
(非常感謝他的指導(dǎo)。與此同時(shí),我還了解到扭轉(zhuǎn)運(yùn)動(dòng)在醫(yī)學(xué)上被稱為“旋前”和“旋后”。)
所以很明顯尺骨和橈骨之間存在樞軸連接。但為什么那個(gè)支點(diǎn)位于后端,肘部?這不是很難做的事嗎?我該如何模仿這種機(jī)制?
從 Prokopenko 的動(dòng)畫中可以看出,尺骨和橈骨圍繞樞軸纏繞在一起。當(dāng)專門的肌肉伸展時(shí),橈骨會(huì)旋轉(zhuǎn)到尺骨上,因此手腕會(huì)扭曲。
所以我一開始也是這樣做的:我準(zhǔn)備了一個(gè)原型,將樞軸放在肘端,將尺骨和半徑都固定在手腕上,最后用包裝橡膠將它們包裹在肘端。但是,這種配置可以即使手動(dòng)也不能平穩(wěn)移動(dòng)。在仔細(xì)研究了機(jī)制之后,我采取了完全不同的方式,完全重塑尺骨和橈骨:尺骨設(shè)計(jì)為僅用于杠桿,并且與手腕完全分離。Ulna-Radius 樞軸重新定位到前臂的中間部分。最后,Wrist 僅固定在 Radius 上。所以,尺骨和橈骨的形狀也終于變得與真骨相似。

(在您的前臂上,該樞軸位于肘端,因?yàn)檫@是保護(hù)樞軸免受任何損壞的最佳位置。如果前臂骨骼因任何沖擊而骨折,完全愈合后您可以繼續(xù)正常使用它。但是,如果樞軸放在中間,受到機(jī)械沖擊就會(huì)損壞,所以很可能你的手即使痊愈也再也無(wú)法扭動(dòng)了。)
解決這個(gè)問題后,現(xiàn)在我必須決定“肌肉”的路由。路線不應(yīng)受到尺骨和橈骨運(yùn)動(dòng)的影響,因此很明顯,所有肌肉繩索都應(yīng)通過(guò)尺骨-橈骨樞軸到達(dá)上臂的執(zhí)行器。所以我犧牲了一支筆來(lái)使用它的身體作為一個(gè)空心關(guān)節(jié)。
最后,整個(gè) Humanoid Arm + Hand Mechanicals 幾乎可以執(zhí)行真人的所有動(dòng)作:打開和關(guān)閉手指以及舉起東西、在手腕處左右轉(zhuǎn)動(dòng)和上下轉(zhuǎn)動(dòng)、扭轉(zhuǎn)前部的能力手臂將近 270 度并杠桿化,杠桿化上臂,并在肩部將整個(gè)手臂結(jié)構(gòu)旋轉(zhuǎn)近 180 度。
?
請(qǐng)注意,如果我計(jì)算正確,真人手臂從肩部到手部有 27 個(gè)運(yùn)動(dòng)軸:
- 上臂的轉(zhuǎn)動(dòng)、杠桿和盤旋 = 3 軸
- 杠桿和扭轉(zhuǎn)前臂 = 2 軸
- 水平(右-左)和垂直(上下)旋轉(zhuǎn)手腕 = 2 個(gè)軸
- 盤旋和杠桿拇指掌骨 = 2 個(gè)軸
- 杠桿拇指近端和遠(yuǎn)端 = 2 軸
- 杠桿食指、中指、無(wú)名指和小指的近端、內(nèi)側(cè)和遠(yuǎn)端 = 3 x 4 = 12 個(gè)軸
- 在水平面上閉合和打開食指、中指、無(wú)名指和小指,同時(shí)保持所有直線 = 1 x 4 = 4 個(gè)軸 - 嘗試顯示 Vulkan Salute :)
因此,完成的機(jī)械原型能夠在 22 個(gè)軸上完成所有這些操作,除了繞上臂旋轉(zhuǎn)和為 Vulkan Salute 移動(dòng)手指。

通過(guò)完成前臂力學(xué),第 13 個(gè)伺服器的必要性出現(xiàn)了“旋前”和“旋后”,第 14 個(gè)伺服器用于杠桿整個(gè)前臂。
與前臂機(jī)械相比,上臂和肩部設(shè)計(jì)更容易。但由于輕木的弱點(diǎn),上臂的肩端應(yīng)該從內(nèi)部得到很好的支撐,40 毫米直徑的 PVC 管完美地做到了。并打入一部分25mm的PVC管,這樣上臂的杠桿軸就完成了。

(在這里我寫得很快,但事實(shí)并非如此。在意識(shí)到某些事情之前,所有部分都被建模、匹配并與其他部分交互,并在計(jì)算機(jī)上檢查其適用性。實(shí)施在工程之后進(jìn)行。)
不過(guò),自從有了驅(qū)動(dòng)的想法之后,我的腦子里還有一個(gè)疑問……
“好吧,到現(xiàn)在為止我們都做得很好,但是……我們要怎么支撐那東西呢,寶貝?”
支持問題不僅針對(duì)機(jī)械結(jié)構(gòu)。還需要將控制器固定在某處,但由于跳線的長(zhǎng)度有限,因此靠近機(jī)械結(jié)構(gòu)。幾天來(lái),我一直在想象一個(gè)由木頭、管子和其他材料專門制成的支撐結(jié)構(gòu)……但我不喜歡這些想法。
一天晚上,我發(fā)現(xiàn)一個(gè)很久以前就掛在我桌邊的完美解決方案:我的相機(jī)三腳架。只需將其螺絲換成螺栓來(lái)固定肩部的轉(zhuǎn)動(dòng)軸,它就可以完美地工作,并且可以正常工作。
所以我最終只為 Shoulder 設(shè)計(jì)了一個(gè)軸和底板,并且只使用了我多余的家具部件、塑料廢水管蓋和輕木。然后所有東西都放在三腳架上。
現(xiàn)在我可以開始安裝肌肉、執(zhí)行器等等,但在此之前發(fā)生了另一件事……
“肯定還有一個(gè)操控者……”
就在決定啟動(dòng)整個(gè)手臂后,我計(jì)算了我必須使用的信號(hào)并不可避免地面對(duì)壞消息:我只有一個(gè) Arduino Due,即使與其他模型相比它有很多輸入/輸出,但它仍然是不夠。起初我必須定義進(jìn)一步的必要性,然后我發(fā)現(xiàn) Arduino Leonardo 是輔助控制器的最佳解決方案。在準(zhǔn)備輸入/輸出列表并對(duì)其進(jìn)行一些研究后,手部和手腕部分留在 Due 的范圍內(nèi);而前臂、上臂和肩部的控制則由萊昂納多負(fù)責(zé)。
然后,又提出了一個(gè)問題……
“哪個(gè)控制器應(yīng)該是主人,他們應(yīng)該如何相互‘對(duì)話’?”
因?yàn)槿萘看?,速度快,所以最好讓Due做master。然而,“說(shuō)話”出現(xiàn)了問題:Due 運(yùn)行在 3.3V,而 Leonardo 處于 5V 電平。由于它們的 I2C 通信也使用與控制器相同的電壓電平,直接連接會(huì)燒毀 Due。
我必須使該接口盡可能簡(jiǎn)單,最好的方法是使用模擬(電壓)信號(hào)。只是萊昂納多應(yīng)該“理解”;
- 應(yīng)啟動(dòng)哪個(gè)部分,以及,
- 它應(yīng)該移動(dòng)到哪個(gè)位置。
所以我決定在 Due 上使用 DAC0 和 DAC1 模擬(電壓)輸出,并在 Leonardo 上相應(yīng)地使用 A0 和 A1 來(lái)定義它們。
然而,電壓輸出的穩(wěn)定需要一點(diǎn)時(shí)間。所以 Leonardo 可能會(huì)誤解 Due 的請(qǐng)求,所以它也應(yīng)該知道命令是否已準(zhǔn)備好讀取。第三個(gè)通訊信號(hào)出現(xiàn):“執(zhí)行”。好消息是,它可以直接從 Due 的 Ch.50(數(shù)字輸出)連接到 Leonardo 的 Ch.8(數(shù)字輸入)。
最后,Due 是如何理解它的命令被執(zhí)行的呢?第四個(gè)信號(hào)應(yīng)該從 Leonardo 發(fā)送到 Due:“命令已執(zhí)行”反饋,但由于上述電壓水平存在問題。如果確認(rèn)信號(hào)直接從 Leonardo 的 Ch.12(數(shù)字輸出)連接到 Due 的 Ch.51(數(shù)字輸入),那么我應(yīng)該為可憐的 Due 組織一場(chǎng)葬禮 :)
無(wú)論如何,這個(gè)問題是整個(gè)項(xiàng)目中最簡(jiǎn)單的:Leonardo 的 5V 輸出可能僅被兩個(gè)千歐級(jí)電阻分壓,然后它可能會(huì)以 ~3.3V 的形式發(fā)送到 Due。在實(shí)施階段,只有 270k 和 470k 效果很好。
肌肉和肌腱
你驅(qū)動(dòng)肌肉采取一些動(dòng)作,但是當(dāng)相關(guān)肌肉被釋放時(shí),身體部分必須回到原來(lái)的位置。所以你的身體上有肌腱,與肌肉相反。但是肌腱由于其使用目的而不如相應(yīng)的肌肉強(qiáng)壯。
我已經(jīng)在上面寫下了我決定用作肌肉和肌腱的材料。然而,在試驗(yàn)過(guò)程中,我注意到釣魚繩很容易卡在機(jī)械接頭之間。所以最好使用某種“指南”,而 6mm 直徑的 PVC 管件正好適合這個(gè)目的。
尺骨和上臂沒有使用任何肌腱,因?yàn)橹亓?huì)很好地發(fā)揮作用。

限位開關(guān)和位置傳感器
當(dāng)我決定啟動(dòng)手臂時(shí),限位開關(guān)的必要性直接出現(xiàn)了。沒有它們,伺服系統(tǒng)很容易損壞機(jī)械部件。但不幸的是,舵機(jī)并沒有我想象的那么強(qiáng)大。
一開始我認(rèn)為限位開關(guān)是最簡(jiǎn)單的部件之一,但事實(shí)并非如此,尤其是在手指上。實(shí)際上,這個(gè)問題的出現(xiàn)有兩個(gè)主要原因:首先是輕木,由于它的弱點(diǎn)。第二個(gè)是我的設(shè)計(jì)規(guī)模。正如您在上面的一些照片中看到的,我的意圖是以 1:1 的比例制作人形手和手臂。
不管怎樣,我只用電線和鋁帶做了接觸點(diǎn)。即使它們對(duì)于保護(hù)機(jī)械裝置必不可少,但由于輕木零件的磨損,它們會(huì)及時(shí)失去功能,尤其是在手指上。
位置傳感器是通過(guò)僅在幾個(gè)點(diǎn)上使用電位器來(lái)實(shí)現(xiàn)的,它們幾乎可以正常工作。

?

伺服執(zhí)行器及其局限性
由于空間有限,我只有一個(gè)選擇來(lái)驅(qū)動(dòng)(也許我應(yīng)該說(shuō)醫(yī)學(xué)術(shù)語(yǔ)中的“伸展”或“屈曲/伸展”)專用于前臂、手腕和手部的“肌肉”,包括手指: -轉(zhuǎn)動(dòng)微型伺服電機(jī)。所有這些都應(yīng)該位于 Upper Arm 上,因此 Upper Arm 的設(shè)計(jì)也通過(guò)考慮繩索布線來(lái)完成。
起初,我用輕木制作了直徑約 10 毫米的滑輪。然而,微型舵機(jī)的輸出扭矩非常低。然后我修改了他們的輪角:通過(guò)研磨減小直徑,在喇叭和舵機(jī)之間使用墊圈,并在靠近中心的位置鉆孔以連接繩索。這樣,舵機(jī)可以拉更高的負(fù)載。

在后期階段,還需要另一個(gè)滑輪組來(lái)杠桿前臂和上臂,這樣就完成了。即使是微伺服也可以處理前臂的杠桿,上臂需要標(biāo)準(zhǔn)伺服,因?yàn)樗鼞?yīng)該處理上臂、前臂、手以及它們上面的所有接線的重量。
另一個(gè)標(biāo)準(zhǔn)伺服也用于轉(zhuǎn)動(dòng)肩部。

“所有那些導(dǎo)線都必須組織起來(lái)……哪怕是一點(diǎn)……”
最好的方法是制作某種“終端組件”。經(jīng)過(guò)幾天的研究,我發(fā)現(xiàn)只需2塊8x2厘米的預(yù)制PCB就可以制作3個(gè)端子組件。
- TB01 設(shè)計(jì)用于處理專用于手、手腕和橈骨(扭轉(zhuǎn)前臂)的所有信號(hào),以及專用于手腕和橈骨(扭轉(zhuǎn)前臂)的伺服系統(tǒng)
- TB02 設(shè)計(jì)用于處理專用于肩部、上臂和尺骨(杠桿前臂)的所有信號(hào)和電機(jī)
- TB03 設(shè)計(jì)用于處理 Fingers 的舵機(jī)
當(dāng)然,所有端子組件都應(yīng)在首次“制造”之后和焊接電線期間進(jìn)行測(cè)試。

舵機(jī)的早期測(cè)試
在幾乎安裝完所有東西之后,我只帶了 Arduino Leonardo 并開始通過(guò)一個(gè)簡(jiǎn)單的例程單獨(dú)測(cè)試每個(gè)伺服器,以檢查它是否能夠按要求運(yùn)行。該例程非?;A(chǔ),僅用于以數(shù)字輸入選擇的最低速度和方向運(yùn)行一個(gè)伺服。那個(gè)時(shí)候可以一個(gè)一個(gè)操作。但是當(dāng)所有舵機(jī)一起通電時(shí),意想不到的驚喜就來(lái)了。稍后我們將討論那個(gè)麻煩。

第一個(gè)問題繼續(xù) :: 扭腕
即使我修改了伺服臂以用作極小直徑的滑輪,但它還不足以“旋前”和“旋后”Radius。所以我做了一個(gè)微型滑輪組。

?
第一個(gè)效果很好,但它太大了。所以它在下一步被最小化。

?
不幸的是,各個(gè)伺服上的扭矩仍然太大。我嘗試調(diào)整,但是當(dāng)前臂處于水平位置并且伺服將橈骨完全帶到尺骨上然后試圖釋放時(shí),由于微型滑輪上的摩擦和反作用力,相應(yīng)的“肌腱”橡膠未能恢復(fù)原狀。我拉緊了肌腱,但是舵機(jī)無(wú)法再拉動(dòng)了……經(jīng)過(guò)幾次嘗試,舵機(jī)變得不穩(wěn)定,很快它的電機(jī)控制器就燒毀了。那是Project的第一個(gè)受害者。請(qǐng)為無(wú)名英雄致敬和祈禱 - 不,對(duì)不起它的標(biāo)簽是“11FR”- :)
(當(dāng)然,每個(gè)點(diǎn)/組件都有自己獨(dú)特的標(biāo)簽。否則不可能進(jìn)行所有的構(gòu)造、布線和編程。耐心點(diǎn),我們還將討論工程的重要性。)
所以我決定停止扭轉(zhuǎn)前臂的試驗(yàn)。它需要很大的扭矩,但與此同時(shí),進(jìn)一步的試驗(yàn)可能會(huì)導(dǎo)致整個(gè)前臂損壞。
其他試驗(yàn) :: 手指
沒什么特別要說(shuō)的。一開始,一切看起來(lái)都還不錯(cuò)……直到伺服系統(tǒng)壞了,輕木部件磨損了。
?
?
First Codes :: Due<->萊昂納多互通
原理上面我已經(jīng)講過(guò)了,在編程階段就是第一節(jié)。在模擬通道上,Due/DAC0 和 Leonardo/A0 分配給設(shè)置值寄存器以發(fā)送和接收百分比設(shè)置值。Due/DAC1 和 Leonardo/A1 分配給 Section Selector。
但它只是需要做一些范圍:由于可以使用全范圍,但由于 DACx 輸出會(huì)在 0.75-2.55V 范圍內(nèi)產(chǎn)生相應(yīng)的電壓,因此應(yīng)該在 Leonardo 上調(diào)整匹配比例。因此,Leonardo 被配置為讀取 Set Value between (整數(shù))168-846對(duì)應(yīng)0-100%。對(duì)于部分選擇器,整個(gè)范圍在 Due-side 上分為 5 個(gè)部分,并為 Leonardo 計(jì)算相應(yīng)的值。但在那個(gè)實(shí)現(xiàn)中,也有必要使用死區(qū)。因此,即使是在 Due 上使用的確切值,它們?cè)?Leonardo 上也被解釋為(值 +/- 死區(qū))以確保選擇部分。
最后,相互通信程序在兩個(gè)控制器上完成如下并且運(yùn)行良好。
到期日:
const int _FA_Radius = 840; // Front Arm Radius Section
const int _FA_Ulna = 1530; // Front Arm Ulna Section
const int _UpperArm = 2220; // Upper Arm Section
const int _Shoulder = 2910; // Front Arm Radius Section
void CommandToLeonardo(String Section, int SetValue) {
/* SetValue is given as Percentage */
int Section_Num=0;
if (Section=="_11FR") Section_Num = _FA_Radius;
else if (Section=="_11FU") Section_Num = _FA_Ulna;
else if (Section=="_21UA") Section_Num = _UpperArm;
else if (Section=="_31SH") Section_Num = _Shoulder;
if (Section_Num==0)
Serial.println("Section cannot be recognized.");
if ((SetValue<0) || (SetValue>100))
Serial.println("Set Value should be between 0-100).");
if ((Section_Num!=0) && (SetValue>=0) && (SetValue<=100) )
{
Serial.print(String(SetValue) + "% -> ");
switch(Section_Num){
case _FA_Radius: Serial.println("Front Arm-Radius");
break;
case _FA_Ulna : Serial.println("Front Arm-Ulna");
break;
case _UpperArm : Serial.println("Upper Arm"); break;
case _Shoulder : Serial.println("Shoulder"); break;
}
analogWrite (_00XXCM, Section_Num);
analogWrite (_00XXSP, map(SetValue, 0, 100, 0, 4095));
delay(50); // Delay for stabilization of outputs
digitalWrite(_00XXXC, HIGH); // Execute Command
do { // Wait until getting OK from Leonardo
} while(!digitalRead(_00XXOK));
Serial.println("ARD LNRD = OK.");
analogWrite (_00XXCM, 0);
analogWrite (_00XXSP, 0);
// Resetting Section and Set Value outputs
delay(50); // Delay for stabilization of outputs
digitalWrite(_00XXXC, LOW); // Resetting Command
} /* End of "if (Section_Num!=0)" */
} /* End of "void CommandToLeonardo()" */
void loop() {
if (Serial.available())
{
String Command=ReadUserInputOverSerial();
Serial.println(Command);
if (Command.substring(0,1)=="?") /* Help */
{
Serial.println("Commands:");
Serial.println(" CTL [Section] [SetValue (0-100)]");
Serial.println(" CommandToLeonardo - Section: First 5 characters of PWM Tag (e.g. _10WH for _10WHCM).");
Serial.end(); Serial.begin(_BAUDRATE);
while(!Serial) { };
}
if (Command.substring(0,3)=="CTL")
CommandToLeonardo(Command.substring(4,9),
Command.substring(10).toInt());
CommandPromptOverSerial("[ARD DUE/] > ");
} /* End of "if (Serial.available())..." */
} /* End of "void loop()": ARDUINO DUE */
關(guān)于萊昂納多:
const int _FA_Radius = 310; // Front Arm Radius Section
const int _FA_Ulna = 425; // Front Arm Ulna Section
const int _UpperArm = 540; // Upper Arm Section
const int _Shoulder = 655; // Front Arm Radius Section
const int _ICDB = 40; // Deadband
/* Since the signals cannot generate exact integer values,
* Section shall be identified by [ (SectionValue) +/- _ICDB ]
* reading.
*/
void setup() {
/* Initial Feedback to Due */
digitalWrite(_00XXOK, LOW);
}
void CommandFromDue() {
CommandFromDue_Section = analogRead(_00XXCM);
if ( ((_FA_Radius-_ICDB)<=CommandFromDue_Section) &&
(CommandFromDue_Section<=(_FA_Radius+_ICDB)) )
CommandFromDue_Section=_FA_Radius;
else if ( ((_FA_Ulna-_ICDB)<=CommandFromDue_Section) &&
(CommandFromDue_Section<=(_FA_Ulna+_ICDB)) )
CommandFromDue_Section=_FA_Ulna;
else if ( ((_UpperArm-_ICDB)<=CommandFromDue_Section) &&
(CommandFromDue_Section<=(_UpperArm+_ICDB)) )
CommandFromDue_Section=_UpperArm;
else if ( ((_Shoulder-_ICDB)<=CommandFromDue_Section) &&
(CommandFromDue_Section<=(_Shoulder+_ICDB)) )
CommandFromDue_Section=_Shoulder;
else
CommandFromDue_Section=0;
CommandFromDue_SetValue =
map(analogRead(_00XXSP),168,846,0,100);
/* Due generates DAC outputs between 0.55-2.75 V and it
* corresponds (int) 168-846 on Arduino Leonardo.
* Here analog reading is converted to Percentage.
*/
boolean CommandFromDue_Execute = digitalRead(_00XXXC);
String Section = "";
int Speed = 0;
if ((CommandFromDue_Section!=0) && CommandFromDue_Execute)
{
Serial.println();
Serial.print("Command by ARD DUE: "+
String(CommandFromDue_SetValue) + "% -> ");
switch(CommandFromDue_Section){
case _FA_Radius: Serial.println("Front Arm-Radius");
Section = "_11FR";
Speed = 20;
break;
case _FA_Ulna : Serial.println("Front Arm-Ulna");
Section = "_11FU";
Speed = 20;
break;
case _UpperArm : Serial.println("Upper Arm");
Section = "_21UA";
Speed = 90;
break;
case _Shoulder : Serial.println("Shoulder");
Section = "_31SH";
Speed = 30;
break;
}
Serial.println(" -action-");
MoveToPosition(Section, Speed, CommandFromDue_SetValue);
Serial.println("OK -> ARD DUE.");
CommandPromptOverSerial("[ARD LNRD/] > ");
digitalWrite(_00XXOK, HIGH); delay(100);
digitalWrite(_00XXOK, LOW); // OK Feedback to Due
} /* End of "if (Section_Num!=0)" */
} /* End of "void CommandFromDue()" */
?

編碼::進(jìn)一步
除了互通之外,這里我不會(huì)解釋更多代碼的深層細(xì)節(jié),以免讓讀者感到無(wú)聊,因?yàn)樵谧詈竽憧梢哉业酵暾某绦颍?Due 的 800 多行和 Leonardo 的 500 多行,以及解釋性說(shuō)明. 正如您在程序中看到的那樣,已經(jīng)存在具有相同名稱的函數(shù)。原則上,這些功能在原理/算法上完全相同,但只是由于控制范圍而進(jìn)行了一些更改。
void CommandPromptOverSerial(提示符)
它的創(chuàng)建只是為了制作那個(gè)花哨的命令行界面。除此之外,它還重新初始化串行通信以確保刷新。
字符串 ReadUserInputOverSerial()
在串行監(jiān)視器上讀取用戶輸入,并將其作為字符串返回。
無(wú)效閱讀(標(biāo)簽)
空循環(huán)測(cè)試()
這兩個(gè)函數(shù)都是為測(cè)試單個(gè)循環(huán)(輸入/輸出通道)而創(chuàng)建的。
LoopTest() 已經(jīng)有專門用于模擬輸入、模擬輸出、數(shù)字輸入、數(shù)字輸出和 PWM 輸出類型的小節(jié);但 Read(Tag) 僅用于直接從頂層讀取輸入,而無(wú)需轉(zhuǎn)到 LoopTest()。

void CommandToServo(標(biāo)簽,值)
正如您到目前為止所認(rèn)識(shí)到的,我將所有內(nèi)容都稱為標(biāo)簽。這也是這個(gè)功能的目的:它將設(shè)定值(0-180)發(fā)送到分配給“標(biāo)簽”的伺服電機(jī)。
void FullTravelDurationMeasurement (PWM_Tag, LimitSw_CCW, LimitSw_CW, int Speed)
編寫此函數(shù)是為了檢查手指的完整行程持續(xù)時(shí)間,因?yàn)樗鼈儫o(wú)法配備實(shí)際位置傳感器。根據(jù)結(jié)果??,可以定時(shí)拉或放。即使它在理論上通過(guò)手動(dòng)強(qiáng)制輸入/輸出工作,它也不能用于實(shí)際系統(tǒng),因?yàn)殚_關(guān)由于機(jī)械磨損而無(wú)法正常工作。因此,完整的行程持續(xù)時(shí)間只能通過(guò)手動(dòng)試驗(yàn)來(lái)確定,而不是使用此功能。

void MoveDuringMillis(標(biāo)記、方向、速度、毫秒)
該函數(shù)也被編寫為在指定的方向和指定的毫秒內(nèi)驅(qū)動(dòng)由標(biāo)簽定義的手指。
void MoveToPosition (Section, Speed, SetValue)
此函數(shù)用于將一個(gè)部分移動(dòng)到 SetValue 給定的位置并以指定的速度移動(dòng)。注意Section還應(yīng)裝有位置傳感器。
void Fingers_Hold()
void Fingers_Release()
這些功能被編寫為幾乎同時(shí)關(guān)閉(握住某物)和釋放手指。不幸的是,手指只能部分地工作一次……
void Final_Demo()
顧名思義:最后只能使用前臂和上臂的杠桿機(jī)構(gòu),以及肩部的旋轉(zhuǎn)。所以寫這個(gè)函數(shù)就是為了演示它們。
在成功測(cè)試所有單獨(dú)的信號(hào)和功能后,我完成了伺服系統(tǒng)和機(jī)械部分之間的機(jī)械連接。現(xiàn)在,arm 已準(zhǔn)備好測(cè)試真正的功能,但是……
通電 :: 瘋狂伺服
在一個(gè)接一個(gè)地測(cè)試和調(diào)整所有伺服系統(tǒng)之后,是時(shí)候?yàn)樗兴欧到y(tǒng)一次性供電了。但結(jié)果并不如我所料。
我最初的設(shè)計(jì)在上臂有 14 個(gè)微型伺服系統(tǒng)來(lái)處理輕負(fù)載,而在肩部有 2 個(gè)標(biāo)準(zhǔn)伺服系統(tǒng)用于杠桿上臂和轉(zhuǎn)動(dòng)肩部。他們都能夠接受一個(gè)共同的電壓水平,6V,所以我做到了。
但是一旦我操作了一個(gè)標(biāo)準(zhǔn)的舵機(jī),一些微型舵機(jī)就沒有任何命令就啟動(dòng)了。幸運(yùn)的是,我在電源線上放了一個(gè)開關(guān),所以我可以一次全部切斷,但無(wú)論如何,由于瞬間和極端的加速,一些手指用力過(guò)大。我再次擰下所有微型伺服系統(tǒng)的滑輪,然后重新通電。結(jié)果是一樣的:不穩(wěn)定的微舵機(jī)永遠(yuǎn)無(wú)法調(diào)整,或者即使調(diào)整也無(wú)法保持穩(wěn)定,甚至卸載。
我的第一個(gè)疑問是電源的適用性:我使用了一個(gè) 6V、3Ah 的適配器。
根據(jù)可用數(shù)據(jù),每個(gè)微伺服在空閑時(shí)消耗 6 mA,在空載運(yùn)行時(shí)消耗 120 mA,在失速條件下消耗 800 mA。對(duì)于標(biāo)準(zhǔn)舵機(jī),只給出一個(gè)參數(shù):100 mA 作為工作電流,我認(rèn)為它是空載運(yùn)行,并假設(shè)其余參數(shù)與微型舵機(jī)類似。
所以,我的電源就足夠了,因?yàn)榇丝讨挥幸粋€(gè)舵機(jī)運(yùn)行。那么,失敗的原因可能是什么?
我仍然在考慮電源,并開始通過(guò)示波器對(duì)其進(jìn)行監(jiān)控。結(jié)果很有趣,而只有一個(gè)標(biāo)準(zhǔn)伺服正在運(yùn)行:

當(dāng)我看到這些變化時(shí),我有一個(gè)理論:可能微伺服對(duì)電壓波動(dòng)更敏感,而那些被它們誤解為“命令”。然后我決定分別為微型和標(biāo)準(zhǔn)伺服系統(tǒng)供電。標(biāo)準(zhǔn)伺服系統(tǒng)與一個(gè)微型伺服系統(tǒng)(專用于杠桿前臂的微型伺服系統(tǒng))保持連接在當(dāng)前電源上,而所有其他微型伺服系統(tǒng)都單獨(dú)連接到其他電源。這種修改奏效了。
手指 :: 最后一次
正如我在上面已經(jīng)寫過(guò)的,最后由于磨損我無(wú)法操作所有部分。無(wú)論如何,它只能打開和關(guān)閉手指一次,如果我繼續(xù)嘗試,我可能會(huì)殺死剩下的 6 個(gè)微型伺服系統(tǒng)。所以最好在這里停下來(lái)。從理論上講,如果輕木部件沒有磨損,您會(huì)看到順序但更順暢的工作。
最終演示
最后,經(jīng)過(guò)約 4.5 個(gè)月的設(shè)計(jì)和組裝,可以僅操作前臂和上臂的杠桿功能以及肩部的轉(zhuǎn)動(dòng)功能。
工程 :: 重新審視工業(yè)實(shí)踐
如果您的項(xiàng)目在很小的區(qū)域內(nèi)并且只包含很少或幾個(gè)設(shè)備,也許您可??以通過(guò)眼睛和手來(lái)跟蹤一切。
但是,如果您必須在 ~1 米長(zhǎng)的設(shè)備上工作,該設(shè)備包含 140 多種不同類型的 500 多個(gè)零件、~60 種電氣和電子設(shè)備(開關(guān)、電位器、伺服電機(jī))、兩個(gè)不同控制器上的 60 多個(gè)信號(hào)以及將兩者互連,以及數(shù)百條連接線;然后在計(jì)算機(jī)和論文上工作成為必須,并且是解決問題的最佳選擇。
所以一切都是從在計(jì)算機(jī)上設(shè)計(jì)機(jī)械開始的。在后期階段;模型中添加了伺服電機(jī)、開關(guān)、位置傳感器和端子組件。
正如我在前面部分提到的,專用的唯一標(biāo)簽也分配給所有單獨(dú)的部分。你也會(huì)在節(jié)目中看到這些標(biāo)簽,它們讓生活變得更輕松。最后,有“3D模型”、“滑輪繩布線草圖”、“儀表列表”、“I/O列表”、“儀表布局”、“接線板布局”和“接線圖”作為文檔包項(xiàng)目。
?
?

對(duì)于未來(lái) :: 瓶頸
我同意我的設(shè)計(jì)非常原始。我最初的意圖只是機(jī)械地模仿人的手和手臂,但后來(lái)我決定嘗試驅(qū)動(dòng)整個(gè)結(jié)構(gòu)。
在機(jī)械設(shè)計(jì)方面,一切幾乎都符合預(yù)期:所有機(jī)械部件都完美匹配并通過(guò)手動(dòng)方式相互交互。
無(wú)論如何,第一個(gè)瓶頸是選擇的材料,輕木:我選擇它只是因?yàn)樗梢詮V泛用于業(yè)余愛好作品的預(yù)成型/預(yù)切割部件,用于原型制作非常便宜,易于通過(guò)簡(jiǎn)單的手工工具成型,容易只需使用強(qiáng)力膠水即可修復(fù)。通過(guò)使用輕木,我可以避免購(gòu)買相當(dāng)昂貴的 CNC 或 3D 打印機(jī)及其配件和耗材。
然而,輕木也是一種非常脆弱的材料,led 比我想象的更早磨損手指。
除此之外,我設(shè)計(jì)的 1:1 比例“放大”了輕木的弱點(diǎn)。在搭建和嘗試運(yùn)行期間,我不得不對(duì)許多地方進(jìn)行維修。作為最后一個(gè)例子,Upper Arm 上的伺服電機(jī)支架板也是由輕木制成的,經(jīng)過(guò)幾次拆卸后,它們開始開裂。
而且也不可能使用任何軸承,尤其是手部,因?yàn)橛锌潭取?/font>
盡管如此,我還是推薦使用輕木以最便宜的方式制作機(jī)械原型。
另一個(gè)瓶頸是伺服系統(tǒng)的尺寸和功率。由于規(guī)模,我只能使用微型和標(biāo)準(zhǔn)伺服系統(tǒng),但它們的能力有限。這也是滑輪組考慮用于橈骨和上臂的旋前和屈曲的原因,因此整個(gè)手臂具有起重機(jī)式結(jié)構(gòu)而不是真正的機(jī)器人結(jié)構(gòu)。
為了未來(lái) :: 教訓(xùn)
模仿自然機(jī)制是一個(gè)非常困難和復(fù)雜的項(xiàng)目,因?yàn)樗鼈兊囊恍┕δ苁怯蓹C(jī)械部分(=骨骼)之間的靈活(幾乎通用)連接提供的,這些連接由執(zhí)行器(=肌肉)和反向彈簧(=肌腱)保持在一起。肌腱也可以被拉伸——即使是一點(diǎn)點(diǎn),也沒有肌肉那么多。
但這還不是全部。當(dāng)您啟動(dòng)一個(gè)“部分”時(shí),您還可以實(shí)時(shí)了解它的實(shí)際位置,以及在達(dá)到移動(dòng)限制時(shí)聯(lián)鎖啟動(dòng)。這意味著,每個(gè)部分應(yīng)使用一個(gè)位置傳感器和至少 2 個(gè)限位開關(guān)。
正如您所注意到的,我不得不使用伺服電機(jī),但如果您想避免使用位置傳感器,則可以使用步進(jìn)電機(jī)。然而,在這種情況下,每個(gè)步進(jìn)器將需要 4 個(gè)數(shù)字輸出,因此 2 個(gè) Arduino 級(jí)控制器是不夠的。
你認(rèn)為我們完成了嗎?還沒有。
讓我們做一個(gè)簡(jiǎn)單的實(shí)驗(yàn):握住右手,手掌向上。然后右手食指彎曲,“懸”在左手掌側(cè)。現(xiàn)在,試著用左手食指的指尖握住右手,同時(shí)將右手向上推。你看到了嗎?達(dá)到一定限度,你可以抵抗手臂上的肌肉,僅靠控制食指骨的肌肉。
如果你試圖通過(guò)模仿機(jī)制來(lái)做到這一點(diǎn),幾乎可以肯定它們會(huì)被破壞。即使在簡(jiǎn)單的試驗(yàn)中,我也燒毀了 7 個(gè)微型伺服系統(tǒng)。
和更多:
在自然機(jī)制上,“執(zhí)行器”放置在非??拷鼨C(jī)械部分的位置。今天,在機(jī)械仿制品上做到這一點(diǎn)的最好方法可能是使用液壓缸。但在那種情況下,還應(yīng)使用強(qiáng)大的液壓泵系統(tǒng)、儲(chǔ)油器、止回閥、電磁閥……這將帶來(lái)更大的空間需求和控制器+輸入/輸出能力的必要性。
那些最新的 2 段意味著,需要更小和更強(qiáng)大的執(zhí)行器。
完成的?不,還有一個(gè)問題:
讓你試著動(dòng)動(dòng)手指……
現(xiàn)在嘗試同時(shí)移動(dòng) 2 或 3 個(gè)手指……很好。
嘗試移動(dòng)所有手指,同時(shí)在手腕處上下移動(dòng)手,然后左右移動(dòng)……完美。
在杠桿前臂的同時(shí)轉(zhuǎn)動(dòng)手腕,移動(dòng)所有手指……
[ 什么?你還好嗎?看著我,我們帶你去診所好嗎?:))]
如果你沒有任何嚴(yán)重的健康問題,你可以做所有的事情,對(duì)吧?現(xiàn)在我們?nèi)绾斡脵C(jī)械模仿來(lái)做到這一點(diǎn)?
正如我已經(jīng)提到的,人的手臂和手總共有大約 30 種不同的運(yùn)動(dòng)(軸),因此每個(gè)都必須使用一個(gè)致動(dòng)器,以便能夠平滑地進(jìn)行逼真的模仿。
如果我們想通過(guò)使用像 Arduino 類這樣的簡(jiǎn)單控制器來(lái)做到這一點(diǎn),我們只需要一個(gè)子控制器用于每個(gè)軸,一個(gè)主控制器來(lái)命令它們。子控制器應(yīng)該有其特定的例程,僅定義各個(gè)部分的特定運(yùn)動(dòng),以用于整個(gè)系統(tǒng)的預(yù)定義整體運(yùn)動(dòng)。Master 只需將設(shè)定點(diǎn)和請(qǐng)求的整體運(yùn)動(dòng)信息發(fā)送給子控制器,然后向 all in once 發(fā)送“執(zhí)行”命令,并等待確認(rèn)。
例如,每個(gè)子控制器分別專用于食指、中指、無(wú)名指和小指的近端、內(nèi)側(cè)和遠(yuǎn)端部分(因此我們談?wù)摰氖?12 個(gè)子控制器以及致動(dòng)器、位置傳感器、限位開關(guān)和根據(jù)需要等等)應(yīng)該有 - 例如 - 一個(gè)“ Hold_a_Circular_Plate()”子例程僅為相應(yīng)部分定義特定運(yùn)動(dòng)。當(dāng)主控制器發(fā)送“ Command_to_Hold_Circular_Plate() ”時(shí),它應(yīng)該只觸發(fā)一個(gè)輸出同時(shí)到達(dá)所有子控制器。但另一個(gè)重要問題是在微秒內(nèi)同步子控制器,否則所有操作都會(huì)失敗。
第二種選擇是使用功能更強(qiáng)大的控制器和響應(yīng)速度更快的執(zhí)行器,這樣不同執(zhí)行器之間的切換將無(wú)法識(shí)別。
第三種選擇是最好的,如果可能的話:使用有史以來(lái)最強(qiáng)大的控制器,能夠以極快的速度執(zhí)行絕對(duì)多處理:有機(jī)大腦和神經(jīng)系統(tǒng),最好是人腦用于人形手臂(虛構(gòu)它是在 Robocop 系列中完成的)。
:: 結(jié)尾 ::
即便是現(xiàn)在也有一些公司在為殘疾人制造人形假手,即使設(shè)計(jì)的再好,為人們的生活帶來(lái)便利,也不能說(shuō)是完美的模仿。
我想我們幾乎所有人都可能見過(guò)波士頓動(dòng)力公司設(shè)計(jì)和建造的最神奇的機(jī)器人“阿特拉斯”。這樣的研究和開發(fā)消耗大量的金錢、時(shí)間,需要長(zhǎng)時(shí)間的研究、試驗(yàn)、無(wú)數(shù)次的失敗等等。例如,波士頓動(dòng)力公司成立于 1992 年,從那時(shí)起他們就一直在研究機(jī)器人。這意味著,到今天為止,Atlas 背后有近 30 年的研究、試驗(yàn)、失敗、重試……等等。
在預(yù)算方面,Atlas 的“父親”和“母親”由美國(guó)國(guó)防高級(jí)研究計(jì)劃局資助。是的,不幸的是,軍事機(jī)構(gòu)是這些驚人項(xiàng)目的主要支持者,人類仍然非常善于尋找最好的自相殘殺方式:(
市場(chǎng)上的消費(fèi)品無(wú)法制造出如此驚人的東西。所有機(jī)械、電子、執(zhí)行器、傳感器……都應(yīng)根據(jù)項(xiàng)目量身定制的定制參數(shù)進(jìn)行專門和單獨(dú)設(shè)計(jì)。
也許最近發(fā)明的人造肌肉可能有助于開發(fā)更好的假肢。
在所有情況下,我希望你能從機(jī)械和控制的角度發(fā)現(xiàn)所有那些冗長(zhǎng)的故事,還有你的身體……
- 完整的機(jī)械設(shè)計(jì)與MATLAB應(yīng)用課件下載 0次下載
- 中國(guó)石油大學(xué)機(jī)械設(shè)計(jì)基礎(chǔ)考試資料 0次下載
- 機(jī)械設(shè)計(jì)基礎(chǔ)教案分享 53次下載
- 機(jī)械設(shè)計(jì)基礎(chǔ)原理經(jīng)典試題 0次下載
- 《機(jī)電一體化--機(jī)械設(shè)計(jì)》機(jī)械設(shè)計(jì)簡(jiǎn)介 0次下載
- 機(jī)械設(shè)計(jì)課程設(shè)計(jì) 246次下載
- 機(jī)械設(shè)計(jì)概述 112次下載
- 機(jī)械設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書 80次下載
- 機(jī)械原理與機(jī)械設(shè)計(jì) -經(jīng)典PPT課件教程
- 機(jī)械設(shè)計(jì)課程設(shè)計(jì)課件
- 機(jī)械設(shè)計(jì)課程設(shè)計(jì)--下載 0次下載
- 機(jī)械設(shè)計(jì)精品課程 0次下載
- 機(jī)械設(shè)計(jì)試師試卷及答案
- 機(jī)械設(shè)計(jì)視頻教程
- 機(jī)械設(shè)計(jì)手冊(cè)電子版 0次下載
- 使用myCobot 280機(jī)械臂結(jié)合ROS2系統(tǒng)搭建機(jī)械分揀站 89次閱讀
- 【開源獲獎(jiǎng)案例】四軸機(jī)械臂控制系統(tǒng) 1319次閱讀
- 使用Ansys Zemax實(shí)現(xiàn)立方體衛(wèi)星的光機(jī)械設(shè)計(jì) 798次閱讀
- 非標(biāo)機(jī)械設(shè)計(jì)思路整理分享 876次閱讀
- 機(jī)械結(jié)構(gòu)設(shè)計(jì)解決方案 1534次閱讀
- 吳昌博士:Cadence Fidelity一站式葉輪機(jī)械設(shè)計(jì)與優(yōu)化方案 1992次閱讀
- 常用機(jī)械設(shè)計(jì)簡(jiǎn)述 949次閱讀
- 超詳細(xì)的機(jī)械設(shè)計(jì)基礎(chǔ)知識(shí)點(diǎn) 2844次閱讀
- 可穿戴耳塞設(shè)備中心率監(jiān)測(cè)器的光電機(jī)械集成指南 1761次閱讀
- 輕型機(jī)械臂模塊關(guān)節(jié)機(jī)械設(shè)計(jì)方案 4533次閱讀
- 機(jī)械手表是如何制作和組裝的 1.3w次閱讀
- 機(jī)械設(shè)計(jì)基礎(chǔ)很重要,從畫好一張零件圖開始 6738次閱讀
- 一部分機(jī)械設(shè)計(jì)原理的基礎(chǔ)分析資料概述 5445次閱讀
- 談?wù)凱CB設(shè)計(jì)電子與機(jī)械之間的那些事 3688次閱讀
- 分享機(jī)械設(shè)計(jì)行業(yè)的結(jié)構(gòu)設(shè)計(jì)14個(gè)入門訣竅 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(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)用手冊(cè)
- 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電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(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é)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論