2018年7月8日日曜日

SOLIO のスピーカー乗せ換え

 
横浜へ単身赴任する前に乗っていたダイハツミラがみら太な日々の名前のもとになっているのですが、そのミラというかみら太はすでに手元にはなく、今はkama_AGEさんのところで元気に働いております。
で、私の方は福岡に帰ってきてからはスズキのソリオに乗っております。これはもともと義父が乗っていた車で、kama_AGEさんにみら太をもらっていただくきっかけになった物です。
義父が免許返納を決めたため、急遽ソリオがわが家にやって来ることになり、慌ててみら太の里親探しをしたところ、kama_AGEさんに手をあげていただいたのでした。

といった経緯で現在はソリオに乗っているわけです。で、今回そのソリオに乗っているオーディオ用のスピーカーを換装しました。
普通に対応品からスピーカーを選べば「開けて換えて閉める」だけでいいのですが、そこはそれ、ケチな知恵と工夫で楽しむみら太な日々でありますので中古スピーカーを活用しようとしましたところ、換装の際に若干のDIY要素がありましたので投稿しておこうと思った次第です。

では行きます。こやつが攻略対象です。


面倒な運転席側のドアから行きます。
何が面倒なのかというと、電装です。扉4枚分のパワーウィンドウ、ドアロック、ミラー開閉と傾き調整とたくさんスイッチがついていますので、内装外すとかなりのハーネスを引きずるはずです。


交換するスピーカーはこちら。ハードオフ新宮店で中古(※珍しくジャンクではなく中古です:笑)5,400円で購入した、


このパイオニアのTS-F17、2wayスピーカーです。
ネットで調べた事前情報でサイズはよくある17cmとわかっておりましたので後先考えずに購入。


右ドアの内装外します。ねじ一本外せばあとはプラスチックリベットで止まっていますのでバチンバチンと外していくだけです。


内装抱えたままコネクタ外さないといけませんでしたので写真を撮るのが不可能でしたが、運転席側のコネクタは二つで、これと


これ。いずれも爪を押さえながら抜き取るというよくあるタイプの勘合になっていました。


で、これが最初から搭載されている純正というか標準スピーカーです。


とりあえず見えるネジ3本を外します。


するとあっさり外れてきます。か、軽いです。25W、4Ω品。非常に簡単なスピーカーです。マグネットが小さいこと。
それでもそれなりに鳴ってはいましたが、やはりボリュームを上げていくとごチャットするというか、大騒ぎな音というか、どちゃっとひと塊になって何ともすっきりしない音になっていました。やはり標準品はこんなものなのかな。
接続はいわゆるギボシと言われるやつです。このタイプは平型なのでギボシではないと思うんですが、世間一般にはギボシで通ってしまってますね。
外すときは引っこ抜くだけです。


新旧顔合わせ。


このマグネットサイズの違いはどうですか。
まあ、かたや25W、もう一方は150Wですから違って当然っちゃ当然ですが、あまりにちがいます。純正品はコストダウンが徹底しております。


あんまり重さが違うので興味本位で計ってみました。
まずTS-F17。750g近くあります。


こちら純正品。180g余り。比べるのが可哀想なくらい軽いです。


では取り付けに入ります。
純正品はこんなアンカープラグ的なもので取り付けられていました。


外してみます。これが流用できれば楽なんですが、


残念、穴は3か所でした。ほかに取り付け穴もありません。


TS-F17はこの通りネジ穴4か所です。


さてどうしたものか。としばし考えて、準備したものは、


ハンマーとセンターポンチ(笑
レーザ加工機でアクリル板切り出してアタッチメント作るかなとかいろいろ考えたのですが、結局みら太な日々らしい結論となりました。


位置出しして油性マジックペンでマーキングし、ドリルで穴開けます。とりあえず3.4mm開けてみました。


スピーカーケーブルを、


接続して、音が出ることを確認します。この時大事なのはケーブルの極性を確認しておくことです。
助手席側はまだ純正スピーカーがついていますので一緒に再生させて運転席と助手席の間に頭を置いてステレオ感を確認します。この時ケーブル接続の極性が違うと何とも表現がしにくい実に変な定位というか、非常に違和感のある響きになります。昔は小学校の運動会や町内の盆踊りなんかでこの辺りを理解していない人が逆極性に繋いだスピーカーで摩訶不思議な音場を作っているなんてことがよくありました。右と左で位相が逆なわけですからまともな響きになるわけないです。
この確認が出来たら、あとは今開けた穴にM5のタッピンを無理やりねじ込んでスピーカーを仮固定します。


んで、助手席側に取りかかります。


助手席側の電装はパワーウィンドウのスイッチだけなので比較的簡単です。


このねじ外して、


ドアノブの化粧枠外して、


この状態にしておいてから側に6か所くらいあるリベット抜いていきます。


電装系のコネクタはこんな形。


もちろん運転席と同じものがついています。


外して、


抜いて、


穴開けて、運転席側と同じように取り付けをするだけ。


間違いない結線になっていることを試聴して確認したら、両座席共にスピーカーを本固定して内装を元に戻します。


これで完了。
結局穴開けることになってしまいましたが、決断さえすればその後の作業はなんてことないレベルでした。
肝心の音は大きく改善されましたよ。いや期待通りのすばらしさ。
音が堅く締まっていると言えばいいですかね。ベースがベースに、ボーカルがボーカルにそれぞれ分かれて聞こえるというかなんというか、ひとことで言えば「ちゃんとした音」になりました。
締まった音というのは不思議なことにボリュームを上げていっても音が大きくなるだけでうるさくはなりません。やっぱスピーカーの鳴りに余裕があるからですかね。
私は別にオーオタではありませんが、ここまで違いが歴然としていると純正/交換品比較で何回クイズ出されても百発百中で当てる自信があります。そのくらい変わりました。
これで通勤もドライブも楽しくなりそうです。

2018年7月1日日曜日

つくると!5の準備  カメラスライダー完成

 
つくると!5で展示するカメラスライダーが完成しました。
こんな感じで動きます。


現在の動作は、起動したらまず原点(モータ側)に移動してリミットスイッチを押しに行きます。リミットスイッチ押したらそこから決められたステップ数、つまり決められた距離反対側に移動し、また戻ってきます。以下これを繰り返します。
基板上のボリュームでスライドのスピードを変更可能です。単純。

では基板の製作過程です。
今回の設計方針は、電池駆動できること、スライドスピードが可変であることとしました。電池で動かせれば屋外に持ち出して撮影ができます。風景だったり、花だったり、屋外にはスライダーを使うといわゆるインスタ映え(笑)する動画を撮影可能です。
※センス

電池駆動するならモバイルバッテリーを使うのが最も簡単です。ということで、電源は5V、電流は1A以下あたりを狙って作っていくことにします。スライドのスピードはパルスレート変えるだけなのでボリューム位置をアナログ入力で読んでやれば簡単です。
全体制御はいつものArduinoで行きます。問題はどれを使うかですが、できるだけ小さくまとめたいのと、入出力が多くないのでCOB LEDライトでうまく使いこなせなかったDigispark(のぱちもん)に再挑戦することにしました。
使ったのはこちら。


AliExpress.com Product - 5pcs/bag Digispark kickstarter miniature usb development board

極限まで小型化されていながらUSBにダイレクトに接続できます。さらに一つ150円くらいと激安。小規模プロジェクトには打ってつけです。
使われているのはATtiny85というマイクロチップのAVRアーキテクチャという頭が混乱する仕様のマイコンです。なんでこれマイクロチップが作ってんですかね?私にはよくわからんです。
このDigisparkはあまりに小さくまとめたせいか、若干のクセがあります。スケッチ書き込みの時にUSBを接続し直す必要があるとか、USB通信用のポートとIOが兼用されているため回路によってはうまく動かないとか。これに嵌ってCOBLEDライトの時は使うのをあきらめたのでした。後述しますが、今回の格闘でほぼこのDigisparkの使い方が分かったように思っています。

さて、まずはこの辺りを見ながらポートをこんな感じにアサインしました。例にって手抜きですがご容赦ください。そのうちKiCADで華麗な回路図を書くようにします(笑


ステッピングモータはDigisparkからダイレクトに駆動するのではなく、使い慣れたA4988のステッパードライバを使います。よって、Digisparkからは回転方向とステップだけを出すことになります。

こんな感じに構想をまとめてざっと予備実験をしておりましたところ、困ったことが見つかりました。今回使ったモータは5Vでは回ってくれないのです。最低でも6V無いと回ってくれません。もちろん9VくらいのACアダプタ持ってくれば何の問題も無いのですが、それでは今回の設計方針の一つである「電池駆動」が出来なくなります。
ということで、しばし考えた結果、以前より興味を持っていた昇圧モジュールを試してみることにしました。Aliexpressでサクッと注文して待つこと2週間ほど、やってきました。
これです。

機能はすばらしく、
 1. The Maximum Output Current: 2A.
 2. The Input Voltage: 2V ~ 24V.
 3. The Maximum Output Voltage: 28V.
 4. Efficiency: Max 93%.
それでいて一つ50円くらいと激安なんてもんじゃないです。すばらしすぎる。

ということで、これを使ってモータに9Vくらいを供給するようにします。


基板上のレイアウトを考えます。展示しますのでいつもよりまじめに配置します。


ピンヘッダとかピンソケットとか準備して、


基板の四隅に穴を開けて、


スペーサー立てておきます。


しっかりとレイアウトを決めます。モジュール基板の縦横をそろえることを意識。


基板用可変抵抗のフック用にちょいと穴加工します。


まずはこれらのモジュールやらスイッチやらコネクタやらをハンダ付けします。


なかなか美しいレイアウト。


では裏面の配線をしていきます。まずはグランドラインをスズメッキ線で。



モータドライバにパスコン入れるのを忘れてました。


背が低いコンデンサを見繕ってモジュールの下に隠します。


モータドライバと出力コネクタ、マイクロステップ設定ジャンパは接続が直線になるように配置しましたので、裸線使ってもいいでしょう。


さて、+電源ラインは赤の被覆線を使います。


Logicラインは黄色を使います。


出来るだけきれいにと思うんですけど、ユニバーサル基板はある程度スパゲッティになります。仕方ないかなと。


配線完了しました。


USBから給電する部分の2P XHコネクタをカシメます。


とりあえず動けばいいやレベルのスケッチですが、こんなもので動かしています。
スライドはゆっくりなので加減速無しでいきなり動かしています。


#define MAX 21000   //maximum distance from initial

int Speed = 50;
int Step = 0;

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize the digital pin as an output.
  pinMode(0, OUTPUT);       //DIRECTION
  pinMode(1, OUTPUT);       //STEP
  pinMode(2, INPUT);        //Speed Analog
  pinMode(3, INPUT);        //reserved
  pinMode(4, INPUT_PULLUP); //LimitSW
  pinMode(5, INPUT);        //Reset
}

void loop() {

  //initialize
  digitalWrite(0, HIGH); //Direct to initial position
  while (1) {
    move();
    if (digitalRead(4) == HIGH) {
      break;            //Limit SW position
    }
  }

  //Go
  digitalWrite(0, LOW); //Direct to Go way
  for (Step = 1; Step <= MAX; Step++) {
    move();
  }
  digitalWrite(0, HIGH); //Direct to initial position
  if (digitalRead(4) == HIGH) {
    move();
  }
}

void move() {
  digitalWrite(1, HIGH);
  delayMicroseconds(50);
  digitalWrite(1, LOW);   //CAUTION!! DigitalPIN 2 = analogPIN 1
  Speed = analogRead(1)*2;
  delayMicroseconds(Speed);
}

でですよ、今回Digisparkに再挑戦して、やっぱり嵌りました、が解決しました。
嵌ったポイントは二つ。
  1. P5は実質的にリセット以外には使えない
    P5は汎用ポート&ADCとして使えそうに見えるんですが、実際はリセットスイッチにしか使えません。いや厳密には上半分くらいのADCには使えるかな。
    このポートがLOWに落ちるとDigisparkはリセットされます。どの程度の電圧でLOW判定されてリセットされるかは個体差があると思いますが、ほぼ真ん中あたりです。5V掛けてたら2.5V付近。P5がこの電圧を下回らない範囲であればADCとして使えんこともないですが、極めて用途は限られるでしょう。
    COB LEDライトの時は調光用のAD入力をP5にしたばっかりに嵌ったのでした。
  2. GPIOピンとADCチャンネルの番号が違う
    ちゃんとここに書いてあるんですが、知らぬまま悩み続けました。
    いや普通同じになるように設計すると思いません?
    はいはい私が悪うござんしたというやつなんですがね。
    でもですね、スケッチ書いたときにこうなるんですよ
      digitalWrite(1, HIGH);
      delayMicroseconds(50);
      digitalWrite(1, LOW)
      Speed = analogRead(1)*2;
      delayMicroseconds(Speed);
    ね、ポート1番にdigitalWriteした直後に同じポートにanalogReadしに行っている用に見えません?というかそれ以外に見えないですよね。
    ですが、このanalogReadの方の(1)はP1ではなくADC1であって、実際にアサインされているのはP2です(笑 わけわからんです。
    が、このことに気がつけば何の問題も無く動きました。
あと、これはあちこちに書いてあることですが、P3とP4はUSBのラインと共用され、P3はハード的にプルアップています。これを外部でプルダウンしてしまうとUSB通信がうまくいかない、つまりプログラムの書き込みができないことになります。これも注意すべきところです。今回の回路ではP4にリミットスイッチつけていて、これをノーマリークローズで使っています。キャリッジが原点に来てリミットスイッチを押した時だけオープンになる回路です。これをクローズにしたままだとP4はGNDに落ちたままになりますのでやはりUSB通信がうまくいきません。よって、スケッチの書き込みをするときにはこれをオープンにする、つまりリミットスイッチを押した状態にしないといけません。

ということで、すったもんだありましたが、ようやく動きました。

やってること自体はなんてことありませんので、Arduino UNOやあちゃんでいいのあたりを使っていればトラブルなく完成したのだと思いますが、Digisparkを使おうとしたばっかりに少々苦労しました。ですが、この苦労のおかげでDigisparkを使うときに注意すべきポイントがわかりました。結果オーライであります。だってDigispark 10枚買ってしまってますから(笑 何とか使いこなさんと。

ということでカメラスライダー完成です。基板ケースくらい作るかな。
つくると!5まであと二週間です。