忍者ブログ

明日の設計図

たまにロボットを考えるブログ・・・。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

HAKUのHAKUによるアート。

梅雨に入り。
最近は、頭痛との闘いが激しいです。



とくに何らかの作業が進んだわけではありませんが、良くできたものを紹介します。
CIMG2124.JPG







今回切削されていたのは、ABS樹脂の8mmです。
エンドミルは、いわゆる樹脂用ロングネックというやつ。φ2です。

少し、疲れていたエンドミルなので、切れ味の低下が見られていましたが、強行しました。
まあ、当然の結果ですね。

流れとしては
・切り子がつながる
・エンドミルに巻きつく
・よさそうに削り続ける
・巻きつきすぎる
・だんだん深くなる
・巻きついたものが、素材と接触
・溶ける

おそらくは、融点を・・・。

だといつも思っていますが。



今回はいつも以上に大きなやつに育ったのでもう1枚。
CIMG2130.JPG







いつもの3倍ぐらいの大きさです。
もう2度と人生で出会うことはないと信じたいので、写真に収めたのでした。

拍手[0回]

PR

KONDOさんとSCIでトークする。

カテゴリーに迷う。

マイコンカーがてら、SH7125と戯れる時間ができたので。
4034とトークしようと思った。

ベステクでシリアルのライブラリあるので、それとなくできると思って取り組んだけど、おいらにはいがいと強敵だったので、奮戦記録をのこす。

回路とか
CIMG2123.JPGこんな感じ。








①まず、ベステクのputcとgetcで何にも考えずに、近藤HPにあるset_posiを作る。
動かしてみる。

⇒          動かない

②シリアルマネージャとSHの波形を比べる。
ch1_100us_2.00v_manager.jpg






ch1_100us_2.00v_SH2.jpg






もちろん、上の方がマネージャです。
すぐ見てわかることは、SHには返事がないということ。

なので、左半分の波形を見比べる。

⇒     一緒じゃね!

③回路か?!
いや回路ではない。
ツェナが6.8vなので意味なくね!
とか、そんなこと問題ではないはず。

④ついに、ベステクのライブラリをひも解く。
!!!
パリティが禁止されている!
ライブラリに、1行書き加えて、
許可する。

動かす
⇒   動かない

⑤すごく悩む。
①~④の手順を、20回ぐらいやる。

⇒   動かない

⑥ホントにパリティ設定は変わっているのか?
mainループの中で、読みだしてみる。
SCSMRの・・・0x00
???
いや、0x20に設定したんだが・・・。

⑦すごい勢いで、ほかに設定を変えるコードがないか探す。
⇒             ない。・・・と思う。

⑧マイコンの初期化が終わった後に、もう一回パリティ設定だけする。
読みだしてみる。
0x20

・・・よし。
あれ?うごかないな。(PWM用の端子にさしていた。)

⑨さしかえる。
⇒                     うごいた。
いえぇーい。

となる。

以下、そーすこーど抜粋。

/*シリアル通信的な*/
SCI0_INIT (br115200, 2, txb0, sizeof(txb0), rxb0, sizeof(rxb0));
    SCI0.SCSMR.BYTE = 0x20;//ここでかえればいいのだ!!!
SCI1_INIT (br115200, 2, txb1, sizeof(txb1), rxb1, sizeof(rxb1));


↓↓↓↓↓↓↓↓↓↓↓こんな関数になったのだ↓↓↓↓↓↓↓↓↓↓↓

/*----------------------------------*/
/* KONDOと角度                      */
/* Data入力                         */
/*----------------------------------*/
int set_posi(char id, int pos)
{
  unsigned char tx[3];
  unsigned char rx[6];
  int i;
  int data=0;
 
  tx[0] = 0x80 | id;
  tx[1] = (unsigned char)( (pos >> 7) & 0x7f);
  tx[2] = (unsigned char)(pos &0x7f);
 
  //SCI1_PRINTF("tx[1] = 0x%3x, tx[2] = 0x%3x\n",tx[1],tx[2]);
 
  for(i = 0; i<3; i++){
    SCI0_OUT_DATA(tx[i]);
  }
  //wait(16);
  for(i = 0; i<6; i++){
    rx[i] = SCI0_IN_DATA();
  }
 
  data = (int)(rx[4] & 0x7f);
  data = (data << 7) + (int)(rx[5] & 0x7f);
 
  return data;
 
}
/*----------------------------------*/
/* KONDOと電流値                    */
/* Data入力                         */
/*----------------------------------*/
int get_data(char id, int sc)
{
  unsigned char tx[2];
  unsigned char rx[5];
  int i;
  int data=0;
 
  tx[0] = 0xa0 | id;
  tx[1] = (unsigned char)(sc & 0xff);
  SCI1_PRINTF("tx0 = 0x%3x,tx1 = 0x%3x",tx[0],tx[1]);
 
  for(i = 0; i<2; i++){
    SCI0_OUT_DATA(tx[i]);
  }
  wait16(5);
  for(i = 0; i<5; i++){
    rx[i] = SCI0_IN_DATA();
  }
  data = (int)(rx[4] & 0xff);
 
  return data;
}




あのですね。
グーグルセンセにきいても、お答があんまりよろしくなかったので・・・。
1.みんなグーグルセンセに聞くほどもなくできる。
2.みんなできないorやらない。

後者だろう(そんなバカな)。
おいれでもできたから、前者だろう。


まあうごいたからいいね。

拍手[0回]

どうも、一応マイコンカーやってます。

いつも、アナライザ見るたびに、マイコンカーで検索されているのですが。

が・・・。

・・・。



いえいえ。
一応はやってますとも。

CIMG2121.JPG







ほーら出来上がってる。
いつ出来上がったのかなんて、野暮はなしです。

まだ、シリコンシートが保護されたままだとか・・・。

まだ一回も走ってないのに、一部被災してるとか・・・。

久しぶりにやるかと思っていたら、バッテリが充電されてないとか・・・。



ともあれ、自作サーボのステアリングはしっかり動くようになりました。
ポテンショでの制御がいまいちですが、アナログセンサ値で速度制御みたいなことはできました。

位置偏差から、目標速度にしようというあれです。

ポテンショそのままだと、偏差がなさ過ぎてやる気がしないとか、そういうことではないです。

まだ、お借りしたプログラムの全貌を把握できてないので、割り込みのタイミングをいじってないだけです。



来週には、オーバルコースを走るぜよ。


◆CNCの記録
素材:ABS t=8.2
エンドミル:φ2x16 ←首の長さ。

マシン:HAKU
ソフト:MACH3

切り込み量:0.1
xy送り:600mm/min
z送り:100mm/min

3ぐらいの穴とか、25ぐらいの穴とかあとは、単なる四角。
丸と、四角のみ、斜めの送りすらないです。

で、こんな感じ。
CIMG2122.JPG







ABSは危険な香りを醸しながらも、最後までたどり着いた。
白い、やつは、ぽむt=10.8ですね。(にわかに信じがたいけど、ぽむは溶ける直前になった)

けづったパーツすべてに、追加工が必要という面倒くさい感じ。

拍手[0回]

大会ないけど、テンション>>モチベーション


↑漢字じゃないと、雰囲気でないな。(想像力を鍛えればいいのだ!)


ようやく、LCDを動かすところまで到達しました。

案外、サンプルがネットで見つからなかったのでとりあえずのプログラムです。

秋月のsc1602bs*bというやつ、sh7125をGDLにて。

ピン配置は、こんな感じ↓

#define lcd_rs  PE.DRL.BIT.B9
#define lcd_rw  PE.DRL.BIT.B10
#define lcd_en  PE.DRL.BIT.B11
#define lcd_db4 PE.DRL.BIT.B12
#define lcd_db5 PE.DRL.BIT.B13
#define lcd_db6 PE.DRL.BIT.B14
#define lcd_db7 PE.DRL.BIT.B15




こんな感じで初期化↓1msecのwaitと16usec(たぶん)のwaitでやります。




/*----------------------------------*/
/* Enable処理                       */
/* Data入力                         */
/*----------------------------------*/
void lcdEnable(unsigned char d)
{
  lcd_en = 0;
 
  lcd_rs  = ( d >>5 ) & 0x01;
  lcd_rw  = ( d >>4 ) & 0x01;
  lcd_db7 = ( d >>3 ) & 0x01;
  lcd_db6 = ( d >>2 ) & 0x01;
  lcd_db5 = ( d >>1 ) & 0x01;
  lcd_db4 = ( d  ) & 0x01;
 
  wait16(1);
 
  lcd_en = 1;

  wait16(1);
 
  lcd_en = 0;
}
/*----------------------------------*/
/* LCD初期化処理                 */
/*                                  */
/*----------------------------------*/
void initLcd(void)
{
  wait(16);//電源直後、安定まで待つ
  lcd_en=0;
  lcd_rs=0;
  lcd_rw=0;
 
  /*8bit_mode*/
  lcdEnable(0x03);
  wait(5);
 
  lcdEnable(0x03);
  wait16(10);
 
 
  lcdEnable(0x03);
  wait16(5);
 
  /*4bit_mode*/
  lcdEnable(0x02);
  wait16(5);
  
  /*2行mode*/
  lcdEnable(0x02);
  lcdEnable(0x08);
  wait16(5);
 
  /*off*/
  lcdEnable(0x00);
  lcdEnable(0x08);
  wait16(5);
 
  /*clear*/
  lcdEnable(0x00);
  lcdEnable(0x01);
  wait(2);
 
  /*entry*/
  lcdEnable(0x00);
  lcdEnable(0x06);
  wait16(5);
 
  /*on*/
  lcdEnable(0x00);
  lcdEnable(0x0c);
  wait16(5);
   
}


こんな感じで、一日が終わりそうです。
でもテンションは高いです。
嘘です。




まあ、がんばろう。
夏には何があろうとも、新型は作るので。

拍手[0回]

第二門ですよ。

本屋にいったのです。
もちろん、デカルトの次を買いに行こうと思いました。

しかし、なぜかデカルトの本はなかったのです。

「ダメだこりゃ。」と思っていたのですが、ふと、漫画が置いてあるほうへ行ってみました。
そうすると見つけた。
CIMG2118.JPG







そして買った。

買わずにはいられなかった。



いやあ、うれしい限りです。
「たとえひとときの、やすらぎでも。」
というフレーズが聴こえてきます。
テーマ曲はアイデンティティだった気がしますが。まあいいとしましょう。







というわけです。
今日は、いつも通りSHと戦いを再びやっていたわけですが。
秋月のSH7125にGDLでCMTの割り込みができません。なんででしょうね。
下に、初期設定だけでも載せておきます。
ステータスレジスタは、これよりも以前に設定してます。

割り込み関数はint_cmi1() です。
フラグクリアだけしてます。

でまあ、その結果どうなるのかと申しますと、とまります。
シリアルで、カウンタの値を読みだし続け、急に止まります。
ちょうど、コンペアマッチの少し前の値まで、出力されます。

おそらくコンペアマッチした瞬間に止まります。
マイコンが。


//コンペアマッチタイマ
STB.CR4.BIT._CMT = 0; // モジュールスタンバイ解除

CMT.CMSTR.BIT.STR0 = 0; //ストップ

CMT0.CMCNT = 0; //  初期化
CMT0.CMCSR.BIT.CMF = 0; //フラグ初期化
CMT0.CMCSR.BIT.CMIE = 0;  //割り込みしない
CMT0.CMCSR.BIT.CKS = 0; //φ/8
CMT0.CMCOR = 3124; //1ms


CMT.CMSTR.BIT.STR1 = 0; //ストップ

CMT1.CMCNT = 0; //  初期
CMT1.CMCSR.BIT.CMF = 0; //フラグ初期化
CMT1.CMCSR.BIT.CMIE = 1;  //割り込みする
CMT1.CMCSR.BIT.CKS = 1; //φ/32

CMT1.CMCOR = 7810; //10ms
INTC.IPRJ.BIT._CMT1 = 14;
CMT.CMSTR.BIT.STR1 = 1; //スタート


何をしたかったのかと言うと、たんなるインターバル割り込みを発生させたかっただけなのですが。
今日一日、これでおしまい。

結果は、CMTはあきらめ、WDTでやることにしました。
そしてあっさりできてしまうという空しさ。

CMTは0chは1msec、1chは16usec、それぞれウエイトになりました。

ふう。来週にはLCDに手を出したいものです。



拍手[0回]

予定より、あまりに遅くて

遅くなりすぎているので、大幅に計画変更を余儀なくされたのでだいぶ時間に余裕ができそうだ。

ついでに、モチベーションの確保も相当厳しいので、ここでこれから作るロボットのコンセプトというかどりーむをつづっておこうと思います。

■マイコンカー
さて、どうしたものか。
現状マイコンカーについては、俺は動くロボットがないので修理なり何なりしないといけないのですが。まあ、走るだけならちょっとやそっとで用意できるはずです。文化の祭典にはなんとかしたい。

で新型ですが、ファールハーバのモータが遊んでいるので使いたいわけです。
でドリームは、定常状態における力覚フィードバック。モータにエンコーダがついてるのでできるかとおもっとります。そう、印加電圧と回転速度が分かれば電流がわかるはず。
そすれば、スリップの検出ができるはずです。もっと安全運転になるつもり。

コンセプトは安全運転です。

マシンの構成としては、後輪はそれぞれ例のモータ。
ステアリングは無いです。対向2輪にします。

匡体は、がっつりしたものにします。モータトルクには前回より大分余裕があるはず。
そろそろ、やらないとシャフトをタングステンカーバイドにするドリームがはたせないので。
7075も消費したいし。カーボンパイプも使いたいところ。

回路は無難に7125で、サブに3694(絶縁センサ担当)のつもり。
モータドライバはなんとかする。作ってみる。3個作ってうまくいかなかったらあきらめる。

センサはアナログにするつもり。
回路はぜんぶ、haku担当にする。

■2足歩行
文化の祭典はAdelが現役だろう。

できれば、大学祭までには新しく作る。
大分前から、妄想している片足3自由度で設計を進めたいと思う。

全力で1kgを切りに行く。(割ときびしいとおもってたり。)
大会に出たい。そして勝つ。

そして、これからのロボワンスタンダードだ。
↑ドリーム

回路は無難にhaku担当。
7125にする。

できれば、ZMP以外の理論に挑戦したいと思ってる。
5質点モデルぐらいでダイナミクスを利用していく。
そろそろ、まじめにラグランジュをやるころだと思っている。
↑ドリーム

■研究は・・・
まあ、ぼちぼち。




拍手[0回]

この頃首がいてえ。

多くのメンツは研究室にはあらわれない。

大抵の場合「研究どうなった?」の返事は「就職活動で・・・。」であるが、大抵の企業はゴールデンウィークも説明会とかやるんだろうか。

せっかく、時間があれば研究すればいいのに。時間がもったいない。


いや、さみしいだけではないですよ。



というわけで、4年になってからとっている科目が一つ「量子・・・」。
で、すこし学んだことがあるので。

だいぶ前に別の科目で複素共役について話になったのですが、その時は何の役に立つのやらという感じでしたが、今回役に立つ場面にでくわした。

複素数:Z に対し複素共役はZ*となります。(光学異性体じゃないよ)

そこで、例えば|Z|^2というように大きさを考えるとき、実数軸と虚数軸をx-yとすれば、

Z=x+iy



Z*=x-iy

になります。

で内積なので

|Z|^2=(x)^2+(y)^2

=(x)^2-(-y^2)

=ZZ*

となるわけです。
まあ、「で、それが?」というのが結論ですが。
しかしです。式変形というのはいろいろできるに越したことはないのです。
いつ何時、役に立つかわかりません。
覚えておきましょお。

拍手[0回]

デジカメ復活

最近デジカメの充電器が、部屋の改装のため行方不明になってしましたが、発見、および充電。

ところで、夏のマイコンカーラリーに向けようやく回路製作を始めました。
3年ぶりぐらいになる、SHとの闘いです。
かつては、割り込み一回しか起きない問題と、締め切りの関係上からあんまりじっくりいじることもできなかったので、少し真面目に本番用ではなく、ちょっと動かしてみよう回路を製作中です。

とりあえず、LCDもやりたいと思っていたので、秋月のBLなしのやつを買いました。

CIMG2113.JPGというわけで、LCD付きのサーボテスター的なものにする予定。
←概観(デジカメ復活)

作るたびに、レギュレータの周りのコンデンサーはどうした良いのかと、一瞬迷い、そして「なんでもいいか。」と思う。

そのうち、困ることになるのだろう。

今を乗り越えられればとりあえずはいいか。


といっても、週一しかこれをいじるチャンスはないので、いつごろ本回路に着手するのやら。

プログラムはいつやるのやら。

マシンの設計、製作はいつになるのやら。(モータかったので、やらざるを得ない。)


どうなるのかとても楽しみです。

拍手[0回]

運脚の話

ようやく、連日の更新をするぐらいの体力と時間が出てきた模様。


以前から述べていることですが、歩くという言葉は意思をもって行動しているように感じるので、動作のみを抽出した表現として、運脚といってみてます。

2本足で移動するのは、この運脚が曲者です。ロボットとかは大変です。

で、今日は帰りに1時間ぐらい夜道をぶらぶらしていました。そこで、先日から気になっていた某センセの運脚を思い出しまねしてみました。

まねするにあたり、運脚の特徴を何種類かの成分に分けて認識します。
見てわかるものと、そうでないものがあります。

見てわかるもの
・歩幅
・左右の足幅
・歩行周期
・接地する瞬間の足首の角度
・足を浮かす時の足首の角度
・全身の上下の振動
・手の振り

見てもよくわからないもの
・遊脚の軌道
・接地している足の蹴り出しのピーク
・全身の左右の揺動
・腰の回転
・足首の回転
・重心の速度の向き
・着地の衝撃の全身への伝導

あとは、視線とか首の動きとか歩けど・・・それはどこまで重要かわからない。

見てわからないものはどうしたらわかるのか?

実際に標的にしている人と見てわかる限りにまねて歩く。
できれば、標的と同時に歩く。
そうすると、見てわからないものがずれていると、うまくまねることができないのがわかる。

たとえば、蹴り出しのピーク・・・どの段階で加速するのか。
いつ、足のどこに力がこめられるのか一緒に歩いてみて、同じリズムで重心を揺らして、歩いてみないことにはさっぱりわからない。
加速のリズムというものがあるのです。


後は遊脚の軌道も割りと重要です。
その軌道がしっかりと、合理的なものでないと、歩幅があわなかったり、早く足がついてしまったり、つまずいたり、足を持ち上げているようになって疲れたり。いろいろと大変。うまく、自然な軌道を見つけないことにはとても、人間的な運脚は難しいです。


とまあ、そのぐらい頭に入れて、道端を歩いていたりします。



で、某センセの歩き方は、かなり簡単。
なるべき足には力を入れない。
勝手に振り出すようにする。
蹴り出しタイミングは、体の中心線より若干前に接地しているときに、ひざをまっすぐにする。
その後、足首中心に回転し、前に進む。
その後、足首から、つま先に回転の中心を移す。(少しだけ足首に弾性を持たせるように力をこめる)
↑これで、一歩が長くなる。

着地の衝撃は、着地前に、ひざを曲げ、着地時にさらに曲げることで緩和する。(気持ち足首を内側にひねるような気がする。)
後は蹴り出してループする。

手は、あまりふにゃふにゃ振り回さず、肩を支点にして一本の棒を振るかのようにする。

わりと、これは力が要らず進めることができる。
しかし、歩幅が大きいのでリズムをうまくつかまないと歩きづらい。
また、以外にひざがまっすぐな期間が多いので、重心の上下動が大きい。


とまあこんな感じである。
歩いているうちは気づかないが、歩き終わると足裏の筋肉が疲労していた。
まあ、筋肉の疲労は、普段との違いなどでいろいろ出てしまうので一概には検討材料にできない。


それと、もうひとつ気づいたんだが、俺は右半身を若干前に出しつつ歩いている気がする。
つまり、左足のけりだしが強くなっている。
キックボードに右足を乗せ、左足でけっているような感じ。

なので、若干左半身を前に歩いてみたりもした。
わりと違和感なくできることがわかったが、意識してないときは、右がでる。

ほかの人を真似して、どっちかと気づいたことは今までないが、これからはそこのあたりも注意してみよう。




柔道してたころの右自然体の名残だろうか。とか思ってみたり。






拍手[0回]

設計が進まぬ-その2

結局はあんまり大きいロボットをうまく動かせたためしのない僕ですので、早々うまくいきはしません。
まずは、強度に余裕を持つ。というのは難しいです。

どこにどのくらい力がかかるのか、考えれば考えるほど微妙。ロボットという系はもちろんニュートンの第2法則に従うので、どの部品が、どの部品と、何で結合されて、どこでつぶされるのか、引っ張られるのか、全体に加速度が発生しないような状態に落ち着きます。

問題は、どこにベクトルが生えるのか?

硬いものとやわらかいものがくっついてるということは、やわらかいものが凄いがんばってるのです。
硬いものというのは諸刃の剣とでもいいましょうか。特にベアリングとか・・・。
ベアリングの得意技は、ねじ破壊です。

意味不明ですね。

後は、ステンレスの部品とかも「冗談ではない!」という感じ。



まあいろいろです。

直近の敵は、伝達系です。
歯車とか、はぐるまとか、ハグルマとか・・・・・・。

許容伝達出力という、恐るべき特殊能力を備えています。


クロモリのギアでも170gとか・・・。
もちろん、目標の1.5倍ぐらいを許容してくれるように、選ぶんですよ・・・。

とめねじでは、何にもとまらんのですよ。

一回転しないのですよ、ロボットの間接なんて。
それとなく動けばいいんですよ。歯車は回るから歯車なんですよ。



サーボモータなんて、ホビーもいいとこ、べらんめえな値段だし。
べらんめえな値段の癖に、ぐちゃってなるし。
けしからん。

ロボットなんて、まさに夏のせみのようなものしか作れないのです。
半年も設計しても、部品が一瞬にして疲労してしまう。

寿命を延ばそうと思えば、思うほど、出力を抑え、重い素材で作る必要がある。


携帯電話より、振り子時計。
そういうロボットが作りたいです。

拍手[0回]

プロフィール

HN:
Adel
年齢:
34
性別:
男性
誕生日:
1989/09/17
職業:
会社員
趣味:
モチベーション探し
自己紹介:
ロボットつくるのが夢

ブログ内検索

アクセス解析