- | 次の10件
超音波距離計の製作1 [アプリケーション]
※勿論これは普通にArduinoでも実験可能です!。是非お試しを。
超音波距離計は、40KHzの超音波領域の音をスピーカーから発し、対象物に当たって帰って来た音をマイクで拾い、往復に掛かった時間から対象物までの距離を計算すると言う、わりと簡単な原理で動いています。
秋月で発売されている超音波距離計は、タイマーICで40KHzを生成してスピーカーで出し、マイクで拾った音を増幅して簡単なバンドパスフィルターを通して一定のレベルとの比較出力を時間を換算しているロジックに入れて距離を出し、7セグメントLEDにて表示をしています。
なかなか良く考えられた回路だと思います。
翻ってArduinoでそれをやろうとした時、勿論特別にタイマーICを用意する必要も、時間を計るロジックICを用意する必要も無く、全てはArduinoのAVRマイコンの中にあります。
なので超音波距離計を作る残りの要素は極僅かですね。
超音波スピーカーをドライブする回路と、超音波スピーカー、超音波マイクに増幅回路、バンドパスフィルター、レベル比較器、表示器だけです。
この位の回路なら十分ブレッドボード上に構成可能です。それがこの記事の冒頭の写真となっています。
回路図はこれです。拡張子をpdfに戻してください。
また、スケッチは簡単ですが以下の内容で可能です。
※Maruduinoのプロトタイプ基板で作成している為、若干発売中の基板とはポートが異なります。
超音波距離計は、40KHzの超音波領域の音をスピーカーから発し、対象物に当たって帰って来た音をマイクで拾い、往復に掛かった時間から対象物までの距離を計算すると言う、わりと簡単な原理で動いています。
秋月で発売されている超音波距離計は、タイマーICで40KHzを生成してスピーカーで出し、マイクで拾った音を増幅して簡単なバンドパスフィルターを通して一定のレベルとの比較出力を時間を換算しているロジックに入れて距離を出し、7セグメントLEDにて表示をしています。
なかなか良く考えられた回路だと思います。
翻ってArduinoでそれをやろうとした時、勿論特別にタイマーICを用意する必要も、時間を計るロジックICを用意する必要も無く、全てはArduinoのAVRマイコンの中にあります。
なので超音波距離計を作る残りの要素は極僅かですね。
超音波スピーカーをドライブする回路と、超音波スピーカー、超音波マイクに増幅回路、バンドパスフィルター、レベル比較器、表示器だけです。
この位の回路なら十分ブレッドボード上に構成可能です。それがこの記事の冒頭の写真となっています。
回路図はこれです。拡張子をpdfに戻してください。
また、スケッチは簡単ですが以下の内容で可能です。
※Maruduinoのプロトタイプ基板で作成している為、若干発売中の基板とはポートが異なります。
/***********************************************************************/ /* ultra sonic distance meter */ /* designed by hamayan */ /* Copyright(C) hamayan */ /***********************************************************************/ #include <LiquidCrystal.h> #include <avr/io.h> #include <avr/interrupt.h> /*************************************************************************/ /* defines */ /*************************************************************************/ #define AREF 0 #define NOT_GND 1 #define DI13 2 #define DI12 3 #define DI11 4 #define DI10 5 #define DI9 6 #define DI8 7 #define DI7 8 #define DI6 9 #define DI5 10 #define DI4 11 #define DI3 12 #define DI2 13 #define DI1 #define DI0 #define AN0 14 #define AN1 15 #define AN2 16 #define AN3 17 #define AN4 18 #define AN5 19 #define PWM11 DI4 #define PWM10 DI5 #define PWM9 DI6 #define PWM6 DI9 #define PWM5 DI10 #define PWM3 DI12 /*************************************************************************/ /* global parameter */ /*************************************************************************/ #define UltraSonicPin PWM6 LiquidCrystal lcd(DI2, DI3, DI4, DI5, DI6, DI7); /*************************************************************************/ /* prototype */ /*************************************************************************/ /*************************************************************************/ /* timer1 output compare match a int handler */ /*************************************************************************/ SIGNAL( TIMER1_COMPA_vect ) { } /*************************************************************************/ /* setup */ /*************************************************************************/ void setup() { lcd.begin(16,2); lcd.clear(); lcd.print( "designed by" ); lcd.setCursor(0,1); lcd.print( " hamayan." ); pinMode( DI8, INPUT ); pinMode( DI10, OUTPUT ); digitalWrite( DI10, LOW ); } /*************************************************************************/ /* main loop */ /*************************************************************************/ void loop() { digitalWrite( DI10, HIGH ); tone( UltraSonicPin, 40000 ); unsigned long startMicro = micros(); // delayMicroseconds( 500 / 8 ); delayMicroseconds( 250 / 8 ); noTone( UltraSonicPin ); // delayMicroseconds( 500 / 8 ); delayMicroseconds( 750 / 8 ); digitalWrite( DI10, LOW ); delayMicroseconds( 500 / 8 ); unsigned long endMicro = startMicro; while( digitalRead( DI8 ) == LOW ) { endMicro = micros(); if( (endMicro - startMicro) > 20 * 1000UL ) break; } unsigned long distance; if( (endMicro - startMicro) < 20 * 1000UL ) { distance = ((340 * (endMicro - startMicro)) / 10000UL) / 2; } else { distance = 999; } lcd.clear(); lcd.print( distance ); lcd.print( "cm" ); delay( 500 ); }
Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ
- 作者: 小林 茂
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/05/27
- メディア: 大型本
搭載イメージ(写真) [ドキュメント]
以前、Maruduinoの実装イメージが判らないとご指摘を受けていました。それはそうですよね、かつてArduinoのシールドの中で基板をひっくり返して実装するシールドなんて見た事ないですから。
と言う訳で幾つかの搭載部品の写真を掲載してみました。実装時の参考としてください。
※写真は試作段階の基板を使用しているため、実際にマルツさんから購入した場合の部品や搭載位置に若干の違いがあります。
と言う訳で幾つかの搭載部品の写真を掲載してみました。実装時の参考としてください。
※写真は試作段階の基板を使用しているため、実際にマルツさんから購入した場合の部品や搭載位置に若干の違いがあります。
写真はJapaninoですが、Duemilanoveでも同様にひっくり返して搭載してください。 下側がシールドの搭載位置です。こちらは普通の向きとなります。 | |
基本パーツのLEDやスイッチの搭載位置はここになります。 ※LEDを点灯させる場合はスイッチは使えません。逆にスイッチを使う場合はLEDを使う事ができません。どちらかを排他で使う事になります。 | |
ブレッドボードの搭載位置はこの辺りとなります。基板上にシルクで四角い枠が描かれています。 両面テープで固定する場合は下の説明をご覧下さい。 | |
|
|
スピーカー出力周りの実装です。ここはLCDの真下となりますので、電解コンデンサーを立てて実装する事ができません。写真の様に寝かせた状態で実装して下さい。この時、電解コンデンサの極性を間違えない様にして下さい。2つのコンデンサ共にこの向きから見た時、右側に白い帯が来るようにします。 ※スピーカーは100円ショップで販売されている物が使えます。 | |
外部電源入力です。+9Vで中心が正極のACアダプターが使用できます。このアダプターが利用できます。 https://www.marutsu.co.jp/user/shohin.php?p=9196 ※ここもシールド基板の下になりますので、電解コンデンサは寝かせて実装する事となります。この向きから見た時は左側にコンデンサの白い帯が来ます。 ※外部電源入力は、必ずベースボード単体で動かす時のみ、ACアダプターを接続してください。 |
|
ブレッドボードを外して、このMaruduinoの拡張機能のIO拡張を使う時、この位置にIOエクスパンダーIC及びRTCを搭載します。 IOの拡張はI2C機能を利用します。I2C機能はArduinoのWireライブラリを使うと利用できます。 | |
7セグメントLEDを搭載する時はこの位置に実装します。一番上から電流供給(Source)用のPNPトランジスタ、若干の抵抗、そしてアノードコモンに分類される7セグメントLEDとなります。 7セグメントLEDのドライブは、先のI2C、IOエクスパンダーICで行います。 | |
24個のタクトスイッチを付ける位置は基板の一番下となります。 並びを見ると判る様に、鍵盤を模してあります。スイッチのスキャンは、先のI2C、IOエクスパンダーICで行います。マトリックススキャンではないので、ソフトウエアが容易になりますし、複数キーの同時押しも可能です。 |
Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ
- 作者: 小林 茂
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/05/27
- メディア: 大型本
大人の科学マガジン Vol.27(8ビットマイコン) (Gakken Mook)
- 作者: 大人の科学マガジン編集部
- 出版社/メーカー: 学習研究社
- 発売日: 2010/05/12
- メディア: ムック
ドキュメント置き場 [ドキュメント]
※2010年7月12日更新
このページではMaruduinoのドキュメントの公開を行います。
このblogには本来画像、動画しか登録できないのですが、ドキュメントのほとんどはPDFでの提供となりますので、ちょっと変わった方法でblogに貼り付けます。
各種アーカイブ(zipやpdf)の拡張子をjpgに変換して、blogにはリンク先を用意しますので、ブラウザの画面上で右クリックなどからリンク先のアーカイブをローカルに落とし、その後拡張子をpdfまたはzip等に戻してからお使いください。
1.回路図
回路図です、拡張子をpdfに戻してお使いください。
2.全部入り部品表
※ただし全部の部品を載せて、全部の機能を同時に動かす事はできません。
部品表全部入り。拡張子をpdfに戻してお使いください。
3.基本構成パッケージ
Maruduino基板にこの部品を付け足す事で、キャラクターLCD、ブザー、LED、スイッチ等のArduinoのサンプルを実験できます。
基本構成パッケージ。拡張子をpdfに戻してお使いください。
4.Duemilanoveクローン作成パッケージ
DuemilanoveやDiecimila相当にする為に必要な部品です。クローンの作成に付いては別途解説を行います。
クローン作成パッケージ。拡張子をpdfに戻してお使いください。
5.XBee追加パッケージ
XBeeを追加する際に必要となる部品です。XBeeの追加方法に付いては別途解説を行います。
XBee追加パッケージ。拡張子をpdfに戻してお使いください。
6.7セグメントLED追加パッケージ
ブレッドボードを使った実験が一通り終わったら、ブレッドボードを外して代わりに7セグメントLEDを搭載し、色々な表示に利用してみよう!パッケージです。
近日中にマルツさんからMaruduinoに搭載できるRTCモジュールが発売されますので、RTCを追加すれば時計として利用できます。
7セグメントLED追加パッケージ。拡張子をpdfに戻してお使いください。
7.24キー追加パッケージ
ブレッドボードを使った実験が一通り終わったら、ブレッドボードを外して代わりに24個のタクトスイッチを搭載し、簡易キーボードを作成してみよう!パッケージです。
注意!6.の7セグメントLEDと同時使用はできません。
24キー追加パッケージ。拡張子をpdfに戻してお使いください。
8.基板の部品面(表面)シルク図(部品配置を示した図)
部品を実装する際にご利用ください。
部品面シルク図。拡張子をpdfに戻してお使いください。
9.基板の半田面(裏面)シルク図(部品配置を示した図)
部品を実装する際にご利用ください。
半田面シルク図。拡張子をpdfに戻してお使いください。
10.基板の部品面(表面)パターン(基板上の配線)図
パターンを確認する際にご利用ください。
部品面パターン図。拡張子をpdfに戻してお使いください。
11.基板の半田面(裏面)パターン(基板上の配線)図
パターンを確認する際にご利用ください。
半田面パターン図。拡張子をpdfに戻してお使いください。
データシート
1.7セグメントLED
掲載の部品表ではアノードコモン10mm×13mm×文字高さ9.9mmの青色LEDでしたが、どうも売り切れたみたいなので、代品は緑色か赤色となってしまいますが、以下のリンク先の商品です。
http://www.marutsu.co.jp/user/shohin.php?p=9158
https://www.marutsu.co.jp/user/shohin.php?p=9159
青色LEDのデータシートはこれになります。拡張子なpdfです。
ええ勿論、データシート見て同等品を実装されても良いのですよ。
このページではMaruduinoのドキュメントの公開を行います。
このblogには本来画像、動画しか登録できないのですが、ドキュメントのほとんどはPDFでの提供となりますので、ちょっと変わった方法でblogに貼り付けます。
各種アーカイブ(zipやpdf)の拡張子をjpgに変換して、blogにはリンク先を用意しますので、ブラウザの画面上で右クリックなどからリンク先のアーカイブをローカルに落とし、その後拡張子をpdfまたはzip等に戻してからお使いください。
1.回路図
回路図です、拡張子をpdfに戻してお使いください。
2.全部入り部品表
※ただし全部の部品を載せて、全部の機能を同時に動かす事はできません。
部品表全部入り。拡張子をpdfに戻してお使いください。
3.基本構成パッケージ
Maruduino基板にこの部品を付け足す事で、キャラクターLCD、ブザー、LED、スイッチ等のArduinoのサンプルを実験できます。
基本構成パッケージ。拡張子をpdfに戻してお使いください。
4.Duemilanoveクローン作成パッケージ
DuemilanoveやDiecimila相当にする為に必要な部品です。クローンの作成に付いては別途解説を行います。
クローン作成パッケージ。拡張子をpdfに戻してお使いください。
5.XBee追加パッケージ
XBeeを追加する際に必要となる部品です。XBeeの追加方法に付いては別途解説を行います。
XBee追加パッケージ。拡張子をpdfに戻してお使いください。
6.7セグメントLED追加パッケージ
ブレッドボードを使った実験が一通り終わったら、ブレッドボードを外して代わりに7セグメントLEDを搭載し、色々な表示に利用してみよう!パッケージです。
近日中にマルツさんからMaruduinoに搭載できるRTCモジュールが発売されますので、RTCを追加すれば時計として利用できます。
7セグメントLED追加パッケージ。拡張子をpdfに戻してお使いください。
7.24キー追加パッケージ
ブレッドボードを使った実験が一通り終わったら、ブレッドボードを外して代わりに24個のタクトスイッチを搭載し、簡易キーボードを作成してみよう!パッケージです。
注意!6.の7セグメントLEDと同時使用はできません。
24キー追加パッケージ。拡張子をpdfに戻してお使いください。
8.基板の部品面(表面)シルク図(部品配置を示した図)
部品を実装する際にご利用ください。
部品面シルク図。拡張子をpdfに戻してお使いください。
9.基板の半田面(裏面)シルク図(部品配置を示した図)
部品を実装する際にご利用ください。
半田面シルク図。拡張子をpdfに戻してお使いください。
10.基板の部品面(表面)パターン(基板上の配線)図
パターンを確認する際にご利用ください。
部品面パターン図。拡張子をpdfに戻してお使いください。
11.基板の半田面(裏面)パターン(基板上の配線)図
パターンを確認する際にご利用ください。
半田面パターン図。拡張子をpdfに戻してお使いください。
データシート
1.7セグメントLED
掲載の部品表ではアノードコモン10mm×13mm×文字高さ9.9mmの青色LEDでしたが、どうも売り切れたみたいなので、代品は緑色か赤色となってしまいますが、以下のリンク先の商品です。
http://www.marutsu.co.jp/user/shohin.php?p=9158
https://www.marutsu.co.jp/user/shohin.php?p=9159
青色LEDのデータシートはこれになります。拡張子なpdfです。
ええ勿論、データシート見て同等品を実装されても良いのですよ。
Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ
- 作者: 小林 茂
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/05/27
- メディア: 大型本
- | 次の10件