\r\n\r\n

5ドル以下でポブ主導のエアライターを作る

この簡単なプロジェクトでは、空中で振るとメッセージが点灯する小さなデバイスを作ります。思ったより簡単で、総費用は5ドル以下...。

LEDを点滅させるといろいろなことができますが、この簡単なプロジェクトでは、**前後に振ることでメッセージとともに空中を照らす小さなデバイスを作ります。思ったより簡単で、パーツの合計金額は5ドル以下です。

視覚的持続性という目の錯覚を利用して、文字を空中に出現させるプロジェクトです。夜間に素早く移動する人が火花を散らしたときに遭遇する現象です。ArduinoといくつかのLEDを使って、この効果をシミュレートする予定です。このプロジェクトは、いくつかの部品と少しのはんだ付けで簡単に作ることができます(ただし、はんだごての使い方を知りたい場合は、こちらのガイドを参照してください)。

が必要です。

  • Arduino(私は小さくて安いので2ドルのNanoを使っていますが、どんな機種でも大丈夫です)。
  • 5個の赤色LEDを搭載。
  • 220Ω抵抗×5本
  • 1x 9v バッテリーホルダー。
  • 1x ロッカースイッチ
  • 試作基板1枚。
  • 完成したケース(小さなダンボールを黒く塗ったものを使用)。

また、組み立てには、はんだごてとはんだが必要です。

オプションですが、はんだ芯があると、はんだ付けを失敗したときにとても便利です。また、テストボードといくつかの接続線は、回路をテストするのに役立ちます。

配線の取り付け

配線はこれ以上ないほどシンプルです。まず、図のようにArduino、LED、抵抗を接続します。

D2~D6ピンが各抵抗に接続され,抵抗は各LEDのプラス端子(長い足)に接続されています。カソードは接地され、その接地は順番にArduinoに接続されます。完成すると、このようになります。

これで回路は完成です!あとは電池ケースとスイッチを追加しますが、動作確認はこれだけです。

コード

Arduinoをコンピュータに接続し、Arduino IDEを開きます。Arduinoを使うのが初めてで、使い始めの良いガイドが欲しい場合は、このリンクが役に立ちます。

コードはこのプロジェクトから変更されたもので、全コードはここからダウンロードできます。

// how long each led stays on forint delayTime = 1;//how long between each int charBreak = 3;//how long to wait after the message is finished before it repeatsint resetTime = 20;int LED1 = 2;int LED2 = 3;int LED3 = 4;int LED4 = 5;int LED5 = 6;void setup(){pinMode(LED1, OUTPUT);pinMode(LED2, OUTPUT);pinMode(LED3, OUTPUT);pinMode(LED4, OUTPUT);pinMode(LED5, OUTPUT);}int a[] = {1, 6, 26, 6, 1};int b[] = {31, 21, 21, 10, 0};int c2[] = {14, 17, 17, 10, 0};int d[] = {31, 17, 17, 14, 0};int e[] = {31, 21, 21, 17, 0};int f[] = {31, 20, 20, 16, 0};int g[] = {14, 17, 19, 10, 0};int h[] = {31, 4, 4, 4, 31};int i[] = {0, 17, 31, 17, 0};int j[] = {0, 17, 30, 16, 0};int k[] = {31, 4, 10, 17, 0};int l[] = {31, 1, 1, 1, 0};int m[] = {31, 12, 3, 12, 31};int n[] = {31, 12, 3, 31, 0};int o[] = {14, 17, 17, 14, 0};int p[] = {31, 20, 20, 8, 0};int q[] = {14, 17, 19, 14, 2};int r[] = {31, 20, 22, 9, 0};int s[] = {8, 21, 21, 2, 0};int t[] = {16, 16, 31, 16, 16};int u[] = {30, 1, 1, 30, 0};int v[] = {24, 6, 1, 6, 24};int w[] = {28, 3, 12, 3, 28};int x[] = {17, 10, 4, 10, 17};int y[] = {17, 10, 4, 8, 16};int z[] = {19, 21, 21, 25, 0};int eos[] = {0, 1, 0, 0, 0};int excl[] = {0, 29, 0, 0, 0};int ques[] = {8, 19, 20, 8, 0};int space[] = {0, 0, 0, 0, 0};void displayLine(int line){int myline;myline = line;if (myline>=16) {digitalWrite(LED1, HIGH); myline-=16;} else {digitalWrite(LED1, LOW);}if (myline>=8) {digitalWrite(LED2, HIGH); myline-=8;} else {digitalWrite(LED2, LOW);}if (myline>=4) {digitalWrite(LED3, HIGH); myline-=4;} else {digitalWrite(LED3, LOW);}if (myline>=2) {digitalWrite(LED4, HIGH); myline-=2;} else {digitalWrite(LED4, LOW);}if (myline>=1) {digitalWrite(LED5, HIGH); myline-=1;} else {digitalWrite(LED5, LOW);}}void displayChar(char c){if (c == 'a'){for (int i = 0; i <5; i++){displayLine(a[i]);delay(delayTime);}displayLine(0);}if (c == 'b'){for (int i = 0; i <5; i++){displayLine(b[i]);delay(delayTime);}displayLine(0);}if (c == 'c2'){for (int i = 0; i <5; i++){displayLine(c2[i]);delay(delayTime);}displayLine(0);}if (c == 'd'){for (int i = 0; i <5; i++){displayLine(d[i]);delay(delayTime);}displayLine(0);}if (c == 'e'){for (int i = 0; i <5; i++){displayLine(e[i]);delay(delayTime);}displayLine(0);}if (c == 'f'){for (int i = 0; i <5; i++){displayLine(f[i]);delay(delayTime);}displayLine(0);}if (c == 'g'){for (int i = 0; i <5; i++){displayLine(g[i]);delay(delayTime);}displayLine(0);}if (c == 'h'){for (int i = 0; i <5; i++){displayLine(h[i]);delay(delayTime);}displayLine(0);}if (c == 'i'){for (int it = 0; it <5; it++){displayLine(i[it]);delay(delayTime);}displayLine(0);}if (c == 'j'){for (int i = 0; i <5; i++){displayLine(j[i]);delay(delayTime);}displayLine(0);}if (c == 'k'){for (int i = 0; i <5; i++){displayLine(k[i]);delay(delayTime);}displayLine(0);}if (c == 'l'){for (int i = 0; i <5; i++){displayLine(l[i]);delay(delayTime);}displayLine(0);}if (c == 'm'){for (int i = 0; i <5; i++){displayLine(m[i]);delay(delayTime);}displayLine(0);}if (c == 'n'){for (int i = 0; i <5; i++){displayLine(n[i]);delay(delayTime);}displayLine(0);}if (c == 'o'){for (int i = 0; i <5; i++){displayLine(o[i]);delay(delayTime);}displayLine(0);}if (c == 'p'){for (int i = 0; i <5; i++){displayLine(p[i]);delay(delayTime);}displayLine(0);}if (c == 'q'){for (int i = 0; i <5; i++){displayLine(q[i]);delay(delayTime);}displayLine(0);}if (c == 'r'){for (int i = 0; i <5; i++){displayLine(r[i]);delay(delayTime);}displayLine(0);}if (c == 's'){for (int i = 0; i <5; i++){displayLine(s[i]);delay(delayTime);}displayLine(0);}if (c == 't'){for (int i = 0; i <5; i++){displayLine(t[i]);delay(delayTime);}displayLine(0);}if (c == 'u'){for (int i = 0; i <5; i++){displayLine(u[i]);delay(delayTime);}displayLine(0);}if (c == 'v'){for (int i = 0; i <5; i++){displayLine(v[i]);delay(delayTime);}displayLine(0);}if (c == 'w'){for (int i = 0; i <5; i++){displayLine(w[i]);delay(delayTime);}displayLine(0);}if (c == 'x'){for (int i = 0; i <5; i++){displayLine(x[i]);delay(delayTime);}displayLine(0);}if (c == 'y'){for (int i = 0; i <5; i++){displayLine(y[i]);delay(delayTime);}displayLine(0);}if (c == 'z'){for (int i = 0; i <5; i++){displayLine(z[i]);delay(delayTime);}displayLine(0);}if (c == '!'){for (int i = 0; i <5; i++){displayLine(excl[i]);delay(delayTime);}displayLine(0);}if (c == '?'){for (int i = 0; i <5; i++){displayLine(ques[i]);delay(delayTime);}displayLine(0);}if (c == '.'){for (int i = 0; i <5; i++){displayLine(eos[i]);delay(delayTime);}displayLine(0);}if (c == ' '){for (int i = 0; i <5; i++){displayLine(space[i]);delay(delayTime);}displayLine(0);}delay(charBreak);}void displayString(char* s){ for (int i = 0; i<=strlen(s); i++){ displayChar(s[i]); }}void loop(){ //Change the text inside here to change the text displayed. //Make sure to keep the brackets and the quotation marks.displayString("..hello!..");delay(40);}

スケッチを保存し、あなたのボードにアップロードしてください。エラーが発生した場合、正しいボードとCOMポートを選択したことを確認してください。発光ダイオードは点滅を始めるはずです。そうでない場合は、テストボードのすべての接続を確認してください。コードの冒頭で宣言された整数が、テキストの表示速度を決定します。数字が大きいほど速く振る必要があります。私は、ここで使われている数字がうまく機能することを発見しました。

では、簡単なテストをしてみてください。ArduinoをUSBケーブルから外し、電池ホルダーをArduinoのVIN端子とGND端子に接続します

あとは動かしてみて、慎重に発光ダイオードを手前に振ってみてください。周囲が十分に暗ければ、空中に文字がいくつかできているのが見えるはずです。これは私の**捕獲**に役立つと思いました。

本当に効果があります!あとはもう少し長持ちさせてください。

アイロンを用意する

プロトボードにArduinoボード、抵抗、LEDを以下のように配置します。

もちろん、回路が同じであれば、レイアウトをできるだけコンパクトにすることは可能です。部品や電源のために、Arduinoの両側には少なくとも1列のプロトボードコンタクトを確保しておいてください。電子機器初心者の方は、こちらをご覧ください。

LEDマトリックスと同じように、LEDのカソード線をハンダ付けして、共通のスタンドを作ることにします。

各カソードを次のカソードに重なるように折り、ハンダ付けして完全なラインを形成します。あとは、抵抗の隣のピンにアノードをはんだ付けする必要があります。一番簡単な方法は、各ピンをそれぞれのパッドにはんだ付けし、その間にコテを置いて2つの接合部を熱し、最後にはんだを追加してその隙間を埋めることでした。

各接続部が確実に取り付けられていることを確認し、抵抗器とLEDの余分な足をワイヤーカッターで切り落とします。

今度は同じ作業を繰り返しますが、今度は抵抗のもう一方の端をArduinoの足に接続します。これがハンダ付けの一番厄介なところです。各抵抗は個別にArduinoのピンに接続されており、そうしないと回路は**動作しません。ここで何度か失敗してしまい、不要なハンダをハンダ芯で何度も除去する羽目になりました。

すべての正しい接続が確立されたら、隣接するものとの重なりを再確認してください。ここでマルチメーターが使えれば、連続モードを使って、各ピンが抵抗に接続された切れ目のない1本の線だけになっていることを確認することができます。マルチメータを手に入れたばかりの方は、この記事で使い方をマスターしてください。

各接続を確認後,抵抗器の足から余分な長さを切り落とします。

電源の追加

ここで、ArduinoのGNDピンから、はんだカソード線の端の横の穴に線を通し、その横にバッテリーホルダーの黒線を配置します。

ここで、抵抗器をはんだ付けしたように、GNDピンにワイヤーをはんだ付けし、カソードワイヤーの端に2本のワイヤーをはんだ付けして、回路のコモングランドを作成します。

最後に、arduinoのVIN端子にワイヤーを接続し、そのワイヤーとバッテリーパックの間にスイッチを配置します。この写真では、熱接着剤がスイッチを覆ってしまっていて申し訳ありません。この段階を撮影するために、フィニッシャーを取り外さなければなりませんでした

すべてハンダ付けしたら、電池を入れて、スイッチをポンと入れる。おめでとうございます。回路は完成しています。何も点灯しない場合は、各ハンダ接合部に断線や短絡がないか、再度確認してください。

エンクロージャー

さて、動作確認ができたので、箱の中に入れてみましょう。ここでは塗装した段ボール箱を使用していますが、ホビーショップで購入した箱や、古いタッパーの箱を使用しても、より永続的に使用することができます**。さらにマニアックなところでは、このような安価な3Dプリンターで自分の3Dを印刷することも可能です。

試作基板のサイズを点数化し、不要なパーツを丁寧につまみ食いしてカットします。

ハウジングの中に回路を入れ、LEDとスイッチが必要な場所に印を付けます**。また、ArduinoボードのUSBポートが端に接続されている場所をマークすることで、ボックスを開かずに**テキストを変更することができます**それを選択することができます。ハウジングに必要な穴を開けるか、カットします。

ここで、発光ダイオードの端にホットグルーを少し付け、適当な場所に接着します。回路の下にスポンジを接着して、箱にすっぽり収まるようにしたんです。スイッチを箱に取り付ける。ネジやボルトを使えばより強固に接続できますが、私はホットグルーを使いました。また、電池ホルダーを回路基板の裏側に接着して、使用時に内部で動かないようにすることもできますが、電池ボックスの金属接点がはんだ接合部に接触しないように注意してください。

ミッション達成

フェンスを閉めれば完了ですテキストを変更するには、ArduinoボードにUSBケーブルを接続し、loopメソッド内のdisplayStringの後の括弧内のテキストを変更します。暗いところを探して、楽しんでください。

POV機を作ったことはありますか?デザインを改善する方法をご存知ですか?自作する予定があるのですか?あなたのプロジェクトについて、下のコメント欄でお聞かせください。

  • 2021-03-16 12:02 に公開
  • 閲覧 ( 16 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ