デイリーレポート一覧

シフトレジスタを使わないでやってみる

 午後、遅いお昼を食べに行ってからテスト開始。
 で、○○堂で手に入れた安いブレッドボードでやってたら動作が不安定。午前中のブレッドボードに変えてやりなおし。

 20130320_02

 まず、アノード側の8ピンをシフトレジスタを使わずAVRに直結してテスト。大丈夫ですね。
 実はソフトウエアの部分でちょっとハマりましたけど。演算子の優先順位で。論理演算子って後回しなのね、言語を考えればそうなのだけどもね。ビット演算してるとついやらかすミス。

20130320_03

 つづいて、カソード側のピンもシフトレジスタを使わずにAVRに直結。直結と言ってもシンクドライバをかましてます。LEDを2セットにしたので、Arduino側のピンはAnalog0-5をDigital14-19として使うようにして対応。とりあえず動いてました。

 ただ、12桁表示にはマイコンのピンが足りない。あと空いているのはUARTの2つとSPIの3つ、そしてdigital 13番。全部使えば12桁対応できますが、他のIOが出来ないので表示するべきネタデータが取れないです。動作モードを指定するスイッチすら繋げられない。
 そろそろATmega644Pの出番ですかねぇ。Sanguino系は公式サポートじゃないので試してみるしかないですね。それとも、ATmega168/328系で、せめてカソード側はシフトレジスタ使うかだな。シフトレジスタを使えば12pinが3pinで済むのだから。


違うようで同じような事

 昨夜仕事で帰宅が23:00過ぎになってしまったので、今日の春分の日はまったりと。

20130320_01

 何のことはない、7セグLED 3桁のモジュールの表示。まずはシフトレジスタを使った形式で。マイコンはArduino microにて。このArduino micro、スケッチを書き込む動作が遅い。一旦USBの接続モードを変えているかんじで。特にmicroの機能を使わない&実験くんの時はArduino nanoとかを使っておくほうが速いな。

 ほんでもって、7セグ(小数点があるので8セグですが、慣例的名称として)は、1桁が8×8マトリックスLEDの1行分とみなせます。桁単位でダイナミック点灯させるので、MAX8個しかLEDが同時点灯しない。これならアノード側はシフトレジスタを使わずとも、ATmega単体で処理できそうですね。と言うわけでこれからお試しです。


去年の自分は何をしていたか

 ふと去年の今ごろは何をしてたかと思いブログをみてみたら。

 mbedの各種センサーのマスターコントローラを作ってました。
20130318_01

 これですね。
 あれってまだ1年前なのか。この1年でマイコン関係もだいぶ知識が付きました。電気工事士の免許も取ったし。

 自分がブログをなぜ書くかというと、自分があとで思い出すため。あの時何をやっていたんだろうとか。なので、どうでもよいことでも書いて残しておいてます。あなた今まで何してきたの?と言われた時の答えはココにあります。悪いことも良いこともすべて。
 で、ブログ形式の前の普通のWebサイトに書いていた前世紀の記事は失われてしまったけども、2000年5月から残ってるブログ記事は自分的には宝です。でも、ところどころ消失してますね。10年前の2013年/3月は残ってなかった、残念。


足がだるい

 今日は、一日PCの設置作業。なんかこういうのは久々だ。狭い机の下に潜って電源タップまで電源コードを引っ張ったり、LAN線を引き上げたり。こんな作業をしていたのは何年前だろう。

 で、おじさん的には下に潜ったり上に戻ったりをやっていると額に珠の汗がたらたらと。明日、腰がやられていないと良いのですが。結構立ち仕事だったので、足がだるいです。

 諸般の組織上の都合でギリギリになってるので頑張ってみました。本当は昨年の12月にしかるべき人たちがやってるはずの作業なのですよね、これ。
 
 (なんかバリエーションを許さない処置って、対応出来ない事象がでたら総崩れになるパターンで嫌だなぁと思ったりしてるのですが。内部統制ってそういうもんじゃないだろと。管理してリスクある部分でも必要があれば許可して把握しておくもんでは?)


電光掲示板 mbed版マイコン基板初期型完成

20130317_01

 mbed版の基板出来ました。

20130317_02

 mbedとLANコネクタを載せるとこんな感じ。

20130317_03

LED基板と合体させるとこう。

20130317_04

 電源を入れるとこんな感じ。(正面からなので眩しくて程よく文章が潰れて著作権的に良い。)

 実は、マイコン基板の電源レギュレータ部分を作成する前に、mbedのvoutの3.3Vを使ってテスト表示してみたのだけども。

 文字がおかしい。

 調べてみたら、ブレッドボードのテスト回路の行の接続が間違ってた。1行目と6行目が逆。
プログラム側でカソード側のシフトレジスタに渡す値を1行目と6行目で入れ替えて修正完了。

 次は、LEDの2ユニット目です。正直3ユニット・12文字まで作る気力がもつだろうか?(苦笑)。
そして、秋月の切り取れるピンソケットが手持ち在庫が1本になってしまったので、発注しました。プロトタイプ用の小さいマトリックスLED基板で使ってしまったからなぁ。

 マイコン基板の方は「mbed版」と書いてあるように、別のバージョンも検討中。フォントデータをprogmemに置けたらですがATmega1284が有力候補。ただ、チップがデカいのだよね、mbedほどではないけども。i2c接続のEEPROMにフォントを置いてATmega328Pでやる荒業もあるかな。どちらにせよATmegaでやる時はネットワークはWiznetのW5200チップのモジュールWiz820ioにお任せ予定。他のパターンだと、XBeeの無線LAN版とか、ROHMのBP3591とか。データ持ってきてもATmega328Pじゃ2kbyteのメモリ内に保存できないから、i2cSRAMとかに置かないと。そうなるとチップが増えて実装面積食ってしまうから、やっぱATmega1284が限度かな。


もうすぐ静寂?

 上階の「どんどんどんどんドン」と歩くお子様が居る家族が引っ越すらしい。
まだ、トントコしてらっしゃいますが。お子様以外の音は聞こえないんですけどね。いや、大人自体は普段いなくて3歳児が放し飼いにされていたのかもしれない。

 でも、この話が本当だったら福音だ。やっとここに入居した頃の平穏な日々が過ごせる。