カムロボをソーラーパネルで急速充電!JavaScriptで対応する鉛とニッケル水素バッテリー

カムロボをソーラーパネルで急速充電!JavaScriptで対応する鉛とニッケル水素バッテリー

Radishのバッテリー充電に味をしめ、

次はカムロボを充電。

// Charge Controller Ni 0.2
ana(5);ana(6); //OUT1,2 to ana

var Vmax=1900*4;  //mV
var Vblk=1350*4;  //mV
var Imax=2000*1;  //mA
var Nstp=6;       //times

function getVs(){
 var r=0;
 var i=32;

 while(i){
  r=r+(ana(5)*3300*10/1023);
  i=i-1;
 }

 return r/32;
}

function getVb(){
 var r=0;
 var i=32;

 while(i){
  r=r+(ana(6)*3300* 5/1023);
  i=i-1;
 }

 return r/32;
}

function getI(){
 var r=0;
 var i=32;

 while(i){
  r=r+(ana(2)*3300*10/1023);
  i=i-1;
 }

 return r/32;
}

// Bulk
function onChrgB(){
 log("[B]");
 var Vs=getVs(); log("Vs:",Vs," ");
 var Vb=getVb(); log("Vb:",Vb," ");
 var I =getI();  log( "I:", I," ");

 if( (Vb<Vmax)*(I<Imax) ){
  d=d+1; if(100<d)d=100;
 }else{
  d=d-1; if(d<0)d=0;
 }
 log("d:",d,"\n");

 pwm(4,d);led(1);
}

function onChckB(){
 pwm(4,0);led(0);
 sleep(1500);

 var Vb=getVb(); log("(B)Vb:",Vb,"\n");
 if(Vb<=vl) sc=sc-1;
 vl=Vb;

 if( sc ) return onChrgB;
 return onChrgF;
}

// Float
function onChrgF(){
 pwm(4,0);led(0);
}

function onChckF(){
 pwm(4,0);led(0);
 sleep(1500);

 var Vb=getVb(); log("(F)Vb:",Vb,"\n");
 sc=Nstp;
 vl=Vb;

 if( Vb<Vblk ) return onChrgB;
 return onChrgF;
}



// main
pwmt(100);
var d=0;          //PWM duration
var m=0;          //charge mode
var c=onChckF;    //check mode
var vl=0;         //last Vb
var sc=Nstp;      //stop count

while( m=c() ){
 var t=tick();
 while( tick()-t < (1000*10) ){
  m();
  if( inkey() + btn() ){pwm(4,0);led(0);sleep(1000);exit(1);}  // for DBG
 }

 if(m==onChrgB) c=onChckB;
 if(m==onChrgF) c=onChckF;
}

pwm(4,0);led(0);

チャージコントローラーのプログラム(IchigoLatte JS)はNiMh用に作り直してこんな感じ。鉛バッテリーとは充電時の挙動が違います。

ネオチャンプ4本をカムロボに積んだまま急速充電、快晴なら同時に3台( 12本)を30分で満タン、これならイベント会場で無限に走れる!

こいつ1つでなんでも充電できちゃう?プログラミングって面白いっ!

もしやられる方は電気の扱いに十分にお気をつけください!!!

なにかの間違いにより火災などに至る可能性があります。










.

ソーラーパネルでバッテリーを充電、IchigoJamで自作する「チャージコントローラー」!

ソーラーパネルでバッテリーを充電、IchigoJamで自作する「チャージコントローラー」!

下敷きのようにペラペラしてて¥12,000、「フレキシブル ソーラーパネル」をゲット!

出力は100Wもあります。

これは「こどもじどうしゃ Radish」を「おひさま」の力で走らせるしかないっ。

Radish(元はmottoy)のバッテリーは Pb 6v、いつもは付属の充電アダプタでコンセントから充電していますが、今回は夢の「ソーラー発電」。

ソーラーパネルをバッテリーにつなげば充電はされますが、なんといっても今回のパネルは100W、6A以上 も流れるし 21V まで上がるということで、直つなぎはやめてIchigoJamで制御します。

考えた回路はこちら、FETでチョッパーしてやろうという魂胆。ソーラー電圧、バッテリー電圧、電流をみるための回路も追加。

組んでみた基板はこんな感じ。ひとまず 7A ぐらいに耐えれるように試作、ついでにバッテリー系統から3.3vを作る回路も追加。

IchigoJam や IchigoDake に重ねて使用します。

// Charge Controller 0.3
ana(5);ana(6); //OUT1,2 to ana

var Vmax=7200;    //mV
var Vreg=6900;    //mV
var Imax=1000*1;  //mA
var Tchk=1000*10; //msec

var d=0;
var t=tick();

function getVs(){
 var r=0;
 var i=50;

 while(i){
  r=r+(ana(5)*3300*10/1023);
  i=i-1;
 }

 return r/50;
}

function getVb(){
 var r=0;
 var i=50;

 while(i){
  r=r+(ana(6)*3300* 5/1023);
  i=i-1;
 }

 return r/50;
}

function getI(){
 var r=0;
 var i=50;

 while(i){
  r=r+(ana(2)*3300*10/1023);
  i=i-1;
 }

 return r/50;
}

function onChrg(){
 var Vs=getVs(); log("Vs:",Vs," ");
 var Vb=getVb(); log("Vb:",Vb," ");
 var I =getI();  log( "I:", I," ");

 if( (Vb<Vmax)*(I<Imax) ){
  d=d+100; if(20000<d)d=20000;
 }else{
  d=d-100; if(d<0)d=0;
 }
 log("d:",d,"\n");

 pwm(4,d);led(1);
}

function onCheck(){
 pwm(4,0);out(0);led(0);
 sleep(1000);

 var Vb=getVb(); log("Vb:",Vb,"\n");

 return ( Vreg<Vb );
}



// main
while( !inkey() * !btn() ){
 onChrg();

 if(Tchk < tick()-t){
  if( onCheck() ) break;
  t=tick();
 }
}

pwm(4,0);out(0);led(0);

今回はJavaScriptでプログラミングできる IchigoLatte JS、チャージコントローラーのソースはひとまずこんな感じ、Vmaxを超えないように、Imaxを超えないようにPWM制御し、ソーラーを切ってみてVregに達していたら充電終了。もちろんBASICでもできるはず。

ハード的には12Vもいけるはずなので、ソースコードの設定値をいぢれば車なんかの12V鉛バッテリーにも対応のはず。

さっそく実験、晴れ時々曇り!

大丈夫、火は吹いていない模様。

こちらは電流計、3AほどでしっかりPWM制御されてます。突入電流のようなものが確認できますね、これは要対策です。

チョッパーされているとはいえ、このバッテリーに3Aはちょっと大きすぎかも、コイルとか挟んでみようかな?

バッテリーを並列にする手もありかも!?

真夏の炎天下、イベントで大活躍の「こどもじどうしゃ Radish」、これからはソーラーパワーでいつまでも走り続けられるかも!

もしやられる方は電気の扱いに十分にお気をつけください!!!

なにかの間違いにより火災などに至る可能性があります。










.

プログラミングできる「ししまい」登場!センサーも操って君だけの「舞」を披露しよう!

プログラミングできる「ししまい」登場!センサーも操って君だけの「舞」を披露しよう!

PCNから先日発売された「ししまいロボット」を組んでみよう。

難しいパーツは完成状態。

アイロンビーズで ししまい に必要なパーツを作っていきます。

並べたらクッキングペーパーを敷いてアイロン。

うまくできたかな?

アイロンの後に反ってくる場合は、冷めるまで重石をしよう。

全部のパーツをアイロンしよう!

パーツができたら、いよいよ組み上げ。

だんだん ししまい になっていくよ。

鼻に障害物センサーを入れて完成!さぁて、動くかな?

まずはセンサーを試してみよう。IN4,VCC,GND に 緑紫青 の線をさして、

お試しプログラム

1 ?IN(4):GOTO1

を実行。

鼻の前に障害物がない状態だと「1」。

障害物を検知すると「0」ですね、動作がおかしい人は接続を確認しよう。

次はサーボのチェック。接続はこんな感じ。電源に充電池4本、それをサーボの茶色と赤に接続。残りのオレンジの線はOUT5に。

ではチェック、

PWM5,85

で口が閉じるかな?

次は、

PWM5,135

で口が開くね!

では何かが近づいたら しし舞う 動きをプログラム。

10 IF IN(4) GOTO10
20 PWM5,135:WAIT10
30 PWM5,85:WAIT10
40 PWM5,135:WAIT10
50 PWM5,85:WAIT10
60 PWM5,135:WAIT10
70 PWM5,85:WAIT10
80 GOTO10

こんな感じでどうかな?

いい感じだね!

プログラムを改造して自分だけの「ししまい」に仕上げよう!


今年も開催「PCNこどもプロコン2021」!

応募締め切りは 2021/01/07、君だけの楽しい作品、待ってます!(協賛者様もお待ちしていますっ)










.