プロジェクトショーケース'14


25

このロゴは、クリエイティブコモンズライセンスCC-SA-BY-NC 3.0に基づいてライセンスされたArduino Community Logoの派生物です。

更新:受賞者発表

コンテストの受賞者が発表されました。詳細については、メタ投稿を参照してください

Arduinoの10年を祝うため、Arduino Stack Exchangeで初めてのイベントを発表できることを誇りに思います。

ボードとはんだ付け装置を取り出し、ICと抵抗器を掘り出します。最初のArduino Stack Exchangeコンテストはもうすぐです。Arduinosを使用して構築された興味深いプロジェクトを探しています。コンテストの目的は、あなたや他のメンバーが取り組んでいるプロジェクトの共有、議論、フィードバックの提供です。発表記事を見る

詳細:

  • 賞品は公式のStack Exchange Tシャツです
  • 1人あたり2つのエントリを制限します。3つ以上を指定した場合、最初の2つだけが考慮されます。
  • クローン許可されます。
  • 検討対象のプロジェクトは、2014年3月29日4:00 UTCまで受け付けられます。誰かがArduino Day 2014で作成したプロジェクトを披露したい場合に備えて、質問は未解決のままです。

このイベントと詳細については、メタ投稿をご覧ください。

回答フォーマット

コンテストのエントリとして、最大2つのプロジェクトを(2つの個別の回答として)投稿できます。余分なエントリはすべて削除されます。次のエントリのテンプレートに従うことを検討してください。

プロジェクト名

非常に簡単な説明

説明

あなたのプロジェクトは何ですか?それは何をするためのものか?どのような問題を解決しますか?

設計

このセクションに含めるもの:

  • 回路図およびその他の設計ドキュメント。Fritzingは、上記のプロジェクトロゴに示されているようなブレッドボードの回路図を描くのに適したツールです。
  • プロジェクトのビルドに使用されるコンポーネント
  • 写真またはビデオ

結論

最終的な考え。このプロジェクトを行うことから何を学びましたか?最初からやり直さなければならなかったらどうしますか?

このテンプレートを使用する場合は、次のテキストをコピーして貼り付けることができます。

# Project Title
**Very Brief Description**

# Description
What is your project? What does it do? What problem does it solve?

# Design
Things to include in this section:

- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video

# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?

賞品

2つの賞品があります!勝者は、最大数の賛成票を獲得した提出物であり(反対票はカウントされません)、スタック交換Tシャツ*を受け取ります!次点者にも何かがあります。次点者はイベント主催者の裁量で決定されます。

*特定の制限が適用される場合があります。国際配送には数週間かかる場合があります。

プロジェクトはどこに提出すればよいですか?

この投稿への回答としてプロジェクトを投稿してください。


どのような正確に「Arduinoの」プロジェクトであることのために資格がありますか?私は多くの場所でoptibootを使用していますが、それはarduinoツールチェーンが使用する単なるプロジェクトであるため、「arduino」であるとは見えません。arduino-form-factorでボードを使用する以外に、「arduino」と「non-arduino」を明確に区別する方法がわかりません。ただし、arduinoテキストエディタを使用してプロジェクトをコンパイルすることを明示的に要求しない限り、 Arduinoエディターは恐ろしく、優れたコーダー全員がずっと前にそれを使用しなくなったため、それはおそらくすべてのまともなプロジェクトを失格とするでしょう。
コナーウルフ14

のは、この議論を見てみましょう@FakeName メタポスト
sachleen

回答:


14

ステートフルクエストボックス

Aは、GPSあなたが開く前に、いくつかのスポットを訪れますパワードボックスを

説明

questboxに似ていますが、EEPROMに少量の情報を保存するため、開く前に2つか3つの異なる場所を訪れる必要があります。

設計

必要なハードウェア:

  • Arduino Uno
  • リバースジオキャッシュバージョン2(またはプロトシールド)
  • GlobalSat EM-406A GPSモジュール
  • コネクタヘッダーとケーブル付きの2×8ブルーLCD
  • Hitec HS-55サーボモーター
  • 4-40プッシュロッドとラッチ用クレビス(一部のバージョンでは代わりにZベンドロッドが提供されます)
  • 2本の単三電池ホルダー
  • 青色LEDと4ピンケーブルが埋め込まれた金属製プッシュボタン
  • Pololu低電圧スイッチ
  • Pololu 5 Vブーストレギュレーター
  • EM-406A GPSモジュール用のJSTコネクタ
  • ディスプレイ、サーボ、およびプッシュボタンコネクタ用のストレートおよびライトアングルヘッダーピン
  • 電流制限およびディスプレイコントラスト調整用の2つの抵抗
  • 電力平滑化用の2つの小さなコンデンサ
  • ディスプレイコントラスト回路用のより大きなコンデンサ

総ハードウェアコスト:137 $ +送料

追加資料:

  • 素敵な箱
  • エポキシ接着剤、木片を覆う木材、工具

組み立て手順は日時計のページで見つけることができます(ほとんどの資料を購入できます)。

ステートフルコードをアップロードし、ここにリンクを投稿します。残念ながら、すべての必要なハードウェアを時間通りに取得できないので、これは単なるアイデアです:)

これまでに書いたコード

インスピレーション:元のクエストボックス

結論

一緒に多くのコンポーネントとライブラリを統合する方法を学びました、それをテストするために少し旅行する必要があります:)

予算をかなり削減して、コンセプトを少し変えることができます。


11

ぼんやりしたPCユーザーのための省エネ

このデバイスは、デスクのライトが暗く(PCのスクリーンセーバーと同期している場合)、デスクのライトのオン/オフを切り替えます。

説明

このプロジェクトは、光感知センサー、リレー、およびPCのスクリーンセーバーを監視するスマートコードの組み合わせに過ぎません。夕暮れのとき、スクリーンセーバーがアクティブでないときは、机の上のライトが点灯します。その後、デスクを離れると、スクリーンセーバーが起動し、デスクライトが消灯します。日中に十分な照明がある場合、照明はまったく点灯しません。解決した問題は、部屋を出たときにオフィスの照明が点灯することによるエネルギーの無駄を減らすことです。

設計

マイクロコントローラー/ Arduinoのパワーにより、有用なプロジェクトを作成するために必要なハードウェアはほんのわずかです。同じことがこのプロジェクトにも当てはまります。このプロジェクトでは、ハードウェアは次のものにすぎません

  • Arduino
  • 外部コンポーネントを接続するためのネジシールドのカップル
  • 周囲光を測定するための抵抗器と直列のLDR
  • 主電源のライトをオン/オフするリレーカード
  • ボードがリセットされて誤ってプログラムされるのを防ぐためのGNDからRSTへの10μFコンデンサ。

回路図

この回路のシミュレーションCircuitLabを使用して作成された回路

結論

USBシリアルリンクを介してArduinoとPCを接続する方法と、PCでスクリーンセーバーの現在の状態を読み取る方法を学びました。最初からやり直す場合、実際には単一のデジタル出力と単一のアナログ入力しか必要ないので、はるかに小さいコントローラーを使用します。おそらくプロジェクトをV-USBに基づいてください。ただし、Arduinoは、迅速で簡単な概念実証(PoC)に優れています。(PoCは、少なくとも2年はすでに私の机の上にあります)。


最終的なボードとセットアップの写真を見るのは素晴らしいことです。応答時間はどのくらいですか?インスタント?一分後?
サックリーン14年

@sachleenスクリーンセーバーをポーリングするPC上のデーモンは、スクリーンセーバーがオフのとき(PCで作業しているとき)は30秒ごとに、オンのときは5秒ごとに実行されます。私はその速度を上げることができますが、それはCPU負荷とその電力使用に影響します... Arduinoがリセットされて誤ってプログラムされるのを防ぐために、コンデンサも取り付けられています。
ジッピー14年

夕暮れ時の@sachleenは時間の経過とともにゆっくりと落下しますが、この30秒は実際には問題ではありません。30秒以上の暗闇の違いに誰も気づきません。ライトをオンに戻すと、マウスを動かしたりキーボードを打ったりしてから5秒以内に 暗くて明るいと見なされるものにわずかなヒステリシスがあり、これは、アクティブになるのに十分なほど暗くなっているときに非常に多くの秒ごとにライトがオン/オフになるのを防ぎます。
ジッピー14年

あなたは完全に暗闇の中じゃないので、それは10〜15秒間、50%でそれを暗くするために変更する必要があり、それはあなたに少し「警告」を与える
匿名ペンギン

@AnnonomusPerson 100-250VAC入力仕様のSMPSの240VAC側を切り替えています。私は二次側を切り替えたくないので、起こるつもりはありません。いいアイデアですが、スマートな白色LEDを何とか追加できるかもしれません。
ジッピー14

8

私はこの種のルールはほとんどルールに適合しないと思いますが、とにかく投稿したいと思うほど面白いです。

データ取得のための高精度、GPS同期タイムスタンプジェネレーター。

これは、複数の独立したデータ取得システムを簡単に同期する方法を提供するために使用することを目的とした、かなり興味深いプロジェクトです。

基本的に、私は研究所で働いており、多くの場合、物理的に50フィート離れた複数の独立したデータ収集システムを持つ機器を持っています。各システムからサンプルが取得された時間を相関させる必要があります。これは、サンプリング時間を非常に正確に解決したい場合は困難です。USBデータ収集システムのようなものを使用すると、USB遅延だけで数百ミリ秒の未知の遅延が発生する可能性があり、取得ごとに異なる場合があります。

以前のソリューションは24ビットのパラレルカウンターで、どこでも単純にバス接続されていて、巨大なワイヤハーネスが必要で、ちょっとした苦痛でした。

このシステムは、GPS衛星の原子時計に位相および周波数ロックされた任意の周波数時計を合成できる特殊なタイミングGPSモジュールを使用します

MCUは、GPSデータメッセージを結び付ける責任があります(GPSデータの既存のプロトコルパーサーを大幅に拡張および最適化する必要がありました)。GPSは、独自のバイナリプロトコルを使用するように構成されており、作成したパーサーによってすべて解析されます。

このプロジェクトは多くの改訂を経ています(下図)。

設計

改訂! ここに画像の説明を入力してください
Rev 1:最初はずっと安価なGPSからソフトウェアdPLLを使用して、1 PPS出力のみから高周波クロックを合成したいと思っていたため、機能しませんでした。おそらくそれを機能させることは可能かもしれませんが、時間を費やすだけでは価値がありませんでした。(そして、私はコーダーが安っぽいです)

視差プロペラMCUを使用しました。まともなコンパイル言語の欠如も大きな問題でした。


ここに画像の説明を入力してください
Rev 2:ATmega2560に移行。働いた、最初の回転から継承されたファンキーなデザインの側面がたくさんあった。主に、ATmega2560で十分な数のIOを使用しているにもかかわらず、32ビット出力用にシフトレジスタを継続して使用します。

Optibootを実行し、実際に完全に標準のArduinoツールチェーンを使用してプログラムされた最初のボードは、イライラし、目的に合わせてツールチェーンを変更し始めました。


ここに画像の説明を入力してください
改訂3:また働いた。このボードには、USBハブが組み込まれているため、必要なUSBポートの数を減らすことができます(FTDIインターフェイスにはUSBが1つ必要で、GPSにもUSBインターフェイスがあります)。残念ながら、FTDIデバイスは正常に機能しましたが、GPSは適切に列挙されません。このハブは問題なく他の場所で使用しました。奇妙な。

適切なUSBデバッガーがないので、問題を修正するのではなく、USBハブを完全に削除しました。GPS usbは、セットアップ以外ではあまり使用されませ


ここに画像の説明を入力してください
Rev 4:準決勝ATmega2560バージョン。GPSステータスのLCDを追加し、LEDなどをいじりました。また、電源が入っていないときにGPSステータスを維持するためのスーパーキャパシターのフットプリントが改善されました。

これが最後のOptibootバージョンです。

MStimeは、MSTOWミリ秒-Time-Of-Weekです。これは、タイムスタンプ出力で出力されるGPSデータ値の名前です。これは32ビット変数で、ミリ秒ごとに1つずつ増加し、毎週ロールオーバーします。これは、GPS標準のより曖昧な部分です。

ITOWは、1PPS信号に対応する値である別のGPS関連値です。2つの間の相関関係はLCDに適切に反映されません。これは、希望する速度でLCDを更新するCPU時間がないためです。これは実際、Xmegaデバイスへのアップグレードで改善された主要なものの1つでした。


ここに画像の説明を入力してください
Rev 5:完全なアーキテクチャの切り替え。ATxmega128A1Uプロセッサを使用するようになりました。本当に「Arduino」ではありませんが、xmegaプロセッサシリーズで複数の割り込みレベルを使用できるため、コード構造を大幅に改善することができました。

2つのボッジワイヤは私が実験を行ったもので、ボードはそれらなしでも正常に機能しました。

楽しみにしている:

Rev 6! ここに画像の説明を入力してください
さまざまなLCDサイズを使用する機能、GPSアンテナ接続でのESD保護(問題)、GPSクロックを維持するためにスーパーキャパシタの代わりにCR2032バッテリーを使用する機能を追加します。

また、デバッグLEDとステータスLEDのラベル付けが大幅に改善されました。

ここに画像の説明を入力してください
ボーナスニャンキャット!

ここに画像の説明を入力してください

(これらのボードは現在製作中です。入手したら、実際のボードの写真を追加します。)


2つのATmega2560ボード間で長時間テストを行ったところ、72時間を超えると、2つのユニット間のRMS時間誤差は約20 uSでした。これは、2つの完全に独立したアンテナでも行われました。私の設計目標は1ミリ秒未満でしたので、私はそれでとても満足しています。

全体として、これはArduinoがどのように「実際の」製品/システムの初期プロトタイピングに役立つツールになるかを示す良い仕事だと思います。最小限の労力で最初のテストバージョンを実行するために使用し、アイデアが機能すると確信したら、実際に作業を投入して、完全にカスタム化された目的固有の実装に移行します。


設計ファイル:
https : //fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(「GPS Timestamp」シリーズのディレクトリ内)。
(注:ファイルはAltium Designerからのものです。イーグルファイルではありません)。

ソースコード:
https :
//fake-server.no-ip.org/svn/Programming/Code/AVR/再び、「gpsTimeStamp」シリーズのディレクトリ内。

くだらない携帯電話の写真でごめんなさい。


写真の数を減らしてください。アイデアを広めるには3-4で十分です。遅い接続での読み込みにはかなり長い時間がかかります。
asheeshr

7
@AsheeshR-私は強く同意しません。私は前の回転から写真の一つを落とすことができました、しかし、システム設計の進行があることは非常に価値があると思います。
コナーウルフ14

1
シルクスクリーンを楽しんでいますか?
TheDoctor

ああ、3DビューPCB。ああ、それはアルティウムであり、かなり高価ですか?:$これらのプロジェクトを見て、または他の人が行っているプロジェクトを見るのはかなり楽しいです
ポール

7

ソニックレイガン

子供たちによる2つのプロジェクト

私は数人の家庭教育を受けた子供たちと仕事をしていて、私たちはアルドゥイノをたくさん楽しんでいます。彼らの最初のプロジェクトは、映画で見られるような偽の爆弾で、LCDカウントダウンタイマーと古典的な「赤または青のワイヤーをカットしますか?」タイプの問題。

プロジェクト2は、toneMelodyの例と小さなスピーカーを見せることから始まりました。周波数を最大15kHzまで上げると、ティーンエイジャーにとってかなり面倒であることがすぐにわかりました。1時間後、彼らはカップ、トイレットペーパー、指向性ソニックレイガンを作るクリップで作られたスイッチで設計を改善しました。

悲しいことに写真はありません。

結論

子供にアルドゥイノを放置しないでください。


3
もう少し説明してください(コード、フリッツなど)?
匿名のペンギン14年

7

(偽)Arduino上のLinux

最近、小さな複合LCDスクリーンを入手し、Arduino TVoutライブラリの使用をすぐに始めました。次に何が来ましたか?Linux!

説明

テレビ画面とTVoutライブラリで遊んでいると、テレビ用の端末ハンドラーが事前に作成されていることがわかりました。私はすぐに、PS / 2キーボードに接続されたTV端末として使用する実験を始めました。使用したPS / 2ライブラリにはいくつかの問題があったため、Mega ADKでUSBキーボードとともにUSBライブラリを使用するように移行しました。それはずっとうまくいった。今すぐ保管します。

私のSDカードシールドはMegaと互換性がないため、ボードの最後でSPIに無計画に配線しました。ファイルの一覧表示、ディスクサイズ、空き領域などの検索などのいくつかのタスクを実行するコマンド処理を作成しました。アセンブリ全体が決して完成したわけではありませんが、これまでの進捗に満足しています。

コードは最終的にGithubに再配置されます。コメントをご覧ください。

設計

写真をズームアウト

画面を閉じる

課題

入力した文字を、現在のコマンドを格納している文字列に連結するのに苦労しました。これは、正しくキャストしていなかったためです。それがわかったら、いくつかのキーが画面にランダムなゴミを印刷する問題を修正する必要がありました。これは、文字定義の前にメモリを読み取ることで発生したため、数人がそれをifクリアしました。

結論

私はコードに非常に満足しています。さらにユーティリティを追加したら、Githubに追加しますので、コメントを確認してください。全体として、とても楽しいプロジェクトでした。このプロセスでStinoを使用する方法を学びました。


これは面白いですね。あなたのコードをすぐに見たいです!
アッシュール14年

コード!!コード!!github.com/red-green/fakeLinuxonArduino
TheDoctor

LCDのコストは高かったですか?
匿名ペンギン14年


私はそれを逆アセンブル@AnnonomusPersonそれはあまりにもかさばるだったので
TheDoctor

5

ShiftLCD

8x1〜20x4文字のLCDスクリーンの背面に取り付けるAVRベースのArduino互換ボード。

説明

このボードとカスタムライブラリを設計して、LCDと使いやすくしました。現時点では非常に使いやすいですが。使用する出力ピンの数を6から3に削減します。また、ディスプレイを駆動するシフトレジスタにさらにシフトレジスタを追加することにより、I / Oを拡張するオプションもあります。使用されるプロセッサはATTiny45またはATTiny85であり、シフトレジスタを使用すると、デジタルピン1(PWM)および4が利用可能になり、アナログピン2(デジタルピン4と同じピン)が利用可能になります。

設計

回路図 OSHパークレンダー はんだ付けされていないボード

課題

私が直面した予期せぬ課題の1つは、デジタルピン0〜2を使用してシフトレジスタを実行することでした。これらはプログラミングピン(MISO、MOSI、SCK)でもありました。したがって、デバイスを再プログラムするたびに、LCDから大量のメッセージが送信され、ディスプレイをリセットするために電源をオフにする必要があります。この問題は、シフトレジスタのラッチピンをプログラミングピンではないデジタルピン3に移動することで解決しました。これを解決することで、ラッチピンを動かしたときにPWMを使用するデジタルピン1が開かれ、ボードでより多くのことができるようになったため、別の問題も解決しました。

結論

これは最もクールな製品やアイデアではないかもしれませんが、その用途はまだあります。「このプロジェクトを行うことで何を学びましたか」という質問に直接答えると、PCBボードを最初から最後まで設計する方法を学びました。別の方法で何かできるとしたら、スルーホールの代わりに表面実装部品を使用することになりますが、これもまたプロトタイプであり、1回限りのボードです。


ATtinyをどのようにプログラムしましたか?どのコードが関係しましたか?IDE?(コメントしてください、投稿を編集しないでください。
匿名のペンギン14年

@AnnonomusPerson私が以前にやったことを投稿した人がコメントを削除したように見えるので、ここでATTinyをプログラムするために必要なもの(Arduino IDEファイルとプログラミング回路図)を入手しました。highlowtech.org/?p=1695-
ジェシーラニング

表面実装を使用する理由 自宅でのスルーホールのはんだ付けははるかに簡単ですか?SMDは本番稼働専用であると思いますか、それとも他に何かありますか?
ポール

5

ボタンを押すロボット。

ボタンを押す4輪の8ポンドリモートコントロールレーザー射撃ロボット。

説明

私はこのプロジェクトを昨年度のコースで作りました。私はロボット工学のクラスにいたので、競争することにしました。各チームは、大きなボタンと他のボタンを押す方法を備えたロボットを作成します。年末には、3つのロボットが互いのボタンを押し合う最終コンテストが行​​われます。

年末までに、私のロボットは部分的にしか動作しませんでした。ロボットのすべての部分はある時点で機能していましたが、揚げたArduino、揚げたモータードライバー、ひどいコード編成、そして私がチームで唯一の合計5時間以上ロボットで作業している間に、私は完全に機能させることはできませんでした。

ほぼ1年もロボットに触れていないので、再び動作させるには、ボットを再配線してコードを書き直す必要があることを知っています。私はいつかそれをすることを決めるかもしれませんが、今のところ私はそれほど野心的でないプロジェクトに取り組むつもりです。

設計

全体設計

ここに画像の説明を入力してください

情報/電気の流れ

+--------------------------+   +-------------------------------------------------+
|         Computer         |   |      Robot                                      |
|--------------------------|   |-------------------------------------------------|
|                          |   |                                                 |
| Keyboard +--> Processing |   |  Button +-------------+        Motor    Motor   |
|                          |   |                       |          ^       ^      |
|                    +     |   |                       |          |       |      |
|                    |     |   |  Batteries +-----+    |          +       +      |
|                    v     |   |                  |    |   +----> Motor Driver   |
|                          |   |                  v    v   +                     |
|               Bluetooth +-----> Bluetooth +--> Arduino Uno +--> Motor driver   |
|                          |   |                  +    +  +       +       +      |
+--------------------------+   |                  |    |  |       |       |      |
                               |                  |    |  |       v       v      |
                               |                  |    |  |    Motor     Motor   |
                               |                  |    |  |                      |
                               |                  |    |  |                      |
                               |                  |    |  +-----> Laser          |
                               |  +---------------|----|----+                    |
                               |  |       Arm     |    |    |                    |
                               |  |---------------|----|----|                    |
                               |  |     +---------+    v    |                    |
                               |  |     |      Motor Driver |                    |
                               |  |     v              +    |                    |
                               |  |  Servo             |    |                    |
                               |  |                    v    |                    |
                               |  |                  Motor  |                    |
                               |  +-------------------------+                    |
                               +-------------------------------------------------+

構成部品

コード

コードをうまく整理できなかったので、これが正しいコードであることを願っています。

その他の写真

ここに画像の説明を入力してください ここに画像の説明を入力してください

ロボットの遅い、アームレス、ボタンレス、レーザーレス、ブルートゥースレスの初期バージョンの恐ろしいビデオ。

https://www.youtube.com/watch?v=Q7MvE7-Xb0E

結論

私は電子機器を揚げるのが得意です。

これは実際の機械工場での初めての経験でした。CNCフライス盤、手動フライス盤、旋盤、バンドソーを使用するようになりました。このようなプロジェクトを再び開始した場合、はるかに優れたドキュメントを作成できるので、1年後に何をしていたのかを理解できました。


1
よくやった!経験ほど価値のあるものはありません。重要なことは、次回より良い仕事をする方法を知っていることです。
ジッピー14年

5

Arduino用の4桁LEDディスプレイ

3つのピンで管理される4つの7セグメントLED桁の小さなボード。

説明

Arduinoを使い始めたとき、実験したさまざまなセンサーによって収集された値を表示する方法が必要でしたが、これらの値をSerialPC に出力したくありませんでした。

あるプロジェクトから別のプロジェクトに簡単に再利用できる小さなボードが必要で、ブレッドボードを用意したかった。

このボードは、その小さなライブラリとともに、現在4桁の数字表示を許可し、表示中にArduino電流をソースしません(現在表示される新しい値をボードに通信するときにのみ電流がソースされます)。

カウンター付き表示板

設計

私のLEDディスプレイを駆動するためにMAX-7219チップを再利用することに決めたので、設計はかなり簡単です(手元にいくつかありました)。

このチップのおかげで、回路図は非常にシンプルでしたが、使用方法を正しく理解することが重要でした。幸いなことに、そのデータシートは非常に明確でした。

元の設計はブレッドボードで行われ、4つの単一LED 7セグメント数字を使用しました。しかし、私の好みにはあまりにも多くの配線が必要でした(4つのグループでセグメントを接続する必要があります)。また、7セグメントLED桁の最初の実験で、1つを揚げました。2つのグラウンドピンがありましたが、両方ではなく1つだけをGNDに接続しました:-(

それから、4桁のセグメントアノードが既に接続されている4x7セグメントディスプレイ、共通カソードに行くことにしました。これはたった4 + 8ピンです!

ボード回路図

テスト中に、MAX-7219操作するのに役立つArduinoライブラリを見つけました。これを再利用することにしました。非常にシンプルなAPIを使用して、独自のライブラリを構築しました。

ブレッドボードを作成した後、設計をより永続的なものにするときが来ました。ストリップボードをたくさん持っていたので、それを選ぶことにしました。

ボードを設計するのに使用した、PC用の簡単なストリップボードデザイナーを検索して見つけまし

最初のストリップボードのデザインはスペースの観点から最適化されていなかったため、実装しないことにしました。

ストリップボードデザイン#1

次に、コストとサイズを最適化するために設計を確認しました(1つの小さな50x75mmストリップボード)。前に見つけたストリップボードデザイナーなら簡単でした。

ストリップボードデザイン#2

ボードの準備ができたら、Arduino UNOと超音波センサーで確認することにしました。

画像

私はしばしば奇妙で一貫性のない表示値を持っていたことを除いて、それはうまくいくように見えました。調査の後、ディスプレイボードによって引き起こされたノイズ、センサーに干渉したノイズが原因であることがわかりました。センサーの電流供給ピンのできるだけ近くにデカップリングキャップ追加する必要があり、それは完全に機能しました(MAX-7219チップ用のディスプレイボードにはすでにデカップリングキャップがありました)。

パーツリスト:

  • 1 x LN5461AS:4桁の共通カソード7セグメントブロック
  • 1 x MAX7219:多重化LEDドライバチップ
  • 1 x ICサポート(24ピン)
  • 1 x 22K抵抗器
  • 1 x 10uF電解キャップ
  • 1 x 100nFキャップ
  • 1 xオスピンヘッダー(5ピン)
  • 1 x 90x50mmストリップボード
  • ワイヤー、はんだ...

結論

前回の電子実験の30年後、Arduinoと、非常に単純ではあるがいくつかのことを教えてくれたこの最初のプロジェクトで、再びウイルスを取得できました。

  • 使用するコンポーネントのデータシートを解釈します(MAX7219およびLEDディスプレイ)
  • 使用方法を学び、ストリップボードの設計を効果的にする
  • GNDまたはV +とマークされたすべてのピンを接続する必要があります。接続したいと思うピンを選択しないでください。
  • 回路をテストしたときに奇妙に見えるものがあり、その理由がわからない場合は、検索しないでください。ノイズである必要があります。デカップリングキャップを追加してみてください。
  • Arduinoライブラリ(スケッチだけでなく)の作成方法を学ぶ

今日このプロジェクトを再開する場合、次のことを行います。

  • ストリップボードのデザインをさらに最適化してみてください(おそらくサイズをさらに小さくすることができます)
  • ボード上のまっすぐなピンヘッダーを直角のヘッダーに置き換えて、Arduinoに接続するワイヤがボードの前に突き出ているようにします。

5

無線周波数(RF)リモートコントロール付きデジタル壁時計

R / Fリモコン付きの大型(40x30cm / 16x12 ")7セグメントディスプレイウォールクロック。

ここに画像の説明を入力してください

説明

このプロジェクトは、R / Fリモートコントロールを備えた大型(40x30cm / 16x12 ")7セグメントディスプレイデジタル壁時計を備えています。次の機能があります。

  • 現在の時刻と日付(時間、分、秒、日、月、年)を2つの形式(時間または日付を大きな数字で表示)で表示します。
  • 現在の温度が°Cで表示されます。
  • ゼロに達すると(迷惑な)アラームを鳴らすユーザー定義のカウントダウンがあります。
  • RFリモートコントロールによってリモートで制御されるすべての機能。
  • 機能を制御するための小さなカーソルキーパッドがあります(リモートコントロールが利用できない場合)。
  • 表示ラインごとに独立した輝度制御。
  • コイン電池で駆動するリアルタイムクロックICのおかげで、オフのときでも現在の時刻を正確に維持し続けます。

設計

このプロジェクトの主要な側面は次のとおりです。

  • ArduinoとAVR ATmega328マイクロコントローラーに完全に基づいています。
  • コイン電池で駆動するDR1307 RTCのおかげで、オフのときでも現在の時刻を維持します。
  • 数字は決して多重化されません。代わりに、各桁には専用の8ビットシリアルシフトレジスタIC(74HC595)があり、他の桁に表示されているものやMCUの動作とは無関係に、選択されたセグメントを保持します。
  • セグメントは、MCUまたはシフトレジスタの消費電流を超える消費電流のため、ダーリントンアレイによって駆動されます。
  • クロックは、コントローラボード上のキーパッドとRFリモートコントロールによって制御されます。無線通信は、安価な434MHz無線受信機と送信機のペアで実行されます。
  • このプロジェクトには、単一のコントローラーで最大12桁の単一桁を管理できるモジュール設計があります。また、コントローラーは無制限の桁数の拡張可能モジュールを受け入れます(最大桁数は、シフトレジスタのデイジーチェーンとクロック信号の減衰によるタイミング遅延によって制限されます)。
  • この設計は、LEDで作成された既製の7セグメントディスプレイ桁またはカスタム桁をサポートしています。

以下は、コントローラーと7セグメントボードの1つの回路図です。

ここに画像の説明を入力してください ここに画像の説明を入力してください

ここに、私が設計、エッチング、組み立てたボードとリモートコントロールの写真をいくつか示します。

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

そして最後に、時計の別のバージョンの写真があります。今回は、長方形のLEDとディスクリートコンポーネントを使用して7セグメントディスプレイを作成しています。

ここに画像の説明を入力してください

結論

このプロジェクトは、私がこの段階に到達するのに多くの時間、努力、および学習を要しました(私が学んだように、それは決して終わりませんでした)が、それはとても楽しかったです。私が学んだいくつかのこと:

  1. 潜在的な競合を避けるために、コントローラーでGPIOピンを割り当てる前に、プロジェクトで使用するすべてのライブラリを調べてください。VirtualWireタイマーに関連付けられている輝度制御に同じPWMピンを使用するのは不運だったので、輝度とRFが同時に機能するようにボードにパッチを適用する必要がありました。

  2. KKモレックスおよびmoduコネクタの圧着には時間がかかります!!

  3. レーザーカットされたアクリル片は未来です。あなたが不器用であっても、彼らはデバイスに多くの品質を追加します。


PCBはどのように作成しましたか(エッチングと穴あけ)?
サックリーン14年

1
@sachleen私はアイロンをかけながらトナー転写方式を使用します。ボードデザインをレーザープリンターでインクジェット写真用紙に印刷し、それをボードにアイロンをかけ、FeClでボードをエッチングします。適切な用紙とプリンターの設定を見つけるには時間がかかります。ドリリングにはドレメルドリルプレスを使用していますが、フェノールボードと高速ドリルビットのみを使用しています。グラスファイバーボードはドリルビットではるかに硬く、通常、より高価で脆い超硬ドリルビットが必要です。
リカルド14年

それらのLEDはどこで入手しましたか?私は見ているいくつか持っているまさにそのように!
帽子の男14

1
@TheGuywithTheHat緑の長方形のもの?これらはブラジルのこの辺りではかなり一般的です。オンラインの電子部品店でそれらを手に入れました。ここにいくつかのリンクがあります:DigiKeyeBayで。ここに私がそれらを手に入れた場所があります
リカルド14年

5

TVアンテナローテーター

IRリモート制御アンテナの回転

テレビアンテナの方向を調整するためにソファから降りることはできませんか?また、たとえそれを行ったとしても、アンテナに近づくと受信が変わることがあります。ソファからアンテナを調整できると便利です。テレビのリモコンを使用します。

構成部品

Arduino Uno、IRレシーバー、ドライバーボード付きステッパーモーター、1インチIDベアリング、Swifferモップハンドル、プラスチックボックス、

テレビの後ろ Arduino w / IRレシーバー 箱とベアリングのクローズアップ スウィファーハンドル これらの2つのボタンは、とにかくテレビで何もしません

説明

古いSwifferモップハンドルをアンテナポストとして使用します。お気に入りのオンラインストアから1インチのIDベアリングを手に入れました。モップハンドルが押し込んで止まるだけです。モップハンドルが収まるのに十分な大きさの穴をプラスチックボックスに開けましたが、ベアリングには入れませんでした。 28BYJ-48ステッピングモーターのシャフトに合うようにモップハンドルの端に穴を開け、図のようにボックスに仕掛けを貼り付けます。実際には、モップハンドルはベアリングの上にあり、ベアリングはプラスチックボックスの上部に接着されています。 。

stepper.hライブラリを使用して、Unoからモーターを回転させました。

未使用のDVDプレーヤーを分解し、そこからIRレシーバーを回収しました。リモコンを備えたコンシューマーアプライアンスを分解して、そこからIRレシーバーを使用することができます。IRレシーバーはIRremote.hライブラリを使用します。シリアルモニターを使用して、アンテナモーターの操作に使用するテレビのリモコンの2つのボタンに対応する16進コードを印刷しました。1つは左、もう1つは右に回転します。

エネルギーを節約するには、small_stepper.motorOff()関数を使用して、各移動後にコイルをオフにします。

結論

これは妻にとっても有益な楽しいプロジェクトでした。特にアンテナの回転慣性が大きい場合は、動きに加速/減速を実装しませんでした。

編集:写真が横向きで申し訳ありません!それは私のコンピューター上で正しい側です、私はそれが横にオンラインである理由がわかりません。


5

ノックノックランプ

デスクがノックされたときにオン/オフを切り替えるランプ。現在、アルファ段階で、まだプロトタイピングを行っていますが、現存する最も有用なArduinoプロジェクトだと思います。以前に記録されたノックノックジョークからのコニージョークジェネレーターが含まれています。注:ルールに勝てないことは知っていますが、応募するルールはありません...自分のプロジェクトを披露することもできます。

説明

これまで、ほとんどのことを説明してきました。ノックすると、ライトが点滅します。私は現在ブレッドボードに乗っています。私は、ピエゾ素子を使用して、振動によるノックを検出しています。並行して、Arduino Uno SMDを保護するために1メガオームの抵抗器があります。

このデザインは、小さなトグルスイッチを探しているときに、ランプを机からノックしそうになった(笑)後に考えました。私は正確ではありません...よく賛成です。机をノックしてから明かりをとるだけでいい。また、電源スイッチテールSSR(ソリッドステートリレー:ノイズなし)を使用して、Arduinoの2本のピンで制御しています。

設計

写真 ウェブカメラをモニターに掛けて撮影した画像...

フリッツ図

プロジェクトのビルドに使用されるコンポーネント:

  • ピエゾ素子($ 3.00 USD)
  • メガオーム抵抗器(5pkで0.30米ドル)
  • Arduino Uno SMD(手持ち)
  • 電源スイッチテールSSR(船で〜25.00 USDですが、手元にあったので費用はかかりません)
  • ブレッドボードとジャンパー/余分なワイヤー(〜$ 5.00 USD、ただし手元にあったので無料)

費用:$ 3.30 USD + $ 0.02 USD(tax)==たった$ 3.32!

結論

全体として、それは単純なプロジェクトですが、実際には便利です。それは私のArduinoプロジェクトとの闘争です:実際に使用するものを構築できますか?LEDを点滅させることは、あなたの人生を正確には助けません。それは楽しいですが、それはそれについてです。

私が直面した最大の問題は(そしてまだやっていることです)、十分に強い信号を得ていないことです。電気信号について多くのことを学びました。ピンをランダムな間隔で読み取り、より高い電圧を見逃すのではなく、パルスの「ピーク」を見つける方法を見つけました。もっと敏感なピエゾ素子を取得してみます。大きなものが役立ちます。私は回路を変更して電圧を制限しないようにしていますが、Arduinoを保護しようとしています。この状況では、何らかのヒューズが役立ちます。また、抵抗値をいじっています。このためのスコープを持つことは大いに役立ちますが、私はそうではないと思います...:P

回路を完成させた後、ATtinyを使用してPCBに実装する作業を行います。さらに、キットを開発することもあります。プロセス中にボードを危険にさらすことなく、要素をより敏感にする方法に関する私の調査結果を公開しようとします。

状況の更新:私は最近本当に忙しいです。ここでは、チップを保護しながら信号の希釈を防ぐためにメガオーム抵抗器を取り外すために、ここ1〜2週間でツェナーダイオード(4.3V)を注文します。センサーの感度を高めるために、必要に応じて(ツェナーと一緒に)ここに簡単な電圧アンプを構築することができます。


1
差動およびゲインADCを備えたものに移行すると、ピエゾの感度をさらに高めることができます。そして、おそらく抵抗器の代わりにTVSを使用しています。
イグナシオバスケス-エイブラムス14年

検出または割り込みにADCを使用していますか?検出する電圧ピークの大きさのアイデアはありますか?
ジッピー14年

検出用の@jipie ADCには、かなり効率的なコードがあります。250msごとにループしてピークを見つけます。遅延なし。ピークの場合、IIRCは約14/1024です(変換するのが面倒です)。AREFピンも確認する必要がありますが、ドロップすると約9Vになる可能性があるという問題があるかもしれません。
匿名のペンギン14年

これを入力バッファーとして試してください。トランジスタは、電流増幅半波整流器/ピーク検出器として機能します。ADCで単一のピークを検出する必要はありません。トランジスタ/コンデンサがそれを引き伸ばします。設定されたように、出力電圧は2.2V DCバイアスを持っていますが、抵抗分割器を変更することにより、任意の値に変更できます。このように、1V1または2V56バンドギャップリファレンスを選択することにより、入力の感度をさらに高めることができます。10Mの抵抗により、コンデンサが約1秒間放電し、実際には私のDMMでした。
ジッピー14年

4

MySensors

-独自の低コストワイヤレスセンサーを作成し、それらを世界に接続する方法を学びます。

http://www.mysensors.org

「モノのインターネット」と呼んでいます

説明

Arduinoプラットフォームと小型の無線トランシーバーを組み合わせて、楽しくて柔軟な低コストワイヤレスセンサーの世界を実現しました。

センサー通信に関する重要な詳細はすべて、便利なソフトウェアライブラリにパッケージ化されているため、心配する必要はありません。

1、2、3と同じくらい簡単です。 Arduino + NRF24L01 +

  1. 部品を接続します。2.提供された例をダウンロードします。3.世界の測定と制御を開始します!

サイトのArduinoライブラリを使用してセンサーネットワークが自動的に形成される方法については、こちらをご覧ください。基本的にスターネ​​ットワークを形成し、数百メートルに達することがあります。

センサーネットワーク

中央に、センサーから情報を収集するArduionまたはRaspberryゲートウェイを配置します。 Raspberry Controller

Arduino Gateway

設計と回路図

これは、家の外の庭の照明を制御するために作成したプロトタイプのモーションセンサーの1つです。モーションステータスがHAコントローラーに送信され、モーションが検出されると(z-waveを介して)ライトがオンになります。ライトセンサー(画像にはありません)は、夜間にのみライトをオンにするようにします。
ここに画像の説明を入力してください

すべてのビルド手順については、http//www.mysensors.org/build/を参照してください。

他のサイトには、他の多くのワイヤレスセンサーとアクチュエーターに関するわかりやすいビルド手順もあります。ここではいくつかの例を示します。

距離センサー、モーションセンサー、リレーアクチュエーター、湿度、光、圧力、雨、温度、...

結論

このプロジェクトはまだ開始段階にあり、増え続けるホームオートメーションコントローラーのリストにプラグインを提供したいと考えています。リストの最初のことは、センサーデータ用の無料のクラウドストレージを提供するDIYコントローラーを提供することです。

こんにちは

またね@ mysensors.org

/ Henrik Ekblad(センサー間の通信に使用されるオープンソースArduinoライブラリの作成者)

  • 更新27/3。例をより具体的にし、オープンソースプロジェクトとの関係を追加しました。

4
Arduino.SEへようこそ!あなたのウェブサイトがショーケースの基準に合わないのではないかと思います。Arduinoの実用的なアプリケーションを実証する特定のプロジェクトを探しています(ここの他の例で見られます)。おそらく、構築したセンサープロジェクトの例を提供できますか?
ピーターブルームフィールド

わかりました、多分私はポイントを見逃しています;)。ここでの「特定のプロジェクト」は、Arduinosを使用して自己修復ワイヤレスセンサーネットワークを作成することです。これをアーカイブするために、NRF24L01 +トランシーバー用のオープンソースArduinoライブラリを作成しました。
hek 14年

4
これは、プロジェクトというよりは広告のように聞こえます。トーンを変更し、おそらく単一のアプリケーションにもう少し具体的にします。それがあなたが反対票を得た理由だと思います。
サイバーギボン14年

Ard.SEへようこそ!あなたのプロフィールウェブサイトに基づいて、あなたは上記で宣伝されているサイトで働いているか所有しています。それはあなたがこれを開示SE方針であるあなたの答え。それを含むように編集してください。また、これの使用例を追加できますか?
匿名のペンギン14年

私はこの(オープンソース)MySensorsライブラリを過去6か月間、空き時間に開発しています。他の人がライブラリを適切に使用できるように、私たち(この数か月でプロジェクトに参加している人が増えています)は、わずか3日前にbuild-instruction-pageを立ち上げました。この「プロジェクトショーケース」でフィードバックを得るのは良いArduinoプロジェクトだと思いました。プロジェクトへの参加を非表示にしようとしたことはないと思いますが、説明が広告として認識されている場合は申し訳ありません。私たちはプロジェクトにとても満足しています!
hek 14年

4

シリアルボックス

箱に入ったポータブルシリアルモニター

説明

デバイス(Arduinoなど)がシリアル経由でデバッグ情報を出力すると便利な場合があります。適切なシリアル入力を備えたコンピューターが手元にあれば、それは素晴らしいことです。ただし、さまざまな理由で常にそうとは限りません。

このプロジェクトは、ポータブルArduino搭載のシリアルモニターを作成することでこの問題に対処するための試みであり、フィールド内の他のデバイスに接続できます。

デフォルトでは、単にテキストをスクロールバック形式で表示します。つまり、テキストは一番下の行に表示され、すべてが上にスクロールして、さらに到着するとスペースを空けます。つまり、あらゆる種類の汎用デバイスで非常にきれいに動作するはずです。ただし、エスケープシーケンスを使用して表示をより正確に制御することもできます。そのため、デバイスを特別にプログラムしてその機能を活用することもできます。

設計

このデザインは、4つの英数字LCDディスプレイ(各16x2文字)のセットで構成され、次のようなボックスに配置されています。

シリアルボックスデザインの3Dモックアップ

ディスプレイはEpson EAX16027ARであり、残念ながら標準のHitachi HD44780ドライバーと互換性がありません。そのため、彼らのために独自のライブラリを作成する必要がありました。

私はこれらのディスプレイを(例えば1つの大きなディスプレイではなく)使用することを選択しました。主な理由は、それらを横に置いて、面白いことをしたかったからです。また、一部のアプリケーションで各ディスプレイを個別に制御できると非常に便利だと考えました(たとえば、それぞれに異なる情報を表示する)。

回路設計に関しては、ディスプレイは並列に接続されており、チップ選択ピンを使用して、必要に応じてデータ/コマンドをそれぞれに指示します。

ATMega328は最終ユニットの頭脳となり、シリアルデータはTTLレベルのライン(同様のMCUのTXに直接接続するため)から、またはオプションでRS232 9ピンD-subソケット(接続するため)他のさまざまなシステム)。ユニットには、コントラストダイヤル、表示をクリアするボタン、およびセルフテストモードを開始するボタンもあります。将来的には、ユーザーがスクロールバック履歴を移動できるボタンを追加したいと思います。

以下は非常に予備的な回路レイアウトです(何らかの理由でFritzingをうまくプレイするのに苦労しました!)。緑色で示されているLCDのデータラインを駆動するための8ビットSIPOシフトレジスタが含まれています。また、チップセレクトラインがオレンジ色で表示されます。

予備回路レイアウト

現時点では、プロジェクトはまだUno(クローン)ボードから駆動されるプロトタイプの作業段階にあります。以下に、動作中の写真を見ることができ、コンピューターからシリアル経由で渡されたテキストを表示します。

動作中のプロトタイプ

ソースコード

下のリンクのGitHubでLCDライブラリを利用できるようにしています。開発の初期段階にあることに注意してください。近い将来、コアLiquidCrystalライブラリにさらに似たものにすることで、2つの間の移行を容易にします。

Serial Boxプロトタイプの基本的なコードは、「examples」フォルダーにあります。

結論

このプロジェクトは順調に進んでおり、プロトタイプが機能することを非常に嬉しく思います。私の主な課題は、すべてを箱に取り付けることです。私はすでにディスプレイに適した穴を切り始めることを始めましたが、私はそのようなことをあまり経験しておらず、すべてを並べるのは非常に難しいと感じています。

私は最後にそこに着きます。私が終わった頃には、とてもきれいに見えないかもしれません!:)


3

加熱コントローラー

特定の時間に暖房をオンに設定し、何日遅れて作業し、何時間も熱心になっていたか、数日間離れてオフにするのを忘れたのですか?または、家に早く帰って家が寒いというまれな機会ですか?これを回避する簡単な方法は、テキストメッセージ/ SMSで加熱をオンまたはオフにできるデバイスを構築することであると判断しました。既存の制御システムに加えて、提供できる柔軟性を失わないようにします。

このプロジェクトは、Arduino Unoクローン、Seeedstudio GSMシールド、DHT22温度センサー、25アンペアSSRのいくつかの主要部分で構成されています。

使い方:

既存の加熱制御は「オフ」に設定され、新しいコントローラーはそれらを無効にするために配線されます。Unoは、オン、オフ、クエリの3つの異なるメッセージに応答するようにプログラムされています。後者の場合、ユニットはDHT22を読み取り、現在の温度とユニットのステータス(オンまたはオフ)を送信者に返信します。コマンドがオンまたはオフの場合、実行されたアクションの確認で応答します。メッセージが処理されると削除されます。特定のメッセージ構造に適合しないメッセージはSIMカードのメモリに残り、必要に応じて後で調べることができます。

ユニットへの電力は、5ボルト3アンペアのスイッチモード電源から供給されます。Arduinoの電源ピンがボードの内部5vバスを単に露出しているので、これらを通してアンサンブルに電力を供給し、Arduinoから電力を引き出すようにシールドを構成することにしました。

ユニットには3つのステータスLEDがあります。電源が供給されていることを示す緑色、GSMボードが「ライブ」であることを示す青色、加熱の状態を示す赤色 これらは、Arduinoとシールドで提供されるステータスLEDに追加されます。また、加熱の手動制御を可能にする押しボタンスイッチがあり、100nFのコンデンサでデバウンスを処理します。

次:

コードの多くは、シールドがそのアクションを実行するのに十分な時間を与えるために古き良きdelay()に依存しています。割り当てられた時間内に指示されたことを実行したと想定するのではなく、シールドからの確認を待つようにコードを改善する予定です!また、「アライブ」機能を追加します。一定の間隔で青いLEDをオフにし、ATコマンドをシールドに送信し、確認時にLEDを再度オンにします。シールドはソフトウェアの制御下にあるため、応答に失敗した場合はオフにしてから再びオンにします。

アンサンブル全体を適切なエンクロージャーに取り付け、既存のコントローラーに隣接して取り付けます。オーバーライドを処理するために個別のスイッチと赤色LEDの代わりに使用する内部照明プッシュボタンスイッチがあります。

長期的には、RTC、20 x 4 LCD、追加のプッシュボタンを追加して、ユニットをプログラムし、タイムスイッチとしても機能させることを計画しています。

プロトタイピングはすでに始まっています!

結論。

寒い冬の休息日に目を覚まし、暖房をオンにするためにテキストメッセージ/ SMSを送信し、1時間寝返って寝返りをすることについて少し退廃的です!そして、あなたが夜にそれをオフにしていないことに気付いたとき、あなたはあなたのベッドの快適さからそうすることができます!

コントローラー画像1 コントローラー画像2

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.