2014/01/29

Raspberry Pi:Raspbian忘記密碼了

安裝Raspbian、開機、初始設定之後,應該都會修改預設帳號pi的密碼(原本是raspberry),但如果忘記了,怎麼辦呢?

拔出記憶卡,放到其他台電腦裡,修改第一個分割區裡的cmdline.txt,裡頭只有一行,原本內容大概如下:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

在最後面加上「init=/bin/sh」。

然後放回Raspberry Pi開機,應該很快就會出現「#」提示字元,然後輸入底下的指令:

# su  (變成超級使用者)
# passwd pi  (重新設定帳號pi的密碼)
# sync  (清空緩衝區,確保設定儲存生效)
# exec /sbin/init  (執行一般開機後會執行的程序)

然後會看到平常的開機訊息,看到login:後,登入帳號pi,再去修改/boot/cmdline.txt,拿掉之前加入的「init=/bin/sh」。

然後重開機,完工。


參考資料:

2014/01/27

Raspberry Pi情報彙整(19)

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

距離Raspberry Pi正式銷售(2012.02.29)快滿兩週年囉,Matt Timmons-Brown編輯了一段影片,社群朋友看了想必會記起過去兩年來的點點滴滴。如果還不知道Raspberry Pi是啥東西,或不知道該怎麼向朋友介紹這玩意兒,乾脆給他們看看這段可愛的介紹動畫吧,由SaladHouse Animation製作,由當選2013年歐洲數位女孩Amy Mather配音。
BETT(英國教育訓練與科技展),邁入30週年,而2014年的展出剛剛落幕,Raspberry Pi基金會也參加了。介紹技術、展示相機模組、示範Sonic Pi、各種教材與周邊應用、等等不一而足。當然啦,除了Pi以外,還有很多東西喔。BBC也寫了多篇相關報導,譬如Teenage computer coders on the riseAre teachers ready for the coding revolution?
嘿,看過nVIDIA的遊戲串流技術Game Stream了嗎,聽過Steam Machine嗎,Pi也有類似的實作喔(Limelight-pi),當然啦,還處於開發階段。讓一台重量級機器執行遊戲,而你隨時隨地使用任何器具(螢幕與搖桿)遊玩,真棒啊。
Give us your best (Mathematica) one-liner,光一行程式碼可以作出什麼效果呢,就是因為只有短短140個字元,反而更能呈現Mathematica的威力。
Top Ten Android Apps for use with Raspberry Pi » RasPi.TV,包括掃描區網內的IP、SSH連線、藍牙終端機、FTP傳檔、VNC桌面遙控、XBMC遙控器、等等,非常實用。
RPi Camera Board 360 Gooseneck Mount,相機模組的架子,相當方便,可以隨意調整位置與角度。
TriviaBox - Trivia Game for RaspberryPi,自行製作問題搶答的先後判斷裝置吧,就好像電視上看到的搶答按鈕一樣。
Raspberry Pi 機器人P控制循跡 – 使用BrickPi轉接板,CAVE團隊的專案,使用Dexter Industries公司所生產的BrickPi轉接擴充板接上樂高NXT感測器與馬達。影片在此
Making the Pi-Boy,讓GameBoy起死回生吧,加上Raspberry Pi與SNES搖桿。
Karl Herrick | Lego Car and Raspberry Pi,使用樂高的4X4 Crawler,相當不錯,看看影片吧。
Raspberry Pi Laser Engraver Built with Repurposed DVD Drives,Ian Miller照著網路分享文章的步驟,運用兩台老舊DVD光碟機,加上Pi之後打造出來的雷射雕刻機。
Raspberry Pi Face Recognition Treasure Box,為你的寶箱加上臉部辨識功能吧,用你的臉開啟箱子!。
不過癮的話,到這裡看看其他可行的專案應用吧,12 Cool Projects For Your Raspberry Pi

2014/01/20

Raspberry Pi情報彙整(18)

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

Raspberry Pi基金會在耶誕節前啟動了一個計畫,任何居住在英國、年齡小於18歲的人,都有機會得到一塊板子,條件之一是繪製一幅跟pi相關的專案海報,哇,原本預定將送出2000塊板子,沒想到送去的作品太多太多了,所以準備送出5000塊。這些作品也都貼在基金會新辦公環境的會議室裡。
MNRG Raspberry Pi powered T-Shirt Cannon,含有Raspberry Pi的大砲,這太強了吧,穿著溜冰鞋與其他人廝殺吧。
Wearable computer project build details, part 1,將一台電腦放在眼鏡裡戴在頭上吧,此專案仍在繼續建構中。
How to make a Raspberry Pi LED Spectrum Analyzer,Adafruit的應用專案,接收不同頻率波段聲音的大小,即時以RGB LED顯示出來,以Python撰寫程式,即時處理分析mp3格式音檔;含有詳細的建構步驟。
DIY WiFi Raspberry Pi Touchscreen Camera,Raspberry Pi+相機模組+觸控式螢幕+WiFi+行動電源,等於什麼呢,就是一台數位相機啦,真讚,還能自動將照片上傳到雲端喔,看看影片介紹吧。
picamera,Dave Jones的Raspberry Pi相機模組Python介面程式庫,真是太棒了,Dave還開發了網頁介面,輕輕鬆鬆修改相機模組的參數,執行拍照攝影動作。可到Manchester Raspberry Jam 16/11/2013 - 16 Dave Jones Picroscopy看看Dave在Raspberry Jam裡的介紹(錄影)。
看到兩款Pi的UPS不斷電系統,左:CW2. Pi UPS。右:UPiS Advanced
Raspberry Pi Battery Board V2 & V3,自行打造的擴充板,可裝上充電電池,有電源開關、充電電路與散熱片,Model A與Model B都適用。
Raspi sat nav,讓pi提供衛星導航服務吧。
Arduberry: Unite Raspberry Pi and Arduino,一塊相容於Arduino的rpi擴充板,可再插上Arduino的擴充板,正在群眾募資中。
Manchester Raspberry Jam #16 Videos,英國曼徹斯特的rpi聚會錄影,真棒啊,看看國外的玩家都在幹些什麼吧,有可隨時熱抽換的電源板、rpi與機器人、虛擬畫筆、MATLAB/Simulink、高空攝影、等等,相當多的主題。

另外還有軟體方面的運用,Raspberry Pi Ad blocking proxy installation using Privoxy讓rpi為你擋掉廣告吧,Raspberry Pi CherryMusic - Music Streaming - Spotify look-a-like讓rpi成為音樂串流伺服器。

2014/01/15

[廣告] CAVE課程:Raspberry Pi 嵌入式開發板研習營

CAVE教育團隊將舉辦Raspberry Pi 嵌入式開發板研習營,由我擔任講師,在此打打廣告。

將會有兩次,日期分別是2014年1月24日(五)與2014年1月25日(六),時間是09:30~17:00。

詳細情形與報名方法請到這裡(1/24)這裡(1/25)查詢。

課程內容將會從零開始介紹Raspberry Pi這塊板子與其背後的基金會,安裝作業系統Raspbian,初始組態設定,簡介Linux常用指令、套件安裝、網路連接、等等,練習使用GPIO針腳控制LED與開關,透過Python程式庫控制,並使用XBMC讓Raspberry Pi化身成為媒體中心。

底下是以前上課的照片,已經舉辦過好幾次了,採小班制教學,每個學員都能照顧到。到這裡可觀看更多的課程花絮照片照片照片
Cave不僅有Raspberry Pi的研習營,還開設了各種主題的課程,譬如Arduino、樂高機器人Lego Mindstorms EV3、BrickPi、Scratch、Processing、App Inventor。有興趣者可到Cave官方網站查詢詳情。

Adafruit穿戴式電子開發平台FLORA

Flora是Adafruit Industries的Arduino相容產品,主打領域是穿戴式電子,採用AVR微控制器晶片ATmega32U4,與Arduino Leonardo開發版相同;外型為圓形,直徑約4.2公分,小巧玲瓏。

Adafruit公司不僅提供Flora主開發板,也設計生產許多擴充模組,包括GPS、RGB LED、加速度感測器、等等,文件資料相當豐富,包括各種應用範例專案與影片介紹,相當不錯。

Flora板子上有四個LED,一個Reset重置鍵與電池開關:
PWR(綠),電源指示燈。
D7(紅),內建的LED。
TX(橙),序列埠的傳送。
RX(橙),序列埠的接收。
這是板子的背面。
板子上的USB埠為Mini B形式,需使用如下的Mini B插頭。

除了開發時從USB汲取電力,板子主要使用JST插座(2 pins)連接電池,可輸入3V到9V直流電,不過文件建議使用3.5V~5V以上,穩壓器會轉成Flora需要的電壓,譬如使用3顆AA或AAA鹼性電池(或鎳氫NiMH充電電池),或是鋰電池。板子上還有個控制電池的開關。
底下是腳位圖,接出來的腳位並不多,但對於小專案來說或許已經足夠了。
至於軟體方面,Adafruit修改Arduino官方提供的軟體開發環境後,放在網路上供大家下載,其實並沒有修改原有的東西,只是加入Flora相關的東西與設定組態而已。其驅動程式的安裝方式,跟Leonardo沒什麼兩樣,因為使用相同的微控制器,詳情請看文件。

說穿了Flora就是一塊迷你Arduino開發板,但卻非常合適用來建構穿戴式電子裝置,譬如Adafruit官方提供的範例,包括閃爍發亮的胸章、GPS追蹤夾克、軟綿綿遊戲手把、顯示音量的領帶、等等,趕快試著玩玩看吧。
除了Flora外,Adafruit後來還推出了體積更小的GEMMA,也可列入考量選項之一。

2014/01/14

Raspberry Pi與即時時鐘RTC

一般電腦主機板上都會有即時時鐘,通常會再加上一顆扁圓狀的鋰電池,如此一來,即便電腦關機、拔掉電源插頭,即時時鐘仍會繼續運作,維持正確的日期時間。但為了成本考量,Raspberry Pi板子並無內建即時時鐘(RTC,real-time clock),解決辦法有兩種,第一種是若擁有網路連線,開機時便執行相關的服務程式,向網路上的NTP(Network Time Protocol)時間伺服器詢問日期時間,也就是說,每次開機後便上網校準日期時間,另一種則不需要網路連線,自行加入即時時鐘IC與鋰電池,這也是本篇將要介紹的內容。

零件列表:
  • DS1307,即時時鐘IC。
  • 陶瓷電容0.1μF(104)。
  • 石英晶體32.768 KHz,12.5 pF。
  • CR1220,3V鋰電池。
  • 鋰電池座。
即時時鐘DS1307,有八個腳位,傳輸介面為I2C,可記錄年、月、日、時、分、秒,當第一次使用時,其記錄的日期時間會是00(2000)年、01月、01日、00時、00分、00秒,有效日期時間可達到2100年,可在-40°C至85°C的環境溫度下正常運作,非常適合一般需求的電子專案。另外,若需要更精確的即時時鐘,可改用DS3231,但也較貴。
石英晶體32.768 KHz,12.5 pF,這是DS1307規格書註明需要的震盪晶體規格。

鋰電池CR1220,電壓為3V,在室溫下應可供應電源給DS1307達10年之久。若要製作出成品,則需要鋰電池座,若只是想先在麵包板上玩玩即時時鐘,只需一般膠帶用來固定連接線與鋰電池的正負極即可。

陶瓷電容0.1uF(104),讓電路更穩定。

電路圖如下:
線路連接後的樣子:
DS1307的Vcc為電源輸入,所需電壓為5V,所以接到Raspberry Pi的GPIO針腳的5V。GND為接地,接到GPIO針腳的GND。X1與X2需接石英震盪晶體,不分極性。Vbat接鋰電池的正極,鋰電池的負極需跟GND接在一起,共同接地。SQW/OUT為方波輸出腳位,此處不使用。SCL與SDA為I2C傳輸介面的腳位,直接接到GPIO針腳的SCL與SDA即可。

硬體部分完成後,接下來便是軟體的部份。在此以Raspberry Pi基金會官方推薦使用的Linux發行套件Raspbian為例。

首先是作業系統核心的部分,Linux核心已經含有支援I2C與DS1307的驅動程式模組,以如下指令便能手動載入模組:

$ sudo modprobe i2c-bcm2708
$ sudo modprobe i2c-dev
$ sudo modprobe rtc-ds1307

然後手動加入裝置(即時時鐘DS1307),需具有系統管理者權限。

$ sudo bash
# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device
$ exit

注意,Raspberry Pi板子的GPIO針腳有兩個版本,其實體針腳3與5為SDA與SCL,但兩個版本卻接在不同的I2C通道上,若您的板子是Rev 1請使用上述指令,若是Rev 2則需使用下列指令。

$ sudo bash
# echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
$ exit

那麼,如何判斷手上的板子是Rev 1還是Rev 2呢?請在命令列裡輸入如下指令:

$ cat /proc/cpuinfo

螢幕上便會輸出類似底下的資訊:

Processor       : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 464.48
Features        : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : BCM2708
Revision        : 0002
Serial          : 000000006fcde2bd

我們可從其中的「Revision」得知板子的版本,這是個16進位數值,若是0x2或0x3,代表這塊本子是Model B Rev 1(記憶體為256MB),若是0xd、0xe、0xf,則是Model B Rev 2(記憶體512MB),若是0x7、0x8、0x9則代表Model A,其GPIO腳位配置與Model B Rev 2相同。(0x4、0x5、0x6則是Rev 2且記憶體為256 MB的Model B,但市面上似乎沒有這種板子。)

因為有些發行套件預設關閉Raspberry Pi板子的某些功能,所以,請修改/etc/modprobe.d/raspi-blacklist.conf這支檔案,若出現底下這兩行:

blacklist spi-bcm2708
blacklist i2c-bcm2708
   
請加上「#」註解掉。

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

完成以上動作後,我們可使用底下指令檢查I2C上是否有裝置:

$ sudo i2cdetect -y 0
(若是Rev 1,參數是0,若是Rev 2,參數是1)

但會出現錯誤訊息「i2cdetect: command not found」,代表您尚未安裝相關軟體套件,請執行底下指令安裝安裝:

$ sudo apt-get install python-smbus i2c-tools

然後再執行一次

$ sudo i2cdetect -y 0
(若是Rev 1,參數是0,若是Rev 2,參數是1)

若出現錯誤訊息Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory,代表您尚未加入裝置(即時時鐘DS1307)。若成功了,則會出現底下的訊息:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00:          -- -- -- -- -- -- -- -- -- -- -- -- --

10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --

70: -- -- -- -- -- -- -- --

其中68代表ds1307的位址,因為I2C可同時連接多個裝置,需以位址區分彼此,本專案只有一個裝置。

注意,若執行後出現UU字樣:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00:          -- -- -- -- -- -- -- -- -- -- -- -- --

10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --

70: -- -- -- -- -- -- -- --


代表i2cdetect 跳過該位址不做偵測,因為該位址已經被某驅動程式佔用了,通常表示該位址上已經有個裝置了。

然後我們可以使用指令hwclock來查詢與設定即時時鐘的日期時間。

以底下指令可查詢目前記錄的日期時間。

$ sudo hwclock -r
Sat 01 Jan 2000 08:03:10 AM CST  -0.296255 seconds

第一次使用時,大概會是2000年左右的日期時間。

以底下指令則可查詢系統目前的日期時間。

$ date
Fri Mar 29 13:44:06 CST 2013

我們可手動設定系統的日期時間,譬如:

$ date --set="2013-03-29 13:39:25"

然後以底下指令將「系統的日期時間」寫入「即時時鐘」:

$ sudo hwclock -w

然後你可再以指令$ sudo hwclock -r查詢即時時鐘的日期時間,應該就會跟系統的一樣了。

之前以手動方式載入模組,若想讓系統在開機時時自動載入模組,請修改/etc/modules,加入底下這幾行內容。

i2c-bcm2708
i2c-dev
rtc-ds1307

若想在開機時開機時自動加入裝置DS1307,請以
$ sudo nano /etc/rc.local
修改/etc/rc.local檔。

在exit 0之前,插入底下內容。

若是Rev 1:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device
sudo hwclock -s

若是Rev 2:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s

其中指令hwclock的參數-s,代表要「sync(同步)」,會從即時時鐘讀取日期時間、設定系統的日期時間。這麼一來,每次開機後就都能擁有正確的日期時間囉。

完成囉。

2014/01/13

Raspberry Pi情報彙整(17)

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

Bioscope - old-timey-fy your movies,將影片放入USB隨身碟並插入,觀看影片,而轉動轉盤就可以往前看或往後看。文字表達不易,請去看看介紹影片吧。
HiFiBerry | HiFi for the Raspberry Pi and more,為rpi擴充高音質192kHz/24bit輸出吧。
Building a living photo frame with a Raspberry Pi and a motion detector,製作電子相框,步驟非常詳細,還有PIR人體移動偵測。
Raspifeed.com - Make more out of your Raspberry Pi,收集彙整rpi部落格文章的網站,可到上面輸入你的部落格網址。
10,000 Computers to be Given to StudentsFounder denies Raspberry Pis are lying unused in schoolsComputer coding taught in Estonian primary schools,rpi的宗旨是將學習電腦科學與程式設計的熱情帶回校園,看看這些新聞報導,可得知基金會正不斷地往此目標前進。
Automated decanter,Logi.cals的概念專案,自動倒酒機,使用了微動開關、重量感測器、液體流動偵測器、步進馬達、等等零件,以及Quick2Wire與PiFace兩塊擴充板,詳細零件列表請看這裡
CES: Rapiro's Raspberry Pi powered humanoid robot flexes its muscles,還記得Rapiro這款可愛的機器人嗎?也在CES參展囉,一台幫你清理電腦鍵盤,一台旁若無人自顧自地跳舞。
Wooden tablet: Michael Castor's PiPad,木製平板,自己動手做一個吧
Raspberry Pi Controlled Sofa,使用rpi控制躺椅沙發,嗯,怎麼放上躺椅的照片呢,以及升上下降的影片。
Raspberry Pi Camera, Camcorder and Time Lapse,具備照相、錄影、縮時攝影的功能,可以拿在手上喔。

低頭族與Phubbing

前天有位在澳洲認識的友人來台北,陪著他四處亂晃,談起「低頭族」這一現象,他說在英文裡似乎並沒有一特定名詞,或許可稱為「smartphone addict」,代表沈溺於智慧手機上癮者。

另外,明明跟朋友在一起,卻只顧著玩手機、滑手機、上網、檢查新訊息的舉止行為,可把「Phone」(電話)和「Snubbing」(冷落)兩者合一,成為新詞彙「Phubbing」,也可代表低頭族、或是低頭族的行為。

去大安森林公園晃晃。
不過,可別跟fabbingfubbing搞混了,兩者可都跟「性」有關係喔,嘿嘿。