Page 1

小組會議記錄 課 程 名 稱 智慧系統設計與應用

授 課 教 師 林金玲

別 第一組

題 E-puck 程式討論

14

RC 線上聊天室

101

時 0

4 分

2

~ 16

蕭姿俞

日 時

30

出 席 成 員 林書瑄、蕭姿俞、黃懷恩、費宗儒、吳育碩 記

蕭姿俞 內

一、 使用 webots 模擬程式 二、 決定使用於言為 C 三、 理解範例程式,加以修改 1. Include 所需 API #include <stdio.h> #include <stdlib.h> #include <webots/differential_wheels.h> //馬達控制 #include <webots/distance_sensor.h>

//紅外線感測器

#include <webots/robot.h> #define TIME_STEP 64 2. 主程式 int main(int argc, char **argv) { wb_robot_init();

//robot 初始化

static WbDeviceTag ps[8];

//宣告感測器與對應變數

char ps_names[8][4] = {"ps0","ps1","ps2","ps3","ps4", "ps5", "ps6", "ps7"}; int i;

//自定義常數

int f =0; for(i=0;i<8;i++)

//利用 for 迴圈,取得紅外線感應器

{//使用內建方法 wb_robot_get_device( ); wb_distance_sensor_enable( ); }

老師


//宣告馬達變數 double left_speed, right_speed, Max_speed, Min_speed while(1)

//主要迴圈

{ int delay = wb_robot_step(TIME_STEP); if(delay==-1)break; double ps_values[8]; for( i=0;i<8;i++)

//使用 for 迴圈

{ 抓取感應器所偵測的數值 wb_distance_sensor_get_value( ); } //偵測左邊障礙物,設定偵測距離 bool left_obstacle = ps_values[5]>100.0|| ps_values[6]>100.0; //偵測右邊障礙物 bool right_obstacle = ps_values[2]>100.0|| ps_values[1]>100.0; //偵測前方障礙物 bool front_obstacle = ps_values[0]>100.|| ps_values[7]>100.0; //偵測後方障礙物 bool back_obstacle = ps_values[3]>100.|| ps_values[4]>100.0; //判斷速度有無 overflow if((left_speed>Min_speed)&&(left_speed<Max_speed)&&(right_speed>Min_speed)&&(right_speed<Max_speed)) { if(front_obstacle) //前方障礙 { if(f==0) {後退 } else { //右轉 f=0;} f++; } else if(back_obstacle) //後方障礙 {//前進} else if(left_obstacle) //左邊障礙 {//右轉} else if(right_obstacle) //右邊障礙 {//左轉 } else

}


{若速度超過-300~300,就將速度重設為 100 left_speed=100; right_speed=100; } //使用內建方法,驅動馬達 wb_differential_wheels_set_speed(left_speed,right_speed); } wb_robot_cleanup(); return 0; }

A100222053 4小組會議記錄  
Read more
Read more
Similar to
Popular now
Just for you