視覺化之圖塊管理員是一個好主意。
圖塊需分類
易於新建、修改、刪除、插入...。
圖紙與出圖有啥關係?
紙張標準尺寸
A0 - 841 x 1189mm
A1 - 594 x 841mm
A2 - 420 x 594mm
A3 - 297 x 420mm
A4 - 210 x 297mm
E0 -
E1 -
E2 -
E3 -
E4 -
標準圖紙
圖紙單位與比例
思考那些東西會受到繪圖單位與比例的影響。直覺化的繪圖環境,受影響之物件應由程式處理。
因應不同繪圖單位和比例,圖形物件常常需要隨著縮放比例大小,我們可以自訂一個常數 at$DwgSc 讓字高乘上這個常數,就是程式需要畫出的大小。
(cond
((eq at$DwgUnit "MM") (setq at$DwgSc (* 1 (atof (substr at$DwgScale 3)))))
((eq at$DwgUnit "CM") (setq at$DwgSc (* 10 (atof (substr at$DwgScale 3)))))
((eq at$DwgUnit "M") (setq at$DwgSc (* 1000 (atof (substr at$DwgScale 3)))))
)
自訂圖框
圖框大小、樣式...因人而異,很難標準化。最好的因應方式是直接使用繪圖者原本的圖框製成程式可用的圖框。以下在說明如何將繪圖者原本的圖框製作成程式可用的圖框。
圖框元素的組成
1. 位於「圖框」圖層內的矩形聚合線,顏色可自訂,可視、可繪出。
2. 位於「圖框」圖層內,矩形聚合線右下角落的「at_SheetAtt」圖塊,它含有屬性。
屬性欄位
名稱 提示 預設值
圖名
圖號
張號
單位 MM
比例 1:30
製圖
日期
備註1
備註2
備註3
備註4
備註5
控制 (用來關聯圖框的欄位,批次出圖)
程式動作
出現交談框,輸入圖名、單位、比例...等資料,選取閉合的聚合線,變更它的圖層到「圖框」,並插入圖塊「at_SheetAtt」。
程式檢核
「圖號 - 張號」需具備唯一性質。
圖紙管理員
圖紙集中管理有利於標準化。
在模型空間批次出圖
給圖紙一個名稱,有利於程式批次出圖。
圖紙命名的規則
目前圖面單位與比例
c:atDwgIni 指定目前圖面單位與比例
c:atSheetBorder 繪製基本圖框
c:atSheetAtt 建立圖框屬性資料
在繪圖時,不同特性的線條分屬在不同的圖層,是最佳的狀況,其優點是易於管理,缺點是如果純粹使用基本指令切換圖層並繪圖,將事倍功半。如果使用程式,將可輕易解決上述問題。
圖層的規劃
分類是有必要的。但要如何分類才好? 可以先把需求條列出來。
條列需求:
1. 依使用者需求。
2. 依程式需求。
3. 可易於分組管理,放樣圖、應力圖、詳細圖、裝建圖...。
4. 使用分隔線 ' - ' 來區分父子或從屬關係。
通用 - 0
放樣圖 - 0,放樣圖
應力圖 - 0,應力圖,基線
詳細圖 - 0,詳細圖,標註,螺栓-物件,螺栓-規格,
裝建圖 - 0,裝建圖,螺栓-物件,螺栓-厚度,螺栓-數量長度,螺栓-引線
型板圖 - 0,型板圖,鐵板-物件,鐵板-厚度,螺栓-物件,螺栓-十字線
以螺栓為例:
分析所有的螺栓,大概可區分為不同大小的規格、螺栓十字線...。
因應圖層之切換,其圖層名稱之結構似可編為
螺栓-M16
螺栓-M20
螺栓-M22
螺栓-M24
螺栓-十字線
螺栓-數量長度
螺栓-引線
螺栓-屬性
墊圈和墊片該如何處理?
以鐵板為例:
鐵板在詳細圖、裝建圖和型板的圖層表現皆不一樣。
以角鋼為例:
分析一支完整的角鋼詳圖,大概有角鋼本體、隱藏線、螺栓孔、螺栓十字線、角鋼編號、角鋼規格、長度、標註線。
角鋼-本體(角鋼背之隱藏線也畫在這裡)
角鋼-編號
角鋼-規格
角鋼-長度
圖層顏色
須注意線條顏色與出圖時線條粗細的關係。
圖層線型
該如何處理圖層線型?
圖層分組管理
使用「LayerState」 指令管理分組之圖層。
「新建」-- 新建一個名稱用來儲存目前圖層狀態。
「設置」-- 快點兩下名稱,即可設置成該名稱的圖層狀態。
「儲存」-- 將目前圖層狀態覆蓋舊有狀態。
「編輯」-- 顯示圖層視窗,手動修改圖層狀態。
「更名」-- 變更名稱。
「刪除」-- 刪除名稱。
「匯出」-- 將指定名稱的圖層狀態匯出,儲存成一個檔案。
「匯入」-- 選擇一個圖曾狀態檔案或圖檔,將它們的圖層狀態匯入到目前圖紙內。
圖層分組名稱:
全部打開
放樣圖
應力圖
詳細圖
裝建圖
型板圖
內部程式
外部程式
匯入鐵塔標準圖層
匯出鐵塔標準圖層
本文旨在介紹在 DIY「Edsion Lamp」 時會使用到的工具與材料。由於資料眾多,因此會陸續增添內容。
常用工具
斜口鉗 -- 用來剪斷電線、銅線。
剝線鉗 -- 用來剝除電線外皮取出銅線。
尖嘴鉗 -- 用來彎折鐵線、銅管與陶瓷燈絲末端鐵片。
彎線鉗 -- 用來彎折銅線。
繞線棒 -- 用來彎曲銅線。
切管器 -- 用來切斷銅管。
銼刀 -- 用來打磨電線、銅管...等。
電鑽 -- 用來鑽洞或將銅線弄直。
電烙鐵 -- 用來焊接。
焊錫絲 -- 用來焊接。
清潔綿 -- 用來清潔烙鐵頭。
鋼絲球 -- 用來清潔烙鐵頭。
三用電錶(萬用電錶) -- 用來量測電阻、電壓與線路。
熱熔膠槍 -- 用來將電子零件固定在燈座底板。
常用輔助材料
雙面泡棉膠帶 -- 用來將電子零件固定在燈座底板。
保存盒 -- 用來存放陶瓷燈絲。
燈罩與底座材料
有些人喜愛工業風,會把陶瓷燈絲直接暴露在外與銅線搭配在一起。也有些人把陶瓷燈絲裝進玻璃保險絲管裡面,如此就可以隨時換裝燈絲顏色。
也有些人會覺得在陶瓷燈絲外面加上一個燈罩,不僅擁有美麗的外觀,同時也可以起到保護陶瓷燈絲的作用。
黃銅隔片 -- 可用來作為燈塔或太空船的腳座
電池與電池盒
16340鋰電池與電池盒
14500鋰電池與電池盒
18650鋰電池
18650單節電池盒(帶針)
18650單節電池盒(帶線)
18650雙節電池盒(帶線)
電子材料
線材
陶瓷燈絲
軟燈絲
相關影片:
How to straighten a brass wire https://youtu.be/CySwNy804cA?si=qy6MUAywh9rp1dG0
How To Solder Solid Wire https://youtu.be/W4p5nfKMUeQ?si=KjV-mTBnf6YkQF4T
弄直銅線 https://youtu.be/RlOGB5lUmkA?si=MP5eHZvhWGw1Lwt8
How to make a Cube with solder wire https://youtu.be/enviQ8tIm_A?si=DvbIrD694U2ei1I1
How to solder Make 3D Ball In Copper Wire https://youtu.be/tQk9gVihig0?si=SEmoTE6E6mZoPsIZ
Platonic solid wireframes https://youtu.be/H6cuvdNz2vE?si=rZlz6wkIgcp6kGT1
DIY Edsion Lamp https://youtube.com/shorts/CnsBS4HIbPg?si=D_OyKqLXkPK0cbf4
https://youtu.be/waBf7huo0oY?si=_vs218FKiv15Inje
https://youtu.be/waBf7huo0oY?si=so41KRKban4bsdMj
How to make camping lantern https://youtu.be/HDSb4FbmYUY?si=ZmKYo0DPOzzPdZfa
How to make camping lantern https://youtu.be/P5yTYp4hay8?si=ykHey_aKUgYq5Gjp
DIY camping lantern https://youtu.be/ivka1ta4Uh0?si=h6vemDOOSK_3o7IA
DIY Edison-Style Lamp https://youtu.be/Fr6i1lc6PRo?si=KVQIsHYlaYosAIVR
Make camping lantern 4 LED https://youtu.be/BHBZBBx0Hp4?si=Wpiof4sYXN4cbR8-
Turning Glass Fuses into LED Lights https://youtu.be/WuSxTnHf_EQ?si=9EP8EjKosyWVoEkB
Made a Lamp from Glass Fuses https://youtu.be/f1NQMBz6lRA?si=dLD1rtfIFn9fslrK
小夜燈 https://youtu.be/gN4ZZ9hOK3s?si=_7D47LMlG-P-ud1Q
立方燈 https://www.youtube.com/watch?v=dB22gBrax6E
Eiffel Tower Themed Desk Lamp https://youtu.be/i1222NAswKA?si=EZSMMcL0zh1jKSgB
Satisfying DIY Christmas Cross Lamp https://youtu.be/y-ssy3248Po?si=56d6R5EPX3EPsfpV
https://youtu.be/cOiSF5lTH_4?si=Ii8VLVw8yStNockm
A Rotatable Edison LED Lamp https://youtu.be/FCFN7ecryC8?si=_pfljltmkEQ6Al82
WINDMILL Desk Lamp https://youtu.be/NdYTs1NasPw?si=cgT5NPs9GY6DP3_V
DIY Pinwheel Night Light https://youtu.be/-2e86rXmJRE?si=zuvrSUtmVcT1FBAQ
Pinwheel Lantern Lamp https://youtu.be/gatu86mPtrU?si=e3FUpe7q_9sQtUW4
Pinwheel Night Light https://youtu.be/-2e86rXmJRE?si=BtrzX7ZAGOnoIPXV
a Mini Lighthouse https://youtu.be/zbWbH8Yhd2I?si=_kUa1oud_982fbuO
DIY Rotatable Edison LED Lamp https://youtu.be/QwzCSQTnJiw?si=RQWwqH7HGLcgs6dd
DIY Desk Lamp with Edison LEDs https://youtu.be/wU_3_A7WM8U?si=tqEN2Tle5VE5QyFL
DIY a Cylinder Frame Lamp https://youtu.be/1s9B3X_sDs0?si=b4Y-z7DCvGJFg6jP
Make Your Own Oil Pumpjack Desk Lamp https://youtu.be/INbpAjGFwjk?si=v83yAhHq7WEjglRu
小燈塔 https://youtu.be/aehEnZydD7Y?si=btNgT-bHLwhWbmJP
L9110S 馬達驅動模組實為一個物美價廉又好用的馬達驅動模組,但因為價廉所以會犧牲不少保護功能,所以在實務應用上玩家常常會一不小心就讓 L9110S 馬達驅動模組燒毀。本文目的就在說明使用 L9110S 馬達驅動模組時該注意的細節。
Datasheet
在使用各類電子零組件前,建議務必先仔細研究一下它的 Datasheet。
以 L9110S 來說它的供應電壓範圍是 2.2~6.5V,所以不建議使用 2顆鋰電池 (7.4V) 作為它的輸入電壓,以免讓 L9110S 模組燒毀。
另外,在供應電壓為 5V 時,它的工作電流是 200mA,這樣的電流大概也只能勉強驅動 2 只 TT馬達。如果使用 L9110S 模組來驅動 370 以上的馬達,則是會有無法驅動馬達或是讓模組燒毀的可能。
馬達
馬達是感性元件,它裡面的線圈會匯聚能量,運轉時突然停止或反向轉動,線圈裡的能量會產生極大的變化(類似水錘效應),專業術語稱之為反電動勢,它的電壓會比輸入的電壓高出數倍之多,這樣的能量會從馬達回到模組身上,把模組燒毀。
要如何避免反電動勢燒毀模組,除了可以使用驅動模組的硬體設計來解決之外,在馬達跟程式方面也可以配合做一些改善。
例如,在 TT 馬達的銅片兩端焊上 1 只 104 電容,可以讓馬達在需要更多電流時,或是電流反轉時,運轉得更穩順。
程式
我們的目的是執行程式透過模組來驅動馬達,因此馬達、驅動模組、程式這三者之間需要妥善配合。也就是說,您需要知道下列幾件事情:
1. 馬達的特性,諸如它的電壓輸入範圍、轉速、扭力、工作電流和堵轉電流...等等。
2. 驅動模組的特性,諸如它的電壓輸入範圍、輸出電流多寡、工作頻率...等等。
3. 程式該怎麼寫,需要配合馬達特性與驅動模組特性,才能完美運作。
程式碼:
// L9110S_Test.ino 使用 L9110S 模組測試馬達轉動
void setup() {
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
mStop();
}
void loop() {
mForward(); // 馬達正轉 2 秒
delay(2000);
mStop(); // 馬達停止
mBackword(); / 馬達反轉 2 秒
delay(2000);
mStop(); / 馬達停止
}
void mStop() {
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
delay(100);
}
void mForward() {
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
}
void mBackword() {
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
}
這個程式需要注意的地方,就是在讓馬達反轉時先停止一下,建議的時間是 delay 50 以上,詳 mStop()。
PWM
欲控制馬達轉速可以使用 PWM。
需要注意的地方是,如果 L9110S 模組的輸入電壓是 5V ,那麼 PWM 值如果小於 100,將無法讓 TT 馬達轉動,因為此時的輸出電壓已經在 2.5V 以下了。
對岸 LogicGreen 公司開發幾款與 Arduino Uno V3 相容的開發板 LQFP32,MCU 使用 LGT8F328D 晶片, USB2TTL 使用 CH340G 晶片。這款開發板功能跟 Uno 相仿,但價位比 Uno 更加實惠,是值得大家關注的一塊開發板,接下來我們就來認識它並看看如何使用它。
| MCU | LGT8F328D |
|---|---|
| FLASH | 32Kbytes |
| SRAM | 2Kbytes |
| E2PROM | 可配置為 0K/1K/2K/4K/8K(與FLASH共享) |
| PWM | 6路 |
| 主頻 | 16MHz |
| ADC | 6通道12位 |
| DAC | 1通道8位 |
| SPI | 有 |
| TWI(I2C) | 有 |
| GUID(全局設備號) | 有 |
| 內部基准 | 1.25V/2.56V ±1% |
Step1 首先下載、解壓縮並安裝 USB2TTL 驅動程式 CH341SER。
Step2 開啟 Arduino IDE,在 [檔案] > [偏好設定] 裡加入下列一行字,然後按下 [確定] 並退出 Arduino IDE 後再重新開啟。
https://raw.githubusercontent.com/dbuezas/lgt8fx/master/package_lgt8fx_index.json
Step3 點擊下拉功能表 [工具] > [開發板] > [開發板管理員],在上方的欄位內輸入 LGT8F,點選 LGT8Fx Boards,然後按下 [安裝] 並關閉。
Step4 點擊下拉功能表 [工具] > [開發板],選取 [LGT8Fx Boards] > [LGT8F328]。
Step5 點擊下拉功能表 [工具] > [開發板]
> [Clock Source] 選取 [Internal 32MHz]
> [Clock Divider] 選取 [2]。
> [Variant] 選取 [328D(rare)]。
> [Upload Speed] 選取 [19600]。
Step6 選擇正確的 COM port,我的在這裡是 COM4。
Step7 點擊下拉功能表 [檔案] > [範例] > [01.Basics] > [Blink],開啟範例程式 Blink.ino 並上傳程式。你可能會發現出問題了
這個問題是 Arduino 編譯器不懂 LED_BUILTIN 這個變數。
Step8 我們在程式碼前面加入這一行就可以解決這個問題
#define LED_BUILTIN 13
如下圖
Step8 點擊 [Upload]。請注意訊息欄是否顯示 [上載完成。],然後看一下 LGT8F328D 開發板上的藍色 LED 是否一閃一閃。
結論
初步看起來這塊板子與 Arduino Uno 開發板完全相容,在功能上和 PCB 腳位上兩者完全一致,甚至它還引出了 A6 和 A7 腳位。 最重要的是這塊開發板價位只有 Uno 的一半左右,CP 值頗高,值得創客玩家們使用。
在低價策略下,如果您仔細觀察,可以發現到這塊開發板省略了不少零件,其中最致命的是竟然省略了 RESET 腳上的 10k 上拉電阻,這導致它的重置按鍵在某些情況下無法發揮作用,以至於影響到程式無法再一次 Upload。
解決的辦法是,在需要 Upload 程式時,您可以事先在它的 5V 和 Rst 腳位串接 1 只 10k 電阻,等到上載完畢後再移除即可。
相關連結
http://wiki.ocrobot.com/doku.php?id=ocrobot%3Aalpha%3A8f328p-u%3Amain
https://magicalboy.com/lgt8f328p_nano3_compatible_board.html
https://www . youtube . com/watch?v=Myfeqrl3QP0
採購資訊