トラ技付録のπduinoを組み立ててみた

トラ技の17年2月号をみてどうしようかなと思って、結局買ってしまった。
なんか最近のトラ技って、Raspberry Pi用の基板が付録されていることが多いな。
けど、今のところApplePiと今回のπduinoしか買ってないけど。


作ってみたけど、またATMEGA328を載せてなくて単体での動作確認もまだ。
ところでこれの接続はリボンケーブルで相互に接続するのだが、なんか見た目が良くない。

πduino側しかつないでないけど、なんか恰好悪い。
なんか、リボンケーブルを使わなくても接続できるものが準備されるらしいが、それもちょっと不満が残る。


散りあえず2枚重ねたところだけど、このうち写真右側の1~14ピンはπduinoとの接続で利用できなくなる。
RaspberryPi側のI2C端子はπduino側では使用していないが、ケーブルで接続するとRaspberryPi側のI2C端子は使用不可になる。
また残りのGPIOピンの上にπduinoが覆いかぶさるので、RaspberryPiのGPIOが若干使いづらくなる。

そこで思いついたのがaitendoで扱っているRaspberry Pi Zero用の基板を使うことだった。
ただ、最初はそのまま使いたかったのだけど、RaspberryPi側の穴位置とπduino側のコネクタの位置が微妙にずれているため、別々の基板にコネクタをつけることにした。

RaspberryPi用の基板は、固定のため穴あけをしたり、余分な部分を切ったりしている。
πduino側のコネクタはロープロファイルの物を使っている。


πduino側は部品セットに付いてきた両端に長いピンヘッダを使って、裏面側にロープロファイルのピンヘッダを接続できるようにしている。


作ったコネクタをπduinoに接続したところ。


接続したところを正面から見たところ。
πduinoと同時にRaspberryPiの40ピンコネクタも同時に使える。
ただ、別件でも書いたけど、aitendoの基板が1mm厚しかなくて若干丈夫さに不安が残る。
ただ、11mmのスペーサーと3mmのスペーサーを使うことで部品セットに付いている15mmスペーサを無駄にしなくてすみのはありがたいかも。
通常の1.6mm厚の基板だと高さの調整をどうしようか悩むところだ。


実際に重ねてみたところ。
これでRaspberryPiのGPIOとπduinoが同時に使うことができるようになった。
あとはπduinoの単体の確認、RaspberryPiのOSの準備、環境構築して実際遊んでみたいところだ。

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

時計いろいろ

昨年12月は、合間合間の時間を使って、いろいろ時計を作った。

買うだけ買ってほったらかしにしてたものや、ジャンクから掘り出したものを作って、今は校正作業中。
朝と仕事から帰ってきたら時刻のずれを確認してトリマコンデンサを少しずつ回して調整しているところ。

左から、数年前に共立電子の通販で買ったT3605のセットを使ったもの(現在販売終了)
次が、ジャンクICの中にMSM5509があったので、それを使ったもの。
多分なんかのキットを作ったけど、処分するときにICだけ取っておいたものだと思う。
その次が秋月電子の1インチ大文字マイコンデジタル時計キット Ver.2
一番左が同じく秋月電子の電光掲示時計キット(スクロールクロックキット) Ver.1(10×10ドット)

まず最初にT3605と蛍光表示管を使ったセットを組んでみる。

セットに付いていた回路をそのまま組んでもよかったが、特にAM/PMの区別なんて特につける必要ないなと思ったので、時計の部分だけ組みことにした。
IC駆動用の5V電源の確保は、ネットでT3605の作例を調べて-5V出力の7905を使うことにした。

まずは、メインの基板を組んだところ。
蛍光表示管用にはピンソケットを用いている。
ICを装着するのに両側のピンヘッダが邪魔で手間取ってしまったが、ICのソケットは平ピンのソケットを使ったほうが装着しやすかったかもしれない。

電源とスイッチ用のコネクタ部分。

両端に長いヘッダを使って表面は通常サイズのピンソケットを、裏面からはロープロファイル用のピンソケットで接続できるようにしている。
この程度の回路規模だと、たいていアドリブ工作になるので、どのようにも組む場合にも対応できるようにしている。


ICと蛍光表示管を取り付けたところ。


通電して、動作確認しているところ。
横から見ると、ICに覆いかぶさるように蛍光表示管がついている。


一通り組み上げたところ。
背面はロープロファイルのピンソケットを使って電源と接続。
前面は普通サイズのピンソケットで配線している。
スライドスイッチのうち中央にあるのは、誤操作防止用のスイッチで、誤って時間設定スイッチを押して時刻がずれないようにしているもの。

次にMSM5509を使った時計。
こっちもネットで作例を調べて回路を組んだ。

一通り組み上げたところ。
メイン基板の表面で、ポリウレタン線を使ったり、ソケット内にも部品を配置したりしている。
電源部分は3端子レギュレータにアルミ板の残材を適当に加工した放熱板をなんとなくつけてみる。
ちなみにこっちもアドリブ工作。

基板の裏面側。
7セグメントLEDの配線にポリウレタン線をふんだんに利用している。
裏面側はロープロファイル用のピンヘッダとピンソケットを使っているように見えるが、実はピンヘッダの方は、両単に長いものを片方をロープロファイルのサイズにずらして、基板の表面から試験用のに通常サイズのピンソケットが接続できるようにしてある。

メイン基板にICを載せたところ。

2枚の基板を組み合わせたところ。

組み合わせたところで、表示・操作部の基板がおいてあるようにしか見えないけど。
こっちにも誤操作防止スイッチがつけてある。
また、ICの仕様で時間調整は1分ボタンと10分ボタンがあって、同時押しで時間を調整できるようになっているのだが、同時押しはめんどくさいので、ダイオードを使って一つのボタンで時間の調整ができるように作ってある。
AM/PM表示や「:」は7セグLEDに合わせて斜めに配置してみたが、よく見ないと斜めってるのがよくわからない状態に。

2枚の基板の接合部分。
接合部分に隙間があるけど、ロープロファイル用のコネクタのサイズがそのようになっているので、それに合わせて調整したピンヘッダもこのようになっている。

先ほども書いたけど、ピンヘッダの反対側にもピンが伸びていて、通常サイズのピンソケットが取り付けられるようになっている。
こちらも動作確認用に準備していたのだけど、結局こっち側のピンは使わずに終わってしまった。

そして実際に動作させたところ。

残り2つの時計は、キットをそのまま組み上げただけなので省略。
ただ、スクロール時計のキットの方は、裏面のPIC取り付け用のソケットは取説では最初につけることになっているけど、もしかしたら最後に取り付けたほうがほかの部品の取り付けには楽かもれない。
ただし、そうすると今度はピンソケットの高さの調整がめんどくさいことになりそうな気もする。
あと、スクロール時計についてきたPICが全然別の物だったので、別途PIC16C65Bを入手して、公開されているファームウエアを焼いてようやく動作させることができた。
あと、使用電波時計キットVer.2も作ったけど、電波がまったく入ってこない部屋(市販品の電波時計や、大人の科学の付録の時計でも電波をつかまなかった)で動作確認がまったくできないので記載すらなし。

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

フリスクケースでレーザーポインター

だいぶ前に秋月でレーザー発行モジュールを買った。
秋月のサイトを確認したら今はもう売ってないらしい。
買うだけ買ってほったらかしだったので、ありきたりだけどフリスクケースに組み込んでレーザーポインターを作ってみた。


スペーサーや基板の固定、スライドしてケースの開け閉めができないように塩ビ板を接着。
基板の方には滑り止め用のスポンジシールを張り付けてケース内でがたつかないようにしている。
レーザーモジュールはL字のピンヘッダの高さを調整して基板に押さえつけるように固定。
レーザーモジュールにはもともとリード線が半田付けされていたが、根本で折れそうで銅線1本だけでつながっている状態だったので、取り外してスズメッキ線で配線。


ケースに入れた状態。
ストラップをつけられるようにしてある。


実際にレーザーを発光させてみたところ。
昨年12月入ってからいくつか工作しているのだけど、合間の息抜きみたいなもので、本当にありきたりな工作だったな。

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

佐川は使うべきではない

最近。佐川急便のニュースがにぎわっている。
交通違反の代理出頭だったり、荷物を蹴ったり叩きつけたり。

そういえば昔、自転車のかごに入れたり、外に設置してある洗濯機に入れてあったとか話題になったこともあったな。

自分は通販で佐川とほかの業者を選べるときは佐川は絶対選ばない。

まず、午前中に配達状況を確認すると配達中になっている。
仕事が終わり家に帰ってみると、荷物が届いていない。
今住んでいるところには宅配ボックスが設置されているので、不在であっても荷物を受け取ることができる。
のもかかわらず届いていない。
遅いなと思っていると、夜9時前になってようやく届く。

もしかすると宅配ボックスの使い方を理解していないので、昼間に不在だったので夜に届けようとしているのかもしれない。

代引きなどでどうしても手取りで受け取る必要がある場合、時間指定や再配達で休日の午前中を指定すると、届くのが11時50分を過ぎてから。
確かに午前中には違いないが、それにしても遅い。

さすがに何度も何度も同じようなことが起こって荷物が届くのがいつも遅いので、問い合わせを入れたことがあったが、それ以降、佐川急便は絶対に選ばないようにしている。

大事な荷物を扱っているという気遣いや法律を守るという気持ちが希薄なのだろう。

通販で佐川しか使えない、先方が佐川で送ったと通知が来たときはもはや期待せずあきらめるしかない。

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

ヨドバシカメラの洗濯機売り場

ヨドバシカメラの家電売場を見てみる。

この前見たときは、auとdocomo光のスタッフジャンパーの人が洗濯機の案内をしてた。
今日見たときは、auとY!mobileのスタッフジャンパーの人が洗濯機の案内をしてた。

各キャリアの代理店の人間が別の売り場に駆り出されたのか、それとも洗濯機と携帯電話とでも抱き合わせ販売でもしてるのか?

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

新旧LCDとError: Write failedについて検証してみた

秋月電子で売られているI2C接続小型キャラクタLCDモジュール 8×2行を利用した製品で、スイッチサイエンスからI2C controlled 8×2LCD Breakout for Raspberry Piが販売されていたのだが、それが販売見合わせとなっている。
そこを見ると、どうやら液晶モジュールの内部仕様変更があったらしい。

前回も触れた内容だが、前回は新型LCDしか使っていなかったので改めて新旧LCDで比較してみた。

左が旧型LCD直結した時で、右が新型LCD直結した時の写真。
旧型LCDの方は/RESETを基板上でプルアップしていないので、ブレッドボード上で10KΩでプルアップしている。
i2crep16i2crep17

旧型LCDは問題なく認識して文字を表示させることができる。

root@rasapp:~# i2cdetect -y 1
     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: -- -- -- -- -- -- -- --
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#

 

新型LCDの方は認識されていない。

root@rasapp:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@rasapp:~#

 

さて、新旧の比較を行ったところで、1回目のi2csetコマンドでError: Write failedとなる件について、TI製PCA9515AとNXP製PCA9515A、旧型LCDと新型LCDの組み合わせを確かめてみた。
TI製PCA9515A → 旧型LCD
TI製PCA9515A → 新型LCD
NXP製PCA9515A → 旧型LCD
NXP製PCA9515A → 新型LCD
i2crep08

root@rasapp:~# i2cdetect -y 1
     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: -- -- -- -- -- -- -- --
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#

どの組み合わせでも確かめてもError: Write failedが発生することはなかった。
見た目は全く同じなのでログは一つだけ貼る。

次に、BME280を組み合わせてみる。
本当ならApplePiと同じものを使いたかったけど、すぐに手に入る秋月のBME280使用 温湿度・気圧センサモジュールキットを使うことにした。
TI製PCA9515A → 旧型LCD + BME280
TI製PCA9515A → 新型LCD + BME280
NXP製PCA9515A → 旧型LCD + BME280
NXP製PCA9515A → 新型LCD + BME280
i2crep18i2crep19

root@rasapp:~# i2cdetect -y 1
     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: -- -- -- -- -- -- 76 --
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#
root@rasapp:~# cd script/ApplePi/
root@rasapp:~/script/ApplePi# ./getBME
24.26C
101060Pa
46.31%
root@rasapp:~/script/ApplePi#

やっぱりError: Write failedが発生することがなかった。

BME280をつないだ時点で再現しなかった時点で意味はないと思うが、最後にRTCをつないだ状態でも確認してみる。
TI製PCA9515A → 旧型LCD + BME280 + DS1307
TI製PCA9515A → 新型LCD + BME280 + DS1307
NXP製PCA9515A → 新型LCD + BME280 + DS1307
NXP製PCA9515A  →旧型LCD + BME280 + DS1307
i2crep11i2crep20

root@rasapp:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#
root@rasapp:~# cd script/ApplePi/
root@rasapp:~/script/ApplePi# ./getBME
24.20C
101050Pa
46.76%
root@rasapp:~/script/ApplePi#
root@rasapp:~/script/ApplePi# timedatectl status
      Local time: 金 2016-10-28 20:22:30 JST
  Universal time: 金 2016-10-28 11:22:30 UTC
        RTC time: 火 1965-07-20 06:36:28
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
root@rasapp:~/script/ApplePi#

結局Error: Write failedの再現せず。

結局キットについてきたLCDとPCA9515Aの個体の問題で、この個体の組み合わせの時だけ発生するだろうか。
ただ、1回目のi2csetコマンドを打ってからプロンプトが返ってくるときに時間がかかっていることがたまにあったので、それがこの組み合わせの時だけ許容できない範囲になってエラーとなったということだろうか。

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

ApplePiのTI製PCA9515AをNXP製PCA9515Aに変えてみた。ついでにセンサで温度を測ってみる。

秋月電子で売られていたI2C接続小型キャラクタLCDモジュール 8×2行について、RaspberryPiに直接つないでも表示されない旨がQ&Aにいつの間にか記載されていた。
以前の製品だと直接つないでも表示できたのだが、最近の物はそれができなくなった。
物によって表示できたりできなかったりしているのは知っていたので、改めてLCDモジュールを買って確かめてみた。
/RESET端子はいちいちプルアップ抵抗を準備するのも面倒なので、チップ抵抗を直接取り付けてみた。
i2crep01

そしてI2Cバスリピーター PCA9515ADの有無で動作を確認してみる。
i2crep02

root@rasapp:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@rasapp:~#

PCA9515ADがない場合、確かに認識しない。

次にPCA9515ADを介してつないでみる。
i2crep03

root@rasapp:~# i2cdetect -y 1
     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: -- -- -- -- -- -- -- --
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#

今度はLCDを認識して文字を表示できる。

ところで、以前ApplePiを作った時に最初のinitLCD.shコマンドはほぼ失敗して2回目以降から成功すると書いたことがある。
ApplePiを取り付けた状態でi2csetコマンドを電源投入直後に打って確認してみる。

root@rasapp:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
pi@rasapp:~ $
pi@rasapp:~ $
pi@rasapp:~ $ i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
Error: Write failed
pi@rasapp:~ $
pi@rasapp:~ $ i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
pi@rasapp:~ $
pi@rasapp:~ $ i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
pi@rasapp:~ $
pi@rasapp:~ $ i2cset -y 1 0x3e 0 0x01 i
pi@rasapp:~ $
pi@rasapp:~ $ i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
pi@rasapp:~ $

1回目のi2csetコマンドでError: Write failedとなるが、2回目以降はコマンドは成功する。
しかし、今回秋月で買ったPCA9515AD(NXP製)を使ってLCD単体をつないだ時にエラーが発生したことがまったくない。
今のままでも動いているけど、毎回エラーが発生しているのも気持ちが悪いので、PCA9515を換装してみることにする。

しかし、PCA9515は温度/湿度/気圧センサの下に隠れている。
i2crep04

何とかセンサを取り外してTI製PCA9515AをNXP製PCA9515Aに交換する。
i2crep05i2crep06
左の写真がTI製PCA9515Aで、右がNXP製PCA9515A。
100円ショップで買ったレンズをつけてスマホで写真撮ったけど、中心はきれいに取れても全体は歪んでしまうのな。
何とかしたいな。

取り外したTI製PCA9515Aは検証用にピッチ変換基板に取り付ける。
もう一つは、以前秋月で買って確認用に準備したもの。
i2crep07
しかしこの写真じゃどっちがどっちかわからないな。

TI製とNXP製の違いについてまずはLCDだけつないで確認してみる。
i2crep08

TI製PCA9515Aの場合

root@rasapp:~# i2cdetect -y 1
     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: -- -- -- -- -- -- -- --
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#

 

NXP製PCA9515Aの場合

root@rasapp:~# i2cdetect -y 1
     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: -- -- -- -- -- -- -- --
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#

電源を抜いてある程度時間をおいてから試験してみたけどやっぱりTI製でエラーが発生しない。

次にRTCをつないなどつないで確認してみる。
i2crep09i2crep10
TI製PCA9515Aの場合

root@rasapp:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# timedatectl status
      Local time: 日 2016-10-23 16:01:39 JST
  Universal time: 日 2016-10-23 07:01:39 UTC
        RTC time: 火 1965-07-20 06:36:28
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
root@rasapp:~#

 

NXP製PCA9515Aの場合

root@rasapp:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# timedatectl status
      Local time: 日 2016-10-23 15:35:22 JST
  Universal time: 日 2016-10-23 06:35:22 UTC
        RTC time: 火 1965-07-20 06:36:28
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
root@rasapp:~#

やっぱりエラーは発生しない。
組み合わせの問題なのか、センサも必要なのかよくわからない。
結局何だったのだろうか。

それともかくRTCの試作基板は少し手直しした。
プルアップ抵抗のON/OFF用のディップスイッチを使っているが、1個分余っていたのでバックアップバッテリーのON/OFFにした。
リセットのためにいちいち電池を取り外したり取り付けたりが面倒だったため。
保管中もずっと動きっぱなしってのも気になったし。
また、公式LCD用に作ったスイッチ基板のLEDも3つにした。
i2crep11i2crep12

とりあえず元の状態に戻して、しばらく時間をおいてから確認してみる。
i2crep13

root@rasapp:~# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x39 0x14 0x70 0x56 0x6c i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x38 0x0c 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0 0x01 i
root@rasapp:~#
root@rasapp:~# i2cset -y 1 0x3e 0x40 0x77 0x61 0x69 0x74 0x20 i
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# timedatectl status
      Local time: 日 2016-10-23 16:46:01 JST
  Universal time: 日 2016-10-23 07:46:01 UTC
        RTC time: 火 1965-07-20 06:36:28
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
root@rasapp:~#

とりあえず時間をおいて起動してからLCDに対してi2csetコマンドを打ってみたけどエラーは発生しなくなった。とりあえず、これはこれでOKかな。
RTCは相変わらずだが。

さて、センサを取り外す際結構時間がかかってしまい長時間熱を加えてしまったので、センサが正しく動いているか確認してみる。

pi@rasapp:~/ApplePi $ ./getBME
28.54C
100732Pa
40.76%
pi@rasapp:~/ApplePi $

温度高いなってちょっと待て。
部屋の温度は24℃ぐらいなのだが。
i2crep14
RaspberryPiを触ってみるとほんのり暖かい。
扇風機を使って放熱してみる。
i2crep15

pi@rasapp:~/ApplePi $ ./getBME
25.24C
100744Pa
47.11%
pi@rasapp:~/ApplePi $

部屋の温度に限りなく近くなった。
次に扇風機を止めて30分以上放置してみた。

pi@rasapp:~/ApplePi $ ./getBME
32.50C
100795Pa
32.30%
pi@rasapp:~/ApplePi $

温度上がりまくりだな。
トラ技の記事にも載っていたけど、センサを使うには延長するしかない。
センサ側にプルアップ用の抵抗が入っていて、それで全体をプルアップしている状態なのでややこしいことになっているのだろうな。

ちなみに、電源を切った状態で数時間放置後に再度電源を入れて温度を測る。

pi@rasapp:~/script/ApplePi# ./getBME
26.36C
100893Pa
47.50%
pi@rasapp:~/script/ApplePi#

RaspberryPiがまだ温まり切ってないので室温に近い温度を示している。

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

公式LCDに拡張してみた

ApplePiを2種類作ったところで、公式LCDに取り付けたRaspberryPiも機能拡張してみたくなった。

そういえばRTCにはDS1307を使ったけど、スイッチサイエンスのミニRTCモジュール(販売終了)などで使われているDS3231を使えればICの大きさはあるけどクロック内蔵のためにほぼ外部部品無しで使えるから便利なんですけどね。
ds3231-1 ds3231-2
端子の半分がNCで(GNDにつながっているけど)実際に使うのは、電源,GND,SCL,SDA,バッテリー,32KHz,INT/SQWの8ピンだけ。
そのうち実際に使うには電源とI2Cに必要な4ピンだけ接続すればいいんで楽なんでしょうけど、ググってみたりAmazon見たりすると、何かしら基板に組み込み済みのモジュールはいくつも見つかるのだけど、いつも行く店のカタログでは単品で扱っているようなところは見つけられなかった。実店舗を探してみるしかないかな。

それはおいておいて、公式LCD用にもハイレゾリューションオーディオDACモジュール MM-5102を載せてみたくなった。
また、RTCを載せてみようと思い、またそのためにPCA9515Aを載せることにした。
LEDは本体の背面にあってもいちいちひっくり返すのかと思ったし、普通に画面に表示させればいいだろうとキャラクタLCDは省略。
でもスイッチはあれば何かの役に立つだろうと思い載せることにした。

基板はaitendoのユニバーサル基板(Pi)[UPi-5665]を使ったけど基板の厚さが1.2mmでちょっと丈夫さに不安が。
サンハヤトのRaspberry Pi(ラズベリーパイ)用ユニバーサル基板 UB-RPI02にすればよかったのだろうけど値段がなぁ・・・

また、RaspberryPiとつなぐコネクタは、LCDとのフラットケーブルの関係で背の高いピンソケットを使うことにした。

後の配線様子。
pilcd02pilcd03

スタッキングコネクタのピンはそのまま使いたいと思っていたのだが、単純に後ろに伸ばすと机と干渉してコネクタの取り付けが不便になりそうだったので、信号取り出し用のパターンにピンヘッダを取り付けることにする。
pilcd05pilcd04pilcd06

タクトスイッチつけることにしたものの、背面だけでは不便だろうと延長して使えるようにもした。
普段はジャンパーピンで基板側のタクトスイッチを使うようにしているが、ジャンパーピンを外してコネクタで別途スイッチ用の基板に延長できるようにした。
スイッチだけではつまらないので、LEDも2つつけてみた。
この辺はApplePiの仕様にこだわる必要もないのでLEDをもっとつけてもよかったんだろうけど手持ちのLEDの種類がバラバラなので、形状が同じものがそろっているこの赤と緑にした。
一応黄色もあったけど、それもつければよかったかな。
pilcd08pilcd09pilcd10pilcd07

実際につないで動作の確認の様子。
SW1~6を同時に確認できるスクリプトを即席で作って確認しているところ。
pilcd11pilcd12pilcd13

RTCはつけたものの、前述の問題のためまだ未設定。

ちなみに仕様の違いは以下の通り。

機能 オリジナル
ApplePi
カスタム
ApplePi
公式LCD
拡張基板
キャラクタLCD 8桁×2行 16桁×2行
アイコン表示
無し
スイッチ 6個 6個 6個
LED 2個 2個+LCDバックライト 無し
外付け基板で対応
IR受信/送信 有り 無し
IR送信はLCDバックライトに流用
無し
温度/湿度/気圧 有り 無し 無し
MM1502(DAC) 有り 有り 有り
RTC 空きスペースに後付け 空きスペースに後付け 有り
カテゴリー: RaspberryPi, 電子工作 | コメントする

オリジナルApplePiとRTC

カスタマイズApplePiについて無事動くことを確認できたので、今度はオリジナルの方にRTCをつけることにした。
と、その前にカスタマイズしたほうのRTCにパスコンを取り付けるため改修する。
rtc12rtc13rtc14
いったん配線を取り外し、パスコン用にレジストを削ってはがしてコンデンサを取り付け。
改めてI2Cの配線を行い改修終了。

ちなみに、DS1307のデータシートを見ると、クリスタルの下の部分にGNDパターンをもって来たほうがいいらしく、ちょうどいい空きスペースでもある。
ds1307-4

ではオリジナルの方にもRTCを取り付けることにする。

未加工の基板の裏側
rtc15
DS1307の取り付け場所は前回と同じところにする。
LCDのバックライト用のパターンがちょうどCR1220用のホルダーのサイズにぴったりなのだが、こちらはLCDを取り付けているため、LCDの足の部分が出っ張ってしまっている。
そのため、0.3mm厚の塩ビ板を両面テープで貼り付け。
rtc17rtc18
そして、DS1307のGND端子とコンデンサ用にレジストを削ってはがしておく。

バックライト用のR3については意味がないことを知りつつも取り付けてしまっていたので、取り外した。
rtc16
ちなみに秋月でも8×2行バックライト付きLCDを扱っていたみたいだ。
バックライト付きを使っていたら電池をつける場所に難儀していたことだろう。

DS1307を基板に取り付けてからクリスタルとバックアップ用の配線をしようとすると、下のGNDパターンに熱を奪われて半田付けしづらくなるので、あらかじめ取り付けておく。
rtc19

クリスタル取り付け済みのDS1307のGND端子とコンデンサを取り付け。
rtc20

次にRC1220用のホルダの加工。
まずは位置固定用の出っ張りも削り取っておく。
塩ビ板を取り付けた関係でそのままでは半田付けできないので、半田付け部分を折り曲げる。
また、背面に金具が見えている部分がちょうどLCDのパターン付近にあるため念のためポリイミドテープで養生しておく。
rtc21rtc22rtc23

RC1220用のホルダを取り付けて、残りの配線を行ったところ。
rtc24

最後に、カスタム版ともども配線を固定するためポリイミドテープとグルーガンで固定したのだが、どうも見栄えがよくないなぁ・・・。
rtc25rtc26rtc27

次に、RTCが使えるようにするために設定を行ったのだが、どうしてもうまくいかない。
カスタム版で設定した時はネットで調べながら試行錯誤して使えるようになったのだが、その手順を踏まえて設定してもうまくいかない。まだ何か足りないのだろうか。

一通り設定を行いRTCに時刻を書き込むのだが、再起動するとRTCから時刻を読み取ることができず、ずっと1965-07-20 06:36:28のまま動かない。
そして、hwclock -wコマンドを実行するとRTCが正常に動きだすが、再起動するとやはり時刻を読み取れない。
またLAN/WLANが繋がっていても繋がっていなくても症状は変わらない。
どうしたものか・・・。

root@rasapp:~#
root@rasapp:~# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+129.250.35.250  249.224.99.213   2 u   13   64    1    8.558   -0.143   0.141
*60.56.214.78    .GPS.            1 u   12   64    1   21.781   -1.361   3.089
 129.250.35.251  249.224.99.213   2 u   55   64    0    0.000    0.000   0.001
+157.7.154.23    131.113.192.40   2 u   43   64    1    8.304   -1.860   0.403
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# date
2016年 10月 17日 月曜日 20:33:54 JST
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# hwclock
hwclock: The Hardware Clock registers contain values that are either invalid (e.g. 50th day of month) or beyond the range we can handle (e.g. Year 2095).
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# timedatectl status
      Local time: 月 2016-10-17 20:34:12 JST
  Universal time: 月 2016-10-17 11:34:12 UTC
        RTC time: 火 1965-07-20 06:36:28
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# timedatectl status
      Local time: 月 2016-10-17 20:45:30 JST
  Universal time: 月 2016-10-17 11:45:30 UTC
        RTC time: 火 1965-07-20 06:36:28
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# hwclock
hwclock: The Hardware Clock registers contain values that are either invalid (e.g. 50th day of month) or beyond the range we can handle (e.g. Year 2095).
root@rasapp:~#
root@rasapp:~#
root@rasapp:~# hwclock -w
root@rasapp:~#
root@rasapp:~# hwclock
2016年10月17日 20時46分07秒  -0.511829 seconds
root@rasapp:~#
root@rasapp:~# timedatectl status
      Local time: 月 2016-10-17 20:46:16 JST
  Universal time: 月 2016-10-17 11:46:16 UTC
        RTC time: 月 2016-10-17 11:46:16
       Time zone: Asia/Tokyo (JST, +0900)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
root@rasapp:~#
root@rasapp:~#
root@rasapp:~#

 

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

カスタマイズApple PiとRTC

以前トラ技の付録のApple Piを作ったのだが、LCDの表示が8桁×2行と少ない。
また、自分では赤外線リモコン機能や温度・湿度・気圧センサはあまり使うことがなさそうだったので、カスタマイズしてみようと思った。

改めて8月号を買って、早速カスタマイズしてみる。
まず、LCDは16桁×2行にしたかったので、I2C低電圧キャラクタ液晶モジュール(16x2行)[バックライト付]を使うことにした。

applepi-lcd
上記のように接続すれば、ハイレゾリューションオーディオDACモジュール MM-5102
に干渉することなく取り付け可能なことがわかった。

appsp01appsp03appsp02
LCDを取り付けるため、3端子レギュレータとトランジスタを表面実装タイプに変更。
3端子レギュレータを低損失CMOS三端子レギュレータ 3.3V150mAに変更。
それに合わせて、C3,C4を1μFに変更し、C1,C2は未使用とする。
赤外線LED用の回路をLCDのバックライト用に流用している。
バックライトも3.3Vから取ればこの辺のトランジスタも不要になるのだが、バックライトのVFが2.7~3.15Vと3.3Vに近いことから、5Vから電源を取っている赤外線LEDの回路を流用することにした。トランジスタは2SC2712-GRに変更し、R4を10KΩ、R7を470Ωに変更した。

appsp07
LCDの/RSTを基板上で10KΩのチップ抵抗でプルアップ。

appsp04appsp05
若干無理やりな感じで、バックライト用の配線を行う。
もう少し細い線を使ってもよかったかも。

appsp06appsp08
LCDを取り付けたら、AppliPi側でNC端子を利用してVDDとGNDを接続。
合わせてSCL,SDAを10KΩのチップ抵抗でプルアップする。

appsp10appsp09
起動時にホスト名とIPアドレスを表示させるスクリプトを実行させるようにした。
以前書いた/etc/network/*.dにスクリプトを置く方法がうまくいかなくなったので、/etc/rc.localにIPアドレスを表示させるスクリプトを実行させている。
ただ、/etc/rc.localで表示させようとしてもタイミング的にIPアドレスを取得できないので、別途IPアドレスを表示させるスクリプトを準備して、バックグラウンドでスクリプトを実行するようにした。
バックライトのON/OFFは既にあるonLED1.*とoffLED1.*をコピーして使用するポートをGPIO13に変更したonLED3.*とoffLED3.*を作成。
他にもinit.shにLED3用の設定を加えたり、LCD関連のスクリプトなどを16桁対応に書き換えたりいろいろ修正している。

/etc/rc.localに以下の内容を追加
ちなみに/root以下にもApplePiを展開してある。

# ApplePi GPIO init
cd /root/ApplePi
./init.sh
./onLED3.sh

# print host infomation
cd /root/script
./ipdisp.sh &

 

/rootにscriptディレクトリを作って、そこにipdisp.shを作成。
16回IPアドレスの取得を試みて、取得できなかった場合はno ip addressと表示するようにしてある。i2c-disp.shは以前作ったスクリプト。

#!/bin/sh

/root/script/i2c-disp.sh -ic `uname -n`
/root/script/i2c-disp.sh -p 0x40

for i in `seq 16`
do
  ipaddr=`hostname -I`
  case "$ipaddr" in
    "")
        /root/script/i2c-disp.sh "."
        ;;
    *)
        break
        ;;
  esac
  sleep 1
done

case "$ipaddr" in
  "")
      /root/script/i2c-disp.sh -p 0x40 "                "
      /root/script/i2c-disp.sh -p 0x40 "no ip address"
      ;;
  *)
      /root/script/i2c-disp.sh -p 0x40 "                "
      /root/script/i2c-disp.sh -p 0x40  ${ipaddr}
      break
      ;;
esac

ただ、LCDを16桁対応しただけではつまらないので、今度はRTCを乗せてみることにした。

まずは以前買ったミニRTCモジュール(販売終了)で動作を確かめる。
RTCをつないでハードウエアクロックとして使う方法はまた別途説明することにする。
rtc01rtc02rtc04
ただ、これだとApplePiの基板には乗せられないので、他にいいものがないか探してみる。

DS1307というRTCがあり、ピンの数も少なくバックアップ用の電源と32.768KHのクリスタルさえあればすぐ使えるという優れもの。
ds1307-1
ds1307-2
クリスタルは秋月で買ったのだが、標準の物より小さいサイズで今回のように小さめにまとめるのにちょうどよかった。
rtc07

まず、試作基板を使って動作の確認。
ディップスイッチでプルアップ抵抗の有無を選択できるようにして、ブレッドボードに刺さるように作ったので、ほかの工作の試作にも流用ができる。
rtc03rtc05

ところでこのDS1307の動作電圧が5Vなのだが、信号は2.2V以上あればHとして認識してくれるので、電源は5Vから取って、I2CはそのままつなぐだけでOK
ds1307-3

rtc06
RTCを取り付ける前の状態。
LCDの基板でI2Cの端子が隠れてしまうため、空きスペースのパターンを削ってI2C用の端子を取り出している。
I2Cの配線はこれまでの動作の確認のため、仮に配線してある。

RTC用のバックアップ電池はCR1220を使用して、それ用のホルダを本来のLCD用のバックライトをつなげるパターンを利用して取り付けた。
問題ないと思うけど、本来のLCD接続用のパターンをポリイミドテープで養生している。

rtc08rtc09
RTCとボタン電池用ホルダーを取り付けたところ。
よく見ると、パスコンをつけ忘れているので後日直すことにしよう。
ICのGNDの部分のレジストをはがし半田付けしているのだが、ICをGNDのピンでしか固定されていない状態なので、ハックルーをつかってクリスタルとIC付近の配線を固定した。
rtc10rtc11
ただ、このハックルーなのだが、これを使うとこて先に溶けたハックルーが焦げ付いてなかなか拭き取れず、以降の半田付けに支障が出てきそうだ。
まぁ、ともかくこれでネットワークにつながっていない状態でも、正しく時間を取得することができるようになった。

次はオリジナルのApplePiにもRTCを取り付けてみることにする。

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