記事一覧

Arduino 2台体制で出来ること

2013.03.17

ファイル 35-1.jpg
昨日Arduinoクローンを作ったので2台体制となりました。
ここで以前から気になっていた、Arduinoでオシロスコープを動かすことを試してみました。
Arduinoで動くオシロをネットで検索してみると、
国立九州大学さんの「Arduino 簡易オシロスコープ」
Ichiro Marutaさんの「Arduinoで簡易オシロスコープ」
の2つが見つかりました。両方組んで試してみたのですが、Ichiroさんのオシロの方は追加部品も不要で簡単に作れます。
オシロを表示するプログラムは、Proccessingという実行環境を使用しますが、現在のバージョンではコンパイルが通らないので1.5.1を使います。
(ダウンロードページの下、Stable Releases 1.5.1)
Windows側は「Arduinoで簡易オシロスコープ」のソースをコピペして実行。
Arduino側はオシロのソース最後尾でコメント化されている「/* Arduino code」以下のコードをArduinoIDEにコピペしてコンパイル、1台目のArduinoにアップロード。
これで、オシロ側は完成!

続いて実験対象の作成ですが、2台目のArduinoに以下のプログラムを仕込みます。

int led = 13;

void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}

unsigned long prevMilli = millis();
int pls = 1;

void loop() {
unsigned long currentMilli = millis();
if (currentMilli - prevMilli > 1000) {
pls = pls < 10 ? pls+1: 1;
Serial.println(pls);
prevMilli = millis();
}
digitalWrite(led, HIGH);
delay(10);
digitalWrite(led, LOW);
delay(pls * 10);
}


サンプルソースのBlinkに手を入れてOn/Offの時間を切り替えるものです。
ファイル 35-4.png
2台目のArduinoを接続すると、IDEのシリアルポートにCOM4が追加されるので、そちらを選択してアップロード。
13番ピン、抵抗とGNDにオシロから引いてきたアナログ0、1、GNDを接続して計測。
Windows側で以下の波形が確認できました。
ファイル 35-2.png
(デューティ比50%)
ファイル 35-3.png
(デューティ比10%)

やっぱり画面でリアルタイムに波形が変化するのは見ていて楽しいですね。
あと、Proccessingという開発環境にも興味を持ちました。ArduinoIDEと似たインターフェイスで使用言語もC/C++っぽくて入りやすいです。
秋月のオシロスコープキットを買おうか迷っていたのですが、しばらくはこれで遊べそうです。

にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

タグ:Arduino 自作 オシロスコープ

Arduinoを自作してみました

2013.03.16

Arduinoはサクサクッと回路を組んで、ガリガリッとプログラムを書いて、パパッと走らせることが、本当にお手軽にできる楽しいガジェットです。
ただ、そのお手軽さゆえに幾つか回路を試していると足りなく感じる物があります。
その一つはブレッドボードとジャンパケーブル
こちらは小さいものを買い足しながら使っています
電源ラインがあるミニサイズ+-は無いけど150円という格安のものなど小さい回路では重宝しています。
ケーブルは店頭で見つけた、とにかくたくさん入ったセットが線も細くて便利です
もう一つ、やっぱりどうしても欲しくなるのが2台目3台目のAduino本体ですね。でも1台あたり2500円ほどするので買い足すのも気が引けます。ということで、ネットで調べてみると色々とArduinoそのものを自作されている方がいるようです。私も先人を見習ってArduino互換のマイコンを作ってみることにしました。

準備

互換機を作るために以下のものを調達しました

  • コンデンサは22pFが2個と0.1μFが1個必要
  • 抵抗は1Mと10kが1個ずつ
  • リセット用の押しボタン

あと、USB接続にして直接スケッチをアップロードしたかったので

  • 抵抗1kが2個とコンデンサ0.1μFを1個
ブートローダ

ブートローダの書き込みはこちらを参考にしました
http://midohaji.ryokuondokei.com/content/4.html
クリスタル無しの回路もありますが、失敗すると面倒らしいのでクリスタル有り回路を採用
ファイル 34-1.png
現在公開されているoptifixは当時のものと違うようです
以下のように修正

42行目の #include <avr/pgmspace.h>
↓コメントアウトして<Arduino.h>に書き換え
//#include <avr/pgmspace.h>
#include <Arduino.h>

とくにトラブルなく、すんなり書き込めました

単独起動

主に以下のページを参照
http://robo.mydns.jp/Lecture/index.php?Arduino%2FArduino%20%A4%CE%BC%AB%BA%EE%2FDuemilanoveTYPE
ファイル 34-2.png
FT232RLのデバイスドライバをインストールしてつなぎました
IDEでも単独のArduinoとして認識され、スケッチのアップロード・実行が問題なく動作しました

※注意点
ネット上には古い情報もあり、ATMEGA168を想定した回路図も多いようです。私の方では、Arduino UNO +ATMEGA328Pの組み合わせだったので、上記HPの情報を採用しました

これで以前作ったUWB基板状のものを作れば、ブレッドボード直刺しで使えそうです

にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

タグ:Arduino 自作 ブートローダ―

Arduinoでドットマトリックスで問題

2013.03.11

先日組んだドットマトリックスですが、忘れないうちに回路図をアップしておきます。
ファイル 33-1.png
動作はごく簡単なもので、
・シフトレジスタ(74HC164)で1列分のパターンを作成し
・デコーダ(74HC138)で対応する列の出力をLOWにする
という動作を列数分繰り返すというものです
が、ここで問題発生・・・
1)まず、動画を見れば一目瞭然ですが、消えているはずのLEDが微妙に光って見えてしまいます。これは、シフトレジスタでパターンを送り出す時に、一瞬ですが通過するLEDに電源が入り光ってしまうものだと思われます
図で表すと
■■■■■■■
と右端のLEDを点灯したい場合、シフトレジスタの動きでは
■■■■■■■
■■■■■■
■■■■■■■
 ・
 ・
と順次送り出す動作をするのですが、その際に通過するLEDが灯ってしまうようです。ミリ秒単位の動きなので無視できる範囲かと想定していましたが、残像効果のせいで全体的にぼやっと光ってしまいました。この点は、シフトレジスタの準備が完了するまで、デコーダ側で入力を抑制する、という動作をしなければなりません。
G2AかG3AをArduinoのピンにつないで制御する必要がありそうです。

2)もう一つはドットマトリックスの表示向きの問題です。
動画では一見正しく表示できているようですが、実際には取り付け方向からみて90度回転して表示されています。
「た」ならこんな感じ
ファイル 33-2.png
LEDが1個なら取り付け方向を調整すればいいのですが、2個以上つないで取り付ける場合、ちょっと無理があります。
こちらはプログラム的にXとYの行列入れ替えをする必要がありそうです。

にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

Arduinoでドットマトリックス・美咲フォントを表示してみる

2013.03.08

先日ブレッドボードに組んだドットマトリックスですが、文字を表示するの何かいい方法はないか?と探ってみたところ、8x8ドットに表示するのにちょうどよい「美咲フォント」なるものを発見しました。
すでに先人は美咲フォントをEEPROMに流し込んで漢字を表示することも実践されているようです。が、とりあえずお試しモードなので、変数エリアにパターンを定義して数文字表示できればよいかと
と、思ってはみたもののかなり苦戦しました
フォントファイルの構造を調べ、エクセルのVBA+関数と格闘して文字をビットのパターンに変換、出来上がった16進の数字をArduinoのソースにコピペして整形すれば使えるように。。。するまで数時間掛かりました
読者の方は成果だけお召し上がりください
エクセルファイル「Fontx2Util」
(実行にはMicrosoftExcelが必要です)
こんな感じでフォントからパターンを取り出せます
ファイル 32-1.png

苦労した割にはスケッチはあっさりしたものです(笑)
AR_DOTKNJ01.zip

美咲フォントのホームページは
こちらです

美咲フォントは実際には7x7ドットの定義なのですが、文字列を並べて表示するには丁度良いようで、解像度の低いグラフィックディスプレイによく使われているようです。(ソフト的に文字間を調整する必要がない)
このフォントで、以前作ったような流れる掲示板を作れたらなぁ、と構想を膨らませてみました。


ようつべカスタマイザ

ダイナミック点灯、意外と微妙で消しているはずのドットがほんのり光っています。名刺ケースかぶせても滲んでる・・・
まだまだタイミングの調整が必要そうです

タグ:Arduino ドットマトリックス 74HC138 74HC164 シフトレジスタ

Arduinoでドットマトリックスの実験(ピンの節約)

2013.03.06

キャラクタLCDを載せるとそれだけで結構なピンが取られてしまうので、昨日はArduinoでスイッチを増設する際のデジタルピンの節約について考えました。
と、思っていたところ、アナログピンもデジタルピンとして利用できるということが書かれていました。
(まあ、当たり前といえば当たり前ですが、やりかたが分からなった・・・)
http://nekosan0.bake-neko.net/structure_digital_port.html

センサやらLCDやらバンバン刺していった私のArduino、アナログ4本とデジタル1本が残っている。ということで、以前から温めていた実験をしてみました。


ようつべカスタマイザ

以前PICでドットマトリックスの流れる時計を作った時に、74HC138 というデコーダICを使ってダイナミック点灯というのをやってみたんですが、今回は先日のシフトレジスタ(74HC164)と組み合わせて、ピンを節約しながら8x8のドットマトリックスをコントロールする実験をしてみました。
ピンの消費数は、
シフトレジスタ→2本
デコーダIC→3本
なので、都合5本のピンでマトリックスをそれとなく表示できました。
次回以降、回路図などを紹介していきたいと思います。

タグ:Arduino ドットマトリックス 74HC138 74HC164 シフトレジスタ

ページ移動