趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • MongoDBについて調べてみた

    投稿日 2018年 5月 13日 コメントはありません

    いろいろあって、MongoDBについて調べてます。

    調べた結果をメモしておきます。


  • Raspberry Piをネットワークの試験に使う

    投稿日 2018年 2月 10日 コメントはありません

    ここのところ買い集めている小さなLinuxボードは結局はネットワークの試験のために購入したもので、元々はなるべく小さなtcpdumpが使えて動かしっぱなしで放置できるものを探していたものです。で、いろいろぐぐっていたら、linuxでEthernetインタフェースが2つある環境を使って、もっといろいろできることがわかってきました。具体的には、ブリッジとして動作させてた上で、遅延を挿入したりできるというものです。その環境もRaspberry PiにUSBイーサネットアダプタを追加してやれば、Raspberry Piでもできそうなことがわかったので、試してみました。

    1.Raspbianのインストール

    今回はGUIは不要なので、Raspbian Liteを適当なMicro SDに書き込んで、余っていたRaspberry Pi model B+に入れました。
    起動して、User/Passwd=pi/raspberryでログインしたあと、コンソールから

    $ sudo touch /boot/ssh
    $ sudo reboot

    として再起動。再起動後、linuxマシン側から

    $ ssh pi@raspberrypi.local

    としてsshでログイン、以降はリモートログインで作業します。リモートログインしたら、

    pi@raspberrypi:~ $ sudo raspi-config

    として、初期設定をします。今回は、

    • パスワード設定
    • ホスト名をraspinetに変更
    • ブートオプションをConsoleに設定
    • ローカライゼーションでLocaleにja_JP.UTF-8 UTF-8を追加、デフォルトはen_GB.UTF-8のまま。タイムゾーンはAsia/Tokyoを選択。
    • Advanced OptionでExpand Filesystemを選択、Memory Spiltは16MBに設定

    で、設定後に再度、再起動。再起動後、Linuxマシン側から

    $ ssh pi@raspinet.local

    として再度ログインします。ログインしたら、

    pi@raspinet:~ $ sudo apt-get update
    pi@raspinet:~ $ sudo apt-get upgrade
    pi@raspinet:~ $ sudo apt-get install tcpdump bridge-utils

    として、アップデートを一通りかけた後、bridge-utilsとtcpdumpをインストールします。

    2.スクリプトファイルを作成して起動時に実行させる

    pi@raspinet:~ $ sudo vi /usr/local/bin/start-bridge

    として、ブリッジを起動する以下の内容のスクリプトを作成しました。(実行タイミングをsleepで調整しているのでちょっと汚いですが・・・)

    #!/bin/sh
    # disable IPv6
    sysctl -w net.ipv6.conf.all.disable_ipv6=1
    # setup bridge
    brctl addbr vbr0
    brctl addif vbr0 eth0
    brctl addif vbr0 eth1
    sleep 5
    # start interface
    ifconfig eth0 0.0.0.0 up
    ifconfig eth1 0.0.0.0 up
    ifconfig vbr0 0.0.0.0 up
    sleep 5
    dhclient -r
    dhclient vbr0
    echo 0 > /sys/devices/virtual/net/vbr0/bridge/multicast_snooping

    IPv6は今回禁止、IGMP snooping も禁止しました。作成後に、

    pi@raspinet:~ $ sudo chmod a+x /usr/local/bin/start-bridge

    として、実行権限を付与。起動時に実行させるため、/etc/rc.local を修正して、最後の exit 0 の前に以下の部分を追加しました。

    if [ -e /usr/local/bin/start-bridge ]; then
      /usr/local/bin/start-bridge &
    fi

    これで、Raspberry Piを起動させると自動的にブリッジとして動作するようになります。

    3.tcpdumpで通過パケットをモニタしてみる

    Linuxホスト側から

    $ ssh pi@raspinet.local

    でブリッジに設定したRaspberry Piにログインします。その後、

    pi@raspinet:~ $ sudo tcpdump -i vbr0 not port ssh

    とか、

    pi@raspinet:~ $ sudo tcpdump -i vbr0 not host `/sbin/ip -f inet -o addr show vbr0 | awk '( $2 == "vbr0" ) {print $4}' | cut -d/ -f 1`

    で通過するパケットをモニタします。(後ろの方の長いのは vbr0 のIPアドレスを抽出しているだけです)
    ポートやIPアドレスでRaspberry Piに接続しているsshのパケットを除外しています。除外しないと、表示した文字列をパケットキャプチャして、それを再度表示してしまいます。

    4.参考情報


  • NanoPi NEO2のNASキットを動かしてみました

    投稿日 2017年 11月 28日 5個のコメント

    秋月で NanoPi NEO/NEO2 用のNASキットが売っていたので、買ってみました。

    秋月の説明書きにはヒートシンクが同梱されているとは書いてない(写真には写っていますが・・・)ので、思わずヒートシンクも余計に買ってしまいましたが、これから買う方はキットにヒートシンクが同梱されているので気をつけて下さい。

    このNASキット以外に、

    • NanoPi-NEO2 (または NanoPi-NEO)
    • 2.5インチのHDDまたはSDD(まずは余り物の160GBをつけてみました)
    • CR2032コイン型リチウム電池
    • 起動用のMicroSDカード(手持ちの16GBを使いました)
    • 12VのACアダプタ(秋月で標準的なDCプラグがついているもの)

    の準備が必要です。

    組み立てにあたっては、

    • ハンダゴテ一式(NanoPi-NEO2の端子はハンダ付けが必要)
    • プラスドライバ(たぶん+1のもの)

    も必要です。

    とりあえず、端子をハンダ付けしました。ランド径が小さいので、ハンダ付けしにくいです。

    この状態で、別のNanoPi-NEO2 から持ってきた MicroSD カードを挿して Ubuntu-Core で起動して ssh でログイン、適当に /dev/sda1 を mount してやると、中身を見ることができましたので、動作は問題ないようです。

    ヒートシンクを付けてみました。

    この後、Official ROMのイメージを

    https://www.mediafire.com/folder/ah4i6w029912b/NanoPi-NEO2

    の下の Official ROMs から nanopi-neo2_debian-nas-jessie_4.11.2_20171103.img.zip をダウンロードして、これを展開、USBイメージライタでMicroSDに書き込んで電源投入します。

    ブラウザで、 http://friendlyelec.local/ にアクセスすると、

    として画面が出ました。

    ユーザー名: admin
    パスワード: openmediavault

    でログインすることができました。

    とりあえず、

    • Web管理者パスワードの設定
    • タイムゾーンの設定、NTPの有効化
    • ホスト名を NanoPi-NAS に変更
    • アップデートの確認&インストール
    • ディスクのワイプ、ファイルシステム作成
    • ユーザーの作成

    をしてみました。

    この後、プラグインを見てみると、「openmediavault-flashmemory」というのがあり、これを使うと MicroSD への書き込みを減らせるようです。・・・が、インストールを試みたところエラーになりました・・・。

    あと、デフォルトで root での ssh ログインが有効になっています

    $ ssh root@nanopi-nas.local (変更していない場合はfriendlyelec.local)
    root@nanopi-nas.local’s password: (デフォルトパスワードは fa )
    root@nanopi-nas:~# passwd
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~# passwd pi
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~# passwd fa
    Enter new UNIX password:
    Retype new UNIX password:
    passwd: password updated successfully
    root@nanopi-nas:~#

    として、ログインパスワードは変更しておく必要があります。(もしくは、SSHを無効化したほうがよいかも)

    ・・・と思ったのですが、/etc/ssh/sshd_config の AllowGroups の項目には root と ssh しかいないので、実際にログインできるのは root だけのようです。


  • NanoPi NEO2でタイムラプス撮影

    投稿日 2017年 11月 27日 コメントはありません

    部屋を掃除していたらELECOMのWebカメラが出てきました。LinuxMintのマシンに挿してみたところ uvc カメラとして認識するようでしたので、NanoPi NEO2に挿してみたらこちらも認識しました。

    なので、TimeLapse撮影ができないか、試してみました。
    ググると Ubuntu でTimeLapseをやっている方は結構いるようで、基本的にはそちらに倣ってやってみました。

    基本、NanoPi NEO2に合わせている以外はこちらのページのパクリです。

    1.カメラ画像の連続キャプチャ

    1枚単位での撮影には fswebcam を使うのが簡単なようです。

    $ sudo apt-get install fswebcam

    でインストールできます。で、連続撮影する場合には、1枚キャプチャするシェルスクリプトを書いて、cron で所定の時間毎に1枚キャプチャ、というのが簡単なようなのですが、NanoPi-NEO2のUbuntu-coreではcronはユーザーに開放されてないっぽいです。crontab -eとしても編集できないですし、ググってもシェルスクリプト内でループしてsleepで時間待ちせよ、みたいなことが書いてあります。

    結局、以下のようなシェルスクリプトで連続撮影します。ファイル名は TimeLapse.sh として、ホームディレクトリの下に CaptureImage というディレクトリを作って、そこに置きました。

    #!/bin/bash
    while true;
    do
    	DATE=$(date +"%Y%m%d%H%M%S")
    	fswebcam --quiet --jpeg 95 --timestamp "%Y-%m-%d %H:%M:%S (%Z)" -r 800x600 /home/pi/CaptureImage/$DATE.jpg
    	sleep 2s
    done

    作成したスクリプトに実行権限を付けてやります。

    $ chmod +x TimeLapse.sh

    で、実行すると、ザクザクと画像が溜まっていきます。

    2.キャプチャした静止画の引取の準備

    動画への変換はホスト側でやります。

    ホスト側で

    $ mkdir nanopi
    $ sshfs pi@nanopi-neo2.local: /home/xxx/nanopi

    として、sshfsでnanopi側のホームディレクトリをローカルディレクトリにマウントして、これで引き取ります。
    (今考えれば、sshfsでマウントしなくても scp でも良かった・・・)

    3.画像の変換の準備

    ローカル側でffmpegで変換しますが、motionをインストールするほうが楽だという情報があったので、そうしました。

    $ mkdir motion
    $ cd motion
    $ sudo apt-get install motion

    4.画像の引取と変換

    以下の手順で画像の引取と変換を行います。

    $ cp ../nanopi/CaptureImage/*.jpg .
    $ c=1 ; for i in ??????????????.jpg ; do mv $i `printf %d $c`.jpg ; c=$((c+1)) ; done
    $ ffmpeg -f image2 -r 15 -i %d.jpg -r 15 -an -vcodec libx264 -pix_fmt yuv420p video.mp4

    これで TimeLapse ができましたが、静止画の保存サイズが大きいようです。
    1分間で3〜4MB出力しているようなので、1週間で40GBくらいになってしまいます。ちょっと要対策ですね。


  • 秋月のLPC11U35マイコンボードを動かしてみた

    投稿日 2017年 7月 10日 コメントはありません

    久しぶりに秋月へ行ったら、「USBメモリにファイルを書き込むのとほぼ同様の手軽さでプログラムを書き込むことができます」という触れ込みのマイコンボードが安く売っていたので、買ってみました。

    で、動かしてみるべく、Linuxマシン(環境はいつものLinux Mintです)へ接続すると、確かにマスストレージデバイスとして認識します。で、秋月のWebサイトにある動作確認用ファームウェアを書き込んで、リセットしてみても、再びマスストレージデバイスとして認識されて、LEDが点滅する気配がありません。

    mbedとしても動作する、というのでサンプルプログラムを作って同様に書き込んでみてもサッパリです。linuxではドラッグアンドドロップでの書き込みはうまく行かないのかと思って、コマンドラインで cp コマンドでコピーしてみてもダメです。

    で、ぐぐってみたら、どうやら linux ではそもそもファイル書き込みではうまくいかないようで、こちらの情報によると先頭の4ブロック(2キロバイト?)を削ってddで書き込むとうまく行くようです。

    ただ、デバイスファイルなんていろんな要因で変わってしまうので、毎回やるのは面倒ですし、事故のもとなので、pythonのスクリプト化しました。

    lsblkコマンドで見た時に、転送方法が usb で、モデルが’LPC1XXX IFLASH  ‘となっているデバイスファイルを探して、そのデバイスファイルをアンマウントして、ddコマンドで書き込むだけです。スクリプトファイル⇒mbedにlinuxから書き込むためのスクリプト

    ルート権限が必要なのは変わらないので、sudo 付きで python スクリプトを実行します。

    $ sudo python ./write_mbed.py firmware.bin 
    mbed device is /dev/sdc
    umount /dev/sdc
    dd if=firmware.bin of=/dev/sdc seek=4
    16+1 レコード入力
    16+1 レコード出力
    8456 bytes (8.5 kB, 8.3 KiB) copied, 0.387457 s, 21.8 kB/s

    みたいな感じで使います。(途中の umount とか dd コマンドの行はこのスクリプトの処理内容を表示しているだけで、書き込みに必要な操作は最初の1行目だけです)

     


  • FreeCADを使ってみた

    投稿日 2016年 8月 13日 コメントはありません

    Wings 3Dに引き続き3Dデータの作成に挑戦するため、やはりSynapticでLinuxMint 18 x64の環境にインストールできるFreeCADを試してみました。

    試行錯誤しながら動かしていたのですが、自分のように他の人が3DCADを使っているところを見たことがあれば、こちらの紹介記事をみながら何とか使えそうな感じです。操作で最もわからなかったのが、視点の変更。平行移動がマウスの中ボタン(スクロールホイール)を押しながらマウス移動、回転させるのが中ボタン+左ボダンを押しながらマウス移動ということです。

    で、あれこれしながら作ってみたデータはこんな感じ。

    sample1

    何かの基板を入れるようなケースを意図して作ってみたのがこんな感じ。

    sample2

    データ作成にあたっては、各オブジェクトの位置(穴や凹みは引き算で作ってますので、引くためのオブジェクトも含む)の座標や大きさなどを数値で打ち込んで行くイメージになりそうな感じです。なので、ラフスケッチのイメージを作っておいてから作業着手するのが良さそうです。3Dプリンタで簡単なものを作ったり、KiCAD用の3Dモデルを作る程度であれば、自分でも何とか使えそうです。(KiCADに持っていく方法やピンを作る方法は別途考えないといけないですが・・・)

    他に少し古いバージョンを対象に書かれているようですが、こちらのサイトも参考になりそうです。


  • Wings3Dを使ってみた

    投稿日 2016年 8月 10日 コメントはありません

    久しぶりにKiCADを使って設計をしているのですが、出来上がりのイメージを高めるwには、やはりライブラリに3Dデータが欲しくなります。

    で、無料で3Dプリンタ用データを作れるフリー3Dソフト一覧というページを参考にしてLinuxで使えるツールの中から、SynapticでインストールできるWings 3Dを試してみました。

    オープンソースであることと、UIがシンプルで初めての人にも使いやすい、ということが特徴のようです。

    で、早速Synapticからインストールして試してみました。

    Wings3D

    基本の図形を並べて変形させていくような感じの操作方法で、精密なデータを作るのは多少しんどいかもしれないのですが、作ったデータはKiCADで使うデータは基板製造用のガーバーデータには関係ないですし、雰囲気がわかればいいのでまずまずの印象でした。

    ・・・が、本番のデータ作成にトライしてみようと、そこまで試しに作成してみた形状を保存しておこうとしたところ、

    Wings3DError

    となって保存できませんorz。

    うーむ・・・。

     


  • AndroidタブレットをLinuxのサブディスプレイにする

    投稿日 2016年 8月 9日 コメントはありません

    外出時にノートPCで作業していると、1366×768の画面ではどうしても狭く感じます。・・・で、ぐぐってみたところ、AndroidをLinuxのサブディスプレイにする方法がある模様。どうやらVNCを使うようなので、やってみました。

    環境は以下の通り。

    • サーバ側はLinutMint18 x64
    • クライアント側はNexus7(2012) + Android4.4.4

    です。

    作業にあたってはこちらのサイトを参考にさせていただきました。

    1.Linux側(サーバ側)

    Synapticでvnc4serverをインストールします。vnc4serverを使うのはSynapticにあるからです。

    インストールしたらVNCサーバを起動します。

    $ vncserver :1
    You will require a password to access your desktops.
    Password: ********
    Verify: ********

    起動したら接続用のパスワードを設定します。パスワードは8文字までで、8文字を超える長さの場合には最初の8文字が使われるようです。

    2.クライアント側(Android側)

    クライアント側はGoogle PlayストアでVNC viewerをインストール。

    起動したら、接続先として「Linux側のIPアドレス:5901」、接続名を適当な名前を設定します。接続するとパスワードを聞かれるので、vncserverを起動する際に設定したパスワードを入力します。ポート番号の5901は5900に:1の1を足して5901となっています。

    3.x2vncのインストール

    Synapticでx2vncをインストールする。インストールしたら以下のようにして起動する。

    $ x2vnc -shared -west localhost:1
    x2vnc: VNC server supports protocol version 3.8 (viewer 3.3)
    Password: ********
    
    x2vnc: VNC authentication succeeded
    x2vnc: Desktop name "(ホスト名):1 (ユーザー名)"
    x2vnc: Connected to VNC server, using protocol version 3.3
    x2vnc: VNC server default format:
    screen[0] pos=1003
    Xinerama detected, x2vnc will use screen 1.
    x2vnc: pointer multiplier: 0.930491

    として起動します。この状態でマウスは行き来できるようになっています。
    が、ウインドウは行き来できません。ウインドウマネージャがいないような雰囲気です。しかし、サブディスプレイ側(Android側)ではコンソールウインドウが開いているので、そこでfirefoxを起動するとサブディスプレイ側にブラウザを開くことができました。とりあえずWebを参考にしながら何か作業したり、viやxedで設定ファイルを編集したりする分には十分です。

    ここで一旦終了させます。

    $ killall x2vnc
    $ vncserver -kill :1

    VNCのパスワードを変更します。

    $ vncpasswd
    Password: ********
    Verify: ********

    4.まとめ

    インストールが完了したら、以下の手順で起動できます。

    $ vncserver :1 -depth 15 -geometry 1280x800 -alwaysshared
    $ x2vnc -shared -west localhost:1

    画面サイズはNexus7(2012)の画面サイズです。Android側でフルスクリーンにしておけばちょうどよくなります。

    IMG_20160809

    サブディスプレイとして使っている様子はこんな感じです。USBケーブルは電源供給専用で、接続はモバイルルータ経由です。


  • Nexus7(2012)のファームウェアをLoliPopにアップデート

    投稿日 2016年 5月 21日 コメントはありません

    手元にあるNexu7(2012/3Gモデル)をAndroid 5.1.1(LoliPop)にアップデートしてみます。
    手順はFactory Images for Nexus Devicesに書かれているとおりです。下の方の使用条件に同意してチェックすると具体的なイメージやアップデートの方法が表示されます。

    下記にLinuxMint17(64bit)での手順を記載しておきます。言うまでもないことですが、ファームアップデートは自己責任で。

    1)ツールのインストール

    $ sudo apt-get update
    $ sudo apt-get install android-tools-adb
    $ sudo apt-get install android-tools-fastboot

    2)Android端末を開発者モードに変更する

    Android4.4.4ではUSBでPCに接続しても、PC側では認識されません。現在入っている
    設定→タブレット情報をタップして、タブレット情報を表示させ、ビルド番号を連打すると「開発者モードになりました」という表示がされ、設定メニューの中に「開発者向けオプション」が現れます。開発者向けオプションの中の「USBデバッグ」にチェックを入れてからPCに接続します。

    3)Android端末のUSBデバイスIDを確認する

    $ lsusb
    Bus 002 Device 091: ID 18d1:d002 Google Inc. 
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 05e3:0605 Genesys Logic, Inc. USB 2.0 Hub
    Bus 001 Device 007: ID 2101:1406 ActionStar 
    Bus 001 Device 006: ID 046d:c534 Logitech, Inc. Unifying Receiver
    Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    この場合、最初の18d1:d002がNexus7(2012)デバイスIDです。(18d1がベンダID、d002がデバイスID)

    4)udevルールを作成

    $ sudo vi /etc/udev/rules.d/51-android.rules

    内容はこんな感じ

    SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666", GROUP="plugdev"

    5)パーミッションを変更して、udevを再起動

    $ chmod 644 /etc/udev/rules.d/51-android.rules
    $ sudo /etc/init.d/udev restart

    6)イメージのダウンロードと検証

    以降は、公式サイトの手順の「Flashing instruction」に沿って進めていきます。

    まずはイメージのダウンロードと検証です。適当なディレクトリにイメージをダウンロードして、

    $ md5sum nakasig-lmy47v-factory-b2d44613.tgz
    c30e5d3bd7cef9edde38ce58bf741857 nakasig-lmy47v-factory-b2d44613.tgz

    としてファイルの正当性をチェックします。正しいファイルがダウンロードできたら、展開しておきます。

    7)イメージの書き込み

    Nexus7をPCに接続して、ターミナルから

    $ adb reboot bootloader

    でリブートさせます。初回はNexus側にUSBデバッグを許可するか表示されますので、「常に許可する」のチェックボックスにチェックを入れてOKを押します。
    Nexus側にブートローダの画面が表示されますので、

    $ fastboot oem unlock
    ...
    (bootloader) Bootloader is already unlocked
    OKAY [ 0.020s]
    finished. total time: 0.020s

    として、ブートローダをアンロックします。自分の場合は、以前5.0.2から4.4.4に戻した際にアンロックしてありましたので、上記のように「already unlocked」となりました。

    引き続きファームウェアアップデートに入ります。当然ですが、端末に保存されている情報はすべて消えてしまいますので、十分注意してください。また、不慮の事故等で端末が文鎮化するかもしれませんので、自己責任で。

    ~/ダウンロード $ cd nakasig-lmy47v
    ~/ダウンロード/nakasig-lmy47v $ ./flash-all.sh 
    ...
    (bootloader) Bootloader is already unlocked
    OKAY [ 0.020s]
    finished. total time: 0.020s
    erasing 'boot'...
    OKAY [ 0.035s]
    finished. total time: 0.035s
    ******** Did you mean to fastboot format this partition?
    erasing 'cache'...
    OKAY [ 0.174s]
    finished. total time: 0.174s
    erasing 'recovery'...
    OKAY [ 0.035s]
    finished. total time: 0.036s
    ******** Did you mean to fastboot format this partition?
    erasing 'system'...
    OKAY [ 0.370s]
    finished. total time: 0.370s
    ******** Did you mean to fastboot format this partition?
    erasing 'userdata'...
    OKAY [ 12.177s]
    finished. total time: 12.177s
    sending 'bootloader' (2100 KB)...
    OKAY [ 0.270s]
    writing 'bootloader'...
    OKAY [ 1.225s]
    finished. total time: 1.495s
    rebooting into bootloader...
    OKAY [ 0.020s]
    finished. total time: 0.020s
    sending 'radio' (16384 KB)...
    OKAY [ 1.973s]
    writing 'radio'...
    OKAY [ 0.673s]
    finished. total time: 2.646s
    rebooting into bootloader...
    OKAY [ 0.020s]
    finished. total time: 0.020s
    archive does not contain 'boot.sig'
    archive does not contain 'recovery.sig'
    archive does not contain 'system.sig'
    --------------------------------------------
    Bootloader Version...: 4.23
    Baseband Version.....: 1231_0.18.0_0409
    Serial Number........: xxxxxxxxxxxxxxxx
    --------------------------------------------
    checking product...
    OKAY [ 0.040s]
    checking version-bootloader...
    OKAY [ 0.023s]
    checking version-baseband...
    OKAY [ 0.030s]
    sending 'boot' (5186 KB)...
    OKAY [ 0.642s]
    writing 'boot'...
    OKAY [ 0.253s]
    sending 'recovery' (5740 KB)...
    OKAY [ 0.706s]
    writing 'recovery'...
    OKAY [ 0.237s]
    erasing 'system'...
    OKAY [ 0.109s]
    sending 'system' (650039 KB)...
    OKAY [ 77.868s]
    writing 'system'...
    OKAY [ 36.357s]
    erasing 'userdata'...
    OKAY [ 4.903s]
    formatting 'userdata' partition...
    Creating filesystem with parameters:
     Size: 30063722496
     Block size: 4096
     Blocks per group: 32768
     Inodes per group: 8192
     Inode size: 256
     Journal blocks: 32768
     Label: 
     Blocks: 7339776
     Block groups: 224
     Reserved block group size: 1024
    Created filesystem with 11/1835008 inodes and 159204/7339776 blocks
    sending 'userdata' (139157 KB)...
    writing 'userdata'...
    OKAY [ 29.779s]
    erasing 'cache'...
    OKAY [ 0.088s]
    formatting 'cache' partition...
    Creating filesystem with parameters:
     Size: 464519168
     Block size: 4096
     Blocks per group: 32768
     Inodes per group: 7088
     Inode size: 256
     Journal blocks: 1772
     Label: 
     Blocks: 113408
     Block groups: 4
     Reserved block group size: 31
    Created filesystem with 11/28352 inodes and 3654/113408 blocks
    sending 'cache' (9052 KB)...
    writing 'cache'...
    OKAY [ 1.733s]
    rebooting...
    
    finished. total time: 152.918s

    完了すると、勝手に再起動します。
    最初しばらくは倒れたドロイド君の上に赤三角内に「!」が表示されていて動きがないのでびっくりしますが、しばらくすると画面が変わって起動時の画面(Googleカラーのつぶつぶがぐるぐる廻る)に変わります。この状態が長く(5〜10分位?)続いた後、Welcome画面とともに言語選択する画面に遷移します。


  • 秋月の新しいGPSモジュールを試してみました

    投稿日 2016年 2月 22日 1つのコメント

    秋月の新しいGPSモジュール(単品ではなくキットの方)を試してみました。

    このキットはこのUSBシリアル変換基板と接続して使うことを初めから想定しているのか端子配置が合わせられています。・・・が、Androidでも使ってみたいと思っているので、今回はあえてPL-2303を使用したUSBシリアル変換モジュールと接続するケーブルを作成しました。

    まずは、aitendoのモジュールと同じ構成で中華Androidに接続、「You Are Here GPS」を起動するとしばらくして測位ができて座標が表示されました。GPSモジュール側でもLEDが1秒周期で明るく点滅するようになりました。さらに、中華AndroidのGoogle Mapsでも現在位置としては取得できたのですが、継続的にトラッキングしてはくれません(理由不明)。

    そこで、今度はLinuxMint13環境で動かしてみました。

    まずはwineとwine-geckoをインストールして、秋月のWebサイトに上がっているMiniGPS(GPSチップの製造元、MediaTekのソフトのようです)を動かしてみました。

    $ cd ~/.wine/dosdevices
    $ ln -s /dev/ttyUSB0 com1

    としてからMiniGPSをwineで実行します。実行したらCOM1を選択して9600bpsに設定。測位が完了すると無事にGPS衛星の掴み具合を表示してくれました。(なお、後述のgpsdをインストール後はCOMポートに接続できなくなりますので要注意)

    次にgpsdをsynapticでインストールしました。・・・が、これだけでは動いているんだかよくわかりません。せっかくGPSなのですから、マップ上に自分の場所を表示させてみたいものです。ググってみると、Vikingというのが定番みたいなので、Synapticでインストールしてみました。

    使い方がちょっとわからなかったのですが、ウインドウの左側がレイヤーになっているようなので、

    1. 左側の下の方の「+」ボタンを押して、「New Map Layer」でOpenStreetMap(MapQuest)を追加します。以下のダイアログが開くので、
      Screenshot-Layer-Properties-1「Autodownload maps」にチェックを入れてOKを押します。
    2. 次に、「New GPS Layer」でGPSを追加します。ダイアログで「GPSRealtime Tracking mode」を選択して、以下のように設定します。
      Screenshot-Layer Properties

    この状態だと現在位置はニューヨークのマンハッタンになっているのですが、追加したGPSを右クリックして「Start Realtime Tracking」を選択してしばらくすると、地図上に軌跡が描かれるようになりました。

    Screenshot-Untitled-Viking-1

    キャプチャ画面でもわかる通り、道路に沿って綺麗に軌跡を描いてくれます。

    ちなみにこのVikingですが、aitendoで購入したモジュールでも同じように動作しました。
    Linuxで動かすぶんにはPL-2303系のモジュールである必要はないと思うので、FT234Xのモジュールに変更して動かしてみようかと思います。