2014/02/16

Raspberry Pi小玩意兒:Raspbian讓牛說Hello World

接觸Linux也有一段不算短的時日了,但萬萬沒想到居然有這種東西。嘿,學海無涯啊。

首先在Raspbian命令列模式下安裝所需套件:
$ sudo apt-get install cowsay fortune-mod fortunes

其中cowsay能產生牛的ASCII文字圖案與對話框,fortune-mod能亂數給出名言錦句(格言、諷刺、謎題、玩笑),fortunes則是含有更多名言錦句的套件。

試試看吧,讓牛說Hello World:
$ cowsay "Hello World"

還可以加上各種參數(-b -d -g -p -s -t -w -y),改變牛的眼睛與舌頭。若改用指令cowthink則變成思考框。
另外也可以參數-f指定另一隻動物圖案,可用的動物位於/usr/share/cowsay/cows裡。
若使用剛剛安裝的fortune-mod套件,就不需要自己想台詞了,直接執行指令fortune的話,就會亂數隨機給出一段名言錦句,分成許多範疇,譬如computers、linux、people、art、science、education、love、literature、magic等等,執行$ fortune -f可得知。範例是$ fortune computers | cowsay。

2014/02/11

Arduino練習:旋轉編碼器

旋轉編碼器(rotary encoder)可將旋轉位置或旋轉量轉變成訊號(類比或數位),透過某種方式(機械、光學、磁力等),得知轉軸轉動了,發出訊號通知我們。可分為絕對型(absolute)及增量型(incremental)或稱為相對型(relative),絕對型將轉軸的不同位置一一編號,然後根據目前位置輸出編號;增量型編碼器則是當轉軸旋轉時輸出變化,轉軸不動就沒有輸出。

底下是我購買的增量型旋轉編碼器模組,可以一直旋轉,旋轉一整周被分為20小格,正轉逆轉皆可,當轉動時,CLK腳位就會呈低電位,此時可讀取DT資料腳位,若為HIGH代表正轉,LOW代表逆轉;SW則是開關腳位,轉軸可被按下改變此腳位的狀態。另外+需接正電源,GND接地。

這種編碼器屬於機械式,需要對訊號進行去抖動,較不精準、適合低轉速場合;光學式則可用於高轉速或精確度需求較高的地方。

增量型旋轉編碼器會有類似齒輪缺口與感應的機制,以此可有兩個輸出A與B,旋轉時,A與B將輸出不同的訊號,正轉與逆轉可得到不同的一串訊號,如此便可區分正逆轉。
不過我購買的模組已經處理好了,不需要自己偵測A與B作處理與判斷。

我用的板子是Arduino Uno R3,軟體開發環境版本為1.0.5、Windows版。

電路如下:
Arduino腳位2,連接模組的CLK。
Arduino腳位3,連接模組的DT。
Arduino腳位4,連接模組的SW。

草稿碼如下,當偵測到正轉時,就增加全域變數count、並輸出到序列埠,逆轉則減少,按下開關則歸零。

#define SERIAL_BAUDRATE 115200
#define CLK_PIN 2 // 定義連接腳位
#define DT_PIN 3
#define SW_PIN 4

#define interruptA 0 // UNO腳位2是interrupt 0,其他板子請見官方網頁

volatile long count = 0;
unsigned long t = 0;

void setup() {
  Serial.begin(SERIAL_BAUDRATE);
  // 當狀態下降時,代表旋轉編碼器被轉動了
  attachInterrupt(interruptA, rotaryEncoderChanged, FALLING);
  pinMode(CLK_PIN, INPUT_PULLUP); // 輸入模式並啟用內建上拉電阻
  pinMode(DT_PIN, INPUT_PULLUP);
  pinMode(SW_PIN, INPUT_PULLUP);
}
void loop() {
  if(digitalRead(SW_PIN) == LOW){ // 按下開關,歸零
     count = 0; 
     Serial.println("count reset to 0");
     delay(300);
  }
}
void rotaryEncoderChanged(){ // when CLK_PIN is FALLING
  unsigned long temp = millis();
  if(temp - t < 200) // 去彈跳
    return;
  t = temp;
 
  // DT_PIN的狀態代表正轉或逆轉
  count += digitalRead(DT_PIN) == HIGH ? 1 : -1;
  Serial.println(count);
}

執行後,開啟序列埠監控視窗,用手轉動旋轉編碼器,正轉時可看到不斷變大的數字,逆轉則減少。不過有時會出現錯誤,應該加1的情況卻先加1、再減1、再加1,不夠完美。

參考資料:

2014/02/07

Raspberry Pi情報彙整(20)

我將網路上看到的、感興趣的、跟Raspberry Pi相關的資訊收集如下。如果您發現任何新奇驚人的新聞或專案,還請留言告知。

OCR Raspberry Jamboree 27 & 28 February 2014,二月底的Raspberry Pi大聚會,舉行三天,真想去啊。可以看看去年聚會的影片過過乾癮。

PA’s new Raspberry Pi Competition - innovate to help the environment! ,還記得PA 2012/13的Raspberry Pi創作競賽嗎,現在2013/14的競賽開跑囉,不過應該要住在英國、愛爾蘭的學生才能參加。
instructables舉辦的Raspberry Pi Contest專案競賽,上去看看有哪些創意發想吧。
PiTFT Pibow,Adafruit的PiTFT真是不錯,現在也有專屬的保護外殼了。
Lapse-Pi Touch – A Touchscreen Timelapse Controller,Dave Hunt為他的縮時攝影裝備添加了觸控螢幕,真不錯。之前的分享作品還有拍攝水滴掉落聚焦疊加馬達與縮時攝影
The SnapPiCam | A Raspberry Pi Camera,又一個運用Adafruit PiTFT與相機模組的專案,含有鋰電池、充電模組、升降壓器、以及鏡頭,厲害。
Capacitive Touch Potatoes on the Raspberry Pi,arghbox的分享文,加入電容式觸控感測器,就可以把水果蔬菜當做變成敲擊對象,變成類似電子開關的作用,用來製作樂器。
How we built a game called ‘Panflute Hero’,玩過吉他英雄嗎,何不試試自己打造排笛英雄呢,六根竹管分別加上麥克風感測器,透過TCP協定將吹奏事件傳送到電腦上,嘿,然後用Lua寫個小遊戲吧。影片在此
YouTube影片Glockenspiel & Raspberry Pi,撞琴。
Raspberry Pi GPS Helmet Cam,Martin O’Hanlon不只會在Raspberry Pi上玩Minecraft,也會玩玩電子硬體喔,這是一款裝在帽子上的相機,並且疊上GPS位置資訊,嘿,一邊滑雪,一邊記錄軌跡,真是太棒啦。影片在此
LOHAN's handsome young autopilot springs into life,這是自動導航的無人駕駛飛機嗎,真強。
Raspberry Pi: Vocal Intruder Warning System Project,加上PIR動作偵測器,建構聲響警報系統吧,文中提供詳細的步驟與程式碼。
Laika Explorer: what it's like to build a Raspberry Pi accessory startup,Laika去年成功地募集資金,製作rpi的擴充套件,專門控制各種硬體,譬如說機器人需要的零件。這一篇則是創辦人現身說法,講述一路以來的過程,如何生產、測試、等等。
MoPi: Mobile and 24/7 Power for the Raspberry Pi,可攜式行動電池,似乎還不只如此。
Accelerating Fourier transforms using the GPU,哇,Andrew Holme寫了GPU_FFT這套程式庫,運用Pi的GPU(VideoCore IV)進行傅立葉轉換,比用CPU運算快了10倍,真不錯。
8086tiny: a tiny PC emulator/virtual machine,非常小且可移植到各平台的8086模擬器,可在Windows、Linux、Android、iOS(iPhone 5)等運行,當然也包括Raspberry Pi。哇,看到MS-DOS 6.22了,好懷念啊。
Introducing the GrovePi ← GrovePi,Grove是Seeedstudio為Arduino推出的電子積木套件,現在有了GrovePi之後,也能供Raspberry Pi所用囉。

Raspberry Pi:Raspbian套件列表

這一篇是寫給我自己看的,因為常常會忘記某某套件,所以將套件名一一列出,並附上簡短說明,以供後續查詢。

底下列出的都是Raspbain的套件名,安裝指令是:
$ sudo apt-get install 套件名

安裝前或許需要先更新套件資料,更新套件資料的指令是:
$ sudo apt-get update

甚至還要更新升級先前已安裝的套件,升級套件的指令是:
$ sudo apt-get upgrade

$ sudo apt-get dist-upgrade。

移除指令是:
$ sudo apt-get remove 套件名
$ sudo apt-get remove --auto-remove 套件名
移除已沒用的相依套件:
$ sudo apt-get autoremove
移除設定檔:
$ sudo apt-get purge 套件名
$ sudo apt-get remove --purge 套件名
$ sudo apt-get autoremove --purge 套件名

底下列出套件名與簡短描述。

Raspberry Pi專屬:
pistore,Pi Store軟體市集。
raspi-config,初始設定工具。
rpi-update,韌體更新工具。
raspberrypi-ui-mods raspberrypi-net-mods,使用介面與相關元件的改進。
pi-package,套件管理,圖形介面,修改自Gnome Package。
python-sense-emu python3-sense-emu python-sense-emu-doc sense-emu-tools,Sense HAT模擬器。

deb套件管理:
dpkg,Debian套件管理系統的基礎,指令「dpkg --get-selections」可列出所有已安裝套件。
apt,較高階的指令,如apt-get、apt-cache等。
aptitude,文字介面選單模式。
synaptic,圖形介面,。 

辦公室:
libreoffice,辦公室軟體LibreOffice(OpenOffice.org),文書處理、試算表、投影片、資料庫、向量繪圖、數學方程式。openoffice.org已被libreoffice取代。
abiword,AbiWord文書處理軟體。        
gnumeric,Gnumeric試算表軟體。
scribus,頁面排版設計軟體,類似Adobe InDesign。

文件:
evince,文件閱覽器,支援PDF、PostScript、DVI、XPS、DjVu等,本為GNOME而設計。
okular,文件閱覽器,支援PDF、PostScript、DVI、XPS、DjVu、CHM、EPUB等,本為KDE而設計,取代kpdf、KGhostView等軟體。
xpdf,文件閱覽器,支援PDF、PostScript、EPS、XPS、DjVu、DVI等格式,介面老舊。

影像:
gimp,影像處理軟體,媲美PhotoShop。
inkscape,向量繪圖軟體。
shutter,抓圖軟體。
scrot,抓圖軟體,在文字介面下指令。
xscreensaver,螢幕保護程式與鎖住螢幕。
imagemagick,編輯、轉換、存取各種格式的圖檔,有命令列指令與圖形介面。
fbi,frame buffer image檢視工具,在主控台下顯示圖檔。
fim,以fbi為基礎增強許多功能,可看圖、也可轉成ASCII形式輸出。

影片:
omxplayer,媒體播放,文字介面,特別為Raspberry Pi打造,運用GPU硬體加速,可供XBMC使用。
mplayer,影片播放,文字介面。
smplayer,mplayer的圖形介面。
vlc,媒體播放器。
mediainfo,解析媒體檔案,文字介面。
mediainfo-gui,mediainfo的圖形介面。

音樂:
lxmusic,音樂播放器,介面較簡單輕巧,LXDE圖形介面,底下是xmms2。
xmms2,音樂播放器,主從架構,也有命令列模式的指令。
xmms2-plugin-all,xmms2的所有外掛(附加元件)。
moc,音樂播放,文字選單型介面;注意,其執行檔名是mocp。
alsa-utils,ALSA的工具,指令alsamixer、amixer、aplay、arecord、等等。
audacity,音訊編輯軟體。
lilypond,樂譜。
sonic-pi,寫程式創作音樂,pi專屬。

視訊、音訊:
ffmpeg,視訊音訊的編碼解碼、錄製、轉換、串流。過渡套件,應改用libav-tools。
libav-tools,視訊音訊的編碼解碼、錄製、轉換、串流。
icecast2,串流媒體伺服器。 streaming media server
motion,視訊監控,可偵測動作變化。

3D:
blender,3D繪圖及渲染軟體。

網路:
epiphany-browser,為Raspberry Pi最佳化過的瀏覽器。
chromium-browser,瀏覽器Chrome。
rpi-chromium-mods ,rpi的修改。
dillo,一款基本的瀏覽器。
gnash:GNU Gnash,Flash影片播放器。
browser-plugin-gnash,外掛,與gnash一同提供chromium-browser播放YouTube的能力。
iceweasel,瀏覽器Firefox。
midori,以WebKit為基礎的輕量型瀏覽器。
icedove,email/news客戶端Thunderbird。
claws-mail,email客戶端Claws Mail,原名Sylpheed-Claws,採用GTK+2。
iceowl,行事曆,Raspbian無。
iceape,套裝組合SeaMonkey,包含瀏覽器、HTML編輯器、email客戶端、電話簿、IRC客戶端、等等。
pidgin,即時通訊。
pcmanx-gtk2,PCManX,圖形介面,打BBS。
xchat,IRC客戶端,圖形介面。
irssi,IRC客戶端,文字介面。
alpine,email客戶端,pine的升級版,文字介面。

編輯器:
nano,文字編輯器,取代Pico。
joe,Joe's Own Editor,文字編輯器。
alpine-pico,文字編輯器Pico,原本是email客戶端pine的編輯器。
jove,Jonathan's Own Version of Emacs,文字編輯器。
vim,Vi IMproved,文字編輯器,功能強大。
emacs,文字編輯器,功能強大。
zile,文字編輯器,也是開發工具箱,含輕量型Emacs引擎Zemacs。

輸入法:
scim scim-tables-zh scim-chewing scim-pinyin,中文輸入法引擎、對照表、注音輸入法、拼音輸入法。
fonts-inconsolata ttf-anonymous-pro ttf-dejavu ttf-bitstream-vera ,好看、清楚的等寬字型,終端機與程式撰寫時必備。

字型:
ttf-wqy-microhei,中文字型,文泉驛微米黑WenQuanYi Micro Hei。
ttf-wqy-zenhei,中文字型,文泉驛正黑WenQuanYi Zen Hei。
xfonts-wqy,中文字型,文泉驛點陣宋體WenQuanYi Bitmap Song CJK font。
fonts-arphic-uming,舊名ttf-arphic-uming,中文字型,結合文鼎PL細上海宋與文鼎PL簡報宋,並再擴充。
fonts-arphic-ukai,舊名ttf-arphic-ukai,中文字型,結合文鼎PL中楷與文鼎PL簡中楷,並再擴充。

工具類-系統
cpufrequtils,CPU時脈,指令cpufreq-info。
usbutils,USB工具,指令lsusb。
file,猜測判斷找出檔案的格式。 

工具類-網路:
wpasupplicant,WPA與WPA2認證客戶端。
wireless-tools,無線網路介面的工具。
wicd-curses,網路介面管理工具,文字選單型介面。
wicd,網路介面管理工具。
wavemon,無線網卡監控工具,訊號強度、封包統計、裝置設定、網路組態。
dnsutils,網域名稱工具,指令dig、nslookup。
nmap,網路掃描探測工具。
mtr,結合ping與traceroute,指令mtr。
fping,一次可ping一堆主機。
netselect,找出最傳輸最快的伺服器,通常會根據ping與traceroute的結果。
wget,經由HTTP(S)與FTP協定從網站抓取檔案,可遞迴抓取。
curl,抓檔工具,支援多種協定。
wireshark,網路封包擷取與分析。

工具類-終端機:
tmux,終端機多工器,可開出多個終端機介面,分割視窗。
screen,tmux的前輩,可連接序列埠。
minicom,序列通訊工具,文字選單型介面。
synergy,在多台電腦間透過網路共用鍵盤滑鼠。

工具類-壓縮:
zip unzip,壓縮/解壓縮zip格式。
bzip2,壓縮/解壓縮bz2格式。
gzip,壓縮/解壓縮gz格式,指令gzip、gunzip。
xz-utils,壓縮/解壓縮xz格式,指令xz、unxz、xzcat、xzgrep等。也能處理較舊的LZMA格式。

數學:
octave,GNU Octave數值運算語言,類似MATLAB。 
wolfram-engine,Mathematica與Wolfram Language,pi可免費使用。

程式語言、軟體開發:

oracle-java7-jdk oracle-java8-jdk,Oracle Java。 
gcc,GNU C compiler。
g++,GNU C++ compiler。
binutils,組譯器、連結器、目的檔處理工具、等等。
llvm,Low-Level Virtual Machine。
clang,LLVM的C語言家族編譯器前端。
make,GNU Make。
flex,lexical analyzer產生器,類似lex。
bison,parser產生器,類似yacc。

elfutils,ELF格式的工具。
dwarves,DWARF格式除錯資訊的工具。
build-essential,建置Debian套件的所需工具。 
libncurses5-dev,ncurses程式庫。
libncursesw5-dev,ncurses程式庫,wide character版。
libpcre3,Perl 5相容正規表達式函式庫,執行時期檔案。
libpcre3-dev,Perl 5相容正規表達式函式庫,開發所需檔案。
zlib1g,壓縮演算法zlib程式庫,執行時期檔案。
zlib1g-dev,壓縮演算法zlib程式庫,開發所需檔案。

bluej,Java IDE。
greenfoot,Java IDE。
geany,輕量型IDE。

scratch,積木式程式語言。
nodered,IBM的Node-RED,視覺編輯器,開發物聯網應用軟體。

原始碼版本控管:
git,分散式版本控管系統,相關套件有git-man(man說明文件)、git-daemon-run與git-daemon-sysvinit(服務)、git-doc(文件)、git-gui與gitk(圖形化介面)、等等。
git-core,已改名為git。
mercurial,Mercurial分散式版本控管系統。
cvs,CVS版本控管系統。
subversion,Subversion版本控管系統,常簡稱為svn 。

Python:
python python3,Python版本2與3。
python-dev python3-dev,開發所需檔案,標頭檔、靜態程式庫、等等。
python-serial python-serial,Python程式庫,存取序列埠介面。
python-setuptools python3-setuptools,Python套件管理工具。
python-pip python3-pip,Python套件管理工具。
python-rpi.gpio python3-rpi.gpio,RPi.GPIO程式庫。
python-gpiozero python3-gpiozero,GPIO Zero程式庫。
python-smbus,Python綁定,透過Linux的i2c-dev模組存取I2C與SMBus。
i2c-tools,I2C工具,指令i2cdetect。
python-spidev python3-spidev,Python程式庫,透過Linux的spidev模組存取SPI。

lm_sensors,硬體監控,讀取溫度、電壓、風扇轉速等感測器。Raspbian套件庫尚無。
python-pygame,綁定SDL程式庫,存取各種API,視訊、聲音、搖桿、繪製文字、等等。

Arduino相關:
arduino,Arduino軟體開發環境,包括圖形介面下的整合式編輯器、編譯建置工具、燒錄工具、範例程式碼、程式庫。
arduino-mk,makefile可在命令列模式下進行開發。
gcc-avr,AVR微控制器的GCC編譯器。
binutils-avr,AVR微控制器的二進位檔與目的檔處理工具。 
avr-libc,AVR微控制器的C語言標準函式庫與標頭檔。
avrdude,AVR微控制器的燒錄工具。
gdb-avr,AVR微控制器的GDB除錯器。

fritzing,電路設計繪製軟體。

伺服器:
openssh-server,提供SSH伺服器(sshd)。
openssh-client,提供SSH客戶端指令,如ssh、scp、sftp、ssh-keygen等。
ssh,後設套件,依賴於openssh-server與openssh-client。
openssl,OpenSSL的SSL與TLS的實作。
libssl-dev,OpenSSL的開發所需檔案,含程式庫、標頭檔、文件等。
tightvncserver,VNC伺服器。
xrdp,XRDP遠端桌面伺服器。
nginx,又輕又快又強的網站伺服器。
apache2,Apache網站伺服器。
libapache2-mod-php5,Apache存取PHP的模組。 
php5,伺服器端的PHP腳本語言。
mysql-server,MySQL資料庫。
php5-mysql,MySQL資料庫的PHP5模組。
wordpress,WordPress網誌/内容管理系统。
uwsgi,uWSGI伺服器。
samba,SMB/CIFS協定的Linux實作。
samba-common-bin,Samba伺服器與客戶端需要的共用檔。
cups,Common UNIX Printing System,列印。

X Window:
xorg,X.Org的X視窗系統;應另安裝桌面環境。
lxde,桌面環境LXDE。

遊戲:
minecraft-pi,Raspberry Pi可免費使用的Minecraft。
ltris,俄羅斯方塊。
pacman,小精靈。
njam,類似小精靈。
xgalaga,射擊遊戲,類似Galaga大蜜蜂與Galaxian小蜜蜂。
pinball,彈珠台。
supertux,企鵝,類似瑪莉歐的橫向捲軸過關遊戲。
sudoku,數獨。
gnome-klotski,華容道。
gpe-othello,黑白棋。
gnuchess,GNU Chess西洋棋遊戲,現採用fruit引擎與UCI協定,另可安裝前端圖形介面。
fruit,西洋棋引擎,採用UCI協定。
stockfish,西洋棋引擎,採用UCI協定。
scid,包含西洋棋局資料,分析棋局,具有前端圖形介面。
xboard eboard knights,棋盤,前端圖形介面。
gmchess,象棋。
mah-jong,麻將。
oolite,太空模擬遊戲,貿易與戰鬥,繼承Elite的精神。 
freedink,冒險型角色扮演遊戲。
wesnoth,Battle for Wesnoth回合制戰略遊戲,奇幻背景設定。
widelands,奇幻即時戰略,類似工人物語2。
openttd,建築類遊戲,類似運輸大亨豪華版。
glob2,即時戰略遊戲Globulation 2。
freeciv-client-sdl或freeciv-client-gtk,Freeciv,開源版本的文明帝國(Civilization)遊戲;永無止盡的再一回合。
freeciv-server,Freeciv遊戲伺服器,供多人遊玩。
bsdgames,包含一堆古老遊戲,adventure、boggle、trek、hangman、snake、wump、等等,文字介面。
ninvaders,類似太空侵略者Space Invaders,文字介面。套件open-invaders比較像原版。套件xinv3d則是3D版,圖形介面。
moria,roguelike遊戲,源自rogue,文字介面;名雖是moria,實際上是Umoria。
angband,roguelike遊戲,繼承自Moria與Umoria,以托爾金的故事為背景,需X Window或主控台(支援滑鼠)。
crawl,Dungeon Crawl的Stone Soup版,roguelike遊戲,文字介面,另有圖形介面crawl-tiles。
nethack-console,NetHack,文字介面。套件nethack-x11是X Window介面。
scummvm,ScummVM圖形冒險遊戲虛擬機器。
beneath-a-steel-sky,遊戲Beneath a Steel Sky,需ScummVM。
flight-of-the-amazon-queen,遊戲Flight of the Amazon Queen,需ScummVM。
fceu,FCE Ultra,任天堂紅白機模擬器。
stella,Atari 2600模擬器。
frotz,Z語言互動文本虛擬機器。
gargoyle-free,多款互動文本格式的虛擬機器,圖形介面。
kildclient,MUD泥巴客戶端,圖形介面。
tintin++,MUD泥巴客戶端,文字介面。
scanmem,遊戲修改器。
gameconqueror ,scanmen的GUI前端介面,並提供更多功能。

YoYo Games公司提供的遊戲
Webfoot Games公司提供的遊戲

想要更多遊戲嗎,請參閱:
Raspbian wheezy Games | Raspberry PI Community Projects
8 Best Free ASCII Linux Games
text (console) | Linux game database
Free Games | debianlinux.net

雜項、小玩意兒:
cowsay,產生牛的ASCII文字圖案與對話框。
fortune-mod,能亂數給出名言錦句(格言、諷刺、謎題、玩笑),指令fortune。
fortunes,含有更多名言錦句的套件,fortune是fortune cookie(幸運餅乾)的意思。
fortunes-off, 含有令人不快的冒犯性名言錦句。
fortune-zh,含有唐詩三百首與其他,指令fortune-zh。
cmatrix,秀出類似駭客任務的數據流動畫面。
libaa-bin,AAlib是一套ASCII Art程式庫;指令aafire可秀出動態火焰。
bb,展示AAlib的能力。
figlet,用字母拼寫出更大字母的工具,還能顯示各種風格。
toilet,類似figlet,支援Unicode、顏色、各種輸出格式。
sl,ls的相反,畫面上會通過一輛蒸汽火車(Steam Locomotive)。

oneko,小貓追著滑鼠游標跑。
tuxeyes,企鵝(Linux吉祥物)的眼睛隨著滑鼠游標轉動。
x11-apps,許多X視窗的小工具,包括xeyes、oclock、xcalc、xconsole、xmore、xman、等等。

2014/02/06

The MagPi各期內容簡述(2014年)

The MagPi是一份由Raspberry Pi社群與愛好者自主設計、編輯、發行的電子雜誌,內容有硬有軟,值得一看,而且可以免費下載喔。

2012年,總共發行8期,每一期的內容簡述在此。其中第06期有中文翻譯
2013年,總共發行11期,每一期的內容簡述在此
2014年,至今發行6期,底下簡述各期內容。


The MagPi Issue 20(2014.02)

Project Curacao: Remote Sensor Monitoring in the Caribbean, Part 3
Curacao是加勒比海裡的一個沙漠小島,如何設立一個環境感測裝置呢,必須能在無人看管的情況下,自給自足獨立運作6個月,當然啦,必須使用太陽能發電(Part 1)以及環境感測器(Part 2),這一期介紹相機子系統,Part 4介紹軟體部分,Part 5則介紹如何在Curacao安裝系統與量測結果。

Programming for Pi-Pan
Pi-Fan是支機械手臂,裝上Pi的相機模組後,可進行左右移動與傾斜,進行全景攝影。此篇文章介紹程式控制介面。

Quadcopter, Part 2
擁有四個螺旋槳的飛行器,可手動操控,也能自主飛行。將會是一系列的文章,上一次講解原理、構造、需要哪些元件等基本知識,以及Raspberry Pi扮演何種角色;這一次介紹各種準備功夫、調校、測試。

Environmental Monitor, Part 2
上次使用BMP085記錄氣溫與大氣壓力,這次介紹如何將資料發佈出去或記錄在本地端。

Competition
抽獎。

Cable Modem
運用Raspberry Pi自動回復斷掉的網路連線。

Racks of Pi
法國公司NanoXion,拿Pi當做主機代管的伺服器。

This Month's Events Guide
公布有關Raspberry Pi的最新消息、活動、聚會。

Algoid
讓小孩與初學者輕鬆入門的程式語言Algoid。

Scratch Patch
使用GPIO、SPI、檔案等等。這是一系列的專欄文章。

My OS: Build a Customized Operating System, Part 2
打造屬於自己的客製作業系統,從原始碼開始編譯建置,使用交叉編譯器,在一般電腦與Ubuntu上完成任務。這期介紹如何打造出能讓Raspberry Pi的Linux映像檔,開機不到10秒喔。這是一系列的專欄文章。

Book Review
書籍評論,Python In Easy Steps與Raspberry Pi Networking Cookbook。


The MagPi Issue 21(2014.03)

Interview with Eben Upton
訪談靈魂人物Eben Upton,談論Raspberry Pi兩歲生日以及展望未來。

Managing Home Weather Station
記錄天氣並進行預測。

Fish-Pi
透過網路觀察海水環境的水族箱,自動化許多雜煩的維護事務。哇,珊瑚耶。

Internet Radio
聆聽世界各地的廣播節目吧。

Project Curacao: Remote Sensor Monitoring in the Caribbean, Part 4
Curacao是加勒比海裡的一個沙漠小島,如何設立一個環境感測裝置呢,必須能在無人看管的情況下,自給自足獨立運作6個月,當然啦,必須使用太陽能發電(Part 1)以及環境感測器(Part 2),Part 3介紹相機子系統,Part 4介紹軟體架構的部分,Part 5則介紹如何在Curacao安裝系統與量測結果。

Pi Book Air
讓pi變成帶著走的可攜式裝置,13歲的作品。

Book Review
書籍評論,Adventures in Raspberry Pi與Scratch Programming in Easy Steps。

Competition
抽獎。

Physical Computing, Part 1
之前已介紹如何以Python控制GPIO,現在要試著使用PIR感測器偵測動作。

This Month's Events Guide
公布有關Raspberry Pi的最新消息、活動、聚會。

Linux Commands, Part 1
ifconfig、ping與traceroute。

Stronghold of the Dwarven Lords
用Python撰寫遊戲,重新實作Tim Hartnell的BASIC遊戲。


The MagPi Issue 22(2014.04)

Astronomical Tracking
反射式太陽追蹤系統,含有DS1307即時時鐘、ADS1115類比轉數位、L293D馬達驅動晶片。

Night Light
加上PIR感測人體移動,以PiGlow發光嚇退夜行怪獸。

Laika, Part 1
介紹Laika Explorer以及數位輸出。

Munts I/O Expansion Board, Part 3
以LPC1114(ARM Cortex-M10)控制LEGO的Power Function馬達,以搖桿控制Remotely Piloted Vehicle。

Home Automation
以Raspbserry Pi透過網路控制家裡車庫大門,使用WebIOPi。

Database Bootcamp, Part 2
MySQL資料庫,插入與檢視資料。

This Month's Events Guide
公布有關Raspberry Pi的最新消息、活動、聚會。

Wyliodrin
從瀏覽器,使用視覺化程式語言控制Raspberry Pi。

I/O Expansion with Python and Scratch
為RpiScratchIO增加客製裝置。

Competition
抽獎。 

Book Review
書籍評論,Raspberry Pi User Guide第二版與 Learning Python with Raspberry Pi。


The MagPi Issue 23(2014.05)

Studying Atmospheric Pollution With a Multi-Sensor Array
以上下兩期介紹這套大氣污染偵測系統,本期是硬體部分,包含加速度感測器、陀螺儀、電子羅盤、壓力感測器、濕度感測器、溫度感測器、即時時鐘等等,下一期會是軟體的部份。
 
GrovePi: Adding Grove Sensor Modules
透過GrovePi連接各種Grove感測器模組。  

BrickPi, Part 3
透過BrickPi可連接LEGO MINDSTORMS元件,使用RpiScratchIO作為與Scratch溝通的介面。

Big Birthday Competition
慶祝兩週年,回答問題拿獎品。

Minecraft Pi Edition, Part 2
Minecraft與PiFace Digital。

Physical Computing, Part 2
之前試著使用PIR感測器偵測動作,現在要介紹1-Wire介面的溫度感測器DS18B20。 

C++ Cache, Part 5
類別。

Chat Room
把Pi變成XMPP聊天伺服器。

Linux Commands, Part 2
bash、which、IO轉向、管道、行程控管、history、自動補齊指令。

This Month's Events Guide
公布有關Raspberry Pi的最新消息、活動、聚會。

SonicPi: Get Your Groove On!, Part 2
SonicPi 2.0,學習新的音效、合成效果、以及即時編程吧,用程式控制音樂。


The MagPi Issue 24(2014.06)

Building an oscilloscope with a Raspberry Pi
打造示波器,相當進階,介紹如何撰寫核心模組、探討如何達到高取樣頻率。

Studying Atmospheric Pollution With a Multi-Sensor Array, Part 2
以上下兩期介紹這套大氣污染偵測系統,上期是硬體部分,包含加速度感測器、陀螺儀、電子羅盤、壓力感測器、濕度感測器、溫度感測器、即時時鐘等等,這一期是軟體的部份,。

Project Curacao: Remote Sensor Monitoring in the Caribbean, Part 5
Curacao是加勒比海裡的一個沙漠小島,如何設立一個環境感測裝置呢,必須能在無人看管的情況下,自給自足獨立運作6個月,當然啦,必須使用太陽能發電(Part 1)以及環境感測器(Part 2),相機子系統(Part 3),Part 4介紹軟體部分,Part 5則介紹如何在Curacao安裝系統與量測結果。

DIY chemistry lab: Building a spectrophotometer
中階內容,製作分光儀,量測飲料的顏色,使用Wolfram語言。  

PiCademy: An interview with Carrie Anne Philbin
訪談Raspberry Pi基金會教育團隊的Carrie Anne Philbin,主題是PiCademy,兩天的Raspberry Pi教育推廣課程,對象是老師。

Pythpn and Turtle Graphics
1980年代有LOGO語言,可以控制烏龜走出複雜的圖形,這篇文章則改用Python。

School Report: Discussion of Making Sessions
教學現場報導,在Raspberry Pi上教授各種電腦科學相關課程,包括寫程式、Minecraft、打造應用軟體、電子零件。

Packet Sniffing, Part 2
想要竊聽網路封包嗎,這一期先介紹Wi-Fi的基本知識。

C++ Cache, Part 6
物件之間的溝通。

This Month's Events Guide
公布有關Raspberry Pi的最新消息、活動、聚會。


The MagPi Issue 25(2014.07)

AutoPilot
介紹Navio這塊擴充板,量測各種數值,包括9個自由度的慣性數值、GPS定位、氣壓與海拔高度、等等。

PiBot, Part 1
PiBot這台機器人,這一期介紹機器人基本知識。 

Fish Dish
簡單好玩的魚狀擴充板,寫寫Scratch程式來點亮它的LED吧。

MouseAir
把老鼠投射出去,娛樂你家的愛貓吧。

BitScope
讓rpi變成示波器的擴充板,測量各種訊號。

This Month's Events Guide
公布有關Raspberry Pi的最新消息、活動、聚會。

Timelapse
使用相機模組,製作縮時攝影。 

Packet Sniffing, Part 2
想要竊聽網路封包嗎,上一期介紹Wi-Fi的基本知識,這一期介紹網路與如何分析。

Freshly Roasted, Part 3
一邊吃樹莓派、一邊喝杯爪哇咖啡吧。這一期的主題是類別。

Pocket Enigma Cipher Machine
想要玩玩第二次世界大戰中德國曾使用的加密機器嗎。

FUZE BASIC, Part 1
很久很久以前,許多人的第一支程式語言是BASIC。


The MagPi Issue 26(2014.08)

Magic Wand: Persistence of vision: build a magic wand with an accelerometer
利用視覺暫留原理,以加速度感測器製作魔棒。

Pi Canvas Digital Art Display: Display dynamic art using a Raspberry Pi
以Pi加上HDMI螢幕展示動態藝術作品,。

SmartDrive Robot: Coding a remote-controlled robot with the SmartDrive add-on board
使用SmartDrive擴充板製作電動車,遠端遙控。

MashBerry: Homebrewing with the Raspberry Pi
在家裡釀酒。

PiBot, Part 2
介紹PiBot這台機器人,上一期內容是機器人基本知識,這一期加入語音、聆聽以及影像等功能。 

Raspberry Pi Model B+
詳細介紹最新的Model B+。

BitScope, Part 2
讓rpi變成示波器的擴充板,測量各種訊號。

Voice Over IP Server: Using Asterisk to implement a low cost telephone system建構低價的電話系統。

This Month's Events Guide
公布有關Raspberry Pi的最新消息、活動、聚會。

FUZE BASIC, Part 2
很久很久以前,許多人的第一支程式語言是BASIC。這期介紹變數、程序與精靈。


Raspberry Pi FAQs常見問答集

之前也曾翻譯Raspberry Pi官方網站的FAQs,現在更新並重新翻譯一遍。(最後更新日期:2014年02月05日)

原FAQs網頁有排版以及方便閱覽的文內超連結,這裡都沒有,尚請見諒。

---------------------------------------

A. 入門介紹

1. Raspberry Pi是啥東東?
Raspberry Pi是台尺寸只有信用卡大小的電腦,可連接顯示器或電視機、以及鍵盤,就像一台小型的個人電腦,可用於電子專案,而且任何桌機可做的事情,譬如試算表、文字編輯、遊戲、等等,它也都能夠處理,還能播放高畫質的視訊影片。我們希望看到全世界的孩童都能運用它來學習程式設計。

2. 我可以買Raspberry Pi基金會的股份嗎?
Raspberry Pi基金會是個慈善組織,所以你不能購買公司股票。如果有意支持,我們希望您可以買一塊Raspberry Pi板子。


B. 購買與運送

1. 去哪買?
請到Premier Farnell/Element 14RS Components的網站購買,他們能出貨到全世界各地。若是中國大陸、台灣、香港、澳門地區,您可以直接向Egoman Technology Corp購買。

2. 多少錢?
Model A定價美金$25,Model B定價美金$35,但可能須加上地方稅金與運費。

3. 產品內容為何?
就是一塊Raspberry Pi板子。不包含電源供應器或SD記憶卡,但線上商店(Farnell與RS)也會銷售這些東西,你還能購買已經裝好軟體的SD卡。我們建議您向授權經銷商購買,而不是到eBay,因為軟體將會持續更新。

4. 為什麼以美金標價?你是家英國公司啊!
我們購買的元件皆以美金計價,與工廠量產時也是以美金議價,因為目前匯率市場變動太大太不穩定了,所以我們也以美金定價,以免需要常常修改價格。

5. 有我買一塊你捐贈一塊的方案嗎?
還沒,我們將來或許會有類似的計畫。但,若你想要的話,也可以再多買一塊,然後捐贈給某人或某組織啊。

6. 全世界各地都可以買嗎?
是。

7. 我想要成為Raspberry Pi的銷售商。
我們跟RS與Farnell簽訂了獨家銷售協定,其他商家銷售商都是向他們一次購買一大批板子,將運費均攤幾乎將近於零,然後再自刑犯賣。你並不需要特別的授權就能轉賣,他們也很樂意賣給零售商,不幸的是,因為定價模式(以及我們是個慈善組織)的運作,你必須一次購買很大的量,才能夠得到折扣,大部分的商家其實光賣板子並不賺錢,而是藉以販賣其他利潤較高的周邊設備。


C. 一般

1. Raspberry Pi的帳號名稱與密碼?
大部分作業系統發行套件的預設帳號是「pi」,而預設密碼是「raspberry」,若無法登入,請到下載頁面查看您的發行套件的相關資訊。

2. 輸入密碼時為何什麼事情都沒發生,Raspberry Pi當掉了嗎?
為了保護你的私密資料,在輸入密碼時,Linux的bash提示字元或終端機介面並不會顯示任何東西,只要你能看到之前輸入的帳號名,那就代表鍵盤是正常可運作的。

3. Model A與Model B的差異。
Model A有256 MB的RAM、1個USB埠、沒有以太網路(網路連線)。Model B有512 MB的RAM、2個USB埠、1個以太網路RJ45埠。

4. 如何連接滑鼠與鍵盤?
Model A有1個USB埠,Model B有2個。可用來連接大部分的USB 2.0裝置。更多的USB裝置,諸如滑鼠、鍵盤、網路卡、外部儲存設備,通通透過USB集線器連接。

5. 啟動開關在哪?
沒有On/Off開關!

要開機的話:插入電源插頭就對了!

要關機的話:若處於圖形介面,可先退出到bash文字介面或開啟終端機,然後輸入「sudo halt -h」便可讓Raspberry Pi關機,請稍等,等到LED燈通通熄滅(除了PWR電源LED之外),然後再多等幾秒,確保SD記憶卡已完成耗損均攤的任務與寫入動作,最後就可以安全地拔除電源。若無法正常關機,可能會造成SD卡內的資料毀損,到時便需要重新燒錄映像檔。
拔掉電源插頭。

6. NOOBS是何方神聖?
NOOBS是New Out of Box Software的縮寫,這是我們建議的作業系統安裝方式,就算你沒有使用電腦或Linux的經驗,也能輕鬆安裝想要的發行套件。noob是指某領域裡沒經驗的菜鳥,嘿,你應該你應該自信滿滿地戴上菜鳥這個頭銜,畢竟,從來沒在某個時間點當過菜鳥的人,只不過是些從不花心力學習新東西的傢伙!

7. 何時將會釋出下一版的Raspberry Pi?
就目前而言(2013年底),並沒有推出下一版的計畫,或許會在2~3年後現身吧,但這也不是個確定的時程。推出新板子後,一定會使得許多社群的努力付諸流水,這可跟我們的教育目標背道而馳,我們將心力集中放在讓Raspberry Pi的軟體跑得更快、更好,這也是為什麼你應該隨時更新採用最新版的韌體。

若有需要的話,就會進行硬體小改版,諸如Model B Rev 2板子拉出了I2C腳位,並沒有設定工作時程或時間表。

8. Raspberry Pi的尺寸大小是?
長寬高為85.60mm x 56mm x 21mm(大概是3.37″ x 2.21″ x 0.83″),在邊邊有個搭接的地方,用來插SD記憶卡,重量是45g。

9. 提供哪些硬體文件資料?
關於SoC、GPIO針腳、LAN9512的相關資料,都可到我們的技術文件頁面下載。

10. 你使用哪一顆SoC?
SoC是Broadcom公司的BCM2835,含有ARM1176JZFS、浮點運算、時脈700Mhz,含有Videocore 4 GPU,此GPU能夠播放藍光品質的視訊,以40MBits/s解碼H.264,裡頭有個快速的3D繪圖核心,可透過OpenGL ES2.0與OpenVG程式庫存取。

11. 什麼是SoC?
SoC,也就是System on a Chip(系統單晶片),是種方法將電腦系統全部所需的電子電路放在單一顆晶片上頭,而不是由個別晶片負責CPU、GPU、USB控制器、RAM、北橋、南橋、等等功能,所有東西都被壓縮封裝在一個晶片裡。

12. 為什麼選用ARM1176JZFS?
價格與效能。

13. 它是怎麼開機啟動的?
開機時需要的所有必備檔案都放在SD卡的FAT32分割區內。開機時,Raspberry Pi必須有張SD卡,但之後可由USB外接硬碟接手。Raspberry Pi無法在沒有SD卡的情況下開機。

14. 你們會銷售自行裝配的元件組嗎?
不會。在提供組裝好的板子的同時,若又要提供自行裝配元件組,對我們來說,實在太昂貴了,那代表要在生產流程裡加入額外的步驟,而且,不太可能手動焊接元件組,我們有特殊設備(機器人!)在BGA封裝裡進行焊接,以及其他極為細小的元件。


D. 效能與價格考量

1. 效能多強?
GPU可提供Open GL ES 2.0、硬體加速OpenVG、1080p30高效率H.264解碼。

GPU能夠達到1G pixel/s、1.5G texel/s、或是一般運算的24 GFLOPs,含有一堆材質過濾功能,以及DMA架構。

也就是說,繪圖能力大約等同於初代Xbox的效能表現等級。綜觀看來,整體效能大約是300MHz Pentium 2,但具備非常非常高超的圖形能力。

2. 可以超頻嗎?
Raspberry Pi預設時脈是700 MHz,大部分的板子都可以跑到800 MHz沒問題,在最新的Raspbian發行套件(你可以直接燒錄Raspbian映像檔,或是透過NOOBS,在下載頁面都可以找到),第一次開機時會有更改運作頻率的選項,之後你也能執行sudo raspi-config修改,這麼做並不會喪失保固資格。讓我提醒你,這些都算是實驗性質的設定,並非每塊板子都能在高速下穩定運行,若你碰上問題時,請試著降頻,直到穩定為止。

3. 需要散熱片嗎?
不,Raspberry Pi的晶片等同於手機裡使用的晶片,兩者的溫度都不會變得太高,不需要特別的冷卻機制,當然啦,若你就是喜歡散熱片的外觀,那就加裝適當大小的散熱片吧,完全沒問題。

4. 擁有哪些硬體介面?
Raspberry Pi有8個專屬GPIO針腳、UART、I2C匯流排、SPI匯流排以及兩個晶片選擇線路、I2S音訊、3V3、5V、GND(接地)。

若你不需要或不想使用低階介面(UART、I2C、等等),那麼Rev 1可原生支援17個GPIO腳位,Rev 2則有21個。若使用I2C或SPI匯流排,那麼理論上可無限擴充GPIO腳位的數目。

5. 為什麼沒有即時時鐘(real time clock、RTC)?
沒有網路連線的板子,每次開機時將以手動方式更新日期時間。加入RTC的費用,出乎意料貴死了,一旦加入電池、挪出空間、更新相關元件,就會超出我們定下的價格。如果你想玩玩有趣的電子實作專案,可以透過GPIO針腳自行加入RTC。

6. 我可以加入額外的記憶體嗎?Raspberry Pi可以加上超過512 MB的記憶體嗎?
不行。RAM是以POP封裝,置於SoC之上,所以沒辦法拿掉、也不能換一個。而且Raspberry Pi能支援的記憶體大小上限就是512 MB了,因為沒有廠商製造容量更大且相容的裝置。

7. 為什麼Raspberry Pi沒有xxx硬體,沒有yyy連接埠?
我們主要以非營利的慈善組織運作,試著打造最便宜的電腦,提供一定程度的基本功能與水準,也就是說,我們必須痛苦地決定,在該包含哪些硬體與軟體間做出取捨。我們心底很清楚,這樣一來Raspberry Pi就無法滿足所有人的需求,若您一定需要某功能或某硬體,我們建議您可以看看其他類似Raspberry Pi但貴很多的開發板。

8. 可以放入果汁機榨汁嗎?
可以。我們已經做了好幾次的虛擬模擬實驗,測試時沒有一塊Raspberry Pi板子受到傷害。


E. 相機

1. 相機模組?
相機模組是塊小小的印刷電路板(PCB),使用短短的排線連接Raspberry Pi的CSI-2相機埠,此相機模組能夠拍攝靜態照片或錄製動態影像。相機模組連接到Raspberry Pi主晶片的Image System Pipeline (ISP),相機傳進去的資料在那裡被處理,最後轉為圖檔或影片,放在SD卡裡(或其他儲存媒體)。

2. 相機模組使用哪一款相機?
採用Omnivision 5647,可與一般手機的相機相提並論。

3. 支援的解析度?
相機模組可拍攝5百萬像素(5MP,2592x1944像素)的照片,可錄製高達1080p30(1920x1080x30fps)的影片。

4. 支援哪些圖檔格式?
相機模組支援RAW原生攝影(直接從感測器而來的Bayer資料),或是轉成JPEG、PNG、GIF、BMP、未壓縮YUV、未壓縮RGB等格式的相片;可錄製基本baseline、main、high-profile編碼標準的H.264影片。

5. 如何使用相機?
提供三個命令列模式下的指令,進行靜態攝影、動態影像、以及未壓縮的靜態輸出,這些指令提供一般相機會有的基本功能,諸如設定影像尺寸、壓縮品質、曝光模式、ISO、等等,詳情請見技術文件頁面(Technical Documents Page)的資料。

6. 我可以延長排線嗎?
可以,有人試著使用長達4公尺的排線,仍收得到可接受的影像品質,但可能不符合你的需求。

7. 我想要更高畫素的相機?
沒辦法,這是唯一相容於Raspberry Pi的相機模組;目前尚未有計畫在將來釋出更高解析度的感測器。

8. 相機模組的耗電量?
相機模組運作時需要250mA的電流,請確保您的電源供應器可提供足夠的電力給相機模組以及Raspberry Pi,還有別忘了其他與Raspberry Pi相連接的周邊設備。


F. 外殼

1. 有外殼嗎?
目前沒有官方出品的外殼,然而,2014年計畫釋出的教育版,預設將含有外殼。在論壇上有很多自製外殼的文章,也有很多第三方廠商開始販賣外殼,我們建議你到論壇逛逛,閱讀與外殼相關的討論串,

2. 可以塞進肉桂喉糖罐子(Altoids tin)嗎?
不行,因為邊緣不是圓弧狀,以太網路插槽/USB埠/SD記憶卡稍微突出,無法裝入罐子裡。不過,若你對罐子進行大改造,讓以太網路插槽/USB埠/SD記憶卡可以顯露出來,那麼就幾乎能將Raspberry Pi放進Altoids罐子裡,當然啦,到時你最好能敲敲打打Altoids罐的上蓋,讓它能成為Raspberry Pi保護殼的上蓋。


G. 視訊

1. 我可以使用什麼種類的顯示器?
板子上有Composite RCA(AV端子、又稱複合端子,通常是黃色的RCA端子)與HDMI連接埠,所以你可以接上類比電視或數位電視,或是DVI螢幕(HDMI-to-DVI的轉接頭很便宜);不支援VGA,不過可用主動式轉接頭,但非常貴;被動式轉接頭無法用於Raspberry Pi。購買主動式VGA轉接頭時,記得購買有外接電源的產品,沒有外接電源的HDMI-VGA轉接頭,通常無法運作。

2. HDMI埠支援CEC嗎?
是的,Raspberry Pi的HDMI埠支援CEC標準,你的電視機或DVD播放器的製造商可能以別的名稱稱呼CEC,請到維基百科查詢關於CEC的資料,了解CEC標準以及各種不同的名稱。

3. 為什麼不支援VGA?
晶片本身支援的就是HDMI與AV端子,但不支援VGA。VGA技術已經被認為是昨日黃花了,所以,支援VGA並不符合我們目前的計畫。我們已詢問過教育界,在教育環境中,加入VGA功能並不會提高Raspberry Pi的可用性,而缺乏VGA功能也毫無所損。

4. 我可以加裝觸控式螢幕嗎?
我們還沒實驗過,但就技術上來說,沒道理不行啊,在論壇上有很多人在討論,目前遇到的主要難題是價格!觸控式螢幕的價格非常昂貴。

5. 有哪些編解碼器(codec)?
Raspberry Pi可以編碼(錄製)與解碼(播放)H.264(mp4/mkv)。你還可以到Raspberry Pi Store購買另外兩個編解碼器(codec),就可以播放MPEG-2的影片,DVD、錄影機、電視機常使用的視訊格式,另一個則是微軟的VC-1,藍光光碟、Windows媒體盪按、Slingbox、HD-DVD常見到這種格式。


H. 音訊

1. 支援從HDMI傳輸聲音嗎?
是。

2. 標準聲音輸出輸入?
聲音輸出,有個標準的3.5 mm TRS端子(就是一般常見的耳機插頭)輸出到放大器。你可以插入USB麥克風獲得聲音輸入的能力,或是使用I2S介面,得到額外的音訊輸出入編解碼器。


I. 電源

1. 電源需求是?
裝置由Micro USB埠注入5V電源,至於Raspberry Pi運作時到底需要多少的電流(mA),則要看您連接了多少東西。我們的經驗是,從可靠的廠商購買1.2A(1200mA)的電源供應單元,便能提供足夠的電力給Raspberry Pi。

一般來說,Model B需要約700~1000mA的電流,實際狀況要看連接的設備;若沒有連接周邊裝置,Model A則僅需500mA。Raspberry Pi最大可使用的電流是1A(安培),若你連接USB裝置後,致使Raspberry Pi耗用的電流超過1A,那麼你必須將USB裝置連接到有外接電源的USB集線器。

當你開始使用Raspberry Pi的各項硬體介面,電力需求就會逐步升高,GPIO若汲取50mA尚屬於安全範圍之內(注意,50mA是指所有針腳的總和!單一個GPIO針腳的安全範圍上限是16mA),HDMI埠使用50mA,相機模組需要250mA,而鍵盤與滑鼠可能少於100mA、也可能超過1000mA!請檢查預計要連接Raspberry Pi的周邊裝置的電力需求,購買適當的電源供應器。

2. 能以USB集線器提供電源給Raspberry Pi嗎?

這要看USB集線器而定,有些集線器嚴格遵從USB 2.0標準規格,只為每個埠提供500mA,這大概不足以應付Raspberry Pi的電力,其他某些集線器將規格視為基本方針,盡可能地為每個埠提供足夠的電流。另外請注意,有些集線器會「回溯(backfeed)」電源,意思是說,透過USB線供給電力給Raspberry Pi,而不需要另一條Micro USB連接線,繞過板子上的電壓保護措施。若您使用會「回溯」的集線器,而集線器發生電力暴衝的現象,那麼有可能毀損Raspberry Pi,RPi Hub維基百科有一份測試過的集線器列表,有一欄詳細列出是否能直接由該集線器「回溯」電源給Raspberry Pi。

3. 除了從壁上電源插座,可以從電池供給電力給Raspberry Pi嗎?
直接從電池供給電力,需要特別小心,有可能毀損或破壞你寶貝的Raspberry Pi,除非你知道自己在做些什麼,否則我們不建議你這麼做。

譬如說,4顆AA可充電電池,充飽電後可提供4.8V,技術上4.8V剛剛好位於Raspberry Pi能接受的電壓範圍邊緣,但當電池一離開充飽狀態後,系統馬上就會變得不穩定。

相對地,若使用4顆鹼性電池(不可充電),可得到6V,而6V已超過可允許的電壓範圍,可能會造成損壞,甚至在最糟情況下會永久毀損您的Raspberry Pi。

若使用升降壓電路模組(Buck/Boost),就可以提供穩定的5V,或也可採用別設計的充電電池包,由數顆電池輸出穩定的5V電壓,在市場上,這些產品通常被當做手機的緊急充電包。在RPi Hub維基百科可找到認證過、可使用的電池包產品列表

4. PoE(power over ethernet、透過以太網路線供給電源)?
光憑Raspberry Pi本身,並無此功能。但有些轉接卡,在連接Pi之前,可從以太網路線分出電壓, 但這些產品相當昂貴。


J. 軟體

1. 可使用哪些作業系統(OS)?
在我們的下載頁面列出好幾套的官方發行套件(distribution,distro),初學者應該會覺得NOOBS的安裝程式非常好用,幫助你逐一走過下載與安裝某一發行套件的步驟。官方推薦的發行套件是Raspbian,特別為Raspberry Pi所設計,也是工程師們不斷地進行最佳化的對象,但若想要將SD卡的根檔案系統分割區換成別的ARM Linux發行套件,其過程也很直覺,所以我們鼓勵大家多試試幾套發行套件,看看你最喜愛的是哪套。作業系統存放在SD記憶卡中。

2. 有官方的程式設計語言嗎?
Raspberry Pi基金會推薦Python作為學習用語言。

任何可編譯為ARMv6架構的程式語言,都可以使用在Raspberry Pi上,所以你並不是只有Python這個選項,C、C++、Java、Scratch、Ruby、Wolfram語言,預設都有安裝。

3. 可以跑WINE(或Windows、或其他x86軟體)嗎?
有些人使用WINE(Wine Is Not an Emulator)為Raspberry Pi開啟一個x86 CPU模擬器,並執行Windows 3.1,就為了使用某些特定的應用軟體,但不管使用哪一版的Windows,就算是Windows 98,也需要花上幾小時才能開機成功,而且,每當你移動滑鼠游標時,又會花上幾小時才能更新畫面,嘿,我們可不建議你這麼搞!

4. 可以執行Windows 8 ARM版嗎?
不行,即使Microsoft決定投注所有人力資源將Windows 8移植到Pi上頭,也不可行,Raspberry Pi的記憶體與CPU都不足以應付最低要求,它的ARM處理器版本並不被Windows 8支援,它也沒有適當的座標軸感測器,等等等等,簡言之,Pi沒辦法跑Win8。

5. Pi支援哪些Linux發行套件?
官方支援的發行套件完整列表,位於Downloads下載頁面

6. 可以執行Android嗎?
在論壇裡可找到某個可在Raspberry Pi上運行的Android版本,但就目前而言,不夠穩定。並無任何計畫繼續花心力在這上面,因為現有軟體就可滿足我們需要的功能,對於教育目的來說,Android並沒有提供更好更多的東西,我們將它視為供人使用的平台,而不是創作平台。

7. 它可以跑xxx程式軟體嗎?
一般來說,你需要看看該軟體是否編譯成ARMv6架構,大部分的情況其答案是YES。特定軟體會在我們的論壇裡討論,你可以去哪找找看。不管如何,你都可以抓一塊Raspberry Pi板子,直接測試得知答案,這就是最終極的方式了。


K. SD記憶卡與儲存空間

1. 需要多大的SD卡?
不管您想要使用NOOBS還是單獨的發行套件映像檔,我們建議SD卡最少應有4GB,之後,大概會剩下少少的2GB可用空間,讓你安裝其他的套件或是自己撰寫程式。

2. 支援多大的SD卡?
我們試過最大為32GB的記憶卡,大部分的卡都能運作正常。在Wiki上有更多的資訊,哪些規格能得到最佳效能表現。你也能插上USB隨身碟或USB硬體當做儲存空間。

3. 搞壞了怎麼辦?
重新燒錄SD記憶卡,即可還原。


L. 網路、USB、無線

1. 板子支援網路連線嗎?
Model B支援10/100 Ethernet有線連接,Model A沒有Ethernet。

2 內建Wi-Fi?
Model A與Model B都沒有,但都支援USB無線網卡。

3. 將來會不會內建Wi-Fi?
不太可能,這顆SoC並不支援Wi-Fi,而若再加入Wi-Fi晶片,將會大大提高Pi的價格。

4. 為什麼沒有Gigabit Ethernet?
板子透過USB 2.0驅動以太網路,所以上流頻寬無法支援Gigabit。

5. 板子支援任何形式的網路開機或pxe嗎?
不。但話說回來,它耗用的電源如此之低,我們預期大家都會一直開著!

6. 如何連接多於2台USB裝置?
加裝USB集線器,擴充USB埠。有些鍵盤內建集線器,應該可以用。建議你使用外接電源的USB集線器。


M. 教育用途

1. 有哪些教材可用?
我們正在跟夥伴以及開放原始碼社群,通力合作,開發軟體教材。Computing at Schoo正在撰寫使用者指引手冊與程式設計指南,也已經有好幾本關於Raspberry Pi的書籍,也有其他人早已開始製造品質極佳的入門手冊,包括影片。我們也跟許多人合作,將這項產品作為其他領域主題的教學平台,包括語言、數學、等等。

我們希望社群朋友能夠幫助像是Computing at School的組織團體,一起編撰教學材料,諸如課程方針與學習資源,並進行校園推廣。在我們的論壇上,關於教育用途與資源的討論文章非常豐富,還請來看看並參與討論。


N. 其他問題

我還有其他問題!
請到論壇中的初學者子論壇閱讀置頂的討論串,查看位於http://elinux.org/RaspberryPiBoard的維基百科頁面,獲取更多資訊,若還找不到答案,請在論壇中提問,在那裡有很多熱心人士、使用者、粉絲、高手,都很樂意提供幫助。


O. 詞彙

BGA:ball grid array,電子裝置的一種表面黏著封裝技術(surface mount packaging)。

SoC:system on chip(系統單晶片),在單一顆晶片上有著整台電腦 。

GPIO:General purpose input/output(一般用途輸入輸出)。可以程式化改變針腳的用途。

GPU:graphics processing unit(圖形運算單元)。負責圖形繪圖的硬體。

Distro:發行套件,一套特別組裝後的Linux(具有不同"風味"),以及各種相關連的軟體。

Brick:搞壞,不小心做了某某事,修改了軟體或韌體,裝置就不能動了。

Pxe:preboot execution environment,一種透過網路啟動裝置的技術。

PoE:power over internet,透過以太網路纜線,供給板子電源。

簡介Adafruit的Gemma與Trinket

之前曾簡單介紹過Adafruit的穿戴式電子開發平台Flora,這一篇則來看看更小更迷你的Gemma與Trinket,因為兩者都使用同樣的微控制器ATtiny85,所以放在同一篇,並且列出差異處。

ATtiny85基本資料如下:

  • 腳位:8個,扣掉Vcc、Gnd、Reset,還有5個,不僅有類比輸入,也有PWM輸出。
  • Flash:8KB,其中2.75 KB被bootloader佔據。
  • EEPROM:512 bytes。
  • SRAM:512 bytes。
Gemma的正反面,直徑約28mm、厚度約7mm,重量1.85g。採用3.3V邏輯準位,時脈為8MHz。
Trinket的正反面,長寬高約31 x 15.5 x 5mm,重量3.29g。邏輯準位有兩個版本5V與3.3V(標示為3V),除此之外皆相同。時脈為8MHz,5V Trinket可跑16MHz。

下圖是5V的Trinket。
3.3V的Trinket。
Gemma與Trinket都使用Mini-USB連接埠,連接電腦端從USB埠供電,電源指示LED(綠色)就會亮起;Adafruit為ATtiny85開發了bootloader,當按下板子的重置鍵後會進入bootloader模式持續10秒(注意,無自動重置功能),此時板子上內建的LED(紅色)呈現呼吸狀態,此時就如同一台ISP燒錄器(等於是一台USBtinyISP ),我們便可使用Arduino IDE或avrdude進行燒錄。

不過ATtiny85這顆AVR微控制器其實並沒有專供存放bootloader的區域,所以有可能因意外或突然拔除電源造成bootloader毀損,但可修復

除了從USB埠供電,也能從外接電源供電,Gemma有JST端子,Trinket沒有JST,須自行接線到BAT+腳位。外接電壓最高可達16V,而3.3V準位的板子(Gemma與3V Trinket)最低輸入電壓建議值為3.5V,5V準位的板子(5V Trinket)則是5.5V;不需要超過6V,只會變成熱能形成浪費。板子的穩壓器能輸出150mA,可應付一般需求,但若要連接一大堆LED或其他零件,建議直接連往外接電源。

可使用三顆AA或AAA一般電池,1.5 x 3 = 4.5V。可使用四顆AA或AAA充電電池,1.2 x 4 = 4.8V。可使用兩顆2032,3V x 2 = 6V。可使用鋰離子/鋰聚合物電池,約3.6V/4.1V或3.7V/4.2V,但3.6V或3.7V無法供應5V Trinket。

板子會自動在USB埠或外接電源之間切換電力來源。不過Gemma與Trinket沒有外接電源的開關,而Flora有。

ATtiny85的8個腳位,扣掉Vcc、Gnd、Reset後,還有5個。都能作為數位輸入、數位輸出之用,可輸出電流大小約20mA;某些腳位有PWM,某些腳位可作為類比輸入,也支援SPI與I2C介面,其中腳位1連接到內建的LED(紅色)。詳請請參閱官方文件。

5個腳位當中有2個腳位與USB線路共享,Gemma並沒有接出來,Trinket有,使用時須小心,燒錄時最好能拔除這2個腳位連接的電路,避免干擾燒錄。

這些產品仍可稱為相容於Arduino,但因為Arduino官方並無使用ATtiny85的產品,所以需要對Arduino軟體開發環境做點小修改,可直接使用Adafruit修改後的版本,目前支援Windows與Mac,但已經有人成功在Linux下使用。更改的地方並不多,其實就是加入對於ATtiny85以及Gemma與Trinket的支援罷了。

與Arduino官方的1.0.5版比較,更動處後條列如下:
  • 子目錄drivers,加入需要的驅動程式。
  • 子目錄hardware/arduino/bootloaders/caterina,加入Flora的bootloader。
  • 子目錄hardware/arduino/core/arduino/USBCore.cpp,修改加入Adafruit自己的USB廠商編號VID與產品編號PID。
  • 子目錄hardware/arduino/variants,增加針腳定義檔。
  • 檔案hardware/arduino/boards.txt,修改加入板子的各項設定值。
  • 檔案hardware/tools/avr/avr/bin/ld.exe,修正錯誤,讓ATtiny85的草稿碼能大於4K。
  • 檔案hardware/tools/avr/etc/avrdude.conf,修改燒錄工具avrdude對於ATtiny85的設定。
  • 子目錄libraries/Adafruit_NeoPixel,Adafruit的產品NeoPixel的程式庫。
Adafruit不僅提供開發板,也寫了非常多的文件與示範專案,值得一看:Gemma的Trinket的
注意,Gemma與Trinket沒有底下的功能:
  • 沒有序列介面,不能跟電腦端(序列埠監控視窗)溝通訊息。
  • 跟有些USB 3.0埠不相容。
我在初次使用Gemma與Trinket時,發現在Windows上無法進行燒錄,但在Mac上卻可以,後來發現裝上USB集線器可以解決問題,這可能是因為電腦端USB驅動程式不喜歡以bit-bang的方式控制USB主方控制器的緣故。


參考資料:

2014/02/05

Raspberry Pi:Raspbian在圖形介面與命令列裡設定WiFi無線網路組態

Raspberry Pi Model B內建以太網路卡(有線), Model A則無;但都可再插入USB無線網卡,透過WiFi上網。

購買無線網卡前,最好先到RPi USB Wi-Fi Adapters看看,裡頭列出支援與不支援的網路卡,有些已內建驅動程式、插入即可使用,有些還要自行編譯與安裝驅動程式模組,頗為麻煩。在此假設您購買插入即可使用的無線網卡。

首先,下指令
$ ifconfing
便可看到各個網路介面,eth0代表內建的以太網路,wlan0則是USB無線網卡。

下圖中的wlan0已設定完成並透過DHCP動態取得IP位址。

下指令
$ lsusb
則可以看到USB連接的裝置,如下圖,可知我的無線網卡使用Atheros的晶片AR9271。
Raspbian已內建組態工具,並預設基本的設定,所以想無線上網非常簡單。若是從視窗環境,只需開啟桌面上的WiFi Config,便可看到如下畫面。
按下Scan搜尋附近的無線網路。例如下圖,我家裡的無線路由器分享出來的名稱是N10U,點擊兩次。
在PSK欄位輸入密碼,如此即可。
若是想從命令列模式下作設定,也不困難,先安裝設定工具
$ sudo apt-get install wpasupplicant wireless-tools
不過Raspbian應已內建。

然後是/etc/network/interfaces這支檔案,含有最基本通用的網路連線設定,Raspbian預設內容如下:
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

其中
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

正是我們需要的,毋須修改,其意思是由wpa_supplicant提供設定。

然後下指令

$ sudo iwlist wlan0 scan | grep ESSID
搜尋附近的無線網路,列出其名稱,大概如下所示:
                    ESSID:"P874-132-1F"
                    ESSID:"BERTO"
                    ESSID:"N10U"
                    ESSID:"132-3"
                    ESSID:"HINET-8102"

(若下指令$ sudo iwlist wlan0 scan則會吐出太多訊息)

然後修改/etc/wpa_supplicant/wpa_supplicant.conf這支檔案,裡頭應已含有底下的內容:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

加入底下這些設定(請按照您的無線網路修改相關的欄位):
network={
        ssid="_ssid_"
        psk="_password_"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        auth_alg=OPEN
}


其中ssid是無線路由器分享出來的名稱;psk是密碼;proto是協定,RSN(WPA2)或WPA(WPA1);pairwise是加密方式,CCMP或TKIP;auth_alg是認證演算法,OPEN(WPA2或WPA1)或其他。

最後下指令
$ sudo ifdown wlan0
$ sudo ifup wlan0
啟動無線網路介面wlan0,或是乾脆重開機,完成!


參考資料: