2021年10月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

最近のトラックバック

« 2010年3月 | トップページ | 2010年5月 »

2010年4月

2010年4月17日 (土)

ArduinoにLCDを信号線3本で繋ぐ

 昨年のMTM04に出品した和音マシンで、入力インターフェースにSFCパッドを使った事は、以前にご紹介しました。そこで、今回は出力インターフェースの一つ、キャラクター液晶ディスプレーの接続について書きたいと思います。

 Arduinoにもよく使われるキャラクター液晶ディスプレーですが、そのままArduinoに接続すると、最低でもRS,E,D4,D5,D6,D7の6本の信号線が必要になってしまいます。これをもっと少ない信号線で接続しようと作ったものが、今回の回路です。

Lcd164_v100

 シフトレジスタの74HC164を使い、Arduinoの使用ポート数を減らしています。また、74HC164のコントロールに使うData線を、LCDのRSとしても使用することでも使用ポートを増やさない工夫になっています。

Hello_world

 左上のコネクタが信号線が3本と+5V電源,GNDで、信号線は左からLatch,Clock,Dataです。

74hc164

 液晶モジュールを外すと、基板に乗った74HC164が見えます。他にコントラスト調整用とバックライト調整用の半固定抵抗、バックライト用スイッチ、バックライト過電流防止用の抵抗等が見られます。

 ソフトウェアの方ですが、標準のLCDライブラリを改造して、元と同様に使えるようにしてみました。これなら、いままで標準のライブラリを使っていたスケッチを書きかえるのも非常に簡単になります。改造ライブラリを使ったexampleのHello Worldスケッチを載せますので、参考にしてください。

/*
  LiquidCrystal Library - Hello World 
 */

// include the library code:
#include <LiquidCrystal164.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal164 lcd(2, 3, 4);

void setup() {
  // set up the LCD's number of rows and columns: 
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis()/1000);
}

 元のHello Worldと違うのは、インクルードするヘッダファイル名と、変数生成の所だけです。

LiquidCrystal164()

LiquidCrystal164型の変数を生成します。


【構文】

LiquidCrystal164(data, clock, enable)

【パラメータ】

data: 74HC164のData(A,B)ピンおよび、LCDのRSピンに接続するArduino側のピン番号
clock: 74HC164のCKピンに接続するArduino側のピン番号
enable: LCDのenableピンに接続するArduino側のピン番号

他は標準のライブラリと同様です。

ダウンロードはこちら
74HC164使用LCDライブラリ:「LiquidCrystal164.zip」

ライブラリのライセンスについてはArduino標準ライブラリと同様LGPLでお願いします。

2010年4月12日 (月)

小型ブレッドボードをユニバーサル基板に載せる

     本題に入る前にちょっとクイズです。下の写真の基板は一体どんな使い方をするものでしょう?答えはこの記事の最後に。

Howuseitit

 2つ前の記事で、ブレッドボードをユニバーサル基板に載せれば、パレットボードで使えるといった事を書きましたが、それについて紹介したいと思います。

B150

 これは、秋月B型基板に同じく秋月150円ブレッドボードを乗せたものです。右奥に電源入力ピンがあり、ここに電源をつなげば、ブレッドボードにも電源が供給させる仕組みになっています。しかしなんか無駄に大きいですね。

C150

 こんどは上で出てきた150円ブレッドボードをC型基板に載せてみたところです。パーツが色々挿してあるところに目が行ってしまうかもしれませんが、見て欲しいのは上と比べてのコンパクトさです。なにか違いますよね?そうです。元のブレッドボードにあったねじ止め穴が有りません。あそこはパーツを挿す場所でもないので、スパッと切り落してしまいました。これでぎりぎりC型基板に乗っかります。しかし基板目いっぱいの大きさで、パレットに載せた際、ナットを締める事が出来ません(^^;

Cspkfn

 お次は、たしかMTM03の時にスイッチサイエンスの出店で購入したSparkFunのミニブレッドボードをC型基板に載せたものです。ここまで来ると、基板に余裕も出来るので、10ピンBOXヘッダとそれをインラインに引き出すヘッダも付けてみました。なんとなく便利そうな感じがしませんか?

Hc250

 さらに小さくなります。ハーフサイズC型基板に乗っているブレッドボード、こんなの見たことないですよね?でも2つ上の写真を思い出してください。小さくしたいなら、いらないところを切ればいいんです。で、これは電源ライン付きの秋月250円ブレッドボードの電源ラインを外した上に、本体の約半分の所で切断。さらに脇の厚い部分も切り落としています。確かにこれで小さくはなりましたが、あんまり可愛くない(^^;まぁそれでもちょっとした回路を組むには十分です。

Hc100

 最後は奥の手です。既にブレッドボードを切って使うなんて反則技が出てますが、もうブレッドボードでもない物をブレッドボード代わりに使ってしまいます。写真左が素材になったジャンク放出品のICソケット2個100円。これをハーフC基板に載せて、裏でブレッドボードと同様の配線ではんだ付けしています。センター部分は電源ラインとして使えるように、手前のヘッダピンから向こう側のヘッダピンまで2本の平行線で繋げてあります。さすがにICソケットだとヘッダピンは刺さりませんが、ICはもちろん、丸ピンソケット、普通のC/Rやジャンパも見ての通り挿せますので、これでもブレッドボードと言い切ってしまいましょうw

Bbonpb

 パレットボードに並べて大きさを比較。といっても、大きいものは大きいなりに、小さいものは小さいものなりに使える場面がありますから。どれが良いとか悪いとかではないんですけどね。

 さて、冒頭クイズの答えです。

Answer1 Answer2_2

 こんな感じでブレッドボードの上に、ユニバーサル基板に組んだユニットを乗せる台として使います。パレットボードとは逆の発想になるでしょうか。まぁこんなものまで作ってあるという事で(^^;

ブレッドボード用小物あれこれ

 ブレッドボード物が続きますが、ブレッドボードで便利に使える自作小物をを色々ご紹介いたします。

Bbacc

 なんの意味もなく、とりあえず手持ちのブレッドボード小物を並べてみました。手前の白い箱はテスター接続ボックスです。電源電圧を計る時などに便利です。奥の黒い箱は蓋・電源スイッチ付き単3×4電池ボックスです。ここにニッケル水素充電池を入れておくと、1.2V×4=4.8V≒5Vという事で、5V系回路にぴったりです。

Bbled

 上段:左端は電源チェック用の抵抗付きLEDです。これを電源ラインに立てておけば、電源を切り忘れたままパーツの付け外ししてショートしたりするのを防げます。中ほどは8ビットカソードコモン抵抗付きLEDです。コモンはジャンパー線で電源ライン等に繋ぎます。ブレッドボードから垂直に立ちあがっているのがちょっと見ずらいかも。右は10ビット抵抗付きLEDで、ソケットにLEDを挿す向きと、両脇のジャンパーの選び方でアノードコモンにもカソードコモンにもなります。その代わり幅が全部で12穴分になってしまっています。

 下段:左の2つは7セグLEDボードで、ソケット式になっているので7セグLEDは交換可能。手前の白マークがコモン端子になっています。取り付けたLEDのコモンによって取り付け位置をずらします。左端はカソードコモン、その右はアノードコモンの取り付け位置ですね。隠れて見えにくいですが、奥には7セグメント+ドット分の計8個1KΩ抵抗が付いています。その隣は4ビットのパラレルLEDで、手前がアノード側、奥がカソード側です。コモンはありません。接続したい回路によって、取り付け位置や向きを変えることが出来ます。右は3色LEDです。

Bbsw  

 上段:右端は上で書きましたね。その隣の4つは1ビット抵抗付きLEDです。ブレッドボードの電源ライン穴は、5穴連続+1穴無しのパターンが多いですよね。なので、上に出てきた4ビットLEDだと、場所によってはうまく挿せません。この1ビットずつのLEDの場合は、これくらいの斜め挿しなら大丈夫です。その次は半固定抵抗で、3本並んだ足が下に出ています。これに付いてはもうちょっと改良の余地ありですね。また作る手間を考えたら、もうちょっと高い半固定抵抗で、ブレッドボードに向いた物もありますし、さらに右のごちゃごちゃしたものは、AVRのワンタッチセットアップボードです。ISP端子とリセット端子プルアップ抵抗、リセットスイッチ電源接続用端子と小さい基板にテンコ盛りです。右端は圧電ブザーです。電子オルゴールなんかをササッとチェックできますね。

 下段:左から2つが2ビット・4ビットのプルアップ抵抗付きDIPスイッチです。基板の裏にチップ抵抗が付いていて、DIPスイッチは普通と逆向きに付けてあります。なので、写真の状態でスイッチは開いていて、プルアップ抵抗によって、Highが出力されます。つまみを下に下ろすとスイッチが閉じ、出力端子は電源ラインのマイナス側に直結。結果Lowが出力されます。次の2つは形は違いますが、4ビット出力のロータリースイッチです。ともに正論理なので、High出力は電源プラス直結、Low出力は抵抗を通してマイナスに落ちるようになっています。その隣はタクトスイッチです。基板下の足は対角の2本のみ配線していますので、縦位置でも横位置でも使えます。写真の挿し方だと、1ライン間をおいて両側のラインが開閉、これを90度まわして取り付けると、隣り合ったラインの開閉に変わります。2通りの使い方が出来て便利です。右端はプルアップorプルダウン付きのプッシュスイッチです。手前側の電源ラインと、奥側の電源ラインではノーマル時の接続先が逆になりますね。

 以上、ブレッドボード用自作小物の紹介でした。実際に使っている様子は「71円で16進7セグデコーダを作る」の写真をご覧ください。

2010年4月11日 (日)

パレットボード・システム

 私にとってブレッドボードは、電子回路を試作・テストする上で欠かせないものとなっています。ただ、ブレッドボードで組んだ物は長期保存に向きません。少々乱暴に扱うと挿してあったパーツが抜けたり、切らずに長いまま使っていた足がショートしてしまったりと困った事が起きてしまいます。そこで、今度はユニバーサル基板に移しモジュール化するわけです。そしてモジュール化した基板をパパっと組み合わせて試作・テストするためのプラットフォームが今回ご紹介するパレットボード・システムです。

Photo_2

 上の写真は、一番シンプルなパレットボードです。秋月C型基板の穴に合わせて、サンハヤトのベーク板(No.1)に3mmの穴をあけ加工精度の補正と遊びを作るためにφ2.6mmのボルトを下から差し込んでナットで留めてあります。左は72mm×142mmにカットしてあります。右は元の100mm×150mmで、ほぼ葉書サイズなので、100円ショップの葉書保存用ボックスにぴったり。

Tiny85

 これが、パレットにC型基板を並べて繋いだ様子です。左から16桁1行LCDwith74HC595基板、ATTiny85基板、CR2032×2toLDO5V基板になっています。写真では、ただ乗せただけですが、さらにナットで締めれば、持ち運びも楽ちんですね。

Dipswrom

 こちらは、100円ショップのポリプロピレンケースをパレットにした例で、前回のMTM04にも出したDIPスイッチ-ROMのデモセットです。C型基板を2枚並べた大きさがB型基板と同じになるので、余分なボルトを取りはずし、C型基板2枚分のスペースに左のDIPスイッチROMのモジュールを置いています。中央はATmega88基板、右が単3乾電池orニッケル水素電池×2toDC-DC5V基板、下は8桁×2行LCD基板です。左下の空き地はC型基板を入れるにはちょっと高さが足りません。最近C型基板を半分に切って使ったりしているので、それを2枚細長く並べられるようにしておいても、良さそうです。ちなみにこのケースは秋葉原自由通路の100円ショップで入手しました。

Ejackinoclock

 最後にパレットボードとArduino(eJackino)の組み合わせパックをご紹介。このケースは100円ショップの物ではありません。入手場所は秋葉原のヒロセテクニカルです。店舗入り口に下がっているケースの一つです。で、このケースにeJackino(取り付け穴はArduinoと同じ?)とC型基板3つ分が取り付けられ、さらに右下に単4乾電池orニッケル水素電池toDC-DC5V変換基板、右中にUSB電源・ACアダプタ電源・電池電源の自動切り替え基板が付けてあります。写真では見えないかもしれませんが、右脇にメインスイッチが付けてあってとても使い勝手がいい仕上がりです。この写真では16桁×2行LCD基板、圧電ブザー基板、秋月RTCwith1F電気2重層コンデンサバックアップ基板、タクトスイッチ&ロータリースイッチ基板がセットされ、近日公開予定のArduino時計が動いています。

 さて、ここまでお見せしてきたパレットボード・システムですが、ブレッドボードとまったく別のシステムと言う訳ではありません。小さいブレッドボードをB型基板やC型基板に貼り付けて置けば、パレットの1部をブレッドボード化する事が出来ます。それなら既にモジュール化してある回路とブレッドボードの新作回路をささっと組み合わせて試作・テストが出来ますね。みなさんもおひとつパレットボードを用意されてみてはどうでしょう?

両面ブレッドボードを作ってみた。

 それは、ある3時間の出来事。 はじまりはツイッターのこのつぶやきだった。

「だれか裏からも挿せるブレッドボードとか作らないかなぁ 」

 面白そう!?便利かも!?作れるのか!?いろんな想像・構想・興味が頭を駆け巡った。そして次の瞬間にはもう実現方法が浮かんでいた。単純に2枚のブレッドボードを背中合わせにくっ付けりゃ良いんだよね。まったくなんの捻りもない、当たり前の発想である。ただしかし、これをそのままつぶやき返しても何の面白味も説得力もない。ならば、作るしかないよな。こんなストレートな発想である作るなら他の誰かがやる前にやっつけてしまわなければ、と何処か方向が外れだした感情に突き動かされるように工作をスタートした。

 まずは使用するブレッドボードの選択である。作成可能を実証のための工作であること→作った後にどうするかは後で考えるとうか、使わなくてもよい(最悪捨ててもよい)、工作のスピードが大事な事→必要最小限の大きさでよい。という事で、秋月の一番小さいブレッドボードを使うことにした。 http://akizukidenshi.com/catalog/g/gP-02727/ このブレッドボード、リンク先にも書かれている通り、丸ピンソケットが刺さらないちょっと残念な一品である(下の写真左)。SparkFanのミニブレッドボードも小さくて日本人の心に訴えかけるようなかわいさがあるが、こちらは穴の形が丸なので、なおさらかわいいブレッドボードである。それだけに、使い勝手の悪さがなんとももどかしい。このブレッドボードが手元にちょうど2枚余っていたので、採用決定。

Photo

実は現在販売されているのは、丸ピンソケットも刺さる改良版の様である(上の写真右)。

 では、さっそく作成開始。まずは裏の両面テープを剥がす。これが結構難儀した。両面テープに厚みがあり、接着面が取れてもブレッドボード側にまだ残ってしまう。指でこするようにしたり、セロハンテープの貼り付け・剥がしを繰り返したり、あの手この手でなんとか1枚目の両面テープを除去・・・・と思ってひっくり返したら、あれ?こっちは改良版の方じゃないかorz。スピード大事の工作だと言うのになんという失態!しかしこっちを2枚つぶすのはもったいない。気を取り直して旧版の両面テープ除去を開始。なぜだかこちらは素直に剥がれてくれる。改良版に費やした時間より速く2枚のブレッドボードの両面テープを除去できた。

1_2

 さて、次はこの2つのブレッドボードを背中合わせに張り合わせる訳だが、そのままケースを張り合わせるだけでは、中の金具が接触していなくて裏表で導通しない場合もありそうだ。それでは意味がない。ツイッターで写真を紹介するだけなら、別にそれでも構わないのかもしれないが、それに納得いかない自分がそこにいた。なので、金具同士を背中合わせにくっつける事に挑戦した。最初は背面すべてを半田で張り合わせようと思ったが、いかな共晶半田といえども、そうそう簡単に流れてくれない。そこで小口を責めることにした。金具を背中合わせにした状態で、ヒートクリップに挟み、小口にはんだを軽くなでつけ、ぎりぎり繋がった状態にする。これでなんとかなりそうだ。(下の写真、囲み部分)

22

 目処が付いたら後はひたすら作業をするだけである。

3 4 5

 途中、ヒートクリップが面倒になって手づかみにしたり、半田が付きについ場合にフラックスを塗ったりと、だんだん作業効率も上がってくる。そして、カバーにハメ直してのチェックも良さそうだ。あと一息。

6 7 8

 最後に反対側のカバーを被せて完成。写真をアップしてツイッターで報告。ネタ元の方にも喜んでいただけたようだ。

9

 作ってみて分かったのだが、ICを挿す部分の両側を全部裏表導通させてしまうと、あまり拡張された感じにならない。一つのラインにさせる穴の数は増えるが、ラインの数が元のブレッドボード1枚の時と変わらないからだ。両面にICを挿すのも少々無理がある。もしかすると片側だけ両面導通で、もう片方は両面絶縁にしておいた方が良かったかもしれない。

 ともあれ、世界初?の両面ブレッドボードがここにあるのだ。どう使ったら便利になるのか、これからじっくり考えてみたいと思う。また、もしこのページをご覧の方でアイディアがあったら、是非とも教えていただきたい。

« 2010年3月 | トップページ | 2010年5月 »

ウェブページ

無料ブログはココログ