RaspberryPiとアクリル板とネジ

話が前後してしまうが、RaspberryPiの公式LCDについてきたネジ付きスペーサーがきつくて、ネジが締めづらい状態だった。
海外製のものは、加工が雑でネジが締めづらいってのはよくあることだ。
160723-rpi01
無理して最後までねじ込むことはできるのだが、そうすると今度は外すときにスペーサーごと回って取り外すのに苦労する羽目になる。
それとは別に、基板が剥き身のままなのも気になっていた。

話は変わるが、この前のトラ技の基板を見てトラ技と部品セットとRaspberryPi 3 Bを衝動買いしたわけだが、作例のようにケースに収めるのはちょっと違うかなと感じていて、アクリル板に取り付けるというシンプルなものにしようと思った。
アクリル板の残材がいろいろあるので、それを使えば十分だろうと考えたのだが、サイズに合わせて切って穴をあけるの面倒だなと思った。

そんなことを考えながら適当にネットを見て回っているとちょうどいいものが。160723-rpi02
共立から出ているRaspberry Pi Model B シンプルアクリルベースなるものが。
これを買えばトラ技基板用のアクリル板と、LCD用のアクリル板の両方が確保できる。160723-rpi07
トラ技基板のほうは基板とアクリル板を組み合わせるだけなので、すんなり完了。

問題はLCD側である。
LCD側は2.5mmのネジを使っているのだが、2.5mmのネジは入手が困難。
ヒロセでかろうじて2.5mmのネジを見つけたが、スペーサーとかも考えるとちょうどいいものが見つからない。
しかもLCD側のスペーサーのネジがきついのでこれも直さないとならない。
2.5mm用のタップがあればそれでネジ穴を切りなおせそうなのだが、ネジを扱っているところがほとんどないので当然タップも見つからない。
amazonで見つけることができたが、これだけのために取り寄せるのももったいない。
幸い、2.5mmネジと2.6mmネジはネジ山の間隔が同じなので、2.6mmのタップでネジを切りなおすことにする。
160723-rpi03
ネジ山の間隔が同じで0.05mm削るだけなのでそれほど力をかけずに楽に加工ができた。

160723-rpi04
他のスペーサーも同じように加工し、2.6mmネジ付きスペーサを取り付ける。
アクリルベースについてきたスペーサーは高さ8mmの物なので、それに合わせて同じ高さのネジ付きスペーサを購入。
2.6mmネジ付きスペーサは西川電子で購入することができた。

160723-rpi05
こちらもアクリル板を取り付けて完了。
これでLCD側の問題も解消できでちょっと満足。

160723-rpi06

カテゴリー: RaspberryPi | コメントする

トラ技付録基板とRaspberryPi 3

トラ技の今月号(2016年8月号)の付録基板がおもしろそうだったので、早速買って作ってみる。
rasapp001rasapp002
実際作ってみて気になったこと。
LED1,2がまぶしすぎるので、手持ちのチップ抵抗を使って変更。
R5を200Ω→300Ωに、R6を200Ω→620Ωに変更してみたがそれでもまぶしすぎたので 光拡散キャップを二重にかぶせた。
ここ何年か思うのだけど、最近のLEDまぶしすぎるの何とかならんだろうか。

次にR3の22Ωだが、部品セットについてくるLCDはバックライト無しのタイプなのでこのままでは意味はなし。
ストロベリーリナックスでバックライト有りの同等品があるので、多分これが使えればバックライトを光らせることもできると思うけど、試してみた人っているのかな?

LCDを表示させるためにinitLCD.shを実行してみるが、電源投入後の1回目はなぜかError: Write failedで失敗する。
電源投入後にi2csetコマンドで打っても1回目は失敗したのでいったいなぜだろうか。
でも、何回か遊んでいるうちに失敗しなくなったと思ったけどやっぱり1回目はエラーで失敗していた。
なぜだ?

getSW5.shの中身を見ると、読み取るべきGPIOの番号が間違っているので修正してやる必要あり(2か所ある27となってるところを26に直す)。
これはそのうち修正されるのだろうか。
ちなみにSWの状態を試す場合は真っ先にinit.shを実行するかsudo ./pullup.pyを実行してあげないと内部でプルアップしてくれないので注意すること(これは誌面に書いてある)。

そういえばRaspberryPi 3について、最初のころに発売されたものと最近のものでは箱のデザインが違っている(RS製の物)。
rpi3-01rpi3-02
上の紫の箱が初期のもので、下の赤いほうが最近の物。
初期の物は技適マークが印刷されていないため、中央の空白部分に銀色の技適マークのシールが張られていた。
最新の箱にはあらかじめ技適マークが印刷されている。
rpi3-04

でも、初期の技適シールのほうが良かったなと思う。
最初に買ったものはシールをきれいにはがして直接RaspberryPi 3に貼ってある。
もうちょっとシールのサイズを変えればRaspberryPi 3に直接張っても邪魔にならないような気がするのだがなぁ…
rpi3-03

カテゴリー: RaspberryPi, 電子工作 | コメントする

ティロフィナーレ

休みの日、適当にあちこち歩き回っていたら、ティロフィナーレというマンションを見かけた。
ニュースで一時話題になっていたけど、そのマンションとは別のマンションだったので、他にもないか何となくググってみる。

結構あるのな。
なんか近場の物件ばかり出てきたけど、探せばもっとあるのだろうな。

ティロフィナーレ北砂
http://www.athome.co.jp/bldg-library/tokyo/koto/708615/

ティロフィナーレ四つ木
http://suumo.jp/library/tf_13/sc_13122/to_0002596285/

ティロフィナーレ
http://toushi.homes.co.jp/%E7%89%A9%E4%BB%B6%E8%A9%B3%E7%B4%B0/%E7%89%A9%E4%BB%B6%E6%A6%82%E8%A6%81/320240004358/

ティロ フィナーレ 松戸B
https://minimini.jp/hylist/00010012/1210776075/

ティロフィナーレ柴又
http://www.koiwa-cjs.com/detail/10566021940001.html

カテゴリー: ひとりごと, マンガ・アニメ | コメントする

7インチ IGZO LCDパネル その3

背面の基板が丸出しの状態で若干使いづらいので、背面にカバーを付けることにする。
ハンズで切り出してもらったアクリル板のあまりの部分を使って、必要なパーツを作る。
大きめのものや正確さが必要なところ、数が多い場合はハンズで加工してもらって、ある程度誤差があっても何とかなるところは自分で加工したりするので、残材は必ず持ち帰るようにしてある。
lcd3-01
だいぶ前に自作した曲げ加工用のヒーターで加熱して曲げ加工をする。
ヒーターも若干手直ししてあるとはいえ、こんなに何度も出番がくるとは作った当時は思ってもみなかった。
さすがに慣れてきたので、だいぶ正確にきれいに曲げることができるようになってきた。

lcd3-02lcd3-03
加工したパーツを接着したところ。

lcd3-04
背面にカバーを付けると電源・輝度調整ボタンが押せなくなるので、延長用端子のところにロープロファイル用のピンソケットを半田付けして、スイッチを取り付けられるようにする。
ピンソケットはのほうは難なく穴に入ったので、I2Sのほうもソケットのほうを取り付ければよかったかもしれない。
ヘッダよりソケットのほうが取り外したときあまり邪魔にならないし。

lcd3-05lcd3-06
タクトスイッチを背面カバーに取り付け。

lcd3-07lcd3-08lcd3-09
スイッチを取り付けてカバーをしたところ。
フィルム基板用の穴を半分だけふさぐようにサイズを調整してあるので、ケーブルを押さえつけるような形になっている。
前はフィルムが浮き上がって不格好だったのでマスキングテープを使って押さえつけていたが、それはそれで不格好だったので、これでだいぶ見栄えはマシになった。

lcd3-10
アクリル板の残材を使ってスタンドを作成。

lcd3-12lcd3-11
スタンドの立てかけたところ。

lcd3-13
完成したLCDパネルを改めて表示させてみたところ。
0.3mm厚の艶消し黒の塩ビ板で枠を作って、表面のアクリル板と2枚目の枠との間に挟み込んで枠とLCDの間の隙間を隠すようにした。
透明のアクリル板と黒アクリル板やLCDと密着させると、波紋状の模様が浮かんでくるのが気になっていたのだが、これだと枠の部分に模様は浮かんでこないし、LCDと表面のアクリル板の間に隙間が空くので、こちらも模様が浮かんでこなくなって一石二鳥だった。
固定していたネジも枠となじむよう黒のトラスネジに変更した。
写真は以前作ったアンプをつないで音楽を流してみたところ。

カテゴリー: 電子工作 | 1件のコメント

7インチ IGZO LCDパネル その2

LCDのI2Sから音声を出力するのにいいものがないかとググったところ、ちょうどいい感じのものがサンハヤトから出ていた。
ハイレゾリューションオーディオDACモジュール MM-5102
lcd2-01

DAC用ICのPCM5102Aが使用されていて、周辺の回路も一部実装済みの状態でピンのピッチ変換もされているので実に使いやすいモジュールだった。
サンハヤトのサイトから説明書のPDFをダウンロードしてさっそく組み上げてみる。
lcd2-02
ちょっと、右側に部品が偏ってしまった。
モジュールはもう少し左に寄せて乗せるべきだったかな。

lcd2-03
できた基板を、あらかじめ準備していたスペースに取り付ける。

lcd2-04
2×4ピンのピンソケットがどうしても見つからなかったため、2×5ピンのソケットを無理やり加工。

lcd2-05lcd2-06
LCDの基板とDAC基板を接続したところ。
LCDの取説とDACモジュールの取説をよくよく眺めてみると、モジュールの接続例にある「(a)Raspberry Pi Model A またはModel B の場合」の図にあるP5コネクタと、LCDのI2Sコネクタのピンアサインがまったく同じだった。
もしかしたら、RaspberryPi用に作られたDACモジュールをそのまま載せられるように作ってあったのか。

本当ならLCD基板側はロープロファイルのピンヘッダを使いたかったのだけど、ピンの太さの関係でLCDの基板の穴に入らなかったため、ノーマルサイズのピンヘッダとソケットを使う羽目に。
よくよく考えたら、ピンを押し込んでロープロファイルの高さにすればよかったのではないかと思ったのも後の祭りだった。
おかげでコネクタのところだけ出っ張ってしまってどうしたものか。

接続も終えて、実際の音が鳴るか確認。
タブレットPCをつないでみて音楽を流したところ、ちゃんとDAC基板から音声が出力された。
スピーカを鳴らすためにはアンプが必要だけど、ヘッドホンぐらいなら直接接続しても十分な音量だった。
オーディオはあまり詳しくないけど出力インピーダンス1KΩで2VRMSってことはアンプ前提なのだろうな。

カテゴリー: 電子工作 | コメントする

7インチ IGZO LCDパネル

秋月のサイトをチェックしていたら面白そうなのを見つけたので、買ってみた。

http://akizukidenshi.com/catalog/g/gM-10016/
2015/12/08
13,000円

共立やスイッチサイエンスでも同じものを扱っている。

http://eleshop.jp/shop/g/gFCI311/
2015.12.18
16,200円

https://www.switch-science.com/catalog/2565/
2015年12月22日
16,200円

買ってみたはいいけど、フィルム基板の部分が何がふにゃふにゃしてなんか破損しやすそうだったので、先になんか固定したほうがよさそうな気がしてきた。

さてどうしたものかと思っていたのだが、フォトフレームのようにアクリル板で挟むことを思いついた。
ただ挟むだけではどうかなと思い、枠も作って挟み込むことにした。

lcd01lcd1-02
まずはアクリル板を加工。
ハンズで切り出してもらって、家で穴あけ加工。
右の写真は角をとるため、手持ちの木材を利用して治具をでっちあげて加工しようとしているところ。

lcd1-03lcd1-04
枠を乗せたところと、LCDを入れたところ。
大穴をあけるのはめんどくさいので、棒状に加工してもらった4本を枠の形に接着している。

lcd1-05lcd1-06lcd1-07
アクリル板に基板取り付け用の穴をあけて、穴に合わせてポリナットを接着する。
単純に乗せているのではなく、穴をあけてからねじ止めして接着剤を流し込んである程度固まったらねじを取り除いている。

lcd1-08lcd1-09
I2S用のコネクタを半田付け。

lcd1-10lcd1-12lcd1-11
コネクタへ取り付け。
かなり細かいので結構神経使う。

lcd1-13lcd1-14lcd1-15
アクリル板へ取り付けたところ。
基板が重なる部分は低頭ネジを使っている。
LCDの基板だけでなく、秋月のCタイプ基板を乗せられるようになっている。

lcd1-16lcd1-17lcd1-18lcd1-19
Raspberry Piをつないで表示させたところ。
壁紙はりくごうさんの漫画から。
文字がかなり細かい。
あらかじめ/boot/config.txtに設定を書き込んでおく必要があるので、秋月のサイトにあるファイルを参考に設定を追加する。

lcd1-20lcd1-21lcd1-23lcd1-22
タブレットPCにつないでみたところ。
PCの環境にもよるのだろうが、自分のPCでは1920×1200しか選択できなかった。

いま所有しているモニタの中で一番小さいのに一番解像度がでかいモニタになってしまった。
結構きれいに映るのだが、文字が細かくて読むのがちょっと大変。
まだ暫定的なもので、この後はI2Sの端子から音声を出力できるようにしたい。
あと、アクリル板の枠とLCDの間の隙間が気になるのでちょっと何とかしようと思う。

 

カテゴリー: 電子工作 | コメントする

電車で見かけたヴァカ者ども

今日も相変わらず体調がよくないので定時に帰ることにしたのだが、その帰りの電車の中で邪魔な連中を見かけた。

5,6人で輪になって話し込んでいるようだったが、混雑して周りがぎゅうぎゅうの状態にもかかわらず、場所を詰めようとしない。
しかも、扉が開いてもその場所からどこうとしないので、乗り降りしようとする乗客の邪魔になっている。
20151207
皆スーツを着ていたようだが、会話の内容から大学生だったのかしら。
どういう教育を受けたらこのようなマナーのない気配りのできないクズ人間に育つのだろう。

こういった連中を何とかするいい方法って何かないものか。
もうちょっといい場所がとれてたら、ど真ん中つっきて電車から降りるのもありかもしれない。

カテゴリー: ひとりごと | コメントする

Raspberry PiにLCDをつけてみた

Raspberry Piで遊んでいると困るのが、リモート接続しようとするとDHCPで払い出されたIPアドレスがわからないことだ。
起動時にディスプレイとキーボードでもつけたり、UARTで接続でもしていればコマンド一つで確認できるけど、わざわざ起動時にそんなことをするのもめんどくさい。

ということで、LCDにIPアドレスを表示させてみようと思った。

いくつかLCDを買ってしばらく遊んでみるが、どうも相性の良し悪しが激しいようで利用可能なLCDはそれほど多くないようだ。
ストロベリー・リナックスで販売されているLCDがサイズ的にもちょうどよさそうなので、これを使ってみる。
I2C低電圧キャラクタ液晶モジュール(16x2行)[バックライト付](写真左上)
I2C低電圧キャラクタ液晶モジュール(16x2行)
lcd001
マルツからも同等のLCDが出ている
液晶モジュール【MI2CLCD-01】(写真右上)
LCDモジュール 16*2LINE【BO1602DGRNJB$】(写真下)

続きを読む →

カテゴリー: RaspberryPi, 電子工作 | コメントする

ダミーのsendmail

Raspberry Piを利用してwebサーバを構築してみた。
WordPressやCGIなど入れてみて動作確認したりしている。

WordPressは練習用やプラグインの事前確認用にも使っているのでなかなか便利。
以前はファイルサーバのおまけ機能を使って動作確認していたが、下手をするとファイルサーバよりすらすら動いている。
普通のサーバに比べたらまだまだだけど、動作確認用には十分に働いてくれている。

のだが、一つ気になることがある。

WordPressやCGIなどからメールを送る動作を確認したいが、sendmailやPostfixをインストールしていないので、メールを送信する動作の確認ができない。
sendmailやPostfixをインストールして設定してもいいけど、内部でしか利用しない上に動作確認のためだけでそれらをインストールするのは大げさだし、sSMTPを入れて外部にメールサーバを準備するにしても、外部と通信させてメーラーで受信というのもなんか違う。

内部だけで完結できるような仕組みがあればなとググってみたけど、いいものが見つからない。
Perlで標準入力したものをファイルに出力するものが一つ見つかったけど、簡単な内容だったので、それならシェルスクリプトで自分で作ってみようかと思った。

  • dummysendmail.sh
#!/bin/sh

# メモ
# 変数の意味
#  特殊な変数
#   $0 実行ファイル名
#   $* 全引数
#   $$ PID
#   $? 最後に実行したコマンドの終了コード
#  シェル内で使用
#   $ymdhms 日時
#   $line   readの入力
#   $flag   オプションチェック用
#   $smopti -iオプションチェック

# スクリプト動作用変数(必要に応じて編集)
basedir="/hoge"
outdir="dummymail"

ymdhms=`date +"%Y%m%d%H%M%S"`

outfile="$basedir/$outdir/$ymdhms-$$.txt"

# 実行ユーザ名
exeuser=`id -nu`

#スクリプト始まり
{
    # 情報表示
    echo "X-dummysendmail-date: $ymdhms"
    echo "X-dummysendmail-cmd: $0 $*"
    echo "X-dummysendmail-pid: $$"
    echo "X-dummysendmail-user: $exeuser"
    echo "X-dummysendmail-file: $outfile"

    # -iオプションの有無チェック
    smopti=0
    while getopts ":i" flag; do
        case $flag in
            i)
               echo "X-dummysendmail-opt: -i"
               smopti=1
               ;;
        esac
    done

    # パイプかどうかの表示
    if [ -p /dev/stdin ] ; then
        echo "X-dummysendmail-input: pipe"
    else
        echo "X-dummysendmail-input: direct"
    fi

    # readコマンドで標準入力から読み込む
    # IFS=で先頭末尾の空白を削除しない
    #  -rオプションでバックスラッシュを無視させる
    while IFS= read -r line
    do
        echo "$line"

        # -iオプションがついてないときは「.」で終了させる
        # sendmailに渡された内容を確認できるようにechoは先にして「.」だけの行も表示
        if [ "$smopti" = 0 ] ; then
            if [ "$line" = "." ] ; then
                break
            fi
        fi
    done

} > $outfile
# 実行結果をまとめてリダイレクトしてファイルに書き込み

sendmailっぽく動くように「.」だけの行で終了させたり-iオプションだけは認識できるように作った。

これを適当なディレクトリにおいてln -sコマンドで/usr/sbin/sendmailを作る。
メール受信用のディレクトリは、誰でも書き込めるようにパーミッションを変えておく。

これでsendmailが実行されると、以下のようなファイルが受信用ディレクトリに保存される。

X-dummysendmail-date: 20151028222937
X-dummysendmail-cmd: /usr/sbin/sendmail -t -i
X-dummysendmail-pid: 20512
X-dummysendmail-user: www-data
X-dummysendmail-file: /hoge/dummymail/20151028222937-20512.txt
X-dummysendmail-opt: -i
X-dummysendmail-input: pipe
To: hoge@hoge.hoge
Subject: =?ISO-2022-JP?B?W3Rlc3QgYmxvZ10gGyRCJTMlYSVzJUgbKEI6ICJkdW1teXNlbmRtYWlsIg==?=
X-PHP-Originating-Script: 33:class-phpmailer.php
Date: Wed, 28 Oct 2015 13:29:37 +0000
From: hoge <wordpress@xxx.xxx.xxx.xxx>
Message-ID: <4c02a3b0d7eeecdf9a4f005c14c478f9@xxx.xxx.xxx.xxx>
X-Priority: 3
X-Mailer: PHPMailer 5.2.10 (https: //github.com/PHPMailer/PHPMailer/)
Reply-To: "hoge@hoge.hoge" <hoge@hoge.hoge>
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP

投稿 "dummysendmail" に新しいコメントがありました
投稿者: hoge (IP: xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx)
メールアドレス: hoge@hoge.hoge
URL: 
コメント: 
dummymailのreadコマンドに-rオプション追加して、WP Multibyte Patchプラグインを有効化した

この投稿へのすべてのコメントはこちらです:
http: //xxx.xxx.xxx.xxx/hogeblog/?p=161#comments

パーマリンク: http: //xxx.xxx.xxx.xxx/hogeblog/?p=161#comment-12
ゴミ箱に移動する: http: //xxx.xxx.xxx.xxx/hogeblog/wp-admin/comment.php?action=trash&c=12
スパムとしてマークする: http: //xxx.xxx.xxx.xxx/hogeblog/wp-admin/comment.php?action=spam&c=12

これはWordPressのコメント通知を受け取った例。
X-dummysendmailで始まるフィールドはdummysendmail.shが動作した時の情報を付与して、それ以降は標準入力で受け取ったデータをそのまま張り付けているだけ。
IPアドレスやメールアドレスは加工して、勝手にリンクが張られるのでhttp:の後にスペース入れているけどこんな感じでファイルに保存されます。

ファイル名にPIDまで入れているのは、まずありえないと思うけど、同時起動で秒まで一致した時にファイル名が競合しないようにするため。

2行目のX-dummysendmail-cmdフィールドは、sendmailコマンド実行時のオプションが何か記録するため。
X-dummysendmail-optフィールドは-iオプションがついていることを確認するためだけのもの。
X-dummysendmail-inputは標準入力についていろいろ試していた時の名残りで特に意味はなし。

簡単なスクリプトだけど、これでsendmailやPostfixをインストールして設定したり、外部にメールサーバを準備したりせずに実行したらすぐファイルで確認することができるようになった。
一応dummysendmail.shが付与する情報もヘッダのフィールのていをとっているので、PCに保存して拡張子をemlに変更すればメーラーで確認することもできるはず。

保存したメールもブラウザで確認できるようにできれば一番だけど、そうするとPerlで組まないとダメだろうし、そこまで作る気力も無いなぁ・・・

ちなみに、ググりながら標準入力を表示させるという下のような簡単なスクリプトを作って試して、そこからいろいろ付け足しながら作っていった。

#!/bin/sh
if [ -p /dev/stdin ] ; then
    echo "input : pipe"
else
    echo "input : direct"
fi

while read line
do
    echo "$line"
done
カテゴリー: Linux, RaspberryPi | 1件のコメント

今週のリアアカ

マガジンの今週号(39号)
毎週『リアルアカウント』を欠かさず読んでいたのだけど、今週の内容はちょっと萎えた。
あまりにもあんまりだったので書かずにはいられなかった。

水(お湯)の中に電流が流れても、あんな風に放電した様子はふつう見れないし、あんだけ見えるほど放電していたら、湯船につからなくてもお湯でぬれまくった浴室にいたら周りの人は皆感電してしまうだろう。

しかし、これはありきたりの表現だし、電流が流れていることを表現するのに一番わかりやすい表現なのでそれはまだいいほう。
普段マンガやアニメ見てもそんなところにはツッコミいれないし、実写で下手くそな合成を見て、もっとうまく合成しろよとか思っても、感電しても人は光らないとか骨が見えたりしないなどと野暮なことは言わない。

それ以上に気になったのが、スマホや携帯電話が水没したところで人が感電するほど強い電流は流れないし、モバイルバッテリごと水没してもやはり感電はしないだろう。
コンセントまで延長コードでつないでACアダプタ(充電器)ごと水没したら、それは感電してもおかしくないが、描写を見る限りせいぜいモバイルバッテリが繋がっているぐらいだ。
それよりも前に防水ケースとか言っていたのに、防水の意味がない。
好意的にとらえるのなら、落ちた衝撃でケースから外れたとでも思えばいいのかしら。

そして、水着を絶縁体として使った描写があるが、水に濡れた布が絶縁体の役割を果たすわけないだろう。
水(お湯)が電気を伝わるのだから、水に濡れてしまった布はよく電気を通すだろうと。

いくらなんでも今週の内容はないわと思ってしまった。

カテゴリー: マンガ・アニメ | コメントする