アナリティクス

2016年7月21日木曜日

RPiのSDをバックアップして別のSDに書き込む

せっかく作ったSDなのでバックアップしたい。
バックアップしたものは書き戻せるか試したい。
書き戻した先の容量に余裕があるならフルに使いたい。

なので以下実施。

■SDカードのバックアップとリストア
MacのDDで出来るかと思ったが、DDで書き戻したら起動はするし大概は動作するけど、hostnameと/etc/hostsがぶっ壊れるという、ワケのわからん状態になったので、Ubuntu-16.04LTSで作業。バックアップ/リストアのやり方そのものはここを参照。
ubuntuでBeagleBone付属SDカードをバックアップ

[バックアップ]
sudo dd if=/dev/sdb bs=8M | gzip -c > RPiZero.img.gz

[リストア]
zcat RPiZero.img.gz | sudo dd of=/dev/sdb bs=8M


■SDカードのサイズに合わせたパーティションのサイズ変更
fdiskコマンドでできるかと思ったけど、拡張領域と論理パーティションに対する操作がわからなかったのでGUIに逃げた。UbuntuにGPartedをインストールしてズルをする。ズルの仕方はここを参考にした。
Manually resizing the SD card using a GUI with GParted

  1. GPartedのインストール
    パーティション操作のGUIツールを入れる
    sudo apt-get install gparted
    


  2. SDをUbuntuで認識 コピーしたSDカードをUbuntuで認識させる。この後の作業のためにアンマウントする。


  3. GPartedの起動
    こんな感じで


  4. SDの表示とパーティションの確認
    最初はUbuntuのシステムが表示されるので、SDの表示に切り替える(緑枠)。

    変更したいのは青枠の論理パーティションなのだが、それを格納する赤枠の拡張領域も広げてやらなければならない。

  5. 拡張領域のサイズ変更 1
    拡張領域をクリックして選択し、メニューから"リサイズ/移動"をクリック。


  6. 拡張領域のサイズ変更 2
    拡張可能なサイズと現在のサイズが表示される。現在の表示を示す箱の右にある右三角をドラッグして広げる。


    広げ終わったら設定を登録する。


  7. 論理パーティションのサイズ変更
    [SDの表示とパーティションの確認]で示した、青枠の/dev/sdb7にも同様のサイズ変更を行う。


  8. サイズ変更の適用
    まだ、SDに対しては何の操作も開始されていないので、登録したサイズ変更の操作を適用する。


    操作が開始されると以下の画面が表示される。


    完了するまでとにかく待つ。


Ubuntuあって良かった。
Macだけでどうこうするとか自分には無理。

今日もお祈りされてしまった…そろそろ真面目にやらんと…

2016年7月20日水曜日

RPi camera を GPIO から操作するサンプル

まじめにタイトル書くとキモいな

カメラの操作にありがちな、プレビュー開始/停止と録画の開始/停止をタクトスイッチから操作できるようにしたPythonのコードを作ってみた。


  • GPIO21 = プレビューの開始/停止
  • GPIO16 = 録画の開始/停止
  • 録画を続けると15分ごとにファイル化
こんなもんあれば大体満足。


タクトスイッチ…
そんな格好いいもの持っているワケがない。

にしても、モジュールは色々。機能は選び放題。コーディングはちょこっとで動く。
スゲー世界だ

そんなことより、就職活動しようぜ、俺。

2016年7月19日火曜日

NO IR, YES IR

ラズパイ来てもネットに繋がらないんじゃ進まないなぁということで、USBのWiFiを購入。ヤマダ電機でも500円のこれ

Zeroから供給される電力ではウンともスンとも言わないので、バスパワーハブを使ってどうにか動かす。 使ったバスパワーハブのせいなのか、電力がUSBのポートから供給されてPWR INのポートを繋がなくても動くようになってしまった。

動けばいい…

とりあえず、WiFiを使えるようにして、SSHFTPを使えるようにする。sambaも入れてみたけど、でかいファイルを落とそうとすると一向にセッションが進まない。FinderやExplorerからアクセスするとサムネイル作ったりするので、余計にのろい…ので、却下。

別で注文していたカメラも到着したので装着。

センサーをフルに生かして赤外線まで撮れます。
Raspberry Pi NoIR Camera V2

NoIR≠赤外線を撮らない
NoIR=赤外線除去フィルタが無い=赤外線が撮れる
アイゴー

とりあえず、ここを参考にカメラからの撮像を動画としてw=960,h=540,fps=24として5秒ほど保存してみる。
#!/usr/bin/python3
# coding=utf-8
import picamera
camera = picamera.PiCamera()
camera.resolution = (960, 540)
camera.framerate = 24
camera.start_recording('video.h264')
camera.wait_recording(5)
camera.stop_recording()

これだけなんですか?

2016年7月17日日曜日

ものすごい拍子抜け

Raspberry Pi の実機(第一弾)が来た。
来るまで仮想環境作って我慢しとこうと思ったのにタイミング良いのか悪いのか。Amazonの出品者スゲェや。高かったけど、Budget Packなら妥当な値段なのかな?




Raspberry Pi zero マジでちっこい。

で、Noobsを入れる。ネットワーク無いので、LITEじゃ無い方。

ダウンロードして、展開して、中のファイルをフォーマットしたSDにコピーして、SDをラズパイに差し込んで電源接続。

こいつ、動くぞ。
てか、簡単にもほどがあるだろ・・・

ネットワーク無いから何もできないかなと思いつつ、import wiringpi してみると当然エラー(ですよね〜) 諦めず import RPi.GPIO してもエラーが吐かれなかったのでLチカだけやってみた。

コードこんだけ。

import RPi.GPIO as GPIO,time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(18, GPIO.OUT)
while (True):
  GPIO.output(18, True)
  time.sleep(1)
  GPIO.output(18, False)
  time.sleep(1)



今はこれが精一杯
道具もモジュールも素子も知識も、なんもかんも足りない。

⬛︎ 今日の教訓
Windows 10 IoT Core はRaspberry Pi Zero には入らない。

Jessie told me

無職プー太郎になって暇になったせいか、ラズパイやってみたくなったので物を入手する前にqemuで試そうとしてみた。が、2016-05-27-Raspbian-jessie.imgを使おうとしたものの
まったくさっぱりどうにもこうにも
動かなかったのでどうにかこうにかして動かしてみた。

環境はMacのVMWareにこの為に突っ込んでみた Ubuntu 16.04 LTS。
作業に用意したディレクトリと配置したファイルは以下の通り
  • /qemu
  • /qemu/jessie
    2016-05-27-Raspbian-jessie.img
    kernel-qemu-4.4.12-jessie
  • /qemu/jessie/mnt

⬛︎ イメージファイルの編集
イメージファイルの中にあるLinuxパーティションの中から、ファイルを編集しなければならない。イメージファイルのパーティションを確認し、一つのパーティションをマウント、アクセスできるようにして編集する。
  • パーティションの確認
    $ fdisk -l 2016-05-27-raspbian-jessie-lite.img
    → セクタのサイズと、Linuxパーティションの開始セクタが分かる。
  • イメージファイルのマウント
    $ sudo mount -v -o offset=$((137216*512)) -t ext4 2016-05-27-raspbian-jessie.img /qemu/jessie/mnt
    → イメージファイル内の指定したパーティションにアクセスできるようになる。
  • ld.so.preload の編集
    /qemu/jessie/mnt/etc にある ld.so.preload をテキストエディタで開いて、先頭行の頭に # を追加してコメントアウト。
    # /usr/lib/arm-linux-gnueabihf/libarmmem.so
  • fstab の編集
    /qemu/jessie/mnt/etc にある fstab をテキストエディタで開いて、2行目、3行目の頭に # を追加してコメントアウト。
    proc /proc proc defaults 0 0 #/dev/mmcblk0p1 /boot vfat defaults 0 2 #/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
  • イメージファイルのアンマウント
    マウントされているディレクトリ下にアクセスしていないことを確認して
    $ sudo umount /qemu/jessie/mnt
  • イメージファイルの拡張
    そのままでは動かないらしいので
    $ qmem-img resize 2016-05-27-raspbian-jessie.img +2G

⬛︎ 起動コマンド
マウスが使えるようにした上で起動する
$ qemu-system-arm -kernel kernel-qemu-4.4.12-jessie -cpu arm1176 -m 256 -machine versatilepb -no-reboot -serial stdio -usb -device usb-host,hostbus=2,hostaddr=1 -show-cursor -append "root=/dev/sda2 panic=1 rootfstype=ext4 rw" -drive format=raw,file=2016-05-27-raspbian-jessie.img

⬛︎ 書いてしまえばこれだけだが
手順を書いてしまえばこれだけだが、わからんことだらけでこんな感じでハマり、こんなとこを参考にしたの一覧。
先人達マジスゲェ…
なんで、こういうこと調べていけるんだろ?

実機を注文するにはしてみたが、こんなんで実機が手に入った時動かせるのだろうか? 動くには動くけど、そもわかってないですっ飛ばしてるところだらけだし。
仮想環境なのに環境整備から含めて、2日半もかかってるしなぁ。。。