#author("2020-02-14T19:02:24+09:00","shabuhara","shabuhara")
#author("2020-02-14T20:00:19+09:00","shabuhara","shabuhara")
[[2019b/Member]]
*目次 [#n59ddf45]
#contents
*課題の内容 [#j2e5d9fc]
#ref(2019b-mission2.png)
それぞれのC,E,F上に置かれた缶の上にボールを乗っけるというもの、ライントレースを使うと上手くいく?~
*ロボットの説明 [#tc18b0ce]
#ref(IMG_20200207_160029.jpg)
最終的に出来上がったのはこの2台のロボットです。手前にある卍が特徴的なロボットがボールを集めて置く役割、奥の長い棒がついているロボットが最初に玉が乗っかっている缶をごと纏めて集めてくる役割を持っています。最初は1台のロボットですべてを行ったほうが楽だという流れが班の中で大きかったのですが、せっかくだから2台にしようという事でなんとか役割を分けることで棒長ロボットが誕生する運びとなりました。
#ref(IMG_20200207_160051.jpg)
たまを回収する卍部分は2台にロボットを分ける際、多彩な意見が出てしまったが為の停滞が発生している際に暇で遊んでいた風車に由来します。画像の光センサーの前にある変なぶら下がりは、班の工学部の男が完成させたもので、缶にぶつかって押されると光センサーを隠すことで超音波センサーが使えない超近距離でも缶の存在を見つけることができる君です。コレのすごいところは空気を押すかのような僅かな力で動かす事ができ、更に自動で戻ってくれる点にあります。卍くんがしっかり缶をとらえる必要があることが発覚し正確に認知する方法が思いつかない中開発された神パーツでした。
#ref(line_92535412058952.jpg)
なんとか開発された2台目の缶集めロボットですが基本は今までのロボットで横に棒を上下させるモーターがついています。こだわった点は先端の棒の長さです。あまり長い棒が残っておらず、微妙な長さの棒をつける事になりました。短すぎると用をなさないし、中途半端だと反対側の棒の下に回ってしまいます。
最終的には当たらないスレスレにすることで落ち着きました。
*プログラムの紹介 [#bd2499de]
 #define S 40 
#define Low_S 30

const float diameter =5.45;
const float track =10.35
const float pi =3.141592

void distance(float d){
long angle;
angle=d/(diameter*pi)*360.0;  
RotateMotorEx(OUT_BC,Low_S,angle,0,true,true);

void Ang(long ang){
long angle;
angle=(track/diameter)*ang;
RotateMotorEx(OUT_BC,Low_S,angle,100,true,true);

 int search(long ang){
 long angle,tacho_min=0,tacho_corr;
 int d_min;
 d_min =300;
 angle=(track/diameter)*ang;
 Ang(ang/2);
 ResetTachoCount(OUT_BC);
 OnFwdSync(OUT_BC,Low_S,-100);
 while(MotorTachoCount(OUT_B)<=angle){
 if(SensorUS(S1)<d_min && SensorUS(S3)>10){
 d_min=SensorUS(S1);
 tacho_min=MotorTachoCount(OUT_B);


OnFwdSyncEx(OUT_BC,Low_S,100,RESET_NONE)
until(MotorTachoCount(OUT_B)<=tacho_min);
Wait(14);
Off(OUT_BC);
Wait(500);
return d_min;


task main(){




トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS