実験室 » Arduino » この記事

最近作ったもの(2) -電子工作-

もう一つ作りました。

 

ずっと前に作った、アルディーノで制御する三輪ライントレース車をタンクタイプに改造して、AndoroidスマホとBlueTooth機器を使ってシリアル通信化しました。

 

20170614b

 

新たに購入した、タミヤのタンク基本セットとオプションのユニバーサル基板セットに2000円ぐらいかかっています。

 

BlueToothの部品は、「HC-06」になります。

 

前にも同じように、BlueToothモジュールを介してシリアル通信ができないものかとやった覚えがあるのですが、その時は失敗してます。今回は、いきなりアルディーノタンクにHC-06をのっけて実験するのは止めにして、以下のブログさんの記事を参考に前実験してみました。

 

[curious4dev ]
http://curious4dev.mydns.jp/post-1354/

 

シンプルに説明してくれているので、とてもわかり易くて助かりました。
で、下のような感じで真似をして…

 

20170614c

 

うまくいきました。うまくいったのでこちらのプログラムとライントレース用のプログラムを、組み合わせて走らせてみます。

 

取得したアスキー文字をswitch文で振り分けてあげればいいだけなので、一定速度で一定方向にただ動かすだけのシンプルなものなら、以下のコードで動きました。

 

[CMascot.h]

// スマホとブルートゥース(シリアル)通信で、やり取りするタンクプログラム[2017.06](完成版)

// Bluetooth通信ライブラリ
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11);

void setup() {
  
  // [1] アルディーノ側初期設定
  Serial.begin(9600);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);   // アナログ値出力 (0~255 まで負の値不可)
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);   // アナログ値出力 (0~255 まで負の値不可)

  // [2] HC-06 側初期設定
  BT.begin(9600);
}

void loop() {
  // ローカル変数
  char a;  // 受信した値を格納(アルディーノのswitch文では、文字型も受付るが、'A'は、65と解釈されるので文字列の数値も値が'1'は49 '0'は48と解釈される)
  
  // Bluetooth 受信処理
  if (BT.available()) {
    a = (BT.read());

    // Case文
    switch(a){

/* TestCode
      case 48:
        BT.println("0 commaned about 48");
        break;
      case 49:
        BT.println("1 commaned about 49");
        break;
      case 1:
        BT.println("1 commaned about 1");
        break;
      case 0:
        BT.println("0 commaned about 0");
        break;        
*/


      case 49:  // 前進
              
        // 左モーター制御(正転)
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        analogWrite(9, 255);
        // 右モーター制御(正転)
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
        analogWrite(6, 255);
 
        delay(10);
        BT.println("Foward Commanded!");
        break;
        
      case 50: // 後退 [moter(); 内で、左右モーターを逆転させ、かつ最大出力とする]

        // 左モーター制御(逆転)
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        analogWrite(9, 255);
        // 右モーター制御(逆転)
        digitalWrite(4, LOW);
        digitalWrite(5, HIGH);
        analogWrite(6, 255);
        
        delay(10);
        BT.println("Back Commanded!");
        break;
        
      case 51:  // 停止
      
        // 左モーター制御
        digitalWrite(7, LOW);
        digitalWrite(8, LOW);
        analogWrite(9, 0);
        // 右モーター制御
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
        analogWrite(6, 0);

        delay(10);
        BT.println("Stop Commanded!");
        break;
        
      case 52:  // 前進しながら右旋回
      
        // 左モーター制御(正転)
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        analogWrite(9, 255);
        // 右モーター制御(正転)
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
        analogWrite(6, 80);
            
        delay(10);
        BT.println("Foward and Right Commanded!");
        break;
        
      case 53:  // 前進しながら左旋回

        // 左モーター制御(正転)
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        analogWrite(9, 80);
        // 右モーター制御(正転)
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
        analogWrite(6, 255);
        
        delay(10);
        BT.println("Foward and Left Commanded!");
        break;
        
      case 54:  // 信地旋回(右) [moter(); 内で、左モーターを正方向に。右モーターを逆方向にして、最大出力]

        // 左モーター制御(正転)
        digitalWrite(7, HIGH);
        digitalWrite(8, LOW);
        analogWrite(9, 255);
        // 右モーター制御(逆転)
        digitalWrite(4, LOW);
        digitalWrite(5, HIGH);
        analogWrite(6, 255);
    
        delay(10);
        BT.println("Rapid Right Commanded!");
        break;
        
      case 55:  // 信地旋回(左) [moter(); 内で、右モーターを正方向に。左モーターを逆方向にして、最大出力]

        // 左モーター制御(逆転)
        digitalWrite(7, LOW);
        digitalWrite(8, HIGH);
        analogWrite(9, 255);
        // 右モーター制御(正転)
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
        analogWrite(6, 255);
    
        delay(10);
        BT.println("Rapid Left Commanded!");
        break;

      default:
        break; 
    }

  }
}




 

あんまり複雑なことは出来ません。動作を変えるのに、都度ターミナルからコマンドを送り込まないといけないので。ですが、プロトタイプとしてはこれでも十分ではないかと思います。

最近作ったもの(1) -電子工作-

電子工作の続き。

前に作った、ミニアンプは、ブレッドボード上に配置して動いたところで、うっちゃっておいたのですが、そのまま放置しておくとホコリがのったり場所とったりして困るので、ユニバーサル基板に移植して箱に収納しました。

 

20170614a

 

筐体に使ったのは、セリアで売ってる、「フタ付きケースCube」です。上部に蓋があるので、メンテナンスが楽なのと、半透明なので電源を入れたときに、基板上のLEDが点灯して、半スケルトンの箱の中から滲んで光ってるので都合がよろしいです。

 

20170614d

 

スピーカー部分は、秋月で100円で売ってる本体を、これもセリアで買ったブックスタンドに、ドリルで穴開けて、ネジ止めしたものをつけてます。これらをまとめてたもろもろをこれまたセリアで買った100円の収納ボックスにいれて、押し入れに収納しました。セリアさまさまです。

ステレオアンプの製作

電子工作は失敗から学べ!
後閑 哲也 (著)

 

に掲載されている作例を作成しました。今度は、5章の内容ですね。

 

材料費は、これも千円~二千円の範囲で収まりました(スピーカーはむき出し)。

 

今回も特に難しいところは無かったと思いますが、TDA7052Bの脚が付いてるDIPものを見つけられなかったので、変換基板と別々に買ってきて半田づけしました。大体の部品は、秋月とaitendで調達できたと思います(フィルムコンデンサはラジオ会館で買いました)。スピーカーは、秋月で指定の10Wのものが、セットで500円だったので買いました。aitendだと2つで700円ぐらいだったと思います。後で、むき出しのスピーカーを箱に収納することを考えているのなら、二千円ぐらいで対応するスピーカーボックスも売っていたので、その場合はaitendで買ったほうがいいかもしれませんね。

 

20161210b

 

前回作ったFMラジオを早速接続して聞きました。スピーカーはむき出しのままですが、結構大きな音も出ますし、これまた期待以上にいい感じです。キャプチャー写真の様に、ipodTouchなんかも接続できますね。単三電池4本で結構な音が出るのが素晴らしいです。アダプターに変えても使えるから実験だけでおしまいにするのはもったいない作例ですね。

 

また接続にAUXオーディオケーブルを使いますが、100円ショップのセリアで売っているのでそれを使っています。基板を収めるボックスなど結構使えるアイテムが多いので、便利ですね。百円ショップ。

ワンチップFMラジオの製作

電子工作は失敗から学べ!
後閑 哲也 (著)

 

に掲載されている作例を作成しました。

 

今回は、FMラジオを作成してみました。

 

写真はブレッドボードで作成したときのものになってます(そのあとユニバーサル基板に移しました)。

 

20161210a

 

材料費は大体千円~二千円ぐらいで収まります。

 

指定されている材料を集めて作ってみると、aitendで売っていた変換基板付きワンチップICの幅が一列分大きくて、P.103の実体配線図のままにというわけにはいきませんでした。また実体配線図のようにC3のコンデンサを配置したらうまく鳴らなくて、結局P.100の回路図に忠実に配置しなおしたら鳴ったと記憶してます(細々とトラぶってますので記憶も曖昧)。完成したものをイヤホンで聴いてみると、混線もしないし思っていた以上にいい感じで鳴ってくれました。

 

ブレッドボードで作るまでなら、指定部品をはめ込んでいくだけでできちゃうので楽かも。ただ、なんとなくできちゃうので原理の理解にはどうかな?と思いました。

 

選局したラジオ局名を液晶に表示するところまで出来れば、もっと面白いでしょうねヽ(´ー`)ノ

AMスーパーラジオ作りその2

「トランジスターラジオ実践製作ガイド」(丹羽一夫著)に掲載されている、P.100の実用的なAMスーパーラジオを作ってみました。これも最初はIFTの正しい接続順の読み方を理解してなかったので挫折していたものですが、「子供の科学のラジオ(4)」の実線配置図と回路図を見比べてやっと理解できるようになりました。

 

(参照)http://www5a.biglobe.ne.jp/~toyoyasu/Radio_4.htm#40

 

左上から下へUの字を描くように、

 

1  6
 
2
 
3  4

 

素直にそのまま読み取ればいいのですね。横に倒れていても、倒して適用すればいいと。( ̄ω ̄) 

 

で、二番目に出来たのが下のイメージ。

 

box_2

 

今回は、前回のに懲りて、OSCコイルとか一切いじってません。買ってきたままのっけました。調整したのはバリコンのトリマぐらい。ちゃんと分離もいけてます。アースをつけてでの話ですが、NHK、NHK教育、ニッポン放送、文化放送の4局きれいに入ります。TBSも小さめな音ですが、入ってきますのでこれなら今回のはOKかという次第でした。

 

(追記1) AMラジオですが、手元にロッドアンテナがあったのでつけてみました。本来FMラジオに使うべきものなのは分かってたんですが挿してみたかった(そして後悔しました)。

 

(追記2) バーアンテナとバリコンをぐりぐりいじっていたら、一時、ラジオNIKKEI第一と第二を受信できるようになりました。たまたま短波ラジオのバンドを拾えるようになっただけなんでしょうが、それまで短波ラジオはとても難しいものだと思っていましたので、実はそんなにハードル高く無いとか???

カスペルスキーの低負荷スキャンとWindows10起動時画面真っ暗トラブル

Windows10を使っているんですが、通常どおりに電源を落として暫くしてから再起動したら(※Windowsアップデートファイルを最後にダウンロードしいていたかは見ていない)、BIOS起動後、ログイン画面に入る前の段階で、画面が真っ暗でマウスポインタのみ表示されるという異常な状態に陥りました。

 

こうゆう現象が起こるという話は以前聞いたことはあったんですが、実際突然自分がこれに直面するとなるとこれは焦ります。(;゚ Д゚) …!?

 

なんの予告も無かったし(※終了時の画面確認しないまま離席した)、何が起こっているのか画面が真っ暗な上、ハードディスクへのアクセスだけが延々と続くというのは、とても気持ちの悪い現象ですね。ハードディスクへのアクセス中にリセットもやりたくないし実に困ってしまいます。 ヽ(;´Д`)ノ

 

但し、マウスポインタは動くし、ハードディスクのアクセスランプは何らかの仕事をしているような感じでしたので、様子見という形で2時間ほど放置しておきました。が、2時間経ってもなんにも変化が無いので、リセットボタンで再起動をかけました。再起動後は特に問題無く、ログイン画面から普通に機動することができましたが、あのハードディスクのランプの点滅の仕方は、ウィルスチェックをしてる時とか、システムのバックアップの類をとっている時の様なせわしないアクセスの仕方でしたので、うちのアンチウイルスソフトのカスペルスキーのログを確認したところ、ちょうど画面真っ暗の時間帯に「低負荷スキャン」というのを一時間半近くかけて実行してるのが確認できました。ログインはしてないけど、OSは起動してアイドル状態だったから、スキャンしておいたよということだったんでしょうかね? どうもすっきりしないですねぇ…。

スーパーヘテロダインICラジオにトライした

去年は結局うまくいかなったAMのスーパーヘテロダインラジオの製作を、この夏は再チャレンジしました。今回はちゃんとしたOSCコイルを買ってきたので、ブレッドボード上で2石ICスーパーヘテロダインがすんなり鳴ってくれて感激です(下写真)。

 

ic_board_w400
[ブレッドボード上ではOK]

 

参照した図面のリンク) henteko.org

 

LA1600 を使って作るこのスーパーは、素直に鳴ってくれました。

 

で、早速、気を良くしてユニバーサル基板上に移植したんですが、ブレッドボードではあれだけうまくいったのに、ブーンと唸ってばかりでまともに聞けないという(´;ω;`) やっぱり難しいです(※雑音はボリュームつまみの可変抵抗器のサビが問題らしかったので、接点洗浄剤で改善されました)。

 

バーアンテナを基盤から離して配置したりとか、図面の理屈通りにはいかないものものをあーでもない、こーでもないといじくってなんとかアースをつけると良く聴こえ、アースを外した場合もそこそこ聴けるとこまでもっていけました。

 

box_ic_w400
[ユニバーサル基板に移植後のICラジオ]

 

ただ調整器具を持っていないので、OSCコイルをそのまま基盤に載せましたのでやっぱり分離は悪いです。ストレートラジオみたいにNHK第一と第二が混じって聞こえちゃいます。このあたりの調整は、知り合いの専門の先生に助けを借りてなんとかしたいものです。先が長そう。 ε-(;-ω-`A) フゥ…

 

※OSCコイルは、2016年の8月下旬の時点では、まだシオヤ無線で150円で売ってました。セラミックフィルタは、去年閉店前に、鈴商で買っておいたものを使ったので、今は秋葉原で手に入るのか分かりません。バーアンテナは、中華製のを御徒町の店で買いました(3Fでは、今はバーアンテナは売って無いんですね。いつの間にか1Fにの売り場に移動してました)。箱は、ダイソーで108円で買ったものですね(ネットで画像検索してかっこいいのを見つけたので真似させていただきました)。

Windows10のインストールと3TBの壁

メインのマシンの更新という事で、以下の部品を集めて自作PCを作りました。

タイプ メーカー 名称 価格(税込) 備考 列1
PCケース Jonsho U2-BK 6,980 ATX電源可能 ★東映
電源 玄人志向 KRPW-L5-400W/80+ 4,059 300W,ATX電源
KRPW-L5-400W/80+ 4059円というのもあり
(奥行14cmなのでどちらもOK)
アマゾン
マザーボード MSI H110I PRO 10,480 Mini-ITX
DDR4-2133対応
32GBまで(2スロット)
アマゾン
CPU intel Corei5-6600T 27,800 35W,IntelHDGraphics530,単体販売不可
※CPUファン別途
DDR4-2133(PC4-17000)
★東映
メモリ Kingston KVR21N15D8/16 8,745 DDR4 288pin 16GB×1
8GB×2とかでもいい
etrend
HDD Seagate ST3000DM001 7,862 7200回転 etrend
OS microsoft Windows10 Home 日本語 14,862 64bitリテール版 アマゾン
CPUファン silverstone sst-nt09-115x 2,720 LGA1151対応 アマゾン
集計 83,508

省電力タイプを目指しました(インテルのベアボーンにしようかと実は迷った)。本体だけなら、7万ぐらいで作りたいPCが出来上がります。オンボードのグラフィックアクセラレータがどの程度の力を発揮できるのか興味深いです。

さてさて本題は、自作PCの構成自慢についてではなく、Windows10のインストールでつまづいたことについてでした。購入リストにあるOSは、USBタイプのリテール版ですが、これで3TBのHDDを認識させようとすると、いわゆる3TBの壁にぶつかります。OSはインストールできても、2TBバイトまでしか認識できないアレです。1TBまるまる無駄になってしまってます。管理ツール画面からもブートディスクは無論のことどのドライブもGPT形式に変換できませんな。これは困ります。・゚・(ノД`)・゚・。

というわけでやり直し。再インストールです。

マザーボードは、UEFIに対応してますが、BIOS画面で起動順番を指定させる画面を出しても、スティックがただのUSB機器としてしかマウントしませんでした ガ━━(;゚Д゚)━━ン!! ほんとは、UEFI:…なんたらかんたら、とかいう名前で画面上にでてこないといけないのに(;´Д`) 

いろいろ調べてみると、USBスティックがFAT32形式でフォーマットされたものに、インストーラが入っていないとUEFTモードの画面でマウントされないよとか書いてありました。しかも、Windows10のUSBスティックは、NTFS形式のとFAT32形式のどっちでフォーマットされているか曖昧的なことも…><; つまり、このスティックからでは、どうやっても3TBを使えるようには出来ないらしいことが分かりました。(´・ω・`)ガッカリ… 半日ぐらい悩んで(というか悶絶して)、二つの案を考え付きました。 甲案 2TBのHDDを追加で買って、そいつにOSいれて3TBのはデータディスクとして追加。データディスクとして追加するなら、3TBのHDDもGPT化を後からすればマウントできます。…まぁこれでもいいけど、なんか挫折感が残りますねぇヾ(・д・` ) これは、乙案がダメなときにやるということで… 乙案 今なら、Windows7や8の無料アップグレード用にwindows10のインストーラをダウンロードして作れます。で、インストーラは、アップグレードだけでなく、新規のクリーンインストールにも使えたりします。なので、8GBのUSBメモリスティックを用意して、FAT32形式でフォーマットをかけて、そいつにインストーラを仕込んでしまえば、UEFT形式のスティックとしてマウントするんじゃない?という案。ただし、この案の不安点は、リテール版についているプロダクトコードを放り込んでちゃんと認証してくれるか分からないという点ですが、まぁだめもとでやってみました。 結果。 ヽ(´ー`)ノバンザーイ UEFTのUSBとして認識しましたし、箱についてたプロダクトコード入れても問題無しに認証通りました。 P.S パーティションの残骸が消せない場合の対処法とか、参考にしたサイトのリンクも貼っておきます。 (参考)windows10をUEFIネイティブモードでインストールしてみた http://otachrome.blogspot.jp/2015/08/windows10uefi.html (参考)Windowsのインストールが出来ない場合の対処方法2 (UEFI/MBRの違い) http://freesoft.tvbok.com/tips/efi_installation/diskpart_gpt_mbr.html

暑中見舞いもうしあげます

夏コミ最終日ですね。遠征されている皆様、暑い中お疲れ様です。数日前ぐらいからツクツクボウシが鳴き始めたので、「あー夏の終わりのはじまりだなぁ」とか、感じたりしている今日この頃です。風流を気取ってみましたが、やっぱりくそ暑いですι(´Д`υ)アツィー ここまで暑いとさすがにCGを作る気力も失せているので、代わりに「ラジオ」作っていますヽ(´ー`)ノ

最初はやっぱり、ゲルマラジオ。

じゃ~ん!!

chap0816

どうだいこのやる気の無さ。写真アップしたら、すぐばらして次のに改造するからワニ口クリップで留めておしまいです。しかし、こんなのでも聞けるから素敵だと思います。アンテナに接続しないでも、なんとか夜ならニッポン放送だけは、聞けました。蚊の鳴くような声でなんとか…。アーム型の電気スタンドにポリウレタン線を絡めるとちょっとだけ音量が上がって聞き取り易くなりましたので、アースもあった方がいいのかなとか色々思ったり。

(参考)ちなみにラジオは初回なのでシャンテック電子のゲルマニウムラジオキットを。土台はホームセンターで売ってた廃材を。コイルまいたパイプも、ホームセンターの水道管の継手がちょうど手頃だったので、それを買いました。大体、770+20+285で、作るのにコストが1000円ちょいかかってます。

ヘッドフォンアンプの実験をしてみた

最初、武蔵野ブレッドボーダーズの記事
(ヘッドフォン・アンプを作ろう(前編))
http://pc.watch.impress.co.jp/docs/2008/0918/musashino010.htm
をつくろうとやってみましたが、うまく動いてくれなかったので、こちらのブログのアンプを作ってみました。
これはうまくいった。

(LM4880/LM4881を使ったヘッドフォンアンプ)
http://nabe.blog.abk.nu/LM4880_DC_headphone_amp

ただこれとてブレッドボード上ではうまくいっても、ユニバーサル基板に再配置して、半田づけすると、なんか違ってきまして、音声入力の接続端子の接触不良とかいろいろ出てきました。難しいです。あと、iphoneから直接聞くのと、これを経由して聞くのとでは、音質に違いがあるはずなんですけど実際のところ比較してみましたが、よく分からなかったです。

2015-07-06 02.01.29

1 / 512345