やり過ぎはダメだと言われても、やっぱり基底クラスの拡張は楽しい!

使い方

参考

Ruby: How to find and return a duplicate value in array? – Stack Overflow


Rasberry Piに初期設定をして電源を挿すだけでノートパソコンから操作できるようにはしたももの、電子工作!!な事を全然やってないし、やり方もわからなかったのでAmazonでそれっぽいスターターキットを買ってみました。

ハック ラズベリーパイ Raspberry Pi 電子工作入門キット。

基礎知識

LEDから出てる日本の先端のうち長いのがアノード(電流が入ってくる方)、短いのがカソード(電流が出て行く方)。

GPIO(General-purpose input/output)のそれぞれのピンの役割は以下のとおり。単純に3.3Vや5Vの電圧のところもあるし、Ground(GND)、それにGPIOがある。

つまり全体のこともGTIOと呼ぶし、一部のその機能をもつピンもGPIOと呼ぶらしい。めんどくさい…。

gpio-led

B+のモデルにはもっとピンがあるんですが、1から表示されてる部分までは同じらしいです。ちなみに後ろのハンダ付けが四角いのが1だそうです。……なにそのわかりにくい基準。

backside_raspberrypi

抵抗には向きはないが強さは線の色で決まるので覚えるのが大変。

ブレッドボードは基礎知識がないとつらいのでこちらを読んでおいてください。
http://jsdiy.web.fc2.com/avr_7segclockbb/

LEDをチカチカさせる

最初に載せたキットの解説サイトがこちらですので、そこを参照します。

配線方法

ブレッドボードの配線がこんなんで、

codes_breadboard

ラズパイの配線がこんなんで

codes_raspberry

コードがこうです。解説サイトのRubyを修正しています。

Lチカさせる

以上が上手くいっていたら ruby ~/led_blink.rbでスクリプトを実行したらLEDがチカチカと5回点滅するはずです。やったー!!

できなかった人は一つ一つ手順を確認していきましょう〜。

それではみなさん楽しい Raspberry Pie 生活をお過ごしください。 ノシ


form_tagを使えばブロック内の全体を返してくれるかと思ったのですが、そうではないらしく最終行だけ返ってきてしまいます。

具体例

つまり

だとフォームそのものと最終行のsubmit_tagだけが表示されてその他の入力フィールドが一切表示されません。

対策

なので以下のように毎行Stringを保存しておきましょう。何でこんな仕様になってるんだろう…?

参考

ruby on rails – How do I use form_tag from within a helper? – Stack Overflow


初めてのラズベリーパイ 【購入からSSH接続まで】 で SSH を使ってラズベリーパイに接続ができたのですが、DHCPでローカルのIPアドレスを振り分けてる時は振り当てられてるIPアドレスを調べるためだけにラズパイにキーボードとディスプレイをさして作業する必要がでてくるので非常にめんどくさいことになります。

Avahi

そこでAvahiというソフトを使えば hosts ファイルがなくてもローカルネットワーク内の他のPCからIPアドレスではなく名前で参照できるようになります。。Macの共有機能などで使われている Bonjour と同等のものなんだとか。

インストール

/etc/hostname に保存されてる名前で接続できるようになるので初期設定のraspberrypiという名前を別のものに変更しておきましょう。

Avihaのインストールはいつもどおりapt-getでインストールできます。

スタートアップに登録

このままでは起動時に自動的にAvahiが立ち上がってくれませんので

でスタートアップにも登録しておきましょう。

※ 追記

次回使おうとしたら動かなくなってしまってました。 /etc/hostsを編集しないといけなかったようです。

となっていますのでraspberrypiの部分を変更した名前に変えておきます。

使い方

インストールが終わったらクライアントからssh pi@raspberry.localのような形で pi@自分で決めた名前.localで接続できるようになります。

それではみなさん楽しい Raspberry Pie 生活をお過ごしください。 ノシ

参考

RaspberryPi – Raspberry Pi を無線 LAN 経由で SSH 接続できるようにする – Qiita


日付の配列がある時に

現在の日付よりも新しく、かつ一番近い日付を選択したい時の処理

findメソッドはやっぱり便利!


Railsで既にindexをつけているカラムにunique制限をもうけるには、ユニーク制限だけを付加することができないので一旦インデックス自体を削除してから新規に unique な index を追加します。

参考

ruby on rails – How to add unique constraint to already existing index by migration – Stack Overflow


Rubyの命名規則としてクラス名は通常はCamelCaseで記述しますが、HTTPなどの頭字語(Acronym)はそのまますべて大文字で記述します。

Railsで頭字語のクラス名を使うときはモデル等を生成する前に設定で以下の記述を行っておくと自動的に認識してくれます。

ただhas_manyでこのクラスを持とうとすると以下のエラーになってしまいます。

LoadError: Unable to autoload constant Gnu, expected
/Users/ironsand/dev/myproject/app/models/gnu.rb to define it

対策

クラス名を明示的に指定するとOKです。


初めてのラズベリーパイ 【購入からSSH接続まで】 | 答えを知りたい にてSSH接続ができるようになりましたので今回はVNCを使ってリモートデスクトップ接続をする方法を解説します。

VNCでデスクトップ共有すると便利

VNCでデスクトップ共有すると便利

Raspberry側でする設定

まずはssh pi@192.168.xxx.xxxで接続します。そして必要なパッケージをインストール。

次にサービスを起動します。VNCに接続するときのパスワードを要求されますので何にするか決めます。
また閲覧専用のためのパスワードを設定するかどうか聞かれますのでnで無しにしておきます。別に閲覧専用のパスワードを用意しても構いませんがそんな使い方をラズベリーパイですることはないでしょう。

サーバーが立ち上がったらVNC用のWindowを一つ用意します。

これでラズベリーパイ側の設定は完了です。

PC側からの設定

PC側にVNCのクライアントをインストールします。Mac の場合は特に何もインストールする必要はありません。

Linuxでのインストール

aptでインストールします。

Windowsでのインストール

Download TightVNC から “Installer for Windows” をダウンロードしてインストールします。

インストール方法でcustomを選択して

☐ VNC Server
☑ VNC Viewer

のように VNC Serverのチェックは外しておきましょう。

VNC の起動

以上の設定が全てうまくいっていたら

でパスワードの入力を促すダイアログが出てきますので、先ほど設定したパスワードを入力するとラズベリーパイのデスクトップ画面が表示されます。やっとできた!

ひゃっほー!

ひゃっほー!

それではみなさん楽しい Raspberry Pie 生活をお過ごしください。 ノシ

参考

Raspberry Pi Documentation


ラズベリーパイがよくわからないからとりあえず触ってみる会 | Doorkeeper

を思いつきで呼びかけてみたら意外と人が集まったので、イベント前日の今日に急いで最低限の初期設定をしているテツです。こんにちは。
私と同じように『ラズベリーパイって面白そうだけど何か全然わかんない。』という人に少しでも役に立てばを思い記事を書いています。

ICOCAと比べてみた。思ってたよりもずっと小さい。

ICOCAと比べてみた。思ってたよりもずっと小さい。

目的

ラズベリーパイへのSSHログインとVNCでのデスクトップ操作をノートパソコンからできるようにする。

必要なもの

どのラズベリーパイを買うべきか

ラズベリーパイを買うときに種類が複数あるので迷うかもしれません。

  • Raspberry Model A
  • Raspberry Model B
  • Raspberry Model A+
  • Raspberry Model B+

の4つが主にあるようですが、プラスがついてないのは古いバージョンなので今から始める人は無視して良いでしょう。A+B+の廉価版になります。何をするか具体的に決まっている場合はA+を選択するのもいいですが、私のように何をするか全然決まってないけど取り敢えず初めてみようという人間にはB+の方が良さそうなのでそっちにしました。

なおAmazonからでも購入できますが、公式の通販サイトRS Onlineからなら数百円ほど安く買えます。

ディスプレイ

ラズベリーパイで使えるタッチパネルの7インチの専用ディスプレイなどもあるのですが、HDMI接続さえできれば何でも良いので、普通のPC用ディスプレイやテレビにHDMI接続があれば大丈夫です。

その他のパーツの注意点とか

USB無線LANの子機は必須パーツとして挙げられてないことが多いのですが、毎回ラズベリーパイを触るときにキーボードとディスプレイを繋ぐのはめんどくさすぎるので無線LAN経由で操作をするために必須になります。

その代わりにUSBキーボードは初期設定以外には必要無くなりますので、ラズベリーパイ以外で使わないなら友達などから貸してもらえれば買う必要はありません。

あとマウスもリモートデスクトップを使うなら必要ありません。無くても初期設定はできますので。

OSインストール

まずはOSのインストールを行い、次に無線経由ですべての操作ができるようにします。

必要なファイルの準備

ラズベリーパイは専用のLinuxディストリのRASPBIANというOSをSDカードにインストールして使います。他のディストリも使えるようなのですが、慣れてない時はまず基本に忠実に行くのが一番です。変な設定を初めから試みて苦しい思いをするのは個人の自由なのでそういうのが好きな人はぜひそちらを選んでください。見てる側としてはソッチのほうが楽しいので!

さて、そのRASPBIANのインストールにはNOOBS(New Out Of the Box Software)というものを使います。

DonwloadsのページからNOOBSをダウンロードして展開します。NOOBS LITEもありますが、無印のほうを選択してください。

そしてSD Card Formatterをダウンロード&インストールします。ページの下の方に Windows か Mac かを選ぶところがありますので選択して、それから規約に同意(Accept)するとダウンロードが始まります。

Download SD Formatter for Windows を選択

Download SD Formatter for Windows を選択

ちなみにこの”out of the box”を英語の辞書で調べると『独創的な・常識にとらわれない』と載っていますが、コンピュータ関連で出てくるときは『必要な準備が全て整っていてすぐに使える』という意味になります。けっこうよく使う言葉なので覚えておいて損はありません。

Micro SDカードの準備

ダウンロードしてきたSD Formatterを使いSDカードのフォーマットを行います。ちゃんとSDカードが入ってるドライブが選択されていることをよく確認しておきましょう。

GドライブにSDカードがあるので "G:" を選択

GドライブにSDカードがあるので “G:” を選択

専用のソフトを使わず単純にフォーマットするだけでも大丈夫な気がしますが、おとなしく従っておきます。

フォーマットが終わったらNOOBS_v1_3_11.zip(バージョンによって数字は変わります)の展開した中身をSDカードにコピーします。展開した時にできるNOOBS_v1_3_11自体はコピーせずディレクトリの中身だけなことに注意してください。

コピーが終わったらMicroSDカードをパソコンから外してラズベリーパイにセットします。

Raspbian のインストール

あとはディスプレイとキーボードをつないでから電源を入れると自動的にインストール画面が立ち上がります。この時に無線LANアダプタも取り付けておくとインストール時に自動的に認識してくれます。

ShiftキーでOSを選択して、iでインストールできます。『SDカードの中身が全部消えるけどかまへん?』と聞いてくるのでconfirmするとインストールが開始されます。

インストール中、画面の下にキーボード選択が表示されているのでlを押して日本語を選択しておきましょう。

インストールが終わるまで30分ほどかかりますので、コーヒーでも飲んでるといいでしょう。私はコーヒーをMacbookに飲ませてしまったことがあるので今回は飲むのをやめておきました。

インストールが終わってLinuxの初期画面が流れて、しばらくしたらSetup Optionsが表示されますので何も変更せずにFinishをキーボードので選択してEnterで決定します。

そうするとCUIモードでRasbianにログインできます。またstartxと入力してEnterを押すとGUIの画面が立ち上がります。

以上でRasbianのインストールは終了です。

初期設定ではユーザー名はpi、パスワードはberry

無線LANでネットに繋ぐ

やっとネットに繋げます。ネットに繋がってないLinuxなんてゴミですからね。こういうことを言うとマサカリが大量に飛んできそうですが私にとってはゴミなんです。

無線LANアダプタは指していれば自動的に認識してくれるはずです。まだUSBに刺していなかったらsudo shutdown -h nowで電源を落としてUSBに差し込んでもう一度立ち上げましょう。

アダプタが正常に認識されてるかどうかはsudo iwlist wlan0 scanすると近くのWLANがすべて表示されるのでわかります。

無線LANの設定ファイルを

で開いて

を追記しましょう。viの使い方がわからなければnanoを使ったほうが良いかもしれません。

設定を保存して数秒待てば自動読込されるはずなのですが、されない時はsudo ifdown wlan0,sudo ifup wlan0 で無線LANのインターフェースを再読み込みすればOKです。

正常に接続できてるかどうかはifconfig wlan0と打ってinet■ ■ ■ ■ 192.168.1.10などのアドレスが割り振られてるかどうかで確認できます。■ ■ ■ ■は本当はアドレスと表示されてるはずなんでしょうが、私の環境では文字化けしちゃってました。

Windows や Mac から Raspberry に SSH接続する

ここまで来たら後は SSH で接続するだけです。先ほどのifconfigで表示されたローカルアドレスを使って

と同じローカルネットワーク内のPCから接続すれば完了です。

Windowsで私はcygwinsshを使っているのですが、一般的にはputtyの方が定番なのでそちらを使ってもOKです。

http://www.chiark.greenend.org.uk/~sgtatham/putty/

初回接続時は登録されてない接続先なので大丈夫かどうかを聞かれるのでyesと答える必要がありますが、次回以降は必要ありません。

ここまで進むと後の作業はすべてノートパソコン経由でできますのでラズパイにキーボードやディスプレイのケーブルを繋ぐ必要がなくなります。

それでは今回の記事はここまでにします。次回はVNCを使ってラズベリーパイのデスクトップ環境をノートパソコンから操作できるようにする方法を解説します。

それではみなさん楽しい Raspberry Pie 生活をお過ごしください。 ノシ