半地下備忘録

たつさんの日記的ななにか。

Raspberry Pi ImagerからGUIでSSHやWi-Fiなどを設定する方法

久しぶりにRaspberry Piを使ってみようということで、OSインストールとかを調べてみると、Raspberry Pi Imagerが進化していました。SSHWi-Fiの有効化が以前のやり方よりも簡単になっていてうれしい。知っていれば別に難しいポイントはないけど、備忘録として。

  • Raspberry Pi ImagerでOSを書き込むときはCtrl+Shift+Xでオプションが設定できる
  • SSH、ホスト名、Wi-Fiなどが設定可能
  • なんで隠しコマンドっぽくなっているのかは謎


f:id:tatsu-n:20211020072009p:plain
この画面で「Ctrl+Shift+X」を押すと設定画面が現れます。

f:id:tatsu-n:20211020072203p:plain
ホスト名、SSHWi-Fiタイムゾーンなどの設定ができます。

f:id:tatsu-n:20211020072412p:plain
デフォルトで利用しているWi-FiSSIDとパスワードがセットされます。

あとはSAVEして、いつも通りにSDカードに書き込むだけです。

Raspberry PiにWindowsからリモートデスクトップで接続

ちょっとRaspberry Piのデスクトップも触ってみようかな…と思っていたけど、ディスプレイを接続するのは面倒くさいので、Windowsのリモートデスクトップを使用して、Raspberry Piに接続してみた。

TightVNCサーバ、xrdpをインストールする

Raspberry Piで下記のコマンドを実行する

sudo apt-get install tightvncserver
sudo apt-get install xrdp

リモートデスクトップでRaspberry Piに接続する

f:id:tatsu-n:20161223111230p:plain
Windows側で、ファイル名を指定して実行(Win+R)に「mstsc」を入力して実行。


f:id:tatsu-n:20161223111150p:plain
接続先にRaspberry PiのIPか、raspberrypi.localを入力して、接続。

f:id:tatsu-n:20161223111346p:plain
デフォルトのままであれば、下記のusernameとパスワードでログインでき。ユーザーやパスワードを変えてある場合は、自分で設定したものに読み替えてください。
username:pi
password:raspberry

これでログインできるはず。

xrdpをインストールしたのにリモートデスクトップで接続できない場合

f:id:tatsu-n:20161223111730p:plain
Connection Logが表示されて接続できない場合、インストールし直してみたら接続できました(原因分かってない)。

sudo apt-get remove xrdp
sudo apt-get install tightvncserver
sudo apt-get install xrdp

f:id:tatsu-n:20161223112403p:plain
ちゃんとブラウザも起動できた。こうやって表示させるとやっぱりちっちゃいディスプレイとか欲しくなるなぁ…。

CoderDojo Japan公式ブック Scratch(スクラッチ)でつくる! たのしむ! プログラミング道場

CoderDojo Japan公式ブック Scratch(スクラッチ)でつくる! たのしむ! プログラミング道場

  • 作者: 角田一平,とがぞの,高村みづき,若林健一,砂金よしひろ,安川要平(CoderDojo Japan代表理事)
  • 出版社/メーカー: ソーテック社
  • 発売日: 2016/12/22
  • メディア: 単行本
  • この商品を含むブログを見る

Raspberry Pi(Raspbian Stretch)にNginxをインストール

この前セットアップ*1したRaspberry Pi2 Model B(Raspbian Stretch)にNginxをインストールする。目指すところはNginxとPHP7でWordPressを起動できないかなと。手持ちのRaspberry Piで練習してみて、VPSとかで何か作れないかなと。

とりあえず

久しぶりに起動したので…。

sudo apt-get update
sudo apt-get upgrade

nginxインストールする前の状態。

f:id:tatsu-n:20171022222122j:plain

free -mt
              total        used        free      shared  buff/cache   available
Mem:            927          27         590          11         309         833
Swap:            99           0          99
Total:         1027          27         690

Nginxのインストール

DebianのリポジトリのNginxはバージョンが古いので、Nginx.orgの安定版を使う。公式のインストールガイドの通りに設定していく。

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

sudo vi /etc/apt/sources.listを実行して下記を追記。

deb http://nginx.org/packages/debian/ stretch nginx
deb-src http://nginx.org/packages/debian/ stretch nginx
sudo apt-get update
ヒット:1 http://nginx.org/packages/debian stretch InRelease                                              
ヒット:2 http://archive.raspberrypi.org/debian stretch InRelease                                         
エラー:3 http://mirrordirector.raspbian.org/raspbian stretch InRelease                                   
  mirrordirector.raspbian.org:80 (93.93.128.193) へ接続できませんでした。接続がタイムアウトしました [IP: 93.93.128.193 80]
パッケージリストを読み込んでいます... 完了                               
N: リポジトリ 'http://nginx.org/packages/debian stretch InRelease' がアーキテクチャ 'armhf' をサポートしないため設定ファイル 'nginx/binary-armhf/Packages' の取得をスキップ
W: http://mirrordirector.raspbian.org/raspbian/dists/stretch/InRelease の取得に失敗しました  mirrordirector.raspbian.org:80 (93.93.128.193) へ接続できませんでした。接続がタイムアウトしました [IP: 93.93.128.193 80]
W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。

エラーっぽいのが出たけど、無視して進めてみる。

sudo apt-get install nginx

http://raspberrypi.local/にアクセスして、下記が表示されていれば、とりあえずインストールは成功(のはず)。
f:id:tatsu-n:20171111221537p:plain

nginxインストールした後の状態。

free -mt
              total        used        free      shared  buff/cache   available
Mem:            927          30         667          11         229         836
Swap:            99           0          99
Total:         1027          30         767

こういうのはアクセスさえなければ特にメモリ消費したりしないもんなのかな。次回はPHPとDBの設定をがんばる。

Raspberry PiにRaspbian Stretch Liteをセットアップ

ほこりをかぶっていたRaspberry Pi2に久しぶりに火を入れてみようかと。何に使っていたかも思い出せないので、とりあえずmicroSDをフォーマットして、まっさらな状態から挑戦することに。未来の自分のために頑張ってメモるぞ!

OSのダウンロード

公式サイトからRaspbianをダウンロードする。家の回線がくっそ遅いのと、特にデスクトップを使う予定がないので、Raspbian Stretch Liteを選択してみた。
Download Raspbian for Raspberry Pi

f:id:tatsu-n:20171007153426j:plain

microSDにOSを書き込む

Win32 Disk Imagerを使ってRaspbian Stretch LiteをmicroSDに書き込む。
Win32 Disk Imager download | SourceForge.net

f:id:tatsu-n:20171007154333j:plain
ダウンロードできたら、普通にウィザードにしたがってインストールする。

f:id:tatsu-n:20171007154438p:plain
Win32 DiskImagerを起動して、(1)からさっきダウンロードしたRaspbianのimgファイルを開く。(2)で書き込み先のドライブを選ぶので、microSDに対応するドライブを選ぶ。

f:id:tatsu-n:20171007154449p:plain
Writeをクリックして書き込みが終わるまでしばし休憩。書き込み終わった後、/boot/ディレクトリにssh(拡張子なし)というファイルを配置しておくと、最初からSSHを有効にすることができる。

Raspberry Piを起動

Raspberry PiにmicroSDカードを挿入して、LANケーブルを接続して、電源のmicroUSBを接続する。ひっさしぶりの起動だったので、ちゃんと使えるか心配だったけど、ちゃんと動いてくれた。

Raspberry Piにアクセス

好きなソフトを使って、Raspberry PiにSSHで接続する。ぼくはRlogin使ってつないでる。
Software Library

ホスト名(SSHの接続先):raspberrypi.local
ユーザ名:pi
パスワード:raspberry

パッケージのアップデート

とりあえずパッケージも一応アップデートしておく。

sudo apt-get update
sudo apt-get upgrade

raspi-configで設定

sudo raspi-config
  • 4 Localisation OptionsからI1 Change Locale→ja_JP.UTF-8、その次の画面でデフォルトのロケールを聞かれるので同じく「ja_JP.UTF-8」に。
  • 4 Localisation OptionsからI2 Change Timezone→Asia→Tokyoに変更する。
  • 7 Advanced OptionsからA1 Expand Filesystemを実行する。
  • rebootするか聞かれるので、yesを選択して再起動する。

やる気が持続するかは分からないけどもとりあえずメモって満足した。

Raspberry Piで音声合成「ゆっくりしていってね」

ゆっくりボイスでの音声合成が簡単にできるっぽいので、やってみた。
「Raspberry Pi 音声合成」で検索すると、Open JTalkとAquestalkが有名らしい。今回はAquestalkというソフトを使うことに。

イヤホンを刺してテスト

Raspberry Piにイヤホンを刺して、音声が再生できるかサンプルファイルでチェックしておく。

aplay /usr/share/sounds/alsa/Front_Center.wav

上記のコマンドを入れると、イヤホンから「フロントセンター」って聞こえてくる。さーってノイズっぽいのも聞こえるのは、サンプルファイルのせいなのか、イヤホンが悪いのか…。

HDMIに接続しつつ、イヤホンから音を出したい場合には、下記のコマンドで音声の出力先を変更できる。

amixer cset numid=3 1

Aquestalkのインストール

下記のURLを開いて、下の方にある「同意してダウンロード」をクリック。プログラム使用許諾を下までスクロールして読まないと、グレーアウトされて、ダウンロードできないので注意。あと、右側のサイドバーのDownloadではないのも注意。

AquesTalk Pi - Raspberry Pi用の音声合成

ダウンロードしたファイルをSFTPなどを使ってRaspberry Piに転送する。あまり考えずにとりあえず「/home/pi」にコピーした。
さっきコピーしたファイルのあるディレクトリで、コマンドを実行。

tar xzvf aquestalkpi-20130827.tgz
cd aquestalkpi

基本的な使い方

AquesTalkPiの出力はWAVらしいので、それをaplayに送るとすぐに再生される。

./AquesTalkPi "ゆっくりしていってね" | aplay

めっちゃ簡単だし、ニコニコでゆっくり実況よく見てたので懐かしい感じ。

ファイルを読み上げるときはこんな感じ。

./AquesTalkPi -f test.txt | aplay

具体的に何かに使う構想があるわけじゃないけど、なんとなく楽しい気持ちになった。大したことじゃなくても幸せを感じられるの大事!!(適当)

オプションなど

そのほか、声や読み上げる速さ、音量などの細かいオプションだったりはこちらのブログ記事を参照。
AquesTalk Pi の使い方まとめ | N.Yamazaki's blog

Raspberry Piで豆苗を5分間隔で撮影してタイムラプス動画を作ってみた

せっかくWebカメラを買って、自動でインターバル撮影できるようになったので、タイムラプス動画を作ってみた。


被写体は豆苗。一応説明しておくと、豆苗は1回食べたあと、根を水に浸しておくと、1週間くらいでにょきにょきしてきて、もう1回収穫できる。このにょきにょきを撮影する作戦。

13秒あたりからすごい勢いでにょきにょきする。
www.youtube.com


画像の撮影は前回の記事(Raspberry PiとWebカメラでインターバル撮影 - 半地下備忘録)で紹介した、シェルとcronで。撮った画像は、SFTPでWindowsに移して、普通にムービーメーカーで動画にした。
画像1枚あたり0.03秒なので、33fpsくらい。


反省点としては夜間真っ黒な画像になってしまうので、ライトを用意したほうが良いかなぁと。あと、Raspberry Pi側で動画にするところまでやる方法もあるみたいだけど、今回は面倒だったので…。またの機会があれば、そのときはRaspberry Pi側で動画作成までやるかも?

Raspberry PiとWebカメラでインターバル撮影

Raspberry PiとWebカメラで静止画を撮影する - 半地下備忘録 でWebカメラから画像は撮れるようになったけど、Webカメラ自体が壊れていることが判明した。結局すぐに一番安いWebカメラ買っちゃったよね。物欲には勝てない。

iBUFFALO マイク内蔵120万画素Webカメラ HD720p対応モデル ブラック BSWHD06MBK

iBUFFALO マイク内蔵120万画素Webカメラ HD720p対応モデル ブラック BSWHD06MBK

Webカメラを接続する前

pi@raspberrypi:~ $ lsusb
Bus 001 Device 004: ID 056e:4008 Elecom Co., Ltd 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Webカメラを接続した後

pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 0411:0260 BUFFALO INC. (formerly MelCo., Inc.) 
Bus 001 Device 004: ID 056e:4008 Elecom Co., Ltd 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ちゃんと認識された。


撮影用のシェルスクリプト

vi ./cap.sh

シェルスクリプトの中身

#!/bin/sh
DATE=$(date +"%Y%m%d%H%M%S")
fswebcam -r 640x480 /home/pi/$DATE.jpg

試しに実行しようとしたら権限がないと怒られた。

pi@raspberrypi:~ $ ./cap.sh
-bash: ./cap.sh: Permission denied

cap.shに実行権限を与える。

chmod +x ./cap.sh


cronを設定する。

crontab -e

1分ごとに実行するために以下の内容を追記する。

*/1 * * * * /home/pi/cap.sh

これで1分おきにカメラから撮影された画像が保存されていくよ。