導通チェッカ

導通チェックだけを行うのに、いちいちテスターを取り出すのも煩わしい。
他にも測定するものがあったり、複数ヶ所の導通チェックを行うならテスターでもよかったのだけど、2~3ヶ所程度だと、導通チェッカのほうが手軽な気がしてきた。

キットもいくつかあるし、ネットを探せばいくらでも出てくる。
でも作るのであれば、小型の物がほしいなと思った。
そこで見つけたのが、ChaNさんのELMで見つけた回路内導通テスター(旧)( http://elm-chan.org/works/ict/report.html)だった。

もう一つ新型のチェッカがありマイコンを使った作例だったけど、プログラムの書き込みがちょっと面倒かなと思って、旧型のほうを作ることにした。
その際、表面実装の部品を使うことで小型化することにした。

ケースについてはタカチのCS型コイン電池収納型プラスチックケース(ホワイト)【CS90-W】を使うことにした。
http://www.marutsu.co.jp/pc/i/136840/
http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-0JE8
ict04

表面側に来る側には以下の部品を実装。
ムラタ表面実装圧電サウンダ(トランスデューサ/圧電スピーカ/)
http://akizukidenshi.com/catalog/g/gP-05723/
縦型スライドスイッチ
http://eleshop.jp/shop/g/gC5U121/
ict01
別の作品でも使ったけど、このケースにこのスイッチはぴったりなサイズ。

反対側の様子。
ict02

IC周辺の様子。
かなり無理をしている感じになってしまった。
ChaNさんみたいにきれいに配線できるようになりたいものだ。
ict03

でも、おかげで手軽に導通チェックができるようになったので満足している。

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

Raspberry PiでPCA9515を使ってLCDを表示してみる

先日作ったトラ技付録のApple Piの記事の中に、RasberryPiでLCDが表示できない件についてコラムが載っていた。
RaspberryPi側のプルアップ抵抗が小さく、デバイス側のLレベルが既定の電圧まで下がり切れないのが原因とのこと。
このことについては某巨大掲示板ではだいぶ前に判明していて、SDAとGNDの間に抵抗を挟むとか対策があったけど、それをやるならi2cレベルコンバータ(これとかこれ)が使えないかなとか考えていたけど、面倒だったのでほったらかし状態になっていた。

で、先のトラ技付録ではPCA9515Aを使って対応していた。
コラム中にある写真にはテキサス・インスツルメンツ社と説明書きされているが、実際に載っている写真はどう見てもNXP社のPCA9515Aの写真である。
PCA9515A
販売されている部品セットではテキサス・インスツルメンツ社の物が入っていたけど。

そのトラ技が出版されてしばらくしてから、PCA9515Aを秋月電子で取り扱いを始めたので早速入手して遊んでみることにした。

i2crep01
今回作った2作品。
左のはブレッドボード用にPCA9515Aを2つ積んだもの。
右はi2c LCDの確認用に作ったもの。

i2crep02
5ピンコネクタのメス-メスケーブルでRaspberryPiの1,3,5,7,9ピンとつなげばすぐ使えるようにしてある。
RasspberryPi側とつながる方は2段のコネクタにしてあり、GPIO4をEnable用に使う場合は下段に、Enableを使わない場合は上段につなぐようにしてある。
もちろん、余った側から別のi2cデバイスにつなぐこともできる。
右のデバイス側のコネクタは3.3VとGNDを2本分出していて、LCD側に/Reset端子とかあったり、バックライト用だったり使えるようにしてある。
また、デバイス側のプルアップ抵抗の実装の有無に合わせてスライドスイッチでプルアップ抵抗を使うか使わないか選択できるようにしてある。

i2crep03
ブレッドボード用は最初PCA9515Aを1個だけ使用と考えていたけど、基板のサイズがどうしても中途半端になってしまうので、2個積んで28ピンサイズにすることにした。
RaspberryPi側につながる方は、オス-メスの6ピンコネクタで1,3,5,7,9,11ピンとストレートでつなぐことができるようにしてある。
この場合GPIO4が1側のEnableを、GPIO17が2側のEnableを制御できるようになる。
こちらもスイッチでSDA/SCLのプルアップの有無を選択できるようにしてある。
ブレッドボードでの使用を想定しているので、/Reset端子用に10KΩでプルアップされたピンも準備して、ブレッドボード上に別にプルアップ用の抵抗を準備しなくてもいいように作ってある。(というかピンが余ったからそうした)

i2crep

まずはLCDを直接つないでみた場合

pi@testhard01:~/script$ 
pi@testhard01:~/script$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] 
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
pi@testhard01:~/script$ 
pi@testhard01:~/script$ 
pi@testhard01:~/script$ ./i2c-disp-aki.sh -ic Akizuki
pi@testhard01:~/script$ 

i2crep04
秋月の8桁×2行のLCDはちゃんと認識して表示される。

pi@testhard01:~/script$
pi@testhard01:~/script$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@testhard01:~/script$
pi@testhard01:~/script$
pi@testhard01:~/script$ ./i2c-disp-sbl.sh -ic Strawberry
pi@testhard01:~/script$ ./i2c-disp-sbl.sh -p 0x40 Linux
pi@testhard01:~/script$

i2crep06
ストロベリー・リナックスのLCDも認識して表示もできる。

pi@testhard01:~/script$
pi@testhard01:~/script$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@testhard01:~/script$
pi@testhard01:~/script$

i2crep05
秋月の16桁×2行のLCDは認識できない。
ゆえに表示もできない。

次にPCA9515を使って表示してみる。
i2crep07i2crep09
秋月の8桁×2行のものとストロベリー・リナックスの物は変わらず表示される。

では、問題の秋月の16桁×2行のLCDで使用してみる。

pi@testhard01:~/script$
pi@testhard01:~/script$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@testhard01:~/script$
pi@testhard01:~/script$
pi@testhard01:~/script$ ./i2c-disp-aki.sh -ic Akizuki
pi@testhard01:~/script$ ./i2c-disp-aki.sh -p 0x40 "AE-AQM1602A"
pi@testhard01:~/script$

i2crep08
今度はちゃんと認識して文字を表示されるようになった。

続いて、ブレッドボード用に作った物の確認をしてみる。
i2crep10i2crep11
それぞれ単体での動作確認をして正しく動くことを確認。

それでは、今度はLCDを2台つないでそれぞれ別々に表示させてみる。
まずGPIO4と17を出力に設定して、両方をLレベルに設定。

pi@testhard01:~/script$
pi@testhard01:~/script$ echo 4 > /sys/class/gpio/export
pi@testhard01:~/script$ echo 17 > /sys/class/gpio/export
pi@testhard01:~/script$ sudo sh -c 'echo low > /sys/class/gpio/gpio4/direction'
pi@testhard01:~/script$ sudo sh -c 'echo low > /sys/class/gpio/gpio17/direction'
pi@testhard01:~/script$
pi@testhard01:~/script$
pi@testhard01:~/script$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@testhard01:~/script$
pi@testhard01:~/script$

もちろん両方のEN端子がLレベルなので、LCDは認識されない。

続いて、それぞれのEN端子をHレベルにして各LCDに文字を表示させてみる。

pi@testhard01:~/script$
pi@testhard01:~/script$ sudo sh -c 'echo low > /sys/class/gpio/gpio17/direction'
pi@testhard01:~/script$ sudo sh -c 'echo high > /sys/class/gpio/gpio4/direction'
pi@testhard01:~/script$
pi@testhard01:~/script$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@testhard01:~/script$
pi@testhard01:~/script$ ./i2c-disp-sbl.sh -ic Strawberry
pi@testhard01:~/script$ ./i2c-disp-sbl.sh -p 0x40 "Linux lcd1"
pi@testhard01:~/script$
pi@testhard01:~/script$
pi@testhard01:~/script$ sudo sh -c 'echo low > /sys/class/gpio/gpio4/direction'
pi@testhard01:~/script$ sudo sh -c 'echo high > /sys/class/gpio/gpio17/direction'
pi@testhard01:~/script$
pi@testhard01:~/script$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
pi@testhard01:~/script$
pi@testhard01:~/script$ ./i2c-disp-sbl.sh -ic Strawberry
pi@testhard01:~/script$ ./i2c-disp-sbl.sh -p 0x40 "Linux lcd2"
pi@testhard01:~/script$

i2crep12
これで複数のLCDをコントロールすることができるようになった。

ちなみに、以前作ったスクリプトをさらに改修。
初期化の際、1度目のi2csetコマンドが失敗してもリトライするように修正。
さらに秋月のLCDとストロベリー・リナックスのLCDではコントラスト調整等のパラメータが微妙に違うので、それぞれ2つに分けた。
秋月やストロベリー・リナックスではこれ以外のLCDも扱っているし、それ以外のところでもLCDを扱っており、場合によってはさらにパラメータが違ってくるので、オプション指定でコントラスト等の調整ができるような改修も必要かもしれない。

i2c-disp-aki.sh

#!/bin/bash
function usage {
    echo "Usage: $0 [-ic] [-p pos] message" > /dev/stderr;
    echo "       -i : LCD init, -c : Clear Screen" > /dev/stderr
    echo "       -p : position (0:top left, 40:bottom left)" > /dev/stderr
    exit 1
}

function abort
{
   echo "$@" 1>&2
   exit 1
}

[ $# = 0 ] && usage

while getopts "icp:" flag; do
    case $flag in
        \?) usage ;;
        i)  i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
            if [ $? -ne 0 ]; then
                echo "i2c error:initialize step1. retry initialize" 1>&2
                sleep 1
                i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i || abort "i2c error:initialize step1"
            fi
            sleep 0.25
            i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i || abort "i2c error:initialize step2"
            sleep 0.05
            ;;
        c)  i2cset -y 1 0x3e 0 0x01 || abort "i2c error:clear screen" ;;
        p)  i2cset -y 1 0x3e 0 $((OPTARG+128)) || abort "i2c error:set position" ;;
    esac
done
shift $((OPTIND-1))
[ $# = 0 ] && exit

LANG=C
MSG=`echo -n "$1" | perl -pe '$_=join" ",map{ord }split//'`
#echo $MSG
i2cset -y 1 0x3e 0x40 $MSG i || abort "i2c error:display string"

 

i2c-disp-sbl.sh

#!/bin/bash
function usage {
    echo "Usage: $0 [-ic] [-p pos] message" > /dev/stderr;
    echo "       -i : LCD init, -c : Clear Screen" > /dev/stderr
    echo "       -p : position (0:top left, 40:bottom left)" > /dev/stderr
    exit 1
}

function abort
{
   echo "$@" 1>&2
   exit 1
}

[ $# = 0 ] && usage

while getopts "icp:" flag; do
    case $flag in
        \?) usage ;;
        i)  i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x78 0x5e 0x6c i
            if [ $? -ne 0 ]; then
                echo "i2c error:initialize step1. retry initialize" 1>&2
                sleep 1
                i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x78 0x5e 0x6c i || abort "i2c error:initialize step1"
            fi
            sleep 0.25
            i2cset -y 1 0x3e 0 0x0c 0x01 0x06 i || abort "i2c error:initialize step2"
            sleep 0.05
            ;;
        c)  i2cset -y 1 0x3e 0 0x01 || abort "i2c error:clear screen" ;;
        p)  i2cset -y 1 0x3e 0 $((OPTARG+128)) || abort "i2c error:set position" ;;
    esac
done
shift $((OPTIND-1))
[ $# = 0 ] && exit

LANG=C
MSG=`echo -n "$1" | perl -pe '$_=join" ",map{ord }split//'`
#echo $MSG
i2cset -y 1 0x3e 0x40 $MSG i || abort "i2c error:display string"
カテゴリー: RaspberryPi, 電子工作 | コメントする

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, 電子工作 | コメントする