TIPS」カテゴリーアーカイブ

Raspberry Pi でゼルダのエフェクトーンつくってみる

http://www.bpnavi.jp/kuji/item/1987/13994

ゼルダのエフェクトーンいいなぁ、欲しいなぁ。
でもくじ運に自信ないなぁ…。
そうだ、僕らには Raspberry Pi がある\(^o^)/

用意するものは Raspberry Pi 一式のほか、以下。

  • タクトスイッチ
  • ブレッドボード
  • 各種ケーブル

本物が何センサーを使っているかはわからないけど、とりあえず手元にあったタクトスイッチを使って実装してみた。
仕組みは簡単で、スイッチがOFFになったら音を鳴らすだけだ。
Pythonスクリプトで組んでみた。

配線

ブレッドボード。fritzingの使い方も電子回路もド素人なんで勘弁。
(先の動画ではスイッチ部分をユニバーサル基板に実装)

回路図のつもり。

RaspberryPi GPIO の 3V からタクトスイッチの片方に入る。
タクトスイッチのもう片方から、GPIOの24と、抵抗をはさんでGNDへ。
大電流が流れないようにする抵抗らしい。よくわかってない。残念。

コード

コードの解説

今回はドアに設置するので、ドアが閉まっているときはタクトスイッチが押されており、ドアが開くとスイッチがOFFになるようにした。
ということで、初期値は current、prev どちらもON(GPIO.HIGH)だ。

0.1秒間隔でスイッチの状態をチェックし、ON→OFFになったら音を鳴らすようにした。
簡易的ではあるが前回の値(prev)と今回チェック値(current)が不一致のときだけ音を鳴らす。
音は nazo.ogg でスクリプトと同じ階層に準備しておく。

音はひとつだけでは芸がないので、配列にした。
好きなだけ配列に append すれば、ランダムに choice されて再生される。

SUPER+C のキーボード割り込みで終了。

設置

前述の通り、ドアでボタンを押しておき、離れるとOFFになるようにする。
タクトスイッチをこういう使い方すると職人に怒られそうなので、他のセンサーを使ったほうがいいかもしれないw

ipv6に乗り換える Buffalo WHR-1166DHP3

夜間の ipv4 接続が壊滅的に遅いんで、ipv6に切り替えてみた。

【切り替え前環境】
フレッツ光ネクスト + Biglobe

【切り替え後環境】
Biglobe光 + ipv6

Biglobeのサイトに目を通して、手続きを完了する。
http://support.biglobe.ne.jp/ipv6/
結構面倒くさかったけど、全部オンラインで完結しててよかった。

申し込みしてから1時間程度で「設定変更完了」のメールがきた。マジで?
PC側のipv6を有効にして動作チェックしてみると、確かにipv6でサイトアクセスできる。

https://www.plala.or.jp/ipv6/access/check/

Biglobeの回線チェックをぷららでやるという・・・。

 

ぬへへ。

使った wifi ルータはこれ。

特に ipv6 対応とか書いてなかったので不安だったけど大丈夫。

速度測定するでしょ

ipv4 のときの速度は空いてるときで 3.24Mbps (404.49KB/sec)、
夜間の混んでるときだと 1.0Mbps以下 (125.0KB/sec) だった。

\(^o^)/

wifiルータの限界(100Mbps)きてるwww 買い替えなきゃwwww

Zorin OS 12 + iPhone でテザリング

Zorin OS 12 + iPhone でテザリング…

挿しただけでいけた。

外で仕事することになり、テザリングを使うことになった。
いろいろパッケージを追加しなきゃいけないのかと思ったら、ライトニングケーブル挿しただけで認識した。
速度、安定感ともに全く問題なし。
技術の進歩はホントすごいわ(ヽ´ω`)

python で住所から座標を取得する(ジオコーディング)

python で住所から座標を取得する。いわゆる GeoCoding ってやつ。
さがしてみると pip からインストール可能なライブラリがある。

https://pypi.python.org/pypi/pygeocoder

早速インストール。

ためしに以下のような簡単なスクリプトを書いて、実行してみる。

「(-18.8228423, 169.1548533)」というアウトプットが得られた。
こいつを Google Map で表示。

https://goo.gl/maps/wTdTKCAG2wy

す、すげぇ…

AWS、Filezilla で SFTP

タイトルの意味わからん。
AWS の ec2 インスタンスに filezilla で SFTP する。
Windows だと WinSCP でやってたやつ。

filezilla を起動して「編集」→「設定」→「SFTP」と進み、鍵ファイル(*.pem)を追加する。
接続先情報は
ホスト→sftp://[ec2インスタンスのIPアドレスかホスト名]
ユーザ名→ec2-user

まぁ別に難しいことはない。

AWS に Aipo インストール …とアンインストール

AWS に Aipo をインストールする メモ。

Aipo はオープンソースのグループウェア。
https://www.aipo.com/

これの検証を頼まれたので、AWSの検証環境にインストールしてみた。
(AWSであれば最初からセットアップ済みのAMIがあるようだけど)

(必須パッケージをインストールしたうえで、)
適当なフォルダにインストーラをダウンロードして解凍し、セットアップシェルを実行するだけ。
スゴイね、最近のは。 コマンドでいうと以下のとおり。

インストールが完了したら、スタートアップシェルを実行。

デフォルト以外の場所にインストールしようとすると postgress のエラーがボコボコでたので、なんかあるのかも。

そうそう、あらかじめセキュリティグループで http を許可しておきましょう。

インスタンス開始時に自動起動

/etc/rc.local にスタートアップシェルを追記すればよい。

を実行して、

を追記。
インスタンスを再起動して動作チェックすべし。

aipo アンインストール

インストールフォルダ削除→ユーザ削除を実行。
再インストール時にでも。

 

Linux ターミナルからAWSインスタンスにSSHログイン

Linux ターミナルからAWSインスタンスにSSHログイン するメモ。

詳しくはこちらを参照。

SSH を使用した Linux インスタンスへの接続
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html

まず、EC2インスタンスを作成した時に指定したキーペアファイルと、Elastic IPアドレスを準備。

で、パーミッションを変更。

続いてSSHログイン。

これでログインできる。

前述したマニュアルによるとSSHログインはデフォルトでは禁止されてるらしいけど、特に設定変更せずにログインできた。
いいのかな?w

 

vista 機から ZorinOS 12 に移行 ・・・を試す

2017 年 4 月 11 日、Windows Vista のサポートが終了。
https://support.microsoft.com/ja-jp/help/22882/windows-vista-end-of-support

Vista 使ってる人なんかほとんどいないだろうけど

職場でお客さんから、Vista 機入れ替えなきゃいけないけど予算組んでないよ〜、っていう声をちらほら聞く。
予算が組めるまで一時的にでも Linux にしたら? って答えるんだけど、なかなか気が乗らないようだ。
Linux にはまだまだ苦手意識みたいなものがあるみたい。

お客さんがやりたいことをまとめてみると、
・インターネット(社内システム) →Chromium or Firefox
・メール →Thunderbird
・Excel →OpenOffice
・PDF →各種ビューワ
という感じで、やっぱ Windows にこだわる必要ないんじゃない? って感じ。

(操作感や見た目がWindowsと似ていてアレルギーを起こしづらいという意味で)
Vista からの乗り換えに向くディストリビューションとしては、
Linux Mint
http://linuxmint-jp.net/

Zorin OS
https://zorinos.com/
が挙げられると思う。

Linux Mint は日本語コミュニティがわりと活発でノウハウも多い印象を受けるので、
今回は Zorin OS の方を試してみた。

Zorin OS のサイトから ISOイメージをダウンロードする。
DOWNLOAD ページの下部の方にある。
Vista 機だったら多分 32bit 、LITE版があればそれがいいと思うが、2017年4月17日時点では無かった。
https://zorinos.com/

isoイメージをDVDに焼くか、ブータブルUSBメモリを作成する。今回はブータブルUSBメモリを使用。
Windowsでの作業はこちらを参考に・・・
http://cloud-work.net/linuxmint/install_usb/

ブータブルUSBメモリを挿してPC起動→BIOS画面で起動オプションを立ち上げる。
例えばDELL製ならF12キー連打。
USB MASS STORAGE とか書いてあるのでそれから起動。

ZorinOSが起動するので、「試す」で一通りさわってみる。
問題なさそうならさっきの手順で再起動して、今度は インストール/Install を選択。

インストールメニューで言語を選択する。 日本語はリストの一番下にある。
タイムゾーンはTokyo、キーボードは日本語。 このあたりはデフォルトでいいはず。
しばし待つ。

インストールが完了したらブータブルUSBメモリを抜いて再起動。

イェーイ! で、このままでは日本語が打てないので、「設定」→「地域と言語」起動。
少し待つと追加パッケージのインストール/更新を促されるので実行。

インストールが終わったら「入力ソース」に「日本語」を追加して再起動。

これで Mozc がインストールされ、日本語入力ができるようになったはず。

おまけ

これより下は好みの世界。

デフォルトのメーラーが「Geary」で、おっちゃんたちがLinuxアレルギーを起こしかねないので、Thunderbirdに変更する。
ターミナルからインストールしてもいいが、せっかくなのでソフトウェア管理からやってみる。
「ソフトウェア」から「Thunderbird」を検索してインストールするだけ。

次にフォントの入れ替え。
デフォルトのフォントで当然問題ないが、愛用する「migmix」に変更。
こちらはターミナルからやるしかない。 以下のコマンドを実行。

インストールが終わったら「Zorin Appearance」の「フォント」タブから以下のように設定。
ちなみに「1P」はプロポーショナル、「1M」が等幅フォント。

設定するとフォント幅が変わって表示がおかしくなるので再起動。

(`・ω・´)ゞ

使ってみた結果

と、ここまでセットアップしてみた感じ、Celeron機ではちょっと重いかもと思ったw
Linux Mint の MATE 版を試してみてもいいかもしれない。

Volumio で Raspberry Pi をオーディオサーバに

Raspberry Pi 3 をオーディオサーバにしてみよう!です。

Volumioって?

  • Raspbianベースのディストリビューション
  • オーディオサーバ機能をまるっとパッケージ
  • NASやUSBストレージに対応
  • 操作は各種ブラウザで可能(内部でwebサーバが動いてる)
  • Apple Air Play にも対応(エミュレートしてる)

・・・という感じで、

  • ラズパイ買ったけどいまいち有効利用できてない
  • 一通り触ってもう飽きた

な諸兄にぴったりな内容となっております。

インストール

volumioはイメージファイル(img)の状態で配布されております。
公式サイトからRaspberryPi用のイメージをダウンロード。

こいつをRaspbianなんかと同じように、Win32DiskImagerなどでSDカードに書き込んでラズパイを起動。
あ、初回はLANケーブルを忘れずに。(DHCPもね)
しばらく待ってから、ブラウザで「http://volumio/」にアクセスすると・・・。

volumio1

こんなんでましたけど!
という感じで非常に簡単です。

wifi設定やらなんやら

右上の歯車マークから色々設定できます。

volumio2

wifi 設定は NETWORK から。
これでLANケーブルからも開放されます。

言語設定を日本語にする場合は APPEARANCE から。
背景画像を変えたりなんてニクいこともできたりします。

USB-DACを使う

ラズパイ自体のアナログ出力はノイズが乗りまくって、音楽鑑賞って感じではありません。
となると HDMI-OUT か DAC を使うことになりますが、今回はお手軽に USB-DAC を使ってみました。

今回使ったのは Signstek MUSE Audio USB-DAC ヘッドホンアンプ。
ケーブル付きでAmazon最安でした。

自分ではんだ付けできる人なら自作キットもあるみたい。
ぼくはキングオブブキヨーなのでムリです。

USB-DACを刺して歯車メニューから「SHUTDOWN」→「Restart」。
起動するまでしばし待ってから、再度歯車メニューから「PLAYBACK OPTIONS」を選択。

volumio3

「Output Device」に「DAC」を選択して「Save」をクリックすればOK。
USB-DACから音が出るはずです。

ヘッドホン等で聴く人はVolumeを10とかにしておいて、徐々に上げていかないと耳が死ぬので注意。

スマフォからアクセスしてみる

スマフォのブラウザから http://volumio/ にアクセス。
名前が引けなければIPアドレスで。

IMG_2969

ぬおおおおお!!!

AirPlayしてみる

iOS端末の下の方をタップしてメニューを出し、AirPlay→Volmio選択。

IMG_2967

IMG_2968

いや、まじこれイイ。

Python で Slack の BOT を作る ~その2~

前回の続き

Pythonを使ってSlackのBOTを作ってみます。
特定のキーワードに反応したりする自動応答スクリプトみたいなものです。

使用するライブラリのインストール

詳しくはココ。

ディレクトリ構造

ディレクトリ構造がちょっと複雑なので、先にディレクトリ構造をのせておきます。

slackbot01

pluginフォルダ → BOTのリアクションはプラグインという形で実装していきます。そのフォルダ。
__init__.py → お約束。
reaction.py → リアクションを記述したスクリプトの実体。
rpi_bot.py → BOTスクリプトの実体。
slackbot_settings.py → BOTの設定ファイル。ファイル名は固定。

rpi_bot.pyの中身

みたまんまです。
Botクラスのインスタンスを生成してrun()しています。

slackbot_settings.pyの中身

BOTの設定を記入していきます。
前回控えておいたAPI_TOKENを記入します。上のは例です。
DEFAULT_REPLYはメンションを受けたとき、該当するリアクションがない場合の返事になります。

reaction.pyの中身

ようやくリアクションの中身に入っていきます。

reaction1メソッドは参加しているチャンネルの発言に特定のキーワードが含まれていたときのリアクション。
トリガとなるキーワードは @listen_to 属性で指定しています。

reaction2メソッドはメンションに対するリアクション。
トリガとなるキーワードは @respond_to 属性で指定しています。

実行してみる

↓チャンネルに対するリアクション

slackbot02

↓メンションに対するリアクション

slackbot03

できた。

あーつかれた(ヽ´ω`)
文字コードの指定漏れなんかで大変苦労しました。
pythonはunicodeの扱いが厄介です。
これがなければ日本でもっと広まってたかもしれませんね。