空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

Raspberry Pi Zero W で遊んでみる

やりたいこと

raspberry pi zero w を使って遊んでみる

f:id:robonchu:20180319195157j:plain

使っているバッテリーはこれ👇でとても小さい

ポータブル充電器02 通販 | au オンラインショップ | スマホ・携帯電話向けオプション品

もっと小さいバッテリーを知ってる方いたら教えてください> <

pin配置

f:id:robonchu:20180319165644p:plain

OSダウンロード

OSの書き込み

wifi設定

以下をboot直下に追加

  • e /Volumes/boot/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="your-SSID"
        psk="your-passphrase"
}

USB経由でインターネット接続したいとき

参考: Raspberry Pi Zero(W)のセットアップ - Qiita

bootドライブ内のcmdline.txtに "modules-load=dwc2,g_ether" を追加します。

rootwaitとquietの間です。エディタはvimを使っていますが、適宜変えてください。

次に、config.txtの末尾に"dtoverlay=dwc2"を追加します。

$ echo "dtoverlay=dwc2" >> /Volumes/boot/config.txt

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh quiet splash plymouth.ignore-serial-consoles

SSH

設定

touch /Volumes/boot/ssh

ログイン

ssh -X pi@raspberrypi.local

初期ユーザーはpi、初期パスワードはraspberryになります。

wifi安定化

参考:

rfkillフラグのリセット問題が発動すると面倒なので、念のため。

$ sudo apt install rfkill

$ sudo vi /etc/rc.local

下記を追加。

#By default this script does nothing.

/usr/sbin/rfkill unblock wifi

初期設定

参考:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install tmux emacs
$ sudo raspi-config

スペースキーで選択

"4. Localization Options"から"11. Change Locale"を選択して、"ja_JP.UTF-8"を有効に。

同様に"4. Localization Options"から"12 Change Timezone"。"Asia"、"Tokyo"と順にたどっていく。

IPカメラを作ってみる

Bluetoothで接続

Raspberry Pi Zero WでBluetooth経由でシリアル通信(ペアリングまで) - 極力ローコスト ロボット製作 ブログ

カメラの接続

f:id:robonchu:20180319191612p:plain

データの送受信

いろんな方法がある

  1. picameraのチュートリアルに"Capturing to a network stream"という項があり、socket通信で画像をストリーミングしている

  2. opencvでも可能

  3. mjpg-streamerでstreaming

参考

raspiから映像をストリーミング

raspi側: mjpg-streamerでstreaming

参考: 5GHz WiFi対応させたPi Zero rev1.3とPi Cameraでミニマムなネットワークカメラを作ってみた(mjpg-streamer版) | きっと何かに役立つでしょ!?

上記通りにして、webブラウザに http://192.168.xx.xx:9000を打ち込むと以下のように表示される

f:id:robonchu:20180319193059p:plain

PC側

参考: PythonとOpenCV3でストリーミング映像をキャプチャする方法 - Live the Life you Love

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cv2

URL = "http://192.168.0.10:8081/?action=stream"
s_video = cv2.VideoCapture(URL)

while True:
  ret, img = s_video.read()
  cv2.imshow("Stream Video",img)
  key = cv2.waitKey(1) & 0xff
  if key == ord('q'): break

f:id:robonchu:20180319194334p:plain

所感

f:id:robonchu:20180319195157j:plain

めっちゃコンパクト! 遅延もそこまでない、いい感じ♪

ってかraspi zeroにros入るのかな...調べてみよう

参考HP

raspi関連商品