ねころこの備忘録

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

ラインセンサーの開発が終わった話

以前,Elecrowで基板を発注した話をしましたね.
www.nekorokomemordm.info

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

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

ちなみにこんな感じ.
f:id:ryuga13tk:20190331223338j:plain

では始めます.

経緯

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

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

goot ガス式はんだこてセット GP-510SET

goot ガス式はんだこてセット GP-510SET


白光 ダイヤル式温度制御はんだこて FX600

白光 ダイヤル式温度制御はんだこて FX600

スペック

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

akizukidenshi.com

akizukidenshi.com

動作確認


[https://twitter.com/roko_TT/status/1112249495671070720:embed#







使い道がなく,ただ未練で作っただけなので,今後の進展はありません.
しいて言うなら,このカラーセンサ基板を作る機会があったおかげで,新しくこてを買いなおすことができ,表面実装のはんだ付けの練習ができた.ぐらいでしょうか.

デバッガー

デバッガーについてですが,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);
   
}

とくに記述することもないので,おしまいです.締り悪い...