auientの日常

ノンジャンルで書きたいことを書くブログ

Raspberry Pi作業メモ(2)ネットワーク設定

ラズパイ出して、電源刺してLANケーブル刺して、というのが面倒で1ヶ月ほど放置してしまった。すぐ触れる状態にしておきたいと思い、取りあえず無線LANの設定までとやったことがこちら。

  • ルータで有線LANのIP固定:192.168.10.10に。
  • 無線LAN設定
    • こちらのサイトの手順で作業:http://dolls.orz.hm/?p=8794
    • 最初はなぜかつながらなくて、とりあえず再起動してみたら接続成功。
    • IP固定:192.168.10.11に。
  • LANケーブルを抜いていじりやすい場所にラズパイを置く
  • VNC設定

ユーザの追加やファイヤウォールとかのセキュリティ関係の設定は、サーバを公開するときまで後回しにする。めんどいし、設定忘れてログインできないとかで簡単に心折られそうなので・・・

無線LAN設定後に起動しなくなって1回折られている

 

Raspberry Pi作業メモ(1)Linuxをインストール

機材

まず買ったraspberry piの機種がこちら。

Raspberry Pi Model B+ (Plus)

Raspberry Pi Model B+ (Plus)

 

どんな機種があって違いは何かはWikipediaの比較表が詳しい。Pi 2 Model Bという最新機種があったようだけど、良く分かってなくて1つ前の世代のものになった・・・。スペックを求めているわけでないし、ちょっと枯れてる方が参考文献が多いので悪いことだけでないと思う。

同時購入したものは:

  • USB有線キーボード
  • microSDカード16GB

家にあるのでまかなったのは:

  • USB有線マウス
  • LANケーブル
  • 電源用microUSBケーブル(Androidスマホの)
  • USB電源アダプタ(iPhoneの)
  • 無線LANモジュール(使ってなかった「PLANEX GW-USMicroN」)
  • HDMIケーブル(Wii Uの)
  • HDMIディスプレイ(居間のTV)

OSのインストール

公式サイトのダウンロードページからデータを落としてmicroSDカードに入れればいいらしい。

NOOBSとRaspbianというメニューがある。RaspbianはDebian Linuxベースの公式ディストリビューションで、つまりOSそのもの。NOOBSというのは、Raspbianを含む色んなOSを簡単に選択してインストールできるインストーラらしい。今回は迷いたくなかったので公式OSのRaspbianを選ぶ。「RASPBIAN JESSIE」と「RASPBIAN JESSIE LITE」の2つがあるが、LITEの方は最低限のものだけの軽量版らしい。あとから追加で何か必要になるのはだるい(つまづきの原因になる)ので、全部入りの無印版を選んでDownload ZIPを押す。1.47GBあり、自宅の回線ではダウンロードに1時間強ほどかかった。

ZIPを解凍すると「2016-02-09-raspbian-jessie.img」というファイル(4.13GB)ができる。これはディスクイメージと呼ばれるファイル形式で、FATとかファイルシステムとかいうややこしいモノ抜きで生のデータをそのままファイルにしたもの。これをそのままSDカードに転写する。このことを「ディスクイメージを焼く」と表現する。

イメージを焼く方法は、調べると何種類か出てきてややこしい。こういうときは公式サイトを見る。Mac OSでの手順を書いたドキュメントがあるのでそれに従う。3通りの方法が示されており、

  1. GUIでやる方法
  2. コマンドラインでやる方法
  3. その他の方法

とある。1つめの方法がなぜか上手くいかなかったので、2番目のコマンドによる方法で行う。なおコマンドでやる場合はSDカードのフォーマッタアプリなどは不要と書いてある。

なお、GUIでもコマンドでも、途中でterminal.appで「sudo dd 〜」から始まるコマンドを実行するが、このとき引数を間違えて書き込み先をSDカードでなくMac OSが入っているディスクを指定した場合、Macがぶっ壊れると思われる。試してないが十分に注意した方がよい。

ここまでできたら、Raspberry Piにキーボード・マウス・LANケーブル・HDMIなどを刺し電源ケーブルを入れる。文字がざらざらと流れていってこんな画面が表示されたら起動成功。

TVはディスプレイとして常用できないので、リモートでアクセスできるようにする。ルーターの管理画面を開き、DHCPの割当とかルータのログなどからRaspberry Piに割り当てられたIPアドレスを特定する。IPを固定する機能があったので固定。

terminal.appで、`ssh pi@(Raspberry PiのIPアドレス)` と入力。初期パスワードの「raspberry」でログインできたらOK。

長くなったのでとりあえずここまで。次はX Windowやら無線LANの設定をする予定。

 

 

Raspberry Piで学習リモコンを作りたい件

Raspberry Pi買いました。

なぜ買ったのかというと、IoTとか流行りそうだし手を出しておくと仕事的にいいことあるかもな打算とか、はてブで色んな記事で盛り上がってるのが楽しそうでうらやましいとか色々あるんですが、一番は「作りたいものができた」からでした。

私の作りたいもの/やりたいこと

学習リモコン。

元々、

  1. 居間エアコンの感度が悪い
  2. リモコンが多すぎる(エアコンのほかに、空気清浄機、照明、ラジオ、テレビ)

という問題があり、これに対するソリューションで学習リモコンを買おうと思っていたのです。

で。せっかく買うならスマホで操作したい。でもスマホ操作Onlyだとだるいので物理的なボタンもほしい。ついでに、エアコンの切り忘れがしばしばあるので、ONと同時に切タイマーつけるマクロもほしい。とか色々考えているとニーズ合致する製品がないじゃないか……という状況でした。

そんなときに見たこのキャッチーな記事。

qiita.com

これだ! はてブ関連記事も何件か見つかるぞ。

完成までの道のり

とまあ、そんなわけで一丁やってみっかとAmazonでラズパイをポチりました。作業メモをブログに残していこうかと思います。

これからやりたいことを実現するためのステップを洗い出してみます。

なお、自分はWeb系プログラマーの仕事をしていますがボルトとアンペアの違いが分からない程度に電気電子工学素人である前提です。

  1. Raspberry PiにLinuxをインストールし、無線でインターネットにつなげる
  2. 電子工作の部品を調達し、LEDがチカチカするようなものをお試しで作る。電気の基礎知識(ボルトとアンペアの違いとか)、およびプログラムから電気回路を制御する方法を学ぶ。
  3. 赤外線受光の仕組みを実装し、元のリモコンの信号パターンをRaspberry Piに入力できるようにする。
  4. 赤外線送信の仕組みを実装し、エアコンや照明をRaspberry Piから操作できるようにする。
  5. 物理的なボタンをつけて、ボタンでリモコン操作できるようにする。
  6. Rasperry Piで動作するwebアプリを開発し、ブラウザからリモコン操作できるようにする。
  7. いい感じのケースに入れて(必要なら作って)Raspberry Piを居間に設置する

こんな所かな? OK前向きにやってみよう。

以上です。

広告ブロックに関する考えの整理

  • そもそもウェブサイトとは、公開ネットワークで一般に公開されている文書である。
  • 一般的なブラウザにユーザースタイルシートがあることから分かるように、サイトをどのように見るかは閲覧者の自由である。
  • 広告だろうがアイキャッチ画像だろうが、邪魔だと思えば閲覧者はそれを消し去って読むことができる。それは全く正しい。

  • 一方、広告を設置するのはコンテンツ所有者の自由である。
  • 広告の閲覧を強制したいと考えるのも自由である。ただしそれは独自なルールに過ぎず一般的な了解ではない。
  • なぜなら、インターネットは誰のものでもない公共のネットワークだからである。広告を見てほしいのならそのことを閲覧者に伝える義務がある。

  • 通知方法はいくつか考えられる。義務を明記した規約と同意ボタンでもいいし、広告ブロックを検出してアラートを出しても良い。
  • 品のいい広告と価値あるコンテンツを提供しているのなら、閲覧者は広告とともにそのサイトを見るだろう。そうでなければ閲覧者は去る
  • 結果、広告が目的化した価値のないサイトが淘汰されると社会にとって一番望ましいだろう。

0歳児にも言葉のトゲは刺さる

ふと思い出したこと。

長男が1歳になる前だったと思う。離乳食も大分進んできて、うんちも大人と同じようなのが出るようになった頃。

 

オムツを替えるのは既に慣れていたけど、やっぱり臭いはひどいので、自分は替える時に「くせっ(半笑い)」と口に出すのがいつの間にか癖になっていた。

そんな感じで過ごしていて、ある日また長男がうんちをして「くせっ(笑)」と言ったとき、長男が泣きだした。普通に立っていたのが、急に声をあげて。

横で見てた嫁さんに、そんなこと言われたら誰だって嫌だよ、と注意されたけど、言葉の分からない0歳児に伝わるわけがないと思ってたんだ。でも実際にはそうじゃなかった。0歳の長男は、言葉に含まれる侮蔑的なニュアンスを感じ取って素直に反応した。自分はとても悪いことをしてしまったと思った。

 

うんちをするのか嫌いになっては大変なので、すぐに態度を改めた。

保育園の先生が子供のハナクソを拭いたときに「長男くん!とってもいい宝物がとれたよ!」というような100%ポジティブな言い方をしていたのをマネして、「いいーうんちが出たねえ!さあオムツ替えようねえ」と笑顔でほめるようにした。それ以降長男がわけもなく急に泣き出すことは、今までない。

 

このことで自分が学んだことは、

  • 0歳児に言葉の意味は伝わらなくても、言葉に込められた感情は伝わる。

ということ。

0歳だって人だから嫌なことはあるよなあ。でも言葉の伝わらない相手を人として扱うのって、意識しないとできないし難しいよなあ。と、そんなことを思った。忘れないための備忘録。

おいしい紅茶の店マップの作り方

前回紹介したおいしい紅茶の店マップの作り方をメモしておきます。

auient.hatenablog.com

 

1. データを用意する

まず元のデータを表形式におとします。

日本紅茶協会 | 認定店のご案内

最初は1件1件手入力していましたが、数が多く東京都分だけやるので精一杯でした。で、手作業は諦めてプログラムを書きます。 

おいしい紅茶の店マップのスクレイピングスクリプト

このように実行します。

$ ruby scrape.rb > tea.csv

すると2秒ほどでcsvファイルができます。改行が変な所などを直し、ヘッダをつければデータのcsvファイルのできあがりです。

2. マップにデータを入力する

Google マイマップを開きます。

f:id:auient:20150507051622p:plain

新しい地図を開くと、「無題のレイヤ」の下に「インポート」というリンクが見えます。 

f:id:auient:20150507051943p:plain

「インポート」を押すとこのような画面になるので、先ほど作ったcsvファイルを投入します。

読み込みが終わると、店の位置を示す列とマーカー(表示名)の列を選ぶよう求められるので、住所と店名をそれぞれ選びます。

f:id:auient:20150507052107p:plain

ここまでやるとGoogle Mapsが住所と店名で地図データを検索してピンを表示してくれます。店が見つからないときはエラーを出してくれるので、住所表記を直したりして表示されるよう試行錯誤します。

あとは、地図名・レイヤー名・説明等を入力すれば地図の完成です。

 

Enjoy!

 

 

このブログに書くこと

はてなダイアリーの更新をやめ、こちらに記事を書いていくことにしました。

はてなダイアリーは「ちゃんと調べたことを書く」というポリシーを(自分の中で)設けていました。だだ近頃家族とか生活とか、色んなことが書きたくなってきたので、心機一転でブログを移転することにしました。

つまり、このブログには家族とか生活とか、頭に浮かんだこと諸々を書くつもりです。

よろしくお願いします。