2013年12月13日金曜日

Raspberry Pi (その前に Mac で)+ OpenCV + OpenNI + Xtion Pro Live

まず、Mac でいろいろやってみる。
OpenCV は MacPorts で opencv @2.4.7_1+openni+python27 をインストールする。
OpenNI も MacPorts で一応入れたものの・・・openni @1.5.7.10_0
OpenNI-MacOSX-x64-2.2 をダウンロード。
「OpenNI-MacOSX-x64-2.2/Samples/Bin」にあるサンプルは動作している。

次に、Samples のソースをいじる前に、make できることを確認する。
make すると deprecated のエラーがでてしまう。
Makefile を修正してコンパイルオプションに「-Wno-deprecated」を追加する。
例を示す。
<<修正前>>
CFLAGS += -Wall -D_CLOSEST_POINT
<<修正後>>
CFLAGS += -Wall -D_CLOSEST_POINT -Wno-deprecated



ClosestPointViewer を make するには、MWClosestPoint を先に make しておかなければならない。
MWClosetPointApp を make するときも、先に MWClosestPoint を make しておかなければならない。

まず、MWClosestPoint/Bin は削除してから、MWClosestPoint を make する。

次に、ClosestPointViewer/Bin/ にある Intermediate と x64-Release の二つのディレクトリは空にする。
MWClosestPoint/Bin/x64-Release/libMWClosestPoint.dylib を、先ほど空にした ClosestPointViewer/Bin/x64-Release/ にコピーする。
コピーコマンドはこれ。
$ cp MWClosestPoint/Bin/x64-Release/libMWClosestPoint.dylib ClosestPointViewer/Bin/x64-Release/
そして、ClosestPointViewer を make する。

同様に、MWClosestPointApp/Bin/ にある Intermediate と x64-Release の二つのディレクトリは空にする。
MWClosestPoint/Bin/x64-Release/libMWClosestPoint.dylib を、先ほど空にした MWClosestPointApp/Bin/x64-Release/ にコピーする。
コピーコマンドはこれ。
$ cp MWClosestPoint/Bin/x64-Release/libMWClosestPoint.dylib MWClosestPointApp/Bin/x64-Release/
MWClosetPointApp を make する。

make できることが確認できたので、ソースをいろいろいじってみることにする。

2013年12月5日木曜日

Raspberry Pi + ビュートローバー ARM VS-WRC103LV (Mac に LPCXpresso をインストール)

ビュートローバー ARM VS-WRC103LV のソフトを作る話のメモ。
Mac に LPCXpresso をインストールし、C でソフトを作る。
NXP のダウンロードサイトから LPCXpresso をダウンロードしてインストールする。
アクティベーションがちょっと面倒。

2014.04.03 時点では、lpcxpresso_7.1.1_125.pkg がダウンロードされる。
これを開くとインストーラーが動き出す。アプリケーションフォルダに「lpcxpresso_7.1.1_125」という名前のフォルダがつくられるが、どれがアプリの本体なのかわからない。
「Open lpcxpresso」というファイルがあるけれど、どこかのファイルへのエイリアスになっている。調べると・・・「Open lpcxpresso -> lpcxpresso/lpcxpresso.app/Contents/MacOS/lpcxpresso」と、なっている。
lpcxpresso フォルダの中をみると「lpcxpresso」という名前のアプリケーションがある。これだね。これをダブルクリックすると立ち上がる。Dock のオプションで「Dock に追加」をしておくと、今後は Dock から起動できる。

で、この lpcxpresso_7.1.1_125.pkg は、USB 関係で使われる SciInit() で問題が発生する。帰ってこない。ここで止まってしまう。
これでは使い物にならないので、7.1.1 から 7.0.0 に戻した。

2014.05.23 現在、バージョン 7.2.0_153 が公開されていて、これは SciInit() の問題はない。7.1.1 は使えないが、 7.2.0_153 は使える。
ほかにも問題が改善されている。原因不明だが、ビュートローバーのセンサーの値を返すように修正し、その後、リビジョンを返す関数を追加した。しかし、そのリビジョンはなぜかセンサーの値になっていた。この問題は 7.0.0 で発生していたが、7.2.0 では正しくリビジョンを返すようになった。かなりいい加減な C の処理系らしい。

サンプルでついてくる VS-WRC103LV_Sample_LED_20110118_1104.zip を解凍してビルド。
その後、VS-WRC103LV に書き込む。Debug フォルダに作成された「VS-WRC103LV_Sample_LEDなんたらかんたら.bin」をマウントした VS-WRC103LV にコピーするのだが、実行すると動かない。
ファインダからコピーすると不可視ファイルをいくつかつくるので、それが邪魔をしてうまくいかないと思われる。ちなみに Ubuntu Desktop でも試してみるが同様にうまくいかない。Mac でビルドした bin ファイルを Windows でコピーすると動くので、LPCXpresso は正しく動いているようだ。
Mac のターミナルでコピーすると正常に動いたので、そのときの手順をメモしておく。

  1. VS-WRC103LV を Mac に接続する
    VS-WRC103LV のボタンを押したまま Mac に接続し、マウントされたらボタンを話す。このとき、VS-WRC103LV の電源は OFF にしておく。
    マウントした VS-WRC103LV をファインダで開かないで、そっとしておく。

  2. ターミナルから次のコマンドで、古い farmware.bin を削除する
    $ rm /Volumes/CRP\ DISABLD/firmware.bin

  3. 新しい bin ファイルをコピーする
    「New_VS-WRC103LV_Firmware.bin」をコピーしている例。
    $ cp New_VS-WRC103LV_Firmware.bin /Volumes/CRP\ DISABLD/

  4. VS-WRC103LV のマウントを解除し、イジェクトする
    イジェクトする前に df コマンドで、Filesystem 名の確認を行う。
    ここでは「/dev/disk1」になっている。
    $ df -h
    Filesystem Size Used  Avail Capacity iused ifree %iused Mounted on
    /dev/disk1 32Ki 7.0Ki  25Ki    22%      16     0  100%  /Volumes/CRP DISABLD

    df コマンドで調べた Filesystem 名で VS-WRC103LV をイジェクトする。
    $ sudo diskutil eject /dev/disk1

  5. VS-WRC103LV を Mac から取り外す

付属している前進・後退のソフトをちょっと修正して LED を点滅させている例。
#include "lpc13xx.h"
#include "gpio.h"
#include "vs-wrc103.h"
#include "ixbus.h"

int main(void) {
    int ii;
    const unsigned short MainCycle = 60;
    Init(MainCycle);
    LED(3);
    while (getSW() != 1) {
        // ボタンが押されるまで待つ
        Wait(50);
        LED(0);
        Wait(50);
        LED(3);
    }
    LED(0);
    while (getSW() == 1) {
        ; // ボタンが離されるまで待つ
    }

    while (1) {
        // 前進
        Mtr_Run_lv(10000, -10000, 0, 0, 0, 0);
        LED(3);
        Wait(1000);
        // 停止
        Mtr_Run_lv(0, 0, 0, 0, 0, 0);
        LED(0);
        Wait(1000);
        // 後進
        Mtr_Run_lv(-10000, 10000, 0, 0, 0, 0);
        for (ii = 0; ii < 10; ii++) {
            LED(1);
            Wait(50);
            LED(2);
            Wait(50);
        }
        // 停止
        Mtr_Run_lv(0, 0, 0, 0, 0, 0);
        LED(0);
        Wait(1000);
    }
    return 0;
}

=== そのほか
LPCXpresso を起動した状態で、何もしていないのにエラーがでている。
これは気にしなくてもいい?
Description Resource Path Location Type
make: *** [src/main.o] Error 1     C/C++ Problem


Linux では注意!
ソースの中では「lpc13xx.h」となっているが、実際は「LPC13xx.h」と、大文字も使っているファイルがいくつかある。Mac/Win ではファイル名の大文字と小文字を区別しないので問題は起きない。でも Linux では大文字と小文字を区別するので、ファイルが見つからないというエラーが発生する。ファイル名を直すか、ソースを直す処置が必要。


LPCXpresso は Eclipse 
Eclipse のプラグインがそのまま使える。
MercurialEclipse をインストールして使っている。



LPCXpresso の設定変更のメモ:
タブはスペースにしたい。
General -> Editors -> Text Editors の Insert spaces for tabs にチェック。
C/C++ -> Code Style -> Formatter で、新しい profile を作成する。
その中で、Indentation を Spaces only にする。

Code Style の設定は、Source メニューの Format の時に使われる。

2013年11月2日土曜日

Raspberry Pi + I2C LCD module

Raspberry Pi に I2C で秋月電子の LCD ディスプレイをつないでみる。
そのときの記録。

使用した LCD ディスプレイは「I2C接続小型LCDモジュールピッチ変換キット」。
これは、「I2C接続小型LCDモジュール 8x2行」と「I2C接続小型LCDモジュール用ピッチ変換基板」をセットにしたもの。LCDモジュールだけではブレッドボードに取り付けるのが大変なので、ピッチ変換基板も必要となる。

I2C の準備はこちら「Raspberry Pi + I2C」を参照。

Python でソフトを作る。
ソースはこれ。日付と時刻を表示する。

#!/usr/bin/env python
# coding: UTF-8

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

comment out this line in /etc/modprobe.d/raspi-blacklist.conf
blacklist i2c-bcm2708

add the following lines to /etc/modules  
 i2c-dev 
 i2c-bcm2708
and then reboot.

search all addr.
$ sudo i2cdetect -y 1
'''

import smbus
import RPi.GPIO as GPIO
import time
import math
import datetime

class st7032i:
    def __init__(self, addr = 0x3e, ch = 1, contrast = 0x20):
        self.addr = addr
        self.ch = ch
        self.bus = smbus.SMBus(ch)
        self.contrast = contrast
        self.reset()
        
    def reset(self):
        contrast_h = 0x70 | (self.contrast & 0x0f)
        contrast_l = 0x54 | ((self.contrast >> 4) & 0x03)
        self.bus.write_i2c_block_data(self.addr, 0, [0x38, 0x39, 0x14, contrast_h, contrast_l, 0x6c])

        time.sleep(0.25)
        self.bus.write_i2c_block_data(self.addr, 0, [0x0c, 0x01, 0x06])
        time.sleep(0.05)
        
    def clear(self):
        self.bus.write_i2c_block_data(self.addr, 0, [0x01])
        
    def mov_to(self, row = 0, col = 0):
        self.bus.write_i2c_block_data(self.addr, 0, [0x80 + 0x40 * row + col])
        
    def put_str(self, the_str):
        self.bus.write_i2c_block_data(self.addr, 0x40, map(ord, the_str))
        
if __name__ == '__main__':
  try:
    my_lcd = st7032i(0x3e, 1)
    while True:
        time_str = datetime.datetime.now().strftime("%H:%m:%S")
        date_str = datetime.datetime.now().strftime("%y/%m/%d")
        my_lcd.clear()
        my_lcd.mov_to(0, 0)
        my_lcd.put_str(date_str)
        my_lcd.mov_to(1, 0)
        my_lcd.put_str(time_str)
        print date_str + ' ' + time_str
        time.sleep(1)
  except:
    print "Error accessing default I2C bus"


回路は、LCD モジュールに I2C の信号と電源(3.3V)を供給するだけ。

2013年9月10日火曜日

Raspberry Pi + I2C

Raspberry Pi に I2C デバイスを接続する。
その準備。

/etc/modules に次を追加する。順番も大切? ここは「i2c-dev」だけという説もある。
i2c-bcm2708
i2c-dev

/etc/modprobe.d/raspi-blacklist.conf を修正する。2行あるので、i2c-bcm2708 の行をコメントアウトする。
blacklist spi-bcm2708
blacklist i2c-bcm2708
こんな感じ。
blacklist spi-bcm2708
# blacklist i2c-bcm2708

Python ライブラリのインストールもする。その前に「$ sudo apt-get update」もしておく。
$ sudo apt-get install python-smbus
これもインストールする。(上記 python-smbus をインストールするときに、これも一緒に自動的にインストールされるので、このコマンドは実行しなくても良い)
$ sudo apt-get install i2c-tools

ここで reboot。

接続されている I2C デバイスの確認はこれ。(古い Raspberry Pi ならパラメタは「0」)
$ sudo i2cdetect -y 1

あとは $sudo i2cset と $ sudo i2cget

2013年8月16日金曜日

Raspberry Pi RPIO

ここではパラレル入出力で LED ピカピカをやってみます。

Raspberry Pi で、GPIO を使おうとすると結構大変です。
何が大変かというと、ライブラリがいくつかあったり、ポートの番号の表現がいろいろあるからです。
古い Raspberry Pi と、新しいものとで少し違ったり、使うライブラリによって番号の割り振りが異なることがあります。

RPIOは root 権限が必要なので、Python を root で起動します。
$ sudo python

手始めに、インタプリタから直接いろいろやってみます。
最初にライブラリ(python-rpi.gpio)をインポートします。このライブラリははじめから入っているので、インストールする必要はありません。
>>> import RPi.GPIO as GPIO

ここで使っているピンは、GPIO09と GPIO10 です。ピン番号で言うと GPIO09 が 21 番ピン、GPIO10 は 19 番ピンになります。
回路図はこうです。


GPIO09 を出力にセットして、最初は0、次に1を出力してみます。
>>> GPIO.setup(9, GPIO.OUT)
>>> GPIO.output(9, 1)
>>> GPIO.output(9, 0)

今度は入力です。となりの GPIO10 をプルアップ抵抗付きの入力端子にします。
そして、ポートの状態を読み込みます。
>>> GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_UP)
>>> GPIO.input(10)
False
>>> GPIO.input(10)
True

最後は・・・
GPIO.cleanup()

まとめて、Python のプログラムにするとこんな感じ。
GPIO10 が0になるまで GPIO09 を0にしたり1にしたりを繰り返します。
#!/usr/bin/env python
# coding: UTF-8

# import RPIO as GPIO
import RPi.GPIO as GPIO
import time

pin_out = 9
pin_in = 10
sleep_sec = 0.5

GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_out, GPIO.OUT)
GPIO.setup(pin_in, GPIO.IN, pull_up_down=GPIO.PUD_UP)
out_value = False
loop = True
while (loop):
    GPIO.output(pin_out, out_value)
    out_value = not out_value
    loop = GPIO.input(pin_in)
    time.sleep(sleep_sec)
GPIO.cleanup()

class にしたバージョンはこれ。
#!/usr/bin/env python
# coding: UTF-8
# http://pythonhosted.org/RPIO/rpio_py.html#ref-rpio-py-rpigpio

# import RPIO as GPIO
import RPi.GPIO as GPIO
import time

class test_gpio():
    
    def __init__(self):
        self.pin_out = 9
        self.pin_in = 10
        self.sleep_sec = 0.5
        self.loop = True
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(self.pin_out, GPIO.OUT)
        GPIO.setup(self.pin_in, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    def main(self):
        out_value = False
        while (self.loop):
            GPIO.output(self.pin_out, out_value)
            out_value = not out_value
            self.loop = GPIO.input(self.pin_in)
            time.sleep(self.sleep_sec)
        GPIO.cleanup()
    

if __name__ == '__main__':
    test = test_gpio()
    test.main()

こんどは割り込みを使います。
このプログラムでは sleep でお休みしていますが、普通のプログラムではいろいろなことをやっているときにイベントが発生すれば、その処理をひとまず中断して、そのイベントに対応した処理を実行します。
主たる処理は中断を気にしないで処理を続けることができます。
割り込み処理は RPIO をインポートします。
インストールしてない場合は、先にインストールしておいてください。
#!/usr/bin/env python
# coding: UTF-8
# http://pythonhosted.org/RPIO/rpio_py.html#ref-rpio-py-rpigpio

import RPIO as GPIO
# import RPi.GPIO as GPIO
import time

class test_gpio():
    
    def __init__(self):
        self.pin_out = 9
        self.pin_in = 10
        self.sleep_sec = 0.5
        self.loop = True
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(self.pin_out, GPIO.OUT)
        GPIO.setup(self.pin_in, GPIO.IN, pull_up_down=GPIO.PUD_UP)
        GPIO.add_interrupt_callback(self.pin_in,
                                    self.call_back,
                                    edge='falling',     # rising, falling or both
                                    pull_up_down=GPIO.PUD_UP,
                                    threaded_callback=True,
                                    debounce_timeout_ms=100)
        GPIO.wait_for_interrupts(threaded=True)

    def call_back(self, gpio_id, val):
        print("gpio %s: %s" % (gpio_id, val))
        if gpio_id == self.pin_in:
            self.loop = False
        
    def main(self):
        out_value = False
        while (self.loop):
            GPIO.output(self.pin_out, out_value)
            out_value = not out_value
            time.sleep(self.sleep_sec)
        GPIO.cleanup()
    

if __name__ == '__main__':
    test = test_gpio()
    test.main()

2013年7月27日土曜日

Raspberry Pi を Wifi で接続する

Raspberry Pi を wifi 接続する。

いろいろやってみて、これがうまくいったので、その内容をメモ。
技術評論社の「Raspberry Pi [実用]入門」(Japanese Raspberry Pi Users Group 著)に書いてあった方法。
wicd も、標準で入っている wifi config も使用せずにできてしまいました。
詳細は上記「Raspberry Pi [実用]入門」を購入してくださいませ。
ちなみに、このときのアダプタは「Logitec Corp. LAN-W150N/U2 Wireless LAN Adapter」です。

/etc/network/interfaces の内容。
auto lo

iface lo inet loopback
iface eth0 inet static
address 192.168.0.102
netmask 255.255.255.0
gateway 192.168.0.1

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

iface my_wifi inet static
address 192.168.0.103
netmask 255.255.255.0
gateway 192.168.0.1

/etc/wpa_supplicant/wpa_supplicant.conf の内容。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="my_wifi"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP TKIP
        group=CCMP TKIP
        psk="YOUR PASSWORD"
        id_str="my_wifi"
}



==== ここからは以前の設定内容 ====
残念ながら、 wicd もインストールしないとうまく動いてくれなかった。
そのときの記録を残す。
  1. WiFi Configで Scanしてパスワードを登録しておく
  2. wicd をインストールする。$ sudo apt-get install wicd
  3. wicd を GUI で起動
  4. 次の値を設定
    Automaticaly connect to this network
    以下、Properities
    Use Static IPs
    WPA 1/2 (Passphrase)
    Preshared key にパスワード
  5. reboot
固定 IP にする場合は、この下に書いた「/etc/network/interfaces」の修正を行う。

ここで使用した wifi usb アダプタは次の二つ。
Logitec Corp. LAN-W150N/U2 Wireless LAN Adapter
BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]


=== ここから先は、結局、うまくいかなかったときの記録 ===
Raspberry Pi を標準でインストールされているアプリ「WiFi Config」で設定したり、「wicd」をインストールすることなく、Wifi 接続を可能にする。
次の二つのファイルを修正する。
eth0 も wlan0 も固定 IP としている。

ここで使用した wifi usb ドングルは「BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM2 Wireless LAN Adapter [Ralink RT3070]」と「Logitec Corp. LAN-W150N/U2 Wireless LAN Adapter」で試してみた。

この方法では残念ながら eth0 と wlan0 の切り替えは、コマンド sudo ifup eth0 や sudo ifdown wlan0 などで、いちいち up/down させないとだめみたい。
wlan0 も eth0 も有効になっている場合があるので、sudo ifdown eth0 をしないと wlan0 が使えないこともあったり。

やはり wicd をインストールしないとだめか。


/etc/network/interfaces
auto lo
iface lo inet loopback

# allow-hotplug eth0 
# auto eth0
iface eth0 inet static
 address 192.168.0.102
 netmask 255.255.255.0
 gateway 192.168.0.1

allow-hotplug wlan0
auto wlan0
# iface wlan0 inet manual
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet static
 address 192.168.0.103
 netmask 255.255.255.0
 gateway 192.168.0.1
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface default inet dhcp

/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
 ssid="YOUR SSID"
 proto=RSN
 key_mgmt=WPA-PSK
 pairwise=CCMP TKIP
 group=CCMP TKIP
 psk="YOUR PASSWORD"
}

2013年6月4日火曜日

Raspberry Pi を始める (NOOBSで)

wheezy だったのに NOOBS に変わっていたので、こちらで始めてみます。
Quick start guide を参照して、このとおり進めていきます。

NOOBS_v1_9_2 2016-05-27-raspbian-jessie はこちら

作業環境は Mac OS X 10.8 です。(2014.09.18 現在、Mac OS X 10.9.4)
SD カードは、KING MAX の 4GB Class6 を使います。(2014.09.18 現在、東芝 8GB Class10)
このバージョンから、インストール開始時に OS を選べるようになりました。
また、起動時にシフトキーを押したままにしておくとインストール開始時と同じ画面になり、まっさらの状態に戻すことができるようになりました。
その画面で /boot/config.txt の内容を修正することができます。これは便利かも。
(2013/06/28 に、このページを日本語版にあわせて内容を更新しました。)

  1. SD カードの準備
    1. Download the SD Association's Formatting Tool from
      ここからSDメモリのフォーマッタをダウンロードします。
    2. フォーマッタをインストールして実行
    3. SD メモリをパソコンに挿入
    4. 「オプション」 で、
      論理アドレス調整 の「する」を選択する。
    5. 「クイックフォーマット」ではなく、「上書きフォーマット」を選択します。
      たまにフォーマットしていない SD メモリがあるので、最初だけ上書きにして、二度目以降はクイックフォーマットでよいと思います。
      ほかで使っていた SD メモリを再利用するときは上書きフォーマットの方が無難です。
    6. カードの名前が空白のままは気持ちが悪いので、「NOOBS」としました
    7. 最後に「Format」ボタンをクリック
      14:54 から始まって、15:03 で終了と、時間がかかるので、その間に書き込む NOOBS のディスクイメージをダウンロードしておくといいかも。
  2. 書き込み
    1. New Out Of Box Software をダウンロード
      ここから「NOOBS LITE」をダウンロード。(2014/09/18 現在、実際にダウンロードされるのは「NOOBS_lite_v1_3_10.zip」)
    2. 解凍する
      解凍する前に、空のフォルダを作り、その中に先ほどの「NOOBS_v1_2_1.zip」をコピーしておきます。
      「Double tap on the file」
      パソコンよりスマホが主流になってくるとこうなっちゃうんでしょうね。ダブルクリックじゃなくてダブルタップです。
    3. 解凍したファイルを先ほどフォーマットした SD メモリへコピー
      「NOOBS_v1_2_1.zip」を解凍すると、同じ場所にぞろぞろと解凍されたファイルが出来上がります。空のフォルダを作って、その中で解凍することをお勧めします。たくさんファイルがあるところで解凍すると、どれが新しくできたファイルかわからなくなります。
      できたファイルたちを SD メモリへコピーします。
      もちろん「NOOBS_v1_2_1.zip」はコピーしません。
      (最近の NOOBS 1.2.1 は、ちゃんとフォルダをつくってその中に解凍してくれます)
    4. SDカードを取り出して Raspberry Pi に取り付ける
  3. Raspberry Pi にディスプレイケーブルや、マウス、キーボード、それにLANケーブルを接続して、電源投入!
  4. TimeZoneの設定はどこに? ssh の設定は? これは後から行います。(2014.09.18 追記:日本語配列のキーボードをお使いの方は、Keyboard を jp にしましょう。)
  5. 「Raspbian」が選ばれていることを確認して、左上のボタン「Install OS」をクリック。日本語では「イメージの復元」。ここの言語の選択は、この画面で使われるだけです。オンラインヘルプ、なんていうメニューが増えている。
  6. ここで本当のインストールが始まっている? SD カードに書き込んでいます。これも時間がかかります。
  7. で、再起動すると今までと同じ raspi-config が立ち上がります。
  8. raspi-config の画面になります。(このページの下の方を参照してください)ここも操作がかわったので、改めて説明。
    1. Expand Filesystem はやらなくてもよくなりました。
    2. Enable Boot to Desktop で起動時はすぐに startx 状態にします。
    3. Internationalisation で locale は en_us.UTF-8 にしちゃう。日本語にしたい方は、ja_JP.UTF-8 ですね。Timezone は Asia の Tokyo。キーボードは、普通の日本語のキーボードであれば、Generic 105-key (Intl) PC、Other の Japanese、さらに Japanese、後は、default とかなんとかそのまま次へ。
    4. Advanced Options では ssh を enable。それに Overscan を Disable にしました。これをしないと、画面の周りに黒い隙間ができてしまいます。Update は最初にやるべきか?
    5. Finish で自動的に reboot しなくなったので、$ sudo reboot。
    $ df -h で SD カードの使用状況を見ると 4G のカードで 64% が使われています。いろいろやりたいときは、8G くらいにしておいたほうがいいかも。
    $ sudo raspi-config で config の続きをすることができます。
ちゃんと起動しました。

--------
2013.10.05 追記:
「NOOBS Lite (network install only)」v1.3 をダウンロードしてインストールしてみました。
network でダウンロードしながらインストールするので、インストーラ本体は小さくてすぐにダウンロード終了。SD に書き込んでインストールを開始すると、ここで本体をダウンロードするので時間がかかります。でも SD メモリに書き込むのとダウンロードするのと同じくらい時間がかかるので、その時間がかかる処理を同時に行うことになって、全体的には結局早いかも。
インストールするときの OS を選ぶ画面で言語を日本語にしてしまうと、その locale になってしまいます。いつからこうなったか知りませんが、以前はインストーラの言語設定はその場限りで、インストールが終了して初めて出てくる設定画面(raspi-config)でロケールなどをもう一度設定していました。
最初のインストールするときに日本語にしてしまうと再起動したときの設定画面(raspi-config)で文字化けが発生します。ここは日本語にしないで en_gb のままか en_us にしておくのが無難のようです。

--------
2013.12.13 追記:
NOOBS をインストールしている最中の画面の下の方に、ロケールとキーボードの切り替えメニューが小さく表示されています。
キーボードを jp にすると、インストール後の raspi-config の画面が日本語配列のキーボードとして使えるようです。

--------
2014.01.22 追記:
NOOBS 1.3.4 をインストールしてみました。
OS を選ぶ画面の下の方に、ロケールとキーボードを選ぶメニューが表示されています。
ロケールというか、表示は Language ですね。ここをデフォルトの English (UK) にしておいても、en_us になってました。Keyboard はこの設定のままの jp になりました。
インストール後、Raspbian のデスクトップには Mathematica があります。太っ腹です。まだ使ってません。
raspi-config で、Finish で自動的に reboot するときもあります。メニューの選び方の問題?
気がつけば、Mac OS も 10.9.1 になってました。
SD メモリは、最近、東芝の白い 8G とか、黒い 16G とか使ってます。アマゾンで売ってるやつです。
Raspbian だけしか使わないのであれば、NOOBS ではなくRaw Image で Raspbian をインストールすると SD メモリをより広く使えるのですが、OS のインストールし直し、などを考えると NOOBS のほうが便利です。

--------
2014.09.17 追記:NOOBS 1.3.10 の raspi-config
raspi-config の Advanced Options に SPI と I2C などが追加されました。
ここで「使う」にすると、その後どうなるのか不明です。調査します。

ちょっと調べました。
/etc/modprobe.d/raspi-blacklist.conf で、spi あるいは i2c を使おうとすると、それに対応したところをコメントアウトしなければなりません。
raspi-config で使うように設定すると、この部分がコメントアウトになりました。
spi と i2c を使うように設定したときにはこのようになります。

# blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708
#blacklist i2c-bcm2708
blacklist snd-soc-pcm512x
blacklist snd-soc-wm8804

i2c を使うとき、/etc/modules に次の2行を追加しますが、それは raspi-config では追加されていませんでした。しなくてもよい? ここのところは、もうちょっと調査します。

i2c-dev 
i2c-bcm2708

--------
2014.09.18 追記。NOOBS 1.3.10 の SPI/I2C の続き。
ところで現在は、MacOS X 10.9.4 で、Raspberry Pi には  8G Class 10 の黒い TOSHIBA SDHC を使っています。raspi-config の i2c/spi 以外のほかの設定では、timezone を ASIA/TOKYO にするのと、Overscan を Off にしています。locale はデフォのまま en_us です。

/etc/modules は「snd-bcm2835」だけが記入されています。それだけでは「sudo i2cdetect -y 1」コマンドが動作しません。
そこで、/etc/modules に「i2c-dev」と「i2c-bcm2708」の2行を追加して再起動してみます。
「sudo i2cdetect -y 1」コマンドが動作しました。
raspi-config で i2c と spi を使うようにしても /etc/modules に i2c の追加が必要なようです。