RRC's Blog

神奈川工科大学 ロボット工学研究部 公式ブログ

とっても久々な更新です。

はい、どーもこんにちは、こんばんは。

 

書いてる中の人が毎回変わってますが、4月ぶりの更新ですね。

 

遅れてすいませんでした。

 

ではまず前回のブログの内容に触れましょう。

 

今年、1年生は 9人 入りました。(多くもないし少なくもないですね)

個人的にはあと5人は欲しかったです。

 

あと2年が1人減りました;;

 

近況報告が終わったので私が個人的にやっていることでも書きましょう。

 

今、私は「16×16 LEDマトリックス」の制御をやっています。

f:id:RRC:20170929191345p:plain

これですね。

 

マイコンはmbedしか持ってないので

「よし、mbedで制御しよう!」

ということにして早速やることにしました。

 

ではまずここでLEDマトリックスの制御方法を詳しく知らない人のために

簡単に説明しましょう。

 

こちらがデータシートとなっております。(直撮りですいません)

f:id:RRC:20170930115725j:plain

1番ピンをHigh(電流を流す)、9~16、25~32ピンをすべてLow(電流を流さない)

にするとことで電流が通り1行目がすべて点灯することになります。

 

1番ピンをHighに9番ピンをLow、あと上の1行分をすべてHigh

にすると一番右上だけが点灯することになります。

電気を高いところから高いところに流れないので当然ですね。

 

これにより、このLEDマトリックスを制御するためには

32個のピンを制御すればいいということになります。

 

はい。ここで問題が発生します。

 

このmbedのデータシートを見てみましょう。

今回使っているmbedはLPC1768というものです。

f:id:RRC:20170930122703p:plain

そうですね。32個も制御できるピン(水色のところ)が無いですね。

 

ということでこの計画は打ち切り、できません、お疲れさまでした。

 

 

 

冗談はさておき、結局とても強引な方法で解決することになりました。

 

それは「ラインデコーダ」を使うという方法です。

 

今回しようするラインデコーダ

OKI M74HC4514 4 to 16 ライン デコーダー デマルチプレクサー ラッチ入力 」

というものです

 

ラインデコーダとは

f:id:RRC:20170930123146p:plain

簡単に説明すると入力ピン(A)が4つあり、

その4つのピンのHighとLowの組み合わせで16ピンも

1つだけHigh、他は全部Lowという出力(Q)を作り出すことができるICとなっています。

 

2進数で考えるとわかりやすいかも?

0000が0 1010が10 1111が15 といった具合にその番号のみHighになる

 

0~15まで制御できるので制御可能ピンが16個になります。

4個のピンで16個も制御できるってとってもエコですね。

 

これにより、なんとかmbedでピンの個数が足りそうですね。

 

2個使えば8個のピンで制御できそうですがそれには

1つだけLow、他全部Highというちょっと種類が違う

ラインデコーダを使う必要があります。

 

どっちも一つだけHighので制御すると1列のうち1個だけ光らなくて

あとは全部光っているという状態に常になってしまうので当たり前ですね。

 

今回は1つHigh、他Lowのラインデコーダしか手に入らなかったので

残りの16個のピンはあきらめて1つ1つmbedに繋いで

ラインデコーダで4個(オンオフのために+1で実際は5個)

残っている16個で合計20個(21個)で制御することになります。

 

 ラインデコーダでは1列ずつしか点灯できないからダメなんじゃね?

と思う方もいるかもしれませんが、それは残像現象を利用して

人間の目にはとらえられない速度で点滅を繰り返すことで常に光ってるように

見えるのでご安心ください。(蛍光灯とかと同じです)

 

では、回路はパパッと作って実際に光らせてみましょう。

(回路は抵抗をつけたりジャンパー線で繋げるだけなのでカット!)

 

はい。こちらがラインデコーダを高速で1~16ピンをHighになるように繰り返し

もう片方を全部Lowにした時の写真です

 

f:id:RRC:20170823134133j:plain

できてますね。

 

では張り切って次は文字を投影してみましょう!

 

プログラムを適当に書いて・・・

 

いざ!

f:id:RRC:20170824113432j:plain

ぎゃああああああ!

 

 ということで全然うまくいきませんでした。

 

ここからいろいろ思考錯誤するもなかなかきれいになりませんでした。

 

ということでようやくここでggrことにしていろいろあってここまでできました。

f:id:RRC:20170825114645j:plain

まあきれいにできてますけどいろいろおかしいですよね。

 

どうやら電力をmbedからだけのを直で使っているからか

右に行けば行くほど暗くなっています。(あとたぶん「ボ」じゃなくて「ポ」になってる)

 

一応、さらにここからプログラムをあれこれいじって

全体の明るさは一定にすることができました。

f:id:RRC:20170825113412j:plain

↑ びふぉー

f:id:RRC:20170825113238j:plain

↑ あふたー

全体が暗い・・・(しかも左端にまたもや光が)

 

ということでまだまだ自由に投影できるところまでは程遠いですが

これからもっと改良していきたいと思います。

 

電力の問題は外部電源をつけるなどいろいろな解決手段があるらしいので

しっかり調べて挑戦してみたいですね。

 

一応、現在は文字を動かしたり点滅させたり、切り替えたりはできるのでプログラムは

いい感じではないかと思いますが、やっぱり回路部分が問題になってくると

プログラムだけではどうしようもないので作り直すしかなさそうです。

 

ではみなさん!次のブログ更新までオタッシャデー

 

 

電子班 PCに詳しくないPC担当