펌웨어디자인(Firmware Design)

3D가속도센서주물르기

arirangled 2008. 10. 23. 20:34

 

new_3d.zip

 

 

78 F9222의 코너(16))

갱신일:2007年8月8日


3D加速度センサーで遊ぼう

前回の「ちょっとひとやすみ」のコーナーで実験した3D加速度センサーを応用回路に組み込んでみました。今回はトラ技で紹介されていたLEDドライバを使いました。制御が簡単でLED電流駆動もやってくれるので大変便利なICです。それでは製作をスタートしましょう。
3D加速度センサーで遊ぼうのLEDドライバ回路

表示には8x8ドットマトリックスLEDを使います。秋月などで低価格で購入することが出来ます。私は以前に赤色と緑色の2色LEDを購入していましたが、今回は赤色のみを駆動して使っています。

3 D가속도 센서로 놀자

전회의「조금 사람이나 살아」의 코너에서 실험한 3 D가속도 센서를 응용 회로에 짜넣어 보았습니다. 이번은 트랜지스터 기술로 소개되고 있던 LED 드라이버를 사용했습니다. 제어가 간단하고 LED 전류 구동도 해 주므로 몹시 편리한 IC입니다. 그러면 제작을 스타트합시다. 
3 D가속도 센서로 놀자의 LED 드라이버 회로

표시에는 8 x8도트 매트릭스 LED를 사용합니다. 아키즈키덴시등에서 저가격으로 구입할 수 있습니다. 나는 이전에 적색과 녹색의 2색LED를 구입하고 있었습니다만, 이번은 적색만을 구동해 사용하고 있습니다.

(8x8マトリックスLED)

LEDドライバにはマキシムのMAX7219を使います。トラ技に紹介されていたことで知ったのですが大変使い易いICです。マイコンとの接続は3線でOKです。(8 x8매트릭스 LED)

LED 드라이버에는 맥심의 MAX7219를 사용합니다. 트랜지스터기술에 소개되고 있던 것으로 알았습니다만 몹시 쓰기 쉬운 IC입니다. 마이크로컴퓨터와의 접속은 3선으로 OK입니다.

(LEDドライバ回路)

ドットマトリックスLEDとの接続はあえて記しませんでした。皆さんが入手されたLEDにて各自で接続をアレンジして下さい。(LED 드라이버 회로)

도트 매트릭스 LED와의 접속은 굳이 적지 않았습니다. 여러분이 입수된 LED에서 각자 접속을 어레인지해 주세요.

(なんとかして手に入れたMAX7219)(어떻게든 해 손에 넣은 MAX7219)

(マキシムのMAX7219)(맥심의 MAX7219)

MAX7219는 시리얼로 제어합니다. 시리얼 데이터는 16 bit입니다. 시리얼 신호는 다음과 같이 정의되고 있습니다. 

MAX7219はシリアルで制御します。シリアルデータは16bitです。シリアル信号は次のように定義されています。

(MAX7219のシリアルデータ)(MAX7219의 시리얼 데이터)

D11-D8의 주소 내용에 따라 D7-D0에 세트 하는 데이터가 다릅니다. 자세하게는 소스를 보고 받는다고 하여 간단하게 설명합니다.

D11-D8のアドレス内容に応じてD7-D0にセットするデータが異なります。細かくはソースを見て頂くとして簡単に説明します。
(アドレス内容の内訳)

アドレスが01h-08hの場合はデータには表示するデータをセットします。それ以上はコントロールコードになります。デコードモードや最大スキャン数、表示輝度などを設定することが出来ます。ちなみにICの18ピンに接続してある抵抗で最大輝度を設定出来ます。今回使用したLEDは結構明るかったので、50kΩの抵抗をつなぎました。このICはデータさえ送り込めば勝手に表示を継続することが出来るのでマイコンの制御は極めて簡単になります。(번지 내용의 내역)

번지가 01 h-08 h의 경우는 데이터에는 표시하는 데이터를 세트 합니다. 그 이상은 컨트롤 코드가 됩니다. 디코드 모드나 최대 스캔수, 표시 휘도등을 설정할 수 있습니다. 덧붙여서 IC의 18 핀에 접속되어 있는 저항으로 최대 휘도를 설정 할 수 있습니다. 이번 사용한 LED는 상당히 밝았기 때문에, 50 kΩ의 저항을 이었습니다. 이 IC는 데이터만 보내면 마음대로 표시를 계속할 수 있으므로 마이크로컴퓨터의 제어는 지극히 간단하게 됩니다.

3D加速度センサーで遊ぼうの3D加速度センサー

3D加速度センサーには秋月で販売されているものを使用します。チップ部品ですがDIP変換基板に載せてあるので大変使い易いです。加速度センサーはそれ自体が動いていない時は重力加速度を感じています。部品を傾けることによって3軸の重力加速度の値が異なるので電気的に部品の傾きを検出することが出来ます。加速度を感じない時は電源電圧の半分の値を出力しています。それからの変化を検出して傾きの大きさ決めます。前回の実験で最大の重力加速度を検出した場合10bitのデータで約200のデータが変化します。今回は少し傾けても検出するように変化したと判断する閾値を約70としています。

3 D가속도 센서로 놀자의 3 D가속도 센서

3 D가속도 센서에게는 아키즈키로 판매되고 있는 것을 사용합니다. 팁 부품입니다만 DIP 변환 기판에 실려 있으므로 몹시 쓰기 쉽습니다. 가속도 센서는 그 자체가 움직이지 않을 때는 중력가속도를 느끼고 있습니다. 부품을 기울이는 것에 의해서 3축의 중력가속도의 값이 다르므로 전기적으로 부품의 기울기를 검출할 수 있습니다. 가속도를 느끼지 않을 때는 전원 전압의 반의 값을 출력하고 있습니다. 그리고의 변화를 검출해 기울기의 크기 결정합니다. 전회의 실험으로 최대의 중력가속도를 검출했을 경우 10 bit의 데이터로 약 200의 데이터가 변화합니다. 이번은 조금 기울여도 검출하도록(듯이) 변화했다고 판단하는 반응을 일으키는 최소의 물리량을 약 70으로 하고 있습니다.

(3D加速度センサー)
3D加速度センサーで遊ぼうのマイコン回路図
(3D加速度センサーとマイコン回路)
SW1はX軸、Y軸の基準を設定するボタン、SW2はZ軸の基準を設定するボタンとします。
電源回路はあえて記載しませんでした。5Vのレギュレータを使って安定化して下さい。
3D加速度センサーで遊ぼうの基本仕様
1)X軸、Y軸、Z軸の傾きに応じて表示を変化します。
2)SW1を押すことでX軸、Y軸の現在値を基準値とします。
3)SW2を押すことでZ軸の現在値を基準値とします。

4)電源はレギュレータを介して5Vを印加します。

3D加速度センサーで遊ぼうのポート割付と設定

(3 D가속도 센서와 마이크로컴퓨터 회로)

SW1는 X축, Y축의 기준을 설정하는 버튼, SW2는 Z축의 기준을 설정하는 버튼으로 합니다.
전원 회로는 굳이 기재하지 않았습니다. 5 V의 레귤레이터를 사용해 안정화 해 주세요. 
3 D가속도 센서로 놀자의 기본 사양

1) X축, Y축, Z축의 기울기에 따라 표시를 변화합니다.
2) SW1를 누르는 것으로 X축, Y축의 현재가를 기준치로 합니다.
3) SW2를 누르는 것으로 Z축의 현재가를 기준치로 합니다.
4) 전원은 레귤레이터를 개입시켜 5 V를 인가합니다. 
3 D가속도 센서로 놀자의 포토 할부와 설정

(ポート割付と設定)
3D加速度センサーで遊ぼうの表示データについて

どんな表示データを作れば面白いか悩みましたが、傾けた方向に対して重力加速度が働く方向と逆向き、つまり常に地面に対して上方向を矢印が指すようにしてみました。考えるより作って見たほうが理解しやすいと思います。Z軸に対してもどちらに傾いているか判断して表示を変えています。

3 D가속도 센서로 놀자의 표시 데이터에 대해

어떤 표시 데이터를 만들면 재미있는가 고민했습니다만, 기울인 방향에 대해서 중력가속도가 일할 방향과 역방향, 즉 항상 지면에 대해서 윗방향을 화살표가 가리키도록(듯이) 해 보았습니다. 생각하는 것보다 만들어 보는 편이 이해하기 쉽다고 생각합니다. Z축으로 대해도 어느 쪽으로 기울고 있을까 판단하고 표시를 바꾸고 있습니다.

(表示する矢印データ)
3D加速度センサーで遊ぼうの大完成

まずは実際の表示の状態を見て下さい。

(표시하는 화살표 데이터)

3 D가속도 센서로 놀자의 대완성

우선은 실제의 표시 상태를 봐 주세요.

(まず水平においてSW1を押してX軸、Y軸を初期化します)

(우선 수평에 있고 SW1를 눌러 X축, Y축을 초기화합니다)

(傾けても常に矢印は上を指しています)(기울여도 항상 화살표는 위를 가리키고 있습니다)
(Z軸を傾けるとこのような表示に)(Z축을 기울이는 곳과 같은 표시에)
(こんな感じでケースに入れています)

側面に付いているボリュームは輝度調整用です。あまり電流を流さなくてもこのLEDは明るく光るようです。(이런 식으로 케이스에 넣고 있습니다)

측면을 뒤따르고 있는 볼륨은 휘도 조정용입니다. 별로 전류를 흘리지 않아도 이 LED는 밝고 빛나는 듯합니다.

(中身はこんな様子です。比較的簡単ですね)
3D加速度センサーで遊ぼうのソースファイル
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全てのファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
iさて皆さんいかがでしたか。3D加速度センサーって結構簡単に遊べますよね。今回は矢印の表示のみとしましたが、もっと工夫すると大変楽しいセンサーになりますね。私のモットーとしては製作は形にしたもので完結しないといけないと考えています。しかしながら製作は一つの例ですので皆さんのアイデアでもっと楽しいものにしていって下さい。さあもうすぐお盆休みに突入します。楽しい製作がどんどん登場してきますよ。ご期待下さい。

これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります

3 D가속도 센서로 놀자의 원시 파일

원시 파일 일식은 이쪽으로부터 다운로드해 주세요.

폴더마다 압축하고 있습니다. 모든 파일이 들어가 있습니다. 라이터로 쓰는 실행 파일도 포함되어 있습니다. 
i 그런데 여러분 어땠습니까?3 D가속도 센서는 상당히 간단하게 놀 수 있지요. 이번은 화살표의 표시만으로 했습니다만 더 궁리하면 몹시 즐거운 센서가 되는군요. 나의 모토로서는 제작은 형태로 한 것으로 완결하지 않으면 안 된다고 생각하고 있습니다. 그렇지만 제작은 하나의 예이므로 여러분의 아이디어에서 좀 더 즐거운 것으로 하고 있어는 주세요. 자 곧 있으면 여름 휴가에 돌입합니다. 즐거운 제작이 자꾸자꾸 등장해와요. 기대해 주세요. 
앞으로도「NEC78K0/K0S 마이크로컴퓨터 개발실」은 자꾸자꾸 즐거워집니다

new_3d.zip
0.06MB
반응형

'펌웨어디자인(Firmware Design)' 카테고리의 다른 글

적외선무선제어조광기  (0) 2008.11.02
MP3  (0) 2008.10.29
Controlling LED Arrays on TCP/IP Networks  (0) 2006.08.01
PIC12F629  (0) 2006.07.24
PIC베이직컴파일러참조매뉴얼  (0) 2006.05.05