²ÝÂêÆâÍÆ

º£²ó¤Î²ÝÂê¤Ï¼«Î©·¿¥í¥Ü¥Ã¥È¤òÍѤ¤¤ÆÆ󤫽ê¤Î»æ¥³¥Ã¥×¤ÎÃæ¤Ë¤¢¤ëÆó¤Ä¤Î¥Ü¡¼¥ë¤Î°ÌÃÖ¤òÆþ¤ìÂؤ¨¤ë¤È¤¤¤¦¤â¤Î¤Ç¤¢¤ë¡£¤³¤ÎºÝ¡¢Æó¤Ä¤¢¤ë¶õ¤Î»æ¥³¥Ã¥×¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

¥í¥Ü¥Ã¥ÈËÜÂÎ

¥³¥ó¥»¥×¥È

¥Ü¡¼¥ë¤Î°ÜÆ°¤¹¤ë¤È¤­¤Ë¡¢¶õ¤Î»æ¥³¥Ã¥×¤ò»È¤ï¤Ê¤¤¤ÇºÑ¤à¤è¤¦¤Ë¡¢¥í¥Ü¥Ã¥ÈËÜÂΤˣ´¤Ä¥Ü¡¼¥ë¤ò³ÊǼ¤Ç¤­¤ë¤è¤¦¤Ë¤·¡¢½ç¼¡Æó¤Ä¤º¤Ä¹ß¤í¤¹¤³¤È¤ÇÆþ¤ìÂؤ¨¤é¤ì¤ë¤è¤¦¤Ë¤¹¤ë¡£

´°À®ÉÊ

¥³¥ó¥»¥×¥ÈÄ̤ê¤Îµ¡¹½¤òºî¤ë¤³¤È¤¬¤Ç¤­¤¿¡£¤³¤Îµ¡¹½¤Î¤ª¤«¤²¤Ç¡¢°ÌÃÖ¤µ¤¨¹ç¤¨¤Ð¥Ü¡¼¥ë¤òÆó¤Ä³Î¼Â¤ËÆþ¤ì¤é¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

1423658987925.jpg1423658989038.jpg1423658977120.jpg

1423658982987.jpg1423658981273.jpg

¥¢¡¼¥àÉô¤ÏÄϤàÉôʬ¤òŤ¯¤¹¤ë¤³¤È¤Ç¡¢¥¢¡¼¥à¤ò¤½¤Î¤Þ¤Þ»ý¤Á¾å¤²¤ë¤³¤È¤Ç¹â¤¤°ÌÃ֤˳ÊǼ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

1423658995152.jpg

¥×¥í¥°¥é¥à

¥³¥ó¥»¥×¥È

µ¡¹½¤ÎÆÃÀ­¾å¡¢°ÜÆ°¤¹¤ë²ó¿ô¤Ï¾¯¤Ê¤¤¤Î¤Ç¡¢¤¢¤ëÄøÅ٤ε÷Î¥¤Þ¤Çľ¿Ê¿®¹æ¤Ç¶á¤Å¤­¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤Ç°ÌÃÖ¤ò³ÎÄꤷ¡¢¶á¤Å¤­¡¢¼è¤ë¡¦¹ß¤í¤¹Æ°ºî¤ò¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ë¤¹¤ë¡£

´°À®ÉÊ

À½ºîÅÓÃæ¤Þ¤Ç¤ÏÎɤ«¤Ã¤¿¤Î¤À¤¬¡¢¥í¥Ü¥Ã¥È¤¬´°À®¤·¤¿¤¢¤È¡¢Ä¶²»ÇÈ¥»¥ó¥µ¤ÎÃͤ¬°ÂÄꤷ¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£¤½¤Î¤¿¤á¥³¥ó¥»¥×¥È¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤º¡¢¿Í¤Î¼ê¤ÎÈùÄ´À°¤¬É¬Í×¤Ê¥×¥í¥°¥é¥à¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¡£

¥×¥í¥°¥é¥àÆâÍÆ¡Ê¥Þ¥¹¥¿¡¼Â¦¡Ë

ËÜÂΦ¤ÎNXT¤Ç¤Ï¥¿¥¤¥ä¤È¥Ü¡¼¥ë¤ò¹ß¤í¤¹µ¡¹½¤Î¥â¡¼¥¿¤òÀ©¸æ¤¹¤ë¡£

#define CONN 1
#define SIGNALON 1
#define OPEN_SPEED 15
#define OPEN OnFwd(OUT_A,OPEN_SPEED);Wait(800);Off(OUT_A);
#define CLOSE OnRev(OUT_A,OPEN_SPEED);Wait(1300);Off(OUT_A);
#define SPEED_H 70
#define SPEED_L 50
const float diameter = 5.6;   //¥¿¥¤¥ä¤Îľ·Â¡Ê­Ñ¡Ë
const float track = 10.5;   //¥¿¥¤¥ä¤Î¥È¥ì¥Ã¥ÉÉý¡Ê­Ñ¡Ë
const float pi = 3.1415;   //±ß¼þΨ
float GetAngle_turn(float a)   //µá¤á¤ëËÜÂΤβóž³Ñ¤«¤é¥¿¥¤¥ä¤Î²óž³Ñ¤òµá¤á¤ë´Ø¿ô          
{
	float ang = (a*track)/diameter;
	return ang;
}
float GetAngle_go(float a)   //µá¤á¤ë°ÜÆ°µ÷Î¥¤«¤é¥¿¥¤¥ä¤Î²óž³Ñ¤òµá¤á¤ë´Ø¿ô
{
	float ang = a/(diameter*pi)*360.0;
	return ang;
}
sub angle_turn_L(float t)   //º¸¤ËtÅÙ²óž
{
	int angle_turn_L = GetAngle_turn(t);
	RotateMotorEx(OUT_BC,SPEED_H,angle_turn_L,-100,true,true);//P37
	Off(OUT_BC);
}
sub angle_turn_R(float t)   //±¦¤ËtÅÙ²óž
{
	int angle_turn_R = GetAngle_turn(t);
	RotateMotorEx(OUT_BC,SPEED_H,angle_turn_R,100,true,true);//P37
	Off(OUT_BC);
}
sub dist_go_F(float t)   //Á°¤Ët¥»¥ó¥Á¿Ê¤à
{
	int angle_go_F = GetAngle_go(t);
	RotateMotorEx(OUT_BC,SPEED_H,angle_go_F,0,true,true);
	Off(OUT_BC);
}
sub dist_go_R(float t)   //¸å¤í¤Ët¥»¥ó¥Á¿Ê¤à
{
	int angle_go_R = GetAngle_go(t);
	RotateMotorEx(OUT_BC,-SPEED_H,angle_go_R,0,true,true);
	Off(OUT_BC);
}
task main()
{
dist_go_F(57.0);
//¥³¥Ã¥×¤ò¼è¤ë¥Ü¡¼¥ëÅëºÜ¤Î¿®¹æ¤òÁ÷¤ë
SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
Wait(9000);
angle_turn_R(150.0);
dist_go_F(40.0);
//¥³¥Ã¥×¤ò¼è¤ë¥Ü¡¼¥ëÅëºÜ¤Î¿®¹æ¤òÁ÷¤ë
SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
Wait(9000);
//ȿž¤·¤Æ
dist_go_R(5.0);
angle_turn_R(190.0);
dist_go_R(20.0);
//¥Ü¡¼¥ë¤òÃÖ¤¯
OPEN;
Wait(1000);
CLOSE;
dist_go_F(50.0);
//ȿž¤·¤Æ
dist_go_R(20.0);
angle_turn_R(220.0);
//¥³¥Ã¥×¤Þ¤Ç¶á¤Å¤¯
dist_go_R(33.0);
//¥Ü¡¼¥ë¤òÃÖ¤¯¿®¹æ¤òÁ÷¤ë
OPEN;
Wait(1000);
CLOSE;
//Î¥¤ì¤ë
dist_go_F(20.0);
}

¥×¥í¥°¥é¥àÆâÍÆ¡Ê¥¹¥ì¡¼¥Ö¦¡Ë

¥¹¥ì¡¼¥Ö¦¤ÎNXT¤Ç¤Ï¥¢¡¼¥à¤Î³«ÊĤ侺¹ß¤òÀ©¸æ¤¹¤ë

#define SIGNALON 1
#define ARM_TIME1 1000¡¡ //¥¢¡¼¥à¤Î³«ÊÄ»þ´Ö£±
#define ARM_TIME2 2000   //¥¢¡¼¥à¤Î³«ÊÄ»þ´Ö£²
#define ARM_SPEED1 10    //¥¢¡¼¥à¤Î³«ÊÄ¥¹¥Ô¡¼¥É£±
#define ARM_SPEED2 50    //¥¢¡¼¥à¤Î³«ÊÄ¥¹¥Ô¡¼¥É£²
#define UP_TIME 2000     //¥¢¡¼¥à¤ò¾å¤²¤ë»þ´Ö
#define UP_SPEED 50      //¥¢¡¼¥à¤ò¾å¤²¤ë¥¹¥Ô¡¼¥É
#define DOWN_TIME 1800   //¥¢¡¼¥à¤ò²¼¤²¤ë»þ´Ö
#define DOWN_SPEED 20    //¥¢¡¼¥à¤ò²¼¤²¤ë¥¹¥Ô¡¼¥É
task main()
{
int msg;     //¼õ¤±¼è¤Ã¤¿Ãͤò³ÊǼ¤¹¤ëÊÑ¿ô
while(true){
 ReceiveRemoteNumber(MAILBOX1, true, msg);     //MAILBOX1¤ÎÃͤò¼õ¤±¼è¤êmsg¤Ë³ÊǼ
 if(msg==SIGNALON){
 OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);     //¥¢¡¼¥à¤ò²¼¤²¤ë
 OnRev(OUT_B,ARM_SPEED2);Wait(ARM_TIME2);Off(OUT_B);     //¥¢¡¼¥à¤òÊĤ¸¤ë
 OnRev(OUT_C,UP_SPEED);OnRev(OUT_B,ARM_SPEED2);Wait(UP_TIME);Off(OUT_C);Off(OUT_B);              //¥¢¡¼¥à¤ò¾å¤²¤ë
OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);     //¥¢¡¼¥à¤ò²¼¤²¤ë
OnFwd(OUT_B,ARM_SPEED1);Wait(ARM_TIME1);Off(OUT_B);     //¥¢¡¼¥à¤ò³«¤¯
ARM_UP2 OnRev(OUT_C,UP_SPEED);Wait(450);Off(OUT_C);     //¥¢¡¼¥à¤òÄê°ÌÃÖ¤ËÌ᤹
 }else{
  Off(OUT_BC);
 }
}
}

È¿¾Ê¡¦¹Í»¡

1423658973030.jpg

Îɤ¤µ¡¹½¤òºî¤ë¤³¤È¤¬¤Ç¤­¤¿¡£¤·¤«¤·¡¢ÁȾå¤ê¤Ï¾¯¤·ÌµÍý¤¬¤«¤µ¤ó¤Ç¤¤¤ë¤è¤¦¤Ë»×¤¨¤¿¡£

Ķ²»ÇÈ¥»¥ó¥µ¤Î¿ôÃͤ¬°ÂÄꤷ¤Ê¤¤Íýͳ¤ò²òÌÀ¤·¡¢²þÁ±¤¹¤ë¤Þ¤Ç¤Ë»ê¤ë»ö¤¬¤Ç¤­¤Ê¤«¤Ã¤¿¡£

¥»¥ó¥µ¤Î¼è¤êÉÕ¤±°ÌÃ֤䡢¥»¥ó¥µ¤ÎÁ°¤Þ¤ÇÈô¤Ó½Ð¤¿µ¡¹½¤¬¡¢°ÂÄꤷ¤¿¿ôÃͤò¼è¤ì¤Ê¤«¤Ã¤¿¸¶°ø¤Ç¤Ï¤Ê¤¤¤«¤È¹Í¤¨¤é¤ì¤ë¡£

Ķ²»ÇÈ¥»¥ó¥µ¤òÍѤ¤¤¿¾ì¹ç¡¢°Ê²¼¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤òÁȤ߹þ¤ó¤Ç¤¤¤¿¤¬¡¢³°¤µ¤¶¤ë¤òÆÀ¤Ê¤¯¤Ê¤Ã¤¿¡£

const float arm = 21.0;   //¥¢¡¼¥àµ÷Î¥
int catch_searchDirection(long ang)   //¸½ºß¤ÎÊý¸þ¤òÃæ¿´¤ËangÅÙ¤ÎÈϰϤÇõ¤·¾ã³²Êª¤Þ¤Ç¤Îµ÷Î¥¤òÊÖ¤¹
{
	long angle, tacho_min=0, tacho_corr;
	int d_min;
	d_min = 300;   //²¾¤ÎºÇ¾®ÃÍ
	angle = (track/diameter)*ang;   //Àû²ó³ÑÅÙ¤«¤é¥¿¥¤¥ä¤Î²óž¤ò·×»»
	angle_turn_R(ang/2);   //»ØÄꤵ¤ì¤¿³ÑÅÙ¤ÎȾʬ¤òÀû²ó
	ResetTachoCount(OUT_BC);   //³ÑÅٷ׬¤ò¥ê¥»¥Ã¥È
	
	OnFwdSync(OUT_BC, SPEED_L, -100);   //Ⱦ»þ·×²ó¤ê¤ËÀû²ó
	while(MotorTachoCount(OUT_B) <= angle){
		if(SensorUS(S4) < d_min){
			d_min = SensorUS(S4);   //²¾¤ÎºÇ¾®Ãͤò¹¹¿·
			tacho_min  =  MotorTachoCount(OUT_B);
		}
	}
	OnFwdSyncEx(OUT_BC, SPEED_L, 100, RESET_NONE);
	until(MotorTachoCount(OUT_B)<=tacho_min||SensorUS(S4)<=d_min);
	
	Off(OUT_BC);
	Wait(500);
	return d_min;
}
task main()
{
 SetSensorLowspeed(S2);
 SetSensorLowspeed(S4);
 int d;   //¥»¥ó¥µ¤È¤Îµ÷Î¥ÊÑ¿ô
//Êý¸þ¤òõ¤·¤¿¤¢¤È¡¢ÏӤ΍µÁ°¤ÇÄä»ß
d = catch_searchDirection(120.0);
dist_go_R(arm-d);
}

źÉÕ¥Õ¥¡¥¤¥ë: file1423658973030.jpg 284·ï [¾ÜºÙ] file1423658977120.jpg 270·ï [¾ÜºÙ] file1423658981273.jpg 276·ï [¾ÜºÙ] file1423658982987.jpg 290·ï [¾ÜºÙ] file1423658987925.jpg 268·ï [¾ÜºÙ] file1423658989038.jpg 291·ï [¾ÜºÙ] file1423658995152.jpg 281·ï [¾ÜºÙ]

¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ÍúÎò źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS
Last-modified: 2015-02-11 (¿å) 22:34:04