2018年01月16日

PQI Air Card II でラズパイのベアメタル開発

 PQI Air Card II を購入。32 GB の microSD カードとセットで、2,400 円。

20180116-1.jpg

 一見 microSD カードのアダプタなのだが、実は無線 LAN の機能を持っている。SD カードの形をした無線 LAN 機器として FlashAir が有名だけど、この品物は、挿入された microSD を外部記憶装置として認識できる。無線 LAN 部分と記憶装置部分が分離されているため、使い道はさらに広い。

 今回は、ベアメタルラズパイの microSD カードに無線でアクセスできるようにする目的で購入した。こんな風に使っています。サンコーのmicroSD-SD エクステンションケーブル を使って、ラズパイの microSD スロットにフルサイズの SD が接続できるようにする。もともとラズパイに入れていた microSD を PQI Air Card II に入れて、それを SD スロットに挿入する。このままラズパイの電源を入れると、普通に立ち上がります。つまり、microSD-SD アダプタとしてもちゃんと機能している。

20180116-4.jpg

 無線 LAN の設定。立ち上げると、"PQI Air Card" という無線 LAN アクセスポイントが見える。そこに接続して(初期設定ではパスワードはない)、192.168.1.1 にウェブブラウザでアクセスすると、次の画面になる。

20180116-2.jpg

 PQI Air Card に PC からアクセスするとき、初期設定通りに PQI Air Card がアクセスポイントとなっていると、アクセスするたびに通常のインターネット接続と PQI Air Card を切り替えないといけないので、相当に煩わしい。そこで、PQI Air Card が自分ちの無線 LAN アクセスポイントにクライアントとして接続するように設定を変更する。Wifi Setup の画面で、Hotspots の項に自分ちの無線 LAN アクセスポイントの設定を書き込んでおく(下図の①)。

20180116-3.jpg

 ちなみに②は、PQI Air Card をアクセスポイントとして使う時のパスワード。普段は使わないけど、念のために設定しておく。

 立ち上げ時にクライアントモードで起動させるためには、microSD のルートディレクトリに autorun.sh というファイルを作成して、次の内容を書いておけばよい。(この情報は、ひとりぶろぐさん「デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方」による。)

#!/bin/sh
sleep 5
/usr/bin/w2

 再起動して、ターミナルから ftp でアクセス。IP アドレスが何かは推測するしかない。固定 IP で接続する方法ってあるのかな。

$ ftp 192.168.1.17
ftp: Can't connect to `192.168.1.17': Connection refused   #  違った!
ftp: Can't connect to `192.168.1.17'
ftp> quit
$ ftp 192.168.1.18
Connected to 192.168.1.18.     #  通りました
220 Operation successful
Name (192.168.1.18:xxxxxx):    #  ユーザー名もパスワードもなし
230 Operation successful
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 EPSV ok (|||37389|)
150 Directory listing
drwxr-xr-x    4 root     root             0 Dec 31 17:00 mtd
drwxr-xr-x   10 root     root          4096 Dec 31 17:00 sd
226 Operation successful
ftp> ls sd
229 EPSV ok (|||36661|)
150 Directory listing
-rwxr-xr-x    1 root     root         18693 Aug 21  2015 COPYING.linux
drwxr-xr-x    3 root     root          4096 Dec 31  1979 DCIM
-rwxr-xr-x    1 root     root          1494 Nov 18  2015 LICENCE.broadcom
...(snip)...
-rwxr-xr-x    1 root     root       3939492 Jul  3  2017 start_x.elf
226 Operation successful
ftp>

 SmileBASIC のファイルは /sd/PCM/SB, MZ-80C エミュレータのファイルは /sd/PCM/MZ80 に入っている。大文字・小文字は区別される。ディレクトリ名を打ち間違えてもエラーを返してくれないので、要注意。


ftp> cd sd/PCM/SB
250 Operation successful
ftp> put something
local: something remote: something
229 EPSV ok (|||52093|)
150 Ok to send data
100% |***********************************|  3852       27.41 MiB/s    00:00 ETA
226 Operation successful
3852 bytes sent in 00:00 (200.65 KiB/s)
ftp> 

 ところが、SmileBASIC 側で Files しても、ファイルは認識されていない。こっそりファイルを書き換える操作はサポートしていないのかも。結局 reboot が必要だった。さらに、リブートしたあと USB キーボードが認識されない。一度コネクタを抜き差ししないといけない。なんだか、いろいろ不便だな。電源を切って microSD を差し替えて、というよりはよほど楽だけどね。

タグ:Raspberry Pi
Posted at 2018年01月16日 22:19:55
email.png