2026年3月20日 星期五

[AutoTower] 圖塊管理

視覺化之圖塊管理員是一個好主意。


圖塊需分類

易於新建、修改、刪除、插入...。

[AutoTower] 圖紙與出圖管理

圖紙與出圖有啥關係?


紙張標準尺寸

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 建立圖框屬性資料





2026年3月19日 星期四

[AutoTower] 圖層管理

在繪圖時,不同特性的線條分屬在不同的圖層,是最佳的狀況,其優點是易於管理,缺點是如果純粹使用基本指令切換圖層並繪圖,將事倍功半。如果使用程式,將可輕易解決上述問題。


圖層的規劃

分類是有必要的。但要如何分類才好? 可以先把需求條列出來。


條列需求:

1. 依使用者需求。

2. 依程式需求。

3. 可易於分組管理,放樣圖、應力圖、詳細圖、裝建圖...。

4. 使用分隔線 ' - ' 來區分父子或從屬關係。


通用 - 0

放樣圖 - 0,放樣圖

應力圖 - 0,應力圖,基線

詳細圖 - 0,詳細圖,標註,螺栓-物件,螺栓-規格,

裝建圖 - 0,裝建圖,螺栓-物件,螺栓-厚度,螺栓-數量長度,螺栓-引線

型板圖 - 0,型板圖,鐵板-物件,鐵板-厚度,螺栓-物件,螺栓-十字線


以螺栓為例:

分析所有的螺栓,大概可區分為不同大小的規格、螺栓十字線...。

因應圖層之切換,其圖層名稱之結構似可編為  

螺栓-M16

螺栓-M20

螺栓-M22

螺栓-M24

螺栓-十字線

螺栓-數量長度

螺栓-引線

螺栓-屬性

墊圈和墊片該如何處理?


以鐵板為例:

鐵板在詳細圖、裝建圖和型板的圖層表現皆不一樣。



以角鋼為例:

分析一支完整的角鋼詳圖,大概有角鋼本體、隱藏線、螺栓孔、螺栓十字線、角鋼編號、角鋼規格、長度、標註線。

角鋼-本體(角鋼背之隱藏線也畫在這裡)

角鋼-編號

角鋼-規格

角鋼-長度


圖層顏色

須注意線條顏色與出圖時線條粗細的關係。


圖層線型

該如何處理圖層線型?


圖層分組管理

使用「LayerState」 指令管理分組之圖層。

「新建」-- 新建一個名稱用來儲存目前圖層狀態。

「設置」-- 快點兩下名稱,即可設置成該名稱的圖層狀態。

「儲存」-- 將目前圖層狀態覆蓋舊有狀態。

「編輯」-- 顯示圖層視窗,手動修改圖層狀態。

「更名」-- 變更名稱。

「刪除」-- 刪除名稱。

「匯出」-- 將指定名稱的圖層狀態匯出,儲存成一個檔案。

「匯入」-- 選擇一個圖曾狀態檔案或圖檔,將它們的圖層狀態匯入到目前圖紙內。


圖層分組名稱:

全部打開

放樣圖

應力圖

詳細圖

裝建圖

型板圖


內部程式



外部程式

匯入鐵塔標準圖層

匯出鐵塔標準圖層



2026年2月13日 星期五

[陶瓷燈絲] DIY「Edsion Lamp」-- 工具與材料篇

本文旨在介紹在 DIY「Edsion Lamp」 時會使用到的工具與材料。由於資料眾多,因此會陸續增添內容。


常用工具

斜口鉗 -- 用來剪斷電線、銅線。

剝線鉗 -- 用來剝除電線外皮取出銅線。

尖嘴鉗 -- 用來彎折鐵線、銅管與陶瓷燈絲末端鐵片。

彎線鉗 -- 用來彎折銅線。

繞線棒 -- 用來彎曲銅線。

切管器 -- 用來切斷銅管。

鑷子ESD鑷子套組 -- 用來夾取陶瓷燈絲、銅線...。

銼刀 -- 用來打磨電線、銅管...等。

電鑽 -- 用來鑽洞或將銅線弄直。

電烙鐵 -- 用來焊接。

焊錫絲 -- 用來焊接。

松香(或助焊膏) -- 用來讓被焊接物容易上錫。

清潔綿 -- 用來清潔烙鐵頭。

鋼絲球 -- 用來清潔烙鐵頭。

三用電錶(萬用電錶) -- 用來量測電阻、電壓與線路。

熱熔膠槍 -- 用來將電子零件固定在燈座底板。


常用輔助材料

貼紙膠帶 -- 用來固定陶瓷燈絲、銅線...。

雙面泡棉膠帶 -- 用來將電子零件固定在燈座底板。

保存盒 -- 用來存放陶瓷燈絲。


燈罩與底座材料

        有些人喜愛工業風,會把陶瓷燈絲直接暴露在外與銅線搭配在一起。也有些人把陶瓷燈絲裝進玻璃保險絲管裡面,如此就可以隨時換裝燈絲顏色。

也有些人會覺得在陶瓷燈絲外面加上一個燈罩,不僅擁有美麗的外觀,同時也可以起到保護陶瓷燈絲的作用。


保險絲管

玻璃瓶

塑料膠囊

塑料管

塑料瓶

造型塑料瓶

木質窗花

原木底座

黃銅隔片 -- 可用來作為燈塔或太空船的腳座


電池與電池盒

聚合物鋰電池

16340鋰電池與電池盒

14500鋰電池與電池盒

18650鋰電池

18650單節電池盒(帶針)

18650單節電池盒(帶線)

18650雙節電池盒(帶線)


電子材料

鋰電池充放電保護模組

2A調光器

觸摸開關

1208YD自鎖開關

SW-520D滾珠開關

人體感應開關

磁簧開關

N20減速馬達

風車軸套


線材

0.15mm漆包線

包膜導線

0.3~0.8mm單芯銅線

1~2.5mm2 單芯銅線

0.8~1mm銅管

3mm銅管


陶瓷燈絲

17mm

26mm

38mm

53mm

68mm

軟燈絲


相關影片:

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

2025年12月30日 星期二

[ESP32] 再次點亮 nanoESP32-C6 開發板上的彩燈

本文是上一篇「點亮 nanoESP32-C6 開發板上的彩燈」的續篇,這裡要使用範例裡的程式直接點亮開發板上的彩燈。

彩燈會先點亮白光,接著熄滅,然後依序點亮紅光>綠光>藍光,然後熄滅。彩燈會依照上述順序跑迴圈點亮彩燈。




準備材料

1. nanoESP32-C6 開發板 *1

2. Type-C USB 線 *1

提醒您:因 ESP32 在開啟 Wifi 和 BLE 時會耗用較大的電流,因此建議您準備品質好一點的 USB 傳輸線。


電路接線

nanoESP32-C6 開發板自帶 CH343x USB2TTL,所以在接線時非常方便,只要使用傳輸線連接電腦和這個開發板的 CH343 接口即可。


提醒您:
如果您還沒安裝 CH343x 驅動程式,請您先安裝好。


程式

如何在 Arduino IDE 裡使用 ESP 系列的開發板我們就不在此重複說明,如尚未明瞭的人可詳
如果已安裝 ESP32 系列開發板,但列表中沒有 ESP32-C6 Dev Moudle 的項目,您可以到「開發板管理員」內做一次更新。

Step1 開啟 Arduino IDE,如下圖開啟 [File] > [Examples] > [ESP32] > [GPIO] > [BlinkRGB.ino]。





程式不是很長,所以貼在下方。

/*
  BlinkRGB

  Demonstrates usage of onboard RGB LED on some ESP dev boards.

  Calling digitalWrite(RGB_BUILTIN, HIGH) will use hidden RGB driver.

  RGBLedWrite demonstrates control of each channel:
  void rgbLedWrite(uint8_t pin, uint8_t red_val, uint8_t green_val, uint8_t blue_val)

  WARNING: After using digitalWrite to drive RGB LED it will be impossible to drive the same pin
    with normal HIGH/LOW level
*/
//#define RGB_BRIGHTNESS 64 // Change white brightness (max 255)

// the setup function runs once when you press reset or power the board

void setup() {
  // No need to initialize the RGB LED
}

// the loop function runs over and over again forever
void loop() {
#ifdef RGB_BUILTIN
  digitalWrite(RGB_BUILTIN, HIGH);  // Turn the RGB LED white
  delay(1000);
  digitalWrite(RGB_BUILTIN, LOW);  // Turn the RGB LED off
  delay(1000);

  rgbLedWrite(RGB_BUILTIN, RGB_BRIGHTNESS, 0, 0);  // Red
  delay(1000);
  rgbLedWrite(RGB_BUILTIN, 0, RGB_BRIGHTNESS, 0);  // Green
  delay(1000);
  rgbLedWrite(RGB_BUILTIN, 0, 0, RGB_BRIGHTNESS);  // Blue
  delay(1000);
  rgbLedWrite(RGB_BUILTIN, 0, 0, 0);  // Off / black
  delay(1000);
#endif
}


Step2 點擊下拉功能表 [工具] > [開發板],選擇 ESP32-C6 Dev Module。



Step3 點擊下拉功能表 [工具] > [序列埠]。我的是 COM25,請您選擇自己的序列埠。



Step4 點擊上傳程式。在顯示"上傳完畢"後,您可以發現開發板上的 LED 開始變換顏色,如下影片。





2025年7月1日 星期二

再談 L9110S 馬達驅動模組

 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 以下了。








2025年1月27日 星期一

[Arduino] LGT8F328D 開發板使用說明

對岸 LogicGreen 公司開發幾款與 Arduino Uno V3 相容的開發板 LQFP32,MCU 使用 LGT8F328D 晶片, USB2TTL 使用 CH340G 晶片。這款開發板功能跟 Uno 相仿,但價位比 Uno 更加實惠,是值得大家關注的一塊開發板,接下來我們就來認識它並看看如何使用它。




產品特點

  1. 8F328D可以使用3V3與5V供電運行於16M頻率,電平兼容性極佳。
  2. 內置高精度RC,無需外部晶振即可穩定運行。
  3. 外圍零件少,電路設計簡單。
  4. 12位ADC(模數轉換)
  5. 自帶DAC
  6. 自帶GUID(唯一ID)可以用於芯片程序加密
  7. 自帶1.25與2.56 ±1%精度內部基准


參數

MCULGT8F328D
FLASH32Kbytes
SRAM2Kbytes
E2PROM可配置為 0K/1K/2K/4K/8K(與FLASH共享)
PWM6路
主頻16MHz
ADC6通道12位
DAC1通道8位
SPI
TWI(I2C)
GUID(全局設備號)
內部基准1.25V/2.56V ±1%



使用 Arduino IDE


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


採購資訊

露天[S&R]

露天[RWG]

蝦皮