やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ラズパイ3で苺をスパルタに育てる 赤LED+カメラ監視+「もっと熱くなれよ!」音声合成しスピーカで聞かせる

 これで成長しなけりゃ生きるのやめろ 爆育システム決定版!

f:id:ytyaru:20210723165053j:plain f:id:ytyaru:20210723164636j:plain f:id:ytyaru:20210723164657j:plain

 もう枯れているけど、まだイケるよね? できるできる絶対できる! もっと赤くなれよ!

 燃えさかれ草! 葉緑体を真っ赤に染め上げてしまえ!

必要なもの

 商品はアマゾンで購入した。

商品 価格 日付
カメラ 790円 2019-05-17
スピーカ 582円 2019-06-14

 カメラのスペックとか絶対ウソだろ。値段でわかる。でも買った。

手順

 もはや使わなくなったラズパイ3を用意する。

  1. カメラをつなげて苺を監視・撮影する
  2. スピーカをつなげて音声合成し苺に話す
  3. 植物育成ライトで苺を照らす

カメラ

 ラズパイにカメラをつなげる。CSIとかいうインタフェース。

  1. ラズパイ側にあるCSI端子の黄色いシールを剥がす
  2. ラズパイ側にあるCSI端子の両端を指先で上へもちあげる
  3. 隙間ができる
  4. カメラのケーブルを差し込む
  5. ラズパイ側にあるCSI端子の両端を指先で下へ押し下げる

f:id:ytyaru:20210723164543j:plain f:id:ytyaru:20210723164548j:plain

 カメラを有効化する。

  1. Raspbianのシステムメニューを開く
  2. 設定Raspberry Pi の設定を選ぶ
  3. インタフェースタブを選ぶ
  4. カメララジオボタン有効にする
  5. OKボタンを押す

 カメラが認識されているか確認する。

$ vcgencmd get_camera
supported=1 detected=1

 認識されないなら、以下でドライバを最新にする。

sudo apt-get update
sudo apt-get upgrade

 撮影する。

sudo raspistill -o image.jpg

ヘルプ

$ raspistill --help

"raspistill" Camera App (commit 9f3f9054a692 Tainted)

Runs camera for specific time, and take JPG capture at end if requested

usage: raspistill [options]

Image parameter commands

-q, --quality : Set jpeg quality <0 to 100>
-r, --raw : Add raw bayer data to jpeg metadata
-l, --latest  : Link latest complete image to filename <filename>
-t, --timeout : Time (in ms) before takes picture and shuts down (if not specified, set to 5s)
-th, --thumb    : Set thumbnail parameters (x:y:quality) or none
-d, --demo    : Run a demo mode (cycle through range of camera options, no capture)
-e, --encoding    : Encoding to use for output file (jpg, bmp, gif, png)
-x, --exif    : EXIF tag to apply to captures (format as 'key=value') or none
-tl, --timelapse    : Timelapse mode. Takes a picture every <t>ms. %d == frame number (Try: -o img_%04d.jpg)
-fp, --fullpreview  : Run the preview using the still capture resolution (may reduce preview fps)
-k, --keypress    : Wait between captures for a ENTER, X then ENTER to exit
-s, --signal  : Wait between captures for a SIGUSR1 or SIGUSR2 from another process
-g, --gl  : Draw preview to texture instead of using video render component
-gc, --glcapture    : Capture the GL frame-buffer instead of the camera image
-bm, --burst    : Enable 'burst capture mode'
-dt, --datetime : Replace output pattern (%d) with DateTime (MonthDayHourMinSec)
-ts, --timestamp    : Replace output pattern (%d) with unix timestamp (seconds since 1970)
-fs, --framestart   : Starting frame number in output pattern(%d)
-rs, --restart  : JPEG Restart interval (default of 0 for none)

GL parameter commands

-gs, --glscene  : GL scene square,teapot,mirror,yuv,sobel,vcsm_square
-gw, --glwin    : GL window settings <'x,y,w,h'>

Common Settings commands

-?, --help  : This help information
-w, --width   : Set image width <size>
-h, --height  : Set image height <size>
-o, --output  : Output filename <filename> (to write to stdout, use '-o -'). If not specified, no file is saved
-v, --verbose : Output verbose information during run
-cs, --camselect    : Select camera <number>. Default 0
-md, --mode : Force sensor mode. 0=auto. See docs for other modes available
-gps, --gpsdexif    : Apply real-time GPS information to output (e.g. EXIF in JPG, annotation in video (requires libgps.so.23)

Preview parameter commands

-p, --preview   : Preview window settings <'x,y,w,h'>
-f, --fullscreen    : Fullscreen preview mode
-op, --opacity  : Preview window opacity (0-255)
-n, --nopreview : Do not display a preview window
-dn, --dispnum  : Display on which to display the preview window (dispmanx/tvservice numbering)

Image parameter commands

-sh, --sharpness    : Set image sharpness (-100 to 100)
-co, --contrast : Set image contrast (-100 to 100)
-br, --brightness   : Set image brightness (0 to 100)
-sa, --saturation   : Set image saturation (-100 to 100)
-ISO, --ISO : Set capture ISO
-vs, --vstab    : Turn on video stabilisation
-ev, --ev   : Set EV compensation - steps of 1/6 stop
-ex, --exposure : Set exposure mode (see Notes)
-fli, --flicker : Set flicker avoid mode (see Notes)
-awb, --awb : Set AWB mode (see Notes)
-ifx, --imxfx   : Set image effect (see Notes)
-cfx, --colfx   : Set colour effect (U:V)
-mm, --metering : Set metering mode (see Notes)
-rot, --rotation    : Set image rotation (0, 90, 180, or 270)
-hf, --hflip    : Set horizontal flip
-vf, --vflip    : Set vertical flip
-roi, --roi : Set region of interest (x,y,w,d as normalised coordinates [0.0-1.0])
-ss, --shutter  : Set shutter speed in microseconds
-awbg, --awbgains   : Set AWB gains - AWB mode must be off
-drc, --drc : Set DRC Level (see Notes)
-st, --stats    : Force recomputation of statistics on stills capture pass
-a, --annotate  : Enable/Set annotate flags or text
-3d, --stereo   : Select stereoscopic mode
-dec, --decimate    : Half width/height of stereo image
-3dswap, --3dswap   : Swap camera order for stereoscopic
-ae, --annotateex   : Set extra annotation parameters (text size, text colour(hex YUV), bg colour(hex YUV), justify, x, y)
-ag, --analoggain   : Set the analog gain (floating point)
-dg, --digitalgain  : Set the digital gain (floating point)
-set, --settings    : Retrieve camera settings and write to stdout
-fw, --focus    : Draw a window with the focus FoM value on the image.


Notes

Exposure mode options :
off,auto,night,nightpreview,backlight,spotlight,sports,snow,beach,verylong,fixedfps,antishake,fireworks

Flicker avoid mode options :
off,auto,50hz,60hz

AWB mode options :
off,auto,sun,cloud,shade,tungsten,fluorescent,incandescent,flash,horizon,greyworld

Image Effect mode options :
none,negative,solarise,sketch,denoise,emboss,oilpaint,hatch,gpen,pastel,watercolour,film,blur,saturation,colourswap,washedout,posterise,colourpoint,colourbalance,cartoon

Metering Mode options :
average,spot,backlit,matrix

Dynamic Range Compression (DRC) options :
off,low,med,high

 これで苺ちゃんがサボっていないか監視できる。プレッシャーをかけてあげる優しさ。

スピーカ

 ラズパイのイヤホンジャックにスピーカのそれを差し込む。

 以下のスクリプトを使って音声合成するソフトウェア環境をつくる。

 たとえばAquesTalkPiがおわったあと、以下コマンドを実行する。

AquesTalkPi もっと熱くなれよ! | aplay

 たとえばBuild.OpenJTalkがおわったあと、以下コマンドを実行する。

echo 'もっと熱くなれよ!' | open_jtalk \
 -x /usr/local/dic \
 -m /home/pi/root/sys/env/tool/openjtalk/voice/MMDAgent_Example-1.8/Voice/mei/mei_happy.htsvoice \
 -ow /dev/stdout \
 | aplay

 スピーカから「もっと熱くなれよ!」と話してくれる。

 植物に話しかけるとよく育つと聞きますよね? それでは、かわいい苺ちゃんに言い聞かせたい100の言葉をあつめましょう。

  • もっと熱くなれよ!
  • がんばれがんばれできるできる絶対できるってどうしてそこであきらめるんだ!
  • 米食え米!
  • 一番になるっていったよな? 日本一なるっつったよな! ぬるま湯なんかつかってんじゃねぇよお前!!
  • 一所懸命、一つの所に命を懸ける!そうだ!今ここを生きていけば、みんなイキイキするぞ!!
  • 気合だ!気合だ!気合だ〜! オイッ オイッ オイ〜ッ!
  • 産めや育てや!
  • ヤればデキる!
  • 負けないこと投げ出さないこと逃げ出さないこと信じ抜くこと。ダメになりそうなとき、それが一番大事
  • 欲しがりません成るまでは
  • いつ生えるの? 今でしょ!
  • ここが限界。そう思った先に成長はある
  • 過労死ラインはまだ先だ
  • 俺を誰だと思っていやがる!!!
  • 無茶で無謀と笑われようと意地が支えの喧嘩道!!壁があったら殴って壊す!道がなければ、この手でつくる!
  • 俺が信じるお前を信じろ!
  • 俺が信じるお前でもない。お前が信じる俺でもない。お前が信じる、お前を信じろ!
  • あきらめたらそこで試合終了ですよ?
  • 逃げちゃダメだ逃げちゃダメだ逃げちゃダメだ
  • あんたまだ生きてるんでしょう?だったらしっかり生きて、それから死になさい

 時代や出典をこえて集まった名言たち。この世がいかにブラックであるかを思い知らされる。この絶望という名のストレスを力にかえて、実ってみせろよ苺道。ラズベリーでもない、ブルーベリーでもない、ストロベリーなお前を信じろ!

f:id:ytyaru:20210723165053j:plain