goo blog サービス終了のお知らせ 

つれづれなるまゝに

単なる作業メモ。主に、Linux, arduino, raspberry piとか?

arduinoで7セグ表示

2014-08-31 22:46:31 | arduino
センサーの稼働状態を表示させるために、arduinoで7セグを使ってみる。

7セグはマルツーで売っていた以下のものを購入。
KW1391A2B

スケッチは以下のサイトを参考にさせてもらった。
arduinoで1桁7セグLEDをカウントアップ。

ただし、使っている7セグがちがうので、LEDレイアウトが違う。また、KW1391A2Bはアノード・コモンで、参考にしたサイトはカソード・コモン。
カソード・コモンはHIGHで点灯するが、アノード・コモンはLOWで点灯する。
そのため、7セグの3番or8番ピンはグランドではなく5Vに接続。また、定義配列も点灯する際は1でなく0となる。
結果、以下のようなスケッチになった。

boolean Num_Array[10][8]={
 {1,0,0,0,1,0,0,0},{1,1,1,1,1,0,0,1},{0,1,0,0,1,1,0,0},{0,1,1,0,1,0,0,0},
 {0,0,1,1,1,0,0,1},{0,0,1,0,1,0,1,0},{0,0,0,0,1,0,1,1},{1,0,1,1,1,0,0,0},
 {0,0,0,0,1,0,0,0},{0,0,1,0,1,0,0,0}
};
※ 0~9。ドットは点灯させない。



で、できたスケッチを改良し、以下の人感センサーを接続し、人を検知した回数をカウントアップして7セグに表示するようにした。
PIR Motion Sensor Module:DYP-ME003 SEN005

こいつは、先日の大垣 Mini Makers Fairで出店していたヴィストンで購入。350円くらいだった記憶。
ここにあるように、検出範囲を3.5m~7m、HIGH状態の間隔を5s~300sに設定できる。

接続は簡単。VCC,OUT,GNDの3ピンを繋ぐだけ。今回はarduino側は開いている10番ピンにINPUTとして繋いだ。検知すると値がHIGHになる。


あとは、7セグ2つで2桁表示できるようにして、シールド化してみようかと思う。

LEDドットマトリックスの制御 その2

2014-06-18 22:25:33 | arduino
いきなり1基盤化は無理なので、まずは大きい方のLEDドットマトリクスを使った試作をしてみようと思う。

つかったLEDドットマトリクスは、以前にストロベリーリナックスで購入したものを使用。
赤と緑の2色を使えるのは小さいのと同じ。

LEDドライバを2こつかって以下のような基盤を作成。


とりあえず赤だけ繋いでみる。MAX7219との接続はこんな感じ。(上の写真とは上下逆になってます)


結線が面倒w
赤だけでよければ、こちらのものを買うのが時間の節約になるかも。

とりあえず繋いでは動かしながら、正しく動作することを確認。


あと、Spriteライブラリつかって矢印書いてみた。


最後に、スケッチはこんな感じ。

#include <Sprite.h> // Sprite before Matrix
#include <Matrix.h>

//         DIN, CLK, LOAD, #chips
Matrix myLeds = Matrix(2, 4, 3, 1);

Sprite letter_arrow= Sprite(8, 8,
 B00001000,
 B00001100,
 B11111110,
 B11111111,
 B11111111,
 B11111110,
 B00001100,
 B00001000
);

void setup() {
 myLeds.clear();
 myLeds.setBrightness(4);
 myLeds.write(0, 0, letter_arrow);
}

void loop() {
}

LEDドットマトリックスの制御 その1

2014-06-14 13:57:34 | arduino
デジットで小さめのLEDドットマトリックスを見つけたので購入。

SLA-5035という三洋製のもの。三洋はパナに吸収されちゃったので、在庫限りでもう手に入らないってことでしょうね。今度いったらもう少し買っておこう。

制御には、MAX7219を使用。国内で買えば1個900円もしますが、中国(AliExpress)で買えば10個 500円で送料込み。まぁ、そんなに数が出ないので仕方ないでしょうが、ちょっと高すぎる気が。

制御は、Matrixライブラリを使用。
こちらのサイトも参考にさせてもらった。ただし、このサイトの情報は少し古いようだ。スケッチをそのまま使うとちゃんと動かない。原因は、初期化関数のMatrix()。もってきたライブラリは第4パラメータが追加されており、複数個の制御ができる。Matrix()の第4引数に1を追加することで正しく動きました。

一番の難関は、MAX7219とLEDドットマトリックスとの結線。

SLA-5035は4列の線になっています。

データシートはなんとかネットでみつかったので、試行錯誤で繋いてみました。


手持ちのオス-メスジャンパーワイヤが10本しかなかったので、5列しか繋いでないですが、動作を確認。

まぁ、SLA-5035を使おうという人はいないでしょうが、参考のためにピン情報を以下に公開
切り込みがついてる端が右上。番号は、MAX7219のピン番号。赤色の場合のみ。

番号が入ってないところは緑色の場合に使用。2つのMAX7219を使えば赤と緑を制御できるようですね。

今後は、以下を予定。

・無線でスマホやRaspberry piから制御できるようにする。
→少し前に、Braveridge社のBLEの開発キットを購入したので、これをつかって制御できればいいな。

・1基盤で実装して、電池駆動できるようにする。

これとかどうだろう

自作arduino final

2014-06-07 16:59:25 | arduino
最後の仕上げに電源作成

手軽に動かせるように、9V電池で駆動するようにする。9V電池は100均で購入したもので動かす。



で、電源回路。

PS2コントローラ用に3.3vも必要だったので、三端子レギュレータを2つのせて3.3vと5vをとれるようにした。
ともに、IN側に0.1μFの積層セラミックコンデンサと、OUT側に47μFの電解コンデンサを接続。



テスターでみるとともにちょっと高めの電圧(3.6vと5.1vくらい)に見えるのだが、スペックみるとAVRは5.1vでも大丈夫そうなので繋いでみで、動作することを確認。

ひとまず、ラジコン向けの自作arduinoはこれで一旦終了。


次は、LEDドットマトリックスを動かしてみようかと思う。
小型化したいので、ボタン電池(CR2032)とか単3電池1本で動かそうと思う。昇圧回路を勉強せねば。

自作arduino その4

2014-05-10 20:38:55 | arduino
1基盤化ほぼ完成しました。



左の9ピンは、PS2コントローラ用
右上の6ピンはUSBシリアル変換ボード用(5v電源含む)
右下の6ピンは、モータ制御用2ピンx2と外部電源の2ピン

となっています。

後ろ側はこんな感じで結構こんがらがってますね。。。


さて、あとはPS2コントローラ用の3.3電源をどう作るか。
あと、実際の台車に載せる際の5V電源も必要だな。