かべぎわブログ

ブログです

raspistillにいろいろなオプションをつけて写真を撮影してみる

普通に撮る

$ raspistill -o peyang_01.jpg

f:id:kabegiwakun:20180715182955j:plain

左右反転で撮る

$ raspistill -hf peyang_02.jpg

f:id:kabegiwakun:20180715183021j:plain

上下反転で撮る

$ raspistill -vf -o peyang_0vf.jpg

f:id:kabegiwakun:20180715183046j:plain

上下左右反転で撮る

$ raspistill -hf -vf -o peyang_03.jpg

f:id:kabegiwakun:20180715183120j:plain

サイズを指定して撮る

-wで横-hで縦のサイズを指定します。

$ raspistill -w 128 -h 96 -o peyang_04.jpg

f:id:kabegiwakun:20180715183143j:plain

jpgのクオリティを指定して撮る

1~100でクオリティを指定します。
画像は10のもの。

$ raspistill -q 10 -o peyang_05.jpg

f:id:kabegiwakun:20180715183202j:plain

撮影時に詳細情報を出力する

標準出力にいろいろ情報をだしてくれる。

$ raspistill -v -o peyang_06.jpg

raspistill Camera App v1.3.11

Width 2592, Height 1944, quality 85, filename peyang_06.jpg
Time delay 5000, Raw no
Thumbnail enabled Yes, width 64, height 48, quality 35
Link to latest frame enabled  no
Full resolution preview No
Capture method : Single capture

Preview Yes, Full screen Yes
Preview window 0,0,1024,768
Opacity 255
Sharpness 0, Contrast 0, Brightness 50
Saturation 0, ISO 0, Video Stabilisation No, Exposure compensation 0
Exposure Mode 'auto', AWB Mode 'auto', Image Effect 'none'
Metering Mode 'average', Colour Effect Enabled No with U = 128, V = 128
Rotation 0, hflip No, vflip No
ROI x 0.000000, y 0.000000, w 1.000000 h 1.000000
Camera component done
Encoder component done
Starting component connection stage
Connecting camera preview port to video render.
Connecting camera stills port to encoder input port
Opening output file peyang_06.jpg
Enabling encoder output port
Starting capture -1
Finished capture -1
Closing down
Close down completed, all components disconnected, disabled and destroyed

f:id:kabegiwakun:20180715183229j:plain

撮影までの時間を指定する

コマンド実行から撮影までの時間をミリ秒単位で指定する。
オプション省略時のデフォルトは5000ミリ秒
あまり短く設定すると露光時間が短いので暗い画像になります。

$ raspistill -t 10 -o peyang_07.jpg

f:id:kabegiwakun:20180715183252j:plain

タイムラプス(連射)で撮影する

-tで撮影時間を指定して-tでその単位をしていします。
この例では3000ミリ秒の間に1000ミリ間隔で撮影するようにしています。
jpg出力はpeyang_time01.jpgといった出力になります。

$ raspistill -t 3000 -tl 1000 -o peyang_time%02d.jpg

f:id:kabegiwakun:20180715183346j:plain
f:id:kabegiwakun:20180715183414j:plain
f:id:kabegiwakun:20180715183433j:plain
f:id:kabegiwakun:20180715183448j:plain

エンコードを指定して出力する

jpg bmp gif pngが指定できます。

$ raspistill -e gif -o peyang_08.gif

f:id:kabegiwakun:20180715183512g:plain

おわりに

撮影風景
f:id:kabegiwakun:20180715183600p:plain

Raspberry Pi で Google Home を喋らせてみる

Google HomeをRaspberry Piから喋らせてみたいと思います。

環境

  • Raspberry Pi 3 (raspbian v8.0)
  • Google Home (miniじゃないやつ)

手順

以下を参考にしました。

https://qiita.com/ktetsuo/items/8c9cd5714e231aa6ae09

古いNode.jsのアンインストール

$ sudo apt-get autoremove nodejs

nvmのインストール

nvmのディレクトリを作成して

$ sudo mkdir ~/.nvm
$ sudo chmod 777 ~/.nvm

git cloneでnvmをもってきて

$ git clone https://github.com/creationix/nvm.git ~/.nvm

nvm.shを読み込ませる。

$ source  ~/.nvm/nvm.sh

nvmがインストールできました!

$ nvm --version
0.33.8

新しいNode.jsのインストール

Node.jsのバージョンのリストを確認
(以下の出力はみやすいようにいらないやつを削っています)

$ nvm ls-remote
         v8.8.0
         v8.8.1
         v8.9.0   (LTS: Carbon)
         v8.9.1   (LTS: Carbon)
         v8.9.2   (LTS: Carbon)
         v8.9.3   (LTS: Carbon)
         v8.9.4   (LTS: Carbon)
->      v8.10.0   (Latest LTS: Carbon)
         v9.0.0
         v9.1.0

LTSの最新版であるv8.10.0をインストールしてみます。

$ nvm install v8.10.0

Node.jsがインストールできました!

$ node --version
v8.10.0

npmもインストールできているはずです。

$ npm --version
5.6.0

google-home-notifierのインストール

作業用ディレクトリ作成

$ mkdir googlehome
$ cd ./googlehome

npm initを実行してgooglehomeディレクトリでnpmを実行できるようにします。
いろいろ聞かれますが全部EnterでOKです。

$ npm init

avahiの開発用パッケージをインストールします。
内部でこれを利用しているようでインストールしておかないとエラーになります。

$ sudo apt-get install libavahi-compat-libdnssd-dev

満を持してgoogle-home-notifierのインストールです!!!

$ npm install google-home-notifier

実際にGoogle Homeをしゃべらせる

以下のスクリプトを配置します。

4行目のIPアドレスの部分は自分のGoogle HomeのIPアドレスに変更してみてください。

Google HomeのIPアドレスの確認するにはスマホのGoogle Homeアプリから
「デバイス」→IPアドレスを知りたいGoogleHome→「設定」の一番下にIPアドレスが記載されています。

スクリプトを実行すると実際に喋ります!

# node ./test.js

おわりに

今回は定型句を喋らせただけでしたが、なにかスクレイピングしてきてGoogleHomeから通知させるなど、夢が広がりますね!!! 

pi-top SPEAKER の接続とセットアップ方法

pi-top SPEAKERをpi-top CEEDに接続する方法をご紹介します。

環境

  • pi-top OS
  • pi-top CEED
  • pi-top SPEAKER v2

接続方法

pi-top SPEAKERを箱から取り出します。 f:id:kabegiwakun:20180125073128j:plain

以下の端子にさしこみます。
f:id:kabegiwakun:20180125073228j:plain

さしこみました。
f:id:kabegiwakun:20180125073257j:plain
基本的にはこれでもう音が出るようになっているはずです。

音が出ない場合

わたしは差し込んだだけでは音がでませんでした。
そこでやったことをまとめます。(なにがきっかけで音が出るようになったかはわからないので超ご参考までに…)

pi-top OSを最新版にする

まず、OSの更新を行いました。

$ sudo apt update
$ sudo apt upgrade

pt-speakerをインストールする。

基本的にはすでにインストールされているはずですがもう一度実行しました。

$ sudo apt install pt-speaker

auto-removeで不要なものを削除する

$ sudo apt-get autoremove

これでpi-top SPEAKERから音が出るようになりました。

参考にしたページ↓

support.pi-top.com

おわりに

音質としては正直いいものではないです。
ブツッっというノイズがはいることもあります。
ですがpi-topで音を出したいとなったらこれをつかうのが一番良い方法じゃないかと思います。

pi-top CEED 日本仕様 (Raspberry なし, グリーン 緑色)

pi-top CEED 日本仕様 (Raspberry なし, グリーン 緑色)

pi-top CEED 買ったので開封レビューと組み立て

いまさらですがpi-top CEEDを買いましたので開封、組み立てていきます。

開封してみる

イギリスからものが届きました。
f:id:kabegiwakun:20180124202644j:plain

これをあけるとこんなかんじです。
いいかんじの箱があらわれました。
f:id:kabegiwakun:20180124202753j:plain

箱の裏面はこんなかんじ。
f:id:kabegiwakun:20180124202851j:plain

箱を開けてみると箱いっぱいに本体がはいっています。
かっちり正方形です。
f:id:kabegiwakun:20180124203322j:plain

本体をどけるとこんなかんじでパーツやマニュアルがはいっています。
f:id:kabegiwakun:20180124203424j:plain

内容物を確認する

さて、組み立てる前に内容物を確認していきます。

今回はRaspberryPi同梱のpi-topCEEDと、オプションでpi-topSPEAKERとpi-topPROTOというGPIO付きの基盤を購入しています。

Raspberry Pi 本体

まず、RaspberryPi本体です。
RaspberryPi 3 Model Bです。
f:id:kabegiwakun:20180124203751j:plain
箱の中で紙袋みたいなものに入っていてかっこいい!
f:id:kabegiwakun:20180124203842j:plain

電源ケーブル

続いて電源ケーブルです。
プラグの部分が取り外せるようになっています。 f:id:kabegiwakun:20180124204024j:plain
装着します。
f:id:kabegiwakun:20180124204453j:plain

ちなみに公式から購入した場合、プラグの形状を選ぶことができます。日本の場合はUStypeを選択すればOKです。

microSDHCカード(pi-top OSインストール済み)

pi-top OSがインストール済みのmicroSDHCカードです。
SanDisk製のCLASS 10の8GBです。 SDカードアダプターは利用しないので捨てちゃってかまわないです(たぶん)
f:id:kabegiwakun:20180124204627j:plain

CPU ヒートシンク

RaspberryPiのCPUに取り付けるヒートシンクです。
シール式でペタッと貼り付けるだけのタイプのやつです。
f:id:kabegiwakun:20180124210641j:plain

GPIOカード

RaspberryPiのGPIOの各端子を示したカードです。
twitter idもかいてあります。
f:id:kabegiwakun:20180124211147j:plain

マニュアル

マニュアルです。
英語です。
f:id:kabegiwakun:20180124205731j:plain

pi-top SPEAKER(別売り)

pi-top専用のスピーカーです。
本体とは別に購入する必要があります。
pi-top CEED単体では音が出ません。
音とか必要ないよ。という場合には購入しなくてもいいと思います。
$19.99でした。 f:id:kabegiwakun:20180124210127j:plain
はこを開けるとこんなかんじでスピーカーがはいっています。
かわいい。
f:id:kabegiwakun:20180124210203j:plain

pi-top PRORO(別売り)

GPIO月の基盤です。
電子工作とかで遊びたい場合に大活躍するはずです。
$6.99です。
f:id:kabegiwakun:20180124210928j:plain
はこを開けるとこんなかんじで基盤とそれをとめるねじ類がはいっています。
f:id:kabegiwakun:20180124211012j:plain

本体を組み立てる

さて、ここからは実際に本体を組み立てていきたいと思います。

RaspberryPiにmicroSDカードを挿入する

SDカードアダプターからmicroSDカードを取り出し、RaspberryPi裏面に挿入します。
f:id:kabegiwakun:20180124211321j:plain

RaspberryPiに磁石付きのねじをはめる

RaspberryPiの裏面の4つの穴に写真のように磁石付きのネジをはめます。
f:id:kabegiwakun:20180124211555j:plain

pi-top CEED のふたを開ける

pi-top CEEDの下の蓋を開けます。
手でスライドするだけでひらくことができます。
f:id:kabegiwakun:20180124211905j:plain
ひらきました。
f:id:kabegiwakun:20180124211924j:plain

RaspberryPiにHDMIケーブルを接続する

pi-top CEEDから出ているHDMIケーブルをRaspberryPiの端子に接続します。
(画像ではRaspberryPiにGPIOカードを装着していますが気にしなくていいです。) f:id:kabegiwakun:20180124212100j:plain

RaspberryPiを所定の位置に設置する

Raspberry Piをスライドさせて、pi-top CEEDの横に設置します。
端子類が外から見えるようにします。
f:id:kabegiwakun:20180124213025j:plain

GPIOケーブルを接続する

pi-top CEEDのGPIOケーブルをRaspberryPiに接続します。
f:id:kabegiwakun:20180124213126j:plain

RaspberryPiにヒートシンクをつける

わすれていました。
RaspberryPiにヒートシンクを装着します。
このタイミングである必要はないです。
f:id:kabegiwakun:20180124213327j:plain
RaspberryPiのCPUにペタッとはりつけます。
f:id:kabegiwakun:20180124213343j:plain

ふたをしめる

ふたをしめます。 f:id:kabegiwakun:20180124213211j:plain

電源ケーブルをさし、電源ボタンを押して電源をいれる

本体横に電源ケーブルをさし、ボタンをいれます。
ボタンはすこしかたいので、強く長めにおすとよいです。
f:id:kabegiwakun:20180124213439j:plain
電源がつきました!
f:id:kabegiwakun:20180124213604j:plain
これでpi-top CEEDの組み立ては完了です!!!

雑レビュー

全体的に

おもいのほか質感がしっかりしていてけっこうかっこいいガジェットだと思います。
我が家ではこんなかんじにおいてあります。
f:id:kabegiwakun:20180124214022j:plain

画面

液晶画面はノングレアです。
f:id:kabegiwakun:20180124214326j:plain

角度調整

画面の角度の調整も
こんくらいから
f:id:kabegiwakun:20180124214428j:plain
こんくらいまでいけます
f:id:kabegiwakun:20180124214456j:plain

pi-top OS

OSに関しては1,2時間さわっただけですが、特にRaspbianとの差異のようなものは感じていないです。
ちなみにRaspbianをインストールしてつかっても何も問題ないようです。

値段

pi-topの公式から購入しまして値段はいかのような感じでした。

  • pi-top CEED(RaspberryPi入り) $149.99
  • pi-top SPEAKER $19.99
  • pi-top PROTO $6.99
  • 送料 $39.89
  • 消費税/関税手数料 \2280

合計: 26,032円
($1 = \109.52で計算)

このくらいのお値段です。お手頃かそうでないかはわからない。

個人的にはRaspberryPiへの入門や、安価なLinuxマシンがほしいといった場合には買いだと思います。

↓公式 pi-top.com

おわりに

日本国内では以下などで購入することができます。
以下はRaspberryPiが含まれていないので公式から買うよりも少し割高にはなってしまいますが、RaspberryPiをすでに持っていたり、送料のことなど考えると同じくらいのコストで手に入れることが可能かと思います。

pi-top CEED 日本仕様 (Raspberry なし, グリーン 緑色)

pi-top CEED 日本仕様 (Raspberry なし, グリーン 緑色)

GPIO拡張ボードってやっぱり便利だよね【KumanGPIO拡張基盤キット】

GPIO拡張ボードを買ってみましたのでしょうかいします。
こんかいしょうかいするのはこちら
Kuman GPIO 40ピンリボンケーブル+I/O延長基板キットです。

このGPIO拡張ボードにはRaspberryPiの各ピン名が詳細に記載されているので、GPIO17は右から数えて何番目のピンで…みたいな地道な作業から開放されます!

GPIO拡張ボードのなかみ

AmazonからGPIO拡張ボードが届きました。
全体像としてはこんなかんじです。
f:id:kabegiwakun:20171009220521j:plain

このように各ピンの名前が詳細に記載されています。 f:id:kabegiwakun:20171009221331j:plain

あとはこの拡張ボードとRaspberryPiを接続するケーブルが入っています。
f:id:kabegiwakun:20171009220845j:plain
f:id:kabegiwakun:20171009221720j:plain

GPIO拡張ボードをRaspberryPiに装着する

さて、実際にRaspberryPiにこの拡張ボードを装着してみましょう。

まずRaspberryPiにケーブルを装着します。

ここに f:id:kabegiwakun:20171009221701j:plain

こうさします
f:id:kabegiwakun:20171009221857j:plain

この方向でケーブルを接続してください f:id:kabegiwakun:20171009222723j:plain

つづいて拡張ボードとケーブルをつなげます。
片側にツメがついていますので向きをあわせてください
f:id:kabegiwakun:20171009223033j:plain

拡張ボードをブレッドボードにさします
f:id:kabegiwakun:20171009223012j:plain

これで完了です!

つかいかた

たとえばGPIO4をつかいたいといったときはこのようにブレッドボードにジャンパーワイヤーを装着すればRaspberryPiに直接接続したときと同じ動きになります。
f:id:kabegiwakun:20171009224047j:plain

まとめ

最初にも書きましたがやっぱりピン名がパット見てすぐわかるのは想像以上にはかどりますね
おすすめです!!!

RaspberryPiとhubotとSlackで定点カメラをつくってみる

今回はRaspberryPiとhubotとSlackをつかって定点カメラを作ってみたいと思います。

動きとしては以下のような感じのものを想定しています。

Slackでコマンド実行

RaspberryPiのカメラのシャッターをきる

撮影した写真をSlack APIをつかってSlackに投稿

実際に作ってみる

カメラの準備

RaspberryPiのカメラ接続については以下の記事をごらんください。

www.kabegiwablog.com

Raspberry Pi 高精細カメラボード Camera Module V2

Raspberry Pi 高精細カメラボード Camera Module V2

Slackの準備

まずSlackAPIをつかうために必要なチャンネルIDを取得します。

以下で取得できます。
「Test Method」ボタンをおすことで取得できます。

channels.list method | Slack

nameの部分がチャンネルの名前になります。
idの部分がチャンネルIDになりますので覚えておきましょう。

"id": "C99999999",
"name": "aws_config",
"is_channel": true,
~~~省略~~~

Tokenがありませんので作ってくださいみたいなエラー出た場合は以下でTokenを作成したあとでもう一度実行することでできるようになると思います。

https://api.slack.com/custom-integrations/legacy-tokens

RaspberryPiの準備

まずRaspberryPiにhubotを導入してSlackと連携させます。
連携方法は以下記事をごらんください。

www.kabegiwablog.com

今回はraspberry_botという名前のBOTのを作成しました。
raspberry_bot配下のscriptsディレクトリに移動します。

pi@raspberrypi:~/raspberry_bot $ cd scripts/
pi@raspberrypi:~/raspberry_bot/scripts $ pwd
/home/pi/raspberry_bot/scripts

以下のスクリプトをそのディレクトリ配下に作成します。
channnelsの部分は先ほどslackの準備で取得したものと置き換えてください。
tokenはhubotのtokenを入力してください。

RaspberryPi

hubotを起動します。

pi@raspberrypi:~/raspberry_bot $ export HUBOT_SLACK_TOKEN=xoxb-248950932854-tiJxmBvFvki6PSAigTV2V4Ji
pi@raspberrypi:~/raspberry_bot $ ./bin/hubot --adapter slack

実際に動かしてみる

raspberry_botをチャンネルに招待して、Slackで以下コマンドを実行します。

@raspberry_bot 写真

動きました! f:id:kabegiwakun:20170928183324p:plain

まとめ

これを利用して会社にいてもペットの様子を見るなどいろいろ活用できそうですね!

Raspberry Pi 高精細カメラボード Camera Module V2

Raspberry Pi 高精細カメラボード Camera Module V2

RaspberryPiにhubotをインストールする

RaspberryPiにSlackでBOTが使えるようになるhubotをインストールして、slackと連携させてみたいと思います。

hubotのインストール

hubotのインストールに必要なものをインストールしていきます。

npmのインストール

sudo apt-get install npm

Node.jsのインストール

curl -L https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

yoのインストール

sudo npm install -g yo 

generator-hubotのインストール

sudo npm install -g generator-hubot

Coffee Scriptのインストール

sudo npm install -g coffee-script

これでインストールするものは全てです。

BOTの設定

BOTを作成するディレクトリを作成し、yo hubotを実行します。

mkdir bot
cd bot
yo hubot

hubotのためにエラー報告してくれるかい?
みたいなことがきかれるので任意でynで答えます。

pi@raspberrypi:~/bot $ yo hubot
? ==========================================================================
We're constantly looking for ways to make yo better!
May we anonymously report usage statistics to improve the tool over time?
More info: https://github.com/yeoman/insight & http://yeoman.io
========================================================================== (Y/n)

すると以下のように聞かれますのでそれぞれ回答します。

? Owner kabegiwa <kabegiwa@example.com>
? Bot name bot
? Description test_bot
? Bot adapter campfire

Owner メールアドレス
Bot name BOTの名前
Description BOTの説明
Bot adapter そのままEnterでいいです。

BOTの動作確認

BOTの設定の最初で作成したディレクトリに移動して、hubotを実行します。
(./binなので注意!)

./bin/hubot

いろいろなエラーが出てきますが今回は関係ありませんので無視してEnterを押します。

pi@raspberrypi:~/bot $ ./bin/hubot
npm WARN hubot-help@0.2.2 requires a peer of coffee-script@^1.12.6 but none is installed. You must install peer dependencies yourself.

up to date in 4.578s

bot> [Fri Sep 22 2017 22:15:48 GMT+0900 (JST)] WARNING Loading scripts from hubot-scripts.json is deprecated and will be removed in 3.0 (https://github.com/github/hubot-scripts/issues/1113) in favor of packages for each script.

Your hubot-scripts.json is empty, so you just need to remove it.

bot> [Fri Sep 22 2017 22:15:49 GMT+0900 (JST)] ERROR hubot-heroku-keepalive included, but missing HUBOT_HEROKU_KEEPALIVE_URL. `heroku config:set HUBOT_HEROKU_KEEPALIVE_URL=$(heroku apps:info -s | grep web.url | cut -d= -f2)`
[Fri Sep 22 2017 22:15:49 GMT+0900 (JST)] INFO hubot-redis-brain: Using default redis on localhost:6379

botのプロンプトが出てくるので動作確認用にBOT名 pingを実行してみましょう。PONGと帰ってきたら成功です!

bot>
bot> bot ping
bot> PONG

slackと連携する

slack側の設定

slackと連携させていきます。
自分のslackのチームを開き、設定から「Customoize Slack」を選択します。

左側のConfigure Appsを選択します。

上部にhubotといれて検索します。

Installをクリックします

BOTの名前を聞かれますので適当に名前をつけて「Add Hubot Integration」をクリックします。

APITokenが表示されますのでそれをコピーしてRaspberryPiの設定にもどります。

RaspberryPi側の設定

HUBOT_SLACK_TOKENに先ほどコピーしたAPITokenの値を設定します。

export HUBOT_SLACK_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

--adapter-slackオプションをつけてhubotを起動します。

./bin/hubot --adapter-slack

ERROR Cannot load adapter slack - Error: Cannot find module 'hubot-slack'のエラーがでたときはbot設定の最初で作成したディレクトリで以下コマンドを実行してからもう一度実行し直してみましょう

npm install hubot-slack -save

slackでの動作確認

以上の設定が完了すると、slackで以下のようにBOTがオンラインになっているはずです。

反応するかどうかためしにうごかしてみます

うごきました!

まとめ

RaspberryPiをslackのBOTとして動かすことに成功しました!
これではping PONGしかやりとりできませんがhubotではスクリプトを書くことで様々なものを作ることが可能ですのでまた別の機会に紹介できればと思います。

RaspberryPiに最新のnode.jsをインストールする

RaspberryPi標準のOSのRaspbianの初期状態ではnodeのバージョンが0.12と低いので最新版のnodejsをインストールしてみたいと思います。

pi@raspberrypi:~/bot $ node -v
v0.12.18

nodejs最新版(8.x)のインストール

nodejsをver8の最新版とcurlコマンドをつかって紐付けます。

curl -L https://deb.nodesource.com/setup_8.x | sudo -E bash -

apt-getでnodejsをインストールする

sudo apt-get install nodejs

これでnode.jsの最新版がインストールできます!

RaspberryPiにSambaをいれてNASとして利用する

RaspberryPiでファイルサーバを稼働させてLAN野中でファイル共有できる環境を構築したいと思います。(LANの中だけでの共有だけでインターネットからの閲覧は今回やりません)

Sambaの導入

RaspberryPiではCIFS五感のSambaが利用できます。Sambaをインストールすることでファイル共有を実現したいと思います。

Sambaのインストール

以下のコマンドを実行してRaspberryPiにSambaのパッケージをインストールします。

sudo apt-get install samba samba-common-bin

Sambaの設定

共有用ディレクトリの作成

適当な場所に共有用のディレクトリを作成します。

mkdir kyouyuu

共有したいファイルを作成したディレクトリの下に配置します。 (今回はてきとうにtouchで空ファイルを作成しています。)

touch kyouyuu/wawawa

RaspberryPiにアクセスする際に使用するユーザとパスワードを入力します。

sudo pdbedit -a pi

共有ディレクトリの公開設定を行います。/etc/samba/smb.confをviで開きます。

sudo vim /etc/samba/smb.conf

smb.confの末尾に以下を挿入します。

[Share]
        comment = Share Folder
        browseable = yes
        path = /home/pi/kyouyuu
        writable = yes
        valid users = pi
        force user = pi

Sambaを再起動して設定を適用させます。これでSambaの設定は完了です。

sudo /etc/init.d/samba restart

実際に共有フォルダにアクセスしてみる

Windowsのエクスプローラを起動して「ネットワーク」を選択します。
すると「RASPBERRYPI」があるはずなので開きます。 f:id:kabegiwakun:20170922195947p:plain

「Share」を開きます。 f:id:kabegiwakun:20170922200139p:plain

ユーザ名とパスワードを求められるのでpiとそのパスワードを入力します。(デフォルトはraspberry) f:id:kabegiwakun:20170922201135p:plain

共有ディレクトリの内容が表示されます。
f:id:kabegiwakun:20170922201236p:plain

まとめ

Sambaでのファイル共有方法でした。
これでRaspberryPiにファイルを送る際にSDカードを抜き差ししたりUSBメモリを使ったりする苦労から開放されそうです。

激安センサーDHT11で温度と湿度を取得する

さて、今回はHiLetGoの激安温度湿度センサとRaspberryPiをつかって部屋の温度と湿度を取得してみたいと思います。
使っているのはこちらです。

配線図

f:id:kabegiwakun:20170921212028p:plain

DHT11にはGND,DATA,VCCとそれぞれ3つのピンがありますので以下のように接続します。

RaspberryPi DHT11
GND GND
GPIO14 DATA
3.3V VCC

f:id:kabegiwakun:20170921212546j:plain

コード

公式のチュートリアルがありますのでそのコードを利用していきます。

http://osoyoo.com/ja/2017/07/06/dht11/

RaspberryPi

コードのかんたんな説明

DHT11は温度と湿度を40ビットで返します。
(湿度の8ビット整数部+湿度の8ビット小数部+温度の8ビット整数部+温度の小数部の8ビット+ 8ビットのチェックサム)
それぞれを読み取って温度と湿度を出力します。

実際に動かしてみたところ

pi@raspberrypi:~/script $ python dht11.py
Raspberry Pi wiringPi DHT11 Temperature test program

Data not good, skip
Data not good, skip
bits: [0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0], length: 40
[1, 0, 1, 1, 1]
humidity: 80%, Temperture: 28C

まとめ

これで留守中の家の温度を監視して一定を超えたら通知するなどの仕組みがつくれそうです。

RaspberryPiで利用できるOSまとめ9選

RaspberryPi用に配布されているOSをまとめてみました。

Raspbian

f:id:kabegiwakun:20170918192249p:plain
DebianベースのRaspberryPi用のOSです。
正式にRaspberryPiに対応しているOSです。
特に特別な理由がない場合はこのOSで大丈夫かと思います。

Ubuntu MATE

f:id:kabegiwakun:20170918192521p:plain
LinuxOSとして有名なUbuntuの公式の派生OSです。
MATE(マテ)とよばれる軽量なデスクトップ環境を採用しているのが特徴です。

Snappy Ubuntu Core

f:id:kabegiwakun:20170918192837p:plain こちらもUbuntuの公式派生OSです。
もともとはUbuntuTouchというスマートフォン用に開発されたOSをベースにしています。
クラウド環境やコンテナ環境を前提にしていることが特徴です。

Windows 10 IoT Core

f:id:kabegiwakun:20170918193524p:plain
IoT向けに開発されたWindowsOSです。
Windows10という名前がついていますが、通常のWindows10とは使い方がかなり異なります。
GUIベースのアプリケーションで様々な操作を行うのが特徴です。

OSMC

f:id:kabegiwakun:20170918194033p:plain
動画や音楽などのメディア再生に特化したOSです。
リモコンアプリと連携させることも可能で、RaspberryPiをメディアプレイヤーとして利用できるようになります。

LibreELEC

f:id:kabegiwakun:20170918194422p:plain
OSMC同様にメディアプレイヤーとして利用可能なOSです。
OSMCにくらべて動作が軽いことが特徴です。

PiNet

f:id:kabegiwakun:20170918194636p:plain
RaspberryPiのファイルなどを保存しておけるストレージを構築できるOSです。
学校のクラス内でのファイル共有などに利用されています。

RISC OS

f:id:kabegiwakun:20170918194838p:plain
ARMアーキテクチャ向けに設計されたOSです。
非常に軽量で動作が早いことが特徴です。

RetroPie

f:id:kabegiwakun:20170918194950p:plain
ゲームエミュレーションに特化したOSです。
ファミコンやスーパーファミコン、ゲームボーイなどの様々なゲームをプレイすることができます。

RaspberryPiにいれるべきおすすめアプリまとめ25選

RaspberryPiを購入、セットアップしたらいれておくべきアプリを紹介します。

ブラウザ

Firefox ESR

f:id:kabegiwakun:20170916235311p:plain

ブラウザとしてはおなじみのFirefoxの延長サポート版です。
基本的に通常のFirefoxとおなじように利用できます。

sudo apt-get install iceweasel

Midori

f:id:kabegiwakun:20170916235950p:plain
とにかく動作が軽いブラウザです。
RaspberryPiなどの低スペック環境でも安定したブラウジングが実現できます。

sudo apt-get install midori

Epiphasy

f:id:kabegiwakun:20170917001107p:plain
GNOMEの標準ブラウザとして有名です。
トピックをつけて管理できる高機能なブックマークが利用できます。

sudo apt-get install epiphany-browser

メール

IceDove(Thunderbird)

f:id:kabegiwakun:20170917001414p:plain
WindowsのOutlookのような雰囲気のメーラーです。
RSSリーダとしても利用できます。

sudo apt-get install thunderbird

Sylpheed

f:id:kabegiwakun:20170917002015p:plain
日本人が開発したメールクライアントです。
動作が軽いのが特徴です。

sudo apt-get install sylpheed

PDFビューア

Adobe Reader

f:id:kabegiwakun:20170917002732p:plain
言わずと知れたAdobeのPDFビューアです。

sudo apt-get install adobereader-jpn

Evince

f:id:kabegiwakun:20170917002840p:plain
Adobe Readerにくらべて非常に軽量なPDFビューアです。

sudo apt-get install evince

ワープロソフト

LibreOffice Writer

f:id:kabegiwakun:20170917003139p:plain
特定のベンダに依存せず、誰でも自由に利用可能なオフィススイートを発展させることを目標に開発されたソフトです。
Microsoft Office Wordともある程度互換性をもち、操作法も似ています。

sudo apt-get install libreoffice-writer

Abiword

f:id:kabegiwakun:20170917003831p:plain
動作が軽量なワープロソフトです。
こちらもMicrosoft Office Wordとある程度の互換性をもっています。

sudo apt-get install abiword

表計算ソフト

LibreOffice Calc

f:id:kabegiwakun:20170917004351p:plain
LibreOfficeの表計算ソフトです。
Micro Soft Office Excelとの互換性をもっています。

sudo apt-get install libreoffice-calc

Gnumeric

f:id:kabegiwakun:20170917004659p:plain
GNOME搭載の表計算ソフトで動作が軽量なのが特徴です。 Micro Soft Office Excelとの互換性をもっています。

sudo apt-get install gnumeric

プレゼンテーションソフト

LibreOffice Impress

f:id:kabegiwakun:20170917100118p:plain
LibreOfficeの表計算ソフトです。
Micro Soft Office Powerpointとの互換性をもっています。

sudo apt-get install libreoffice-impress

テキストエディタ

gedit

f:id:kabegiwakun:20170917100327p:plain
GNOMEの標準テキストエディタとして知られています。
プログラミング言語に対応したハイライト表示なども可能です。
また、ショートカットキーがWindowsと似ているのも特徴です。

sudo apt-get install gedit

Emacs

f:id:kabegiwakun:20170917100934p:plain
CUI環境でvimとならんで使われているテキストエディタです。
vimは標準搭載されていますが、Emacs派のひとは是非。

sudo apt-get install emacs

画像ビューア

Shotwell

f:id:kabegiwakun:20170917101349p:plain
写真や動画などを直接デジタルカメラから取り込んで、自動でグルーピングまでしてくれます。
カラーバランス調整などの画像編集機能もあるのが特徴です。

sudo apt-get intall shotwell

Gwenview

f:id:kabegiwakun:20170917101802p:plain
KDE環境の画像ビューアとして知られています。
フルスクリーンで利用でき、画像をスライドショー形式で表示することができます。

sudo apt-get install gwenview

gThumb

f:id:kabegiwakun:20170917102310p:plain
軽量な画像ビューアです。
スライドショー表示や、画像のコントラスト変更などの編集機能も有しています。

sudo add-apt-repository ppa:webupd8team/gthumb
sudo apt-get install gthumb

ペイント/レタッチソフト

GIMP

f:id:kabegiwakun:20170917102631p:plain
非常に高機能なソフトです。
ほとんどの画像編集はこれひとつで可能です。

sudo apt-get install gimp

Pinta

f:id:kabegiwakun:20170917102849p:plain
軽量なソフトです。 機能としてはWindowsのペイントにレイヤー機能を追加したものといったかんじです。

sudo apt-get install pinta

メディアプレイヤー

MPlayer

f:id:kabegiwakun:20170917103139p:plain
CD/DVDの再生からmp3やAVI形式などの音楽/動画の再生を行うことができます。
また、MEncoderという機能を使うことで音声/動画を別のフォーマットに変換することができます。

sudo apt-get install mplayer

Xine

f:id:kabegiwakun:20170917103532p:plain
Linux環境でよくつかわれるメディアプレイヤーです。 CD、DVD、ビデオCD の再生が可能です。

sudo apt-get install xine-ui

Totem

f:id:kabegiwakun:20170917212703p:plain

GNOME環境の標準メディアプレイヤーです。
DVDの再生等の他に曲名検索のサポート、TV出力等が可能です。

sudo apt-get install totem

VLCメディアプレイヤー

f:id:kabegiwakun:20170917213216p:plain
多くのメディアファイルのコーデックが内蔵されているメディアプレイヤーです。
様々なプラグインに対応していることも特徴です。

sudo apt-get install vlc

ミュージックプレイヤー

Rhythmbox

f:id:kabegiwakun:20170917213619p:plain
音楽の再生はもちろん、CDのチッピングやCDの作成、歌詞の表示なども可能な非常に高機能なプレイヤーです。

sudo apt-get install rhythmbox

Audacious

f:id:kabegiwakun:20170917214035p:plain
非常に軽量なメディアプレイヤーです。 Winampに似ているUIをもっています。

sudo apt-get install audacious

RaspberryPi3にRetroPieをインストールしてみる

RaspberryPi3にゲーム用OSのRetroPieをインストールしてみたいと思います。

必要なもの

Raspberry Pi 3 MODEL B 【RS正規流通品】

Raspberry Pi 3 MODEL B 【RS正規流通品】

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP

シリコンパワー microSDHCカード 16GB class10 アダプタ付 永久保証 ブラック SP016GBSTH010V10SP

Raspberry Pi用電源セット(5V 3.0A)?Pi3フル負荷検証済

Raspberry Pi用電源セット(5V 3.0A)?Pi3フル負荷検証済

OSのダウンロード

以下にアクセスして、RaspberryPi2/3のボタンをおしてRetroPieをダウンロードします。

retropie.org.uk

f:id:kabegiwakun:20170910123204p:plain

.gzという拡張子でimgファイルが圧縮されていますので解凍しておきます。
Windows10であれば右クリック→解凍で大丈夫なはずです。

SDカードのフォーマット

RetroPieをいれるSDカードをフォーマットします。
今回はSDカードフォーマッターを利用します。

以下のアドレスからダウンロード可能です。

SDメモリカードフォーマッター - SD Association

ダウンロードしたら単純にSDカードフォーマッターを起動してフォーマットを押すだけです。 f:id:kabegiwakun:20170910124436p:plain

SDカードにRetroPieのイメージを書き込む

Win32 Disk ImagerというソフトをつかってRetroPieのイメージをSDカードに書き込んでいきます。
Win32 Disk Imagerは以下URLからダウンロードできます。

https://sourceforge.net/projects/win32diskimager/sourceforge.net

Win32 Disk Imagerを起動して、最初にダウンロードして解凍したRetroPieのイメージファイルを選択、DeviceがSDカードのドライブになっているかどうか確認します。
確認できたら「Write」ボタンをおします。 f:id:kabegiwakun:20170910125605p:plain

確認画面がでてくるのでYesをおします。 f:id:kabegiwakun:20170910125732p:plain

するとイメージの書き込みがはじまります。
f:id:kabegiwakun:20170910125821p:plain

書き込みが終わりました。
f:id:kabegiwakun:20170910130157p:plain

RetroPieを起動してみる

USBキーボードとコントローラを接続してRaspberryPiを起動してみます。
f:id:kabegiwakun:20170910132330j:plain

起動しました! f:id:kabegiwakun:20170910132148j:plain

みなさんもRetroPieをインストールしてみてくださいね!

wavesのスタイリッシュなRaspberryPiケースを買ったので組み立て方を紹介するぞ

wavesというところから出ているスタイリッシュなRaspberryPiのケースを購入しました。
組み立て方を写真付きで紹介していきます。

Amazonから到着

超シンプルな白い箱がとどきました。 f:id:kabegiwakun:20170910120415j:plain

内容物はこんなかんじ。
アクリルの5枚の板と、ヒートシンク3つ、組み立てに利用するネジ等がはいっています。

f:id:kabegiwakun:20170910120000j:plain

アクリルには保護シートがはってありました。
ので、組み立てる前に剥がしておきましょう。 f:id:kabegiwakun:20170910115951j:plain

組み立ててみる

実際に組み立てていきます。
まず、以下の形のアクリル板にネジをとおします。
f:id:kabegiwakun:20170910115941j:plain

つづいて以下の黒い板をはめます。 f:id:kabegiwakun:20170910121021j:plain

その上にRaspberryPiを置くのですが、そのまえにヒートシンクをとりつけておきます。
RaspberryPi裏面に以下の銅のヒートシンクを貼り付けます。
シールになっているのでそのままはりつけるだけでOKです。 f:id:kabegiwakun:20170910121010j:plain
f:id:kabegiwakun:20170910120959j:plain

RaspberryPiをケースに装着します。
f:id:kabegiwakun:20170910120947j:plain

RaspberryPi表面にもヒートシンクをつけていきます。
これもシールになっているので貼り付けるだけです。 f:id:kabegiwakun:20170910121454j:plain f:id:kabegiwakun:20170910121444j:plain

つづいて以下の透明のアクリル板を装着します。f:id:kabegiwakun:20170910120937j:plain f:id:kabegiwakun:20170910121434j:plain

その上から黒のアクリル板を重ねます。
f:id:kabegiwakun:20170910121830j:plain f:id:kabegiwakun:20170910121818j:plain

最後に透明のアクリル板を重ねます。
f:id:kabegiwakun:20170910121802j:plain f:id:kabegiwakun:20170910121751j:plain

さて、アクリル板はすべてつかってケースとして形ができあがりましたのでネジ止めしていきます。
手ですこししめてあげれば完成です! f:id:kabegiwakun:20170910121738j:plain f:id:kabegiwakun:20170910122058j:plain

完成!

f:id:kabegiwakun:20170910122058j:plainf:id:kabegiwakun:20170910122048j:plainf:id:kabegiwakun:20170910122038j:plainf:id:kabegiwakun:20170910122025j:plain

まとめ

スタイリッシュでかっこいいです!!!

GPIOやカメラなどすべての端子も塞がらずすべて利用可能です。

おすすめです!!!!!

RaspberryPiと光センサで部屋が暗くなったらLEDを点灯させる

今回はRaspberryPiと光センサ(フォトレジスタ)をつかって部屋が暗くなったらLEDを点灯させてみたいと思います。

配線図

f:id:kabegiwakun:20170906193423p:plain

かなり複雑です。
コードとあわせて後ほど説明します。

(参考)ADコンバータのピン機能表(参考)

f:id:kabegiwakun:20170825202229p:plain

MCP3008 8チャネル 10ビット A/Dコンバータ(SPI接続)

MCP3008 8チャネル 10ビット A/Dコンバータ(SPI接続)

各ピンはそれぞれ以下のような機能を持っています。

  • VDD - 電源
  • VREF - 基準電圧入力
  • AGND - アナログアース(GND)
  • CLK - シリアルクロック
  • Dout - シリアルデータアウト
  • Din - シリアルデータイン
  • CS/SHDN - チップセレクト/シャットダウン入力
  • DGND - デジタルアース
  • CH0~7 - アナログ入力

くわしくは以下から
http://akizukidenshi.com/download/ds/microchip/mcp3008.pdf

コード

RaspberryPi

かんたんな説明

まず、光センサというのはどういったものかというと、光の強弱で抵抗の値を変化させるセンサです。またの名を光抵抗器といいます。
これはアナログな値なので、RaspberryPiで利用する際はあいだにADコンバータをかませます。
0が暗く、4095が最も明るい値としてRaspberryPiでは認識されます。

さて、コードの説明をしていきます。
重要なのは60行目のif文です。
部屋の明るさが1500を下回っていたならLEDを点灯、そうでなければ消灯しています。
(1500としたのは私の部屋の明るさが3200くらいだったのでその半分くらい…といったかんじで設定しています。)

実際に動かしてみたところ


RaspberryPiと光センサで部屋が暗くなったらLEDを点灯させる

部屋を暗くするとLEDが点灯するのがわかるとおもいます。
また、光センサを手で抑えて暗くしても点灯します。

まとめ

今回はLEDを点灯させただけでしたが、部屋の明るさを検知して部屋の電気がつけっぱなしになっていたら通知するなど、いろいろ夢が広がりますね!