ろこらぼ

僕の開発の手順とか実験結果とか感想とかをつらつら書き込んでいくお墓.僕の魂を成仏させるためのお墓です.いいね・ブクマ・コメント待ってます

ラインセンサーの開発がなんとなく終わった話

以前,Elecrowで基板を発注した話をしました.
ryuga13tk.hatenablog.com

この時に作った基板が,カラーセンサーver1で,今回,いくつかの改良を加えたカラーセンサーver2を発注して,動作確認までしたので,それについて書いていきます.
動作確認は,ProcessingでGUIで確認できるようにしてあります.

2019/03/31時点ですでにフットプリントの大きさを手直しした,2.1を用意しています.

ちなみにこんな感じ.

では始めます.

経緯

ロボコン現役中に,自動ロボットの自己位置推定に,カラーセンサーがあれば楽なんだろうなぁ...って言う気持ちから開発をしていた基板です(自己位置推定のプログラム書くのが難しそうだが).
現役を引退しても完成していなかったので,ロボコンで使う予定はないけど,無念なので開発を続行していました.

現役のころから,すべて実費で開発を行ってきたので,開発費は,基板の発注費と部品代で,だいたい8,000円ぐらいです.
ただ,この基板ではひとつ350円のカラーセンサーを5個使っているので,はんだ付けを失敗するわけにはいかず(1回失敗しましたが),HAKKOのはんだごてを新しく買いました.
今までは,gootのこてライザーを使っていました.
さよならコテライザー...


スペック

詳しく書いても仕方がないので,ざっくり書くと,
S11059をI2Cのマルチプレクサで動かしてるだけです.I2Cアドレス同じって面倒ですね.せめてプログラマブルであればいいんですけどね.

akizukidenshi.com

akizukidenshi.com

動作確認

表面実装のはんだ付けの練習が出来て楽しかったです.

デバッガー

デバッガーについてですが,Processingで色出してるだけです.
サンプルプログラムです.

import processing.serial.*;
 
Serial myPort;
String str_get_data = null;
String buf[];
 
void setup() 
{
  size(500, 500);
  myPort = new Serial(this, "COM43", 115200);
  frameRate(1000);
}
 int j  = 0;
void draw() 
{
  
    float r = 0;// / 6553.50;
    float g = 0;// / 6553.50;
    float b = 0;// / 6553.50;
    str_get_data = myPort.readStringUntil('\n');
   
    //myPort.clear();
    println(str_get_data);
   
    if (str_get_data != null){
      str_get_data = trim(str_get_data);    //改行コード取り除き
      buf = split(str_get_data,"\t");
      try{
        r = float(buf[0]);// / 6553.50;
        g = float(buf[1]);// / 6553.50;
        b = float(buf[2]);// / 6553.50;
      }
      catch(ArrayIndexOutOfBoundsException e){
        print("erro");
      }
      background(r, g, b );
      ++j;
      if(j > 10){
        
      myPort.clear();
      j = 0;
      }
    //色を設定
      //fill(int./(buf[0])*10, int(buf[1])*10, int(buf[2])*10);
      //rect(100 ,100, 300, 300);
    }
  //delay(50);
   
}