2011年1月9日 星期日

Fritzing – PCB 印刷電路板的設計工具

Fritzing 簡介

Fritzing 是一套設計 PCB (Printed Circuit Board) 印刷電路板的軟體,是特別給設計師、藝術家、研究者以及業餘玩家使用的工具。跟 ProcessingArduino 一樣,Fritzing 的開發者秉持開放、簡單與共享的精神而設計這套軟體,Fritzing 簡單好用的軟體操作介面,讓使用者即使沒有電子電機的背景也可以輕而易舉地製作出 PCB 印刷電路板的設計圖。

image
▲ 圖片來源: fritzing.org

Fritzing 是開放源碼的軟體(Open-source Software),我們可以在它的官網免費下載軟體。Fritzing 是跨平台的,有 Windows, Macintosh OSX 和 Linux 的版本。

除了可以用來設計 PCB 印刷電路板外,很多人拿 Fritzing 為他們的產品原型(Prototypes)製作文件,在課堂上使用 Fritzing 教授電子學、互動媒體設計學以及 Arduino 教學。

使用 Fritzing 為你的電路原型(Prototype)製作文件

image

Ardunio 是一個簡單好用的微控制器開發板,它讓我可以在很短的時間裏學會諸如 LED、按鈕開關、可變電阻、光敏電阻、七段顯示器、字元 LCD … 等各種電子裝置。不過,在學習 Arduino 時我遇到一個困擾,在做一個電子實驗的時候,我必須把電子元件插到麵包板上,利用單心線連接各個元件以及 Arduino,為這個實驗寫一支程式,實驗完成後,我得從麵包板上把各個電子元件和線路拔下來,然後才能開始做另一個實驗,但是當我想回到先前曾做過的實驗的時候,這時候問題就來了,之前寫的程式還在,可是我卻記不太清楚當初線路是怎麼接的。

於是我便去尋找可以讓我把電路原型做成文件的工具,然後我找到了 Fritzing。Fritzing 的使用辦法很簡單,都是用滑鼠拖放的方式,我們從元件庫把元件放到麵包板上,把這些元件連接起來,就這麼簡單,接著我們就可以在三種檢視模式下工作:麵包板檢視模式(Breadboard view)、電路圖檢視模式(Schematic view)以及 PCB 檢視模式 (PCB View),而且三種模式是同步更新的,我們可以更換元件、拉線路、做 PCB 佈局等,這些工作都是以視覺化的方式進行的。

下圖是 Fritzing 的元件庫(我用的版本是 Fritzing 0.4.3,2010-09-26 發佈的):

image
▲ Firtzing 的元件庫

底下是一個電路原型的例子,這個電路用到了 Arduino, 可變電阻和一個 HD44780 相容的字元 LCD:

image
▲ 麵包板檢視模式(Breadboard view)

在麵包板檢視模式下,當我把麵包板、Arduino、可變電阻和 LCD 拉到畫面上,並且以拖拉的方式連接線路,把各個元件連接好後,Fritzing 便立刻為我畫出了對應的電路圖以及 PCB 印刷電路板設計圖:

image
▲ 電路圖檢視模式(Schematic view)

image  
▲ PCB 檢視模式

這帶給我很大的方便,Fritzing 讓我得以記錄電路原型變成一份電子文件,日後忘記線路接法的時候,只要打開 Fritzing 文件,就可以很快的恢復記憶,把曾經做過的實驗電路重新接起來。

底下是另一個例子,一個利用壓力感測器控制 Sevo 伺服機的例子,底下這張是實體照片:

image
▲ 圖片來源: Fritzing PCB

而底下這張圖則是利用 Fritzing 畫出來的電路原型,跟實體照片幾乎一模一樣,有了這份文件,將來就不怕會忘記線路的接法了:

image

Fritzing 提供的 Arduino 範例

Fritzing 跟 Arduino 真是絕配,因為 Fritzing 不僅支援 Arduino,而且還提供了大量的 Arduino 電路原型範例,可以在選單 File > Open Example > Arduino 這個位置上找到:

image
▲ Fritzing 提供了大量 Arduino 電路原型

基本上,Arduino 基本的範例程式,大部份都可以在 Fritzing 裏找到對應的電路原型,例如,底下這兩張圖,它們顯示的分別是 Arduino 的 Blink 範例程式以及對應的 Fritzing 電路原型:

image
▲ Arduino IDE: Blink 範例程式

image
▲ Fritzing: Blink 範例電路原型

要特別注意,Fritzing 不能拿來跑 Arduino 的程式,因為它並不是一個軟體模擬器。

Fritzing 支援的微控制器

Fritzing 支援多款 Arduino 的板子:

image
▲ 由左至右,從上而下,依序是:Arduino, LilyPad, Nano, Mini Pro, Arduino Fio 與 Mega

除了 Arduino 外,Fritzing 還支援很多款微控制器:

image
▲ 由左至右,從上而下,依序是:GogoBoard, netduino, Wiring, Propeller, mbed, Modifed pico 與 Basic Stamp

這些微控制器摘要說明如下:

  • GogoBoard, 一個開放源始碼(Open-Source)適用於教育用途的機器人開發平台,使用 PIC 微控制器,程式語言用的是 LOGO 語言。
  • netduino, 一個 32 位元 ARM7-based 微控制器板子,腳位與 Arduino 相容,特色是使用 .NET Micro Framework。
  • Wiring, Arduino 的姐妹專案,一樣使用 atmega 系列的微控制器。
  • Propeller, Parallax 的新一代多核心(multicore)微控制器(有 8 個 CPU cores),使用 SPIN 語言。
  • mbed, 一個類似 Arduino 的微控制器平台,使用 ARM Cortex-M3 微控制器,使用 C++ 語言。
  • Modified pico, 一個與 Arduino 相容的小開發板。
  • Basic Stamp, Parallax 生產的微控制器開發板,在國外很流行,廣泛應用於機器人、自走車與教育用途,使用 PIC 微控制器,程式語言用的是 BASIC 語言。
總結

Fritzing 是一套設計 PCB (Printed Circuit Board) 印刷電路板的軟體,是特別給設計師、藝術家、研究者以及業餘玩家使用的工具。Fritzing 讓使用者可以製作電路原型的電子文件,還可以自動產生電路圖與 PCB 設計圖,很適合用於電子學以及 Arduino 教學。

參考資料

14 意見:

kevin 提到...

我用FRITZING 這的畫PCB 的軟體-如何設定單層板
請問我想使用這一個軟體做89C51的專題,不知如何設定單(兩)層板,因『我想用單層感光電路板寫電路)
若可以的話請告訴我,PCB已經畫好,但好多層!
請EMAIL給我謝謝 w047@gmail.com 謝謝

coopermaa 提到...

Hi,Fritzing 可以製作單層 (Single-sided) 或雙層 (Double-sided) 板。選擇方式是:

1. 切到 PCB View
2. 選擇板子
3. 在右手邊元件盤的 "Layers" 屬性後,即有 "one layer" 和 "two layers" 可供選擇,請參考下圖:

http://bitly.com/HvHCpt

賴東谷 提到...

那我想請問若想在Breadboard上標註文字該如何操作?

Cooper Maa 提到...

點左下角的「增加註解」就可以了
Frtizing 有圖層的觀念,不想顯示註解時,還可以在「檢視 > 註解」把它關掉

賴東谷 提到...

我要找到add note,但其效果跟我想要有點落差。我想要是像您標註在relay上的文字。http://coopermaa2nd.blogspot.tw/2011/03/lab21-12v.html#more

Cooper Maa 提到...

哈,那個 Fritzing 就沒辦法了
因為我 relay 上標註的文字是用抓圖工具做的

賴東谷 提到...

ok,謝謝您的告知!!那我想再請教圖層功能(圖層樹)是在?

Cooper Maa 提到...

就在「檢視」選單底下

cropse 提到...

真東西真的很好用
請問畫完的電路圖,我想要做一個接點拉線進來
但是我點HOLE卻沒有辦法直接拉線上去
還是我根本就不應該拿這個當拉線進來的元件??

cropse 提到...
作者已經移除這則留言。
cropse 提到...
作者已經移除這則留言。
Cooper Maa 提到...

??

cropse 提到...

問了一些問題自己解決就刪掉了= ="
這軟體很好入手是真的,我摸了一個禮拜畫好雙層板準備送工廠了
但是我想要拉線增加線路面積,但是好像沒辦法像一般pcb可以大範圍覆蓋面積,這個只能一條一條拉線??
我另外想要弄特殊形狀的pcb板跟元件都只能自己畫svg圖檔來建立元件??

Cooper Maa 提到...

其實我個人是把 Fritzing 當成教學入門用的工具
實際要用,我覺得還是選個專業的軟體比較好,例如 Eagle:
http://coopermaa2nd.blogspot.tw/2011/04/bv.html

抱歉,最近身體不好,這麼才回