Download presentation
Presentation is loading. Please wait.
1
実践ロボットプログラミング LEGO Mindstorms EV3 で目指せロボコン!
WEB: 著者:藤吉弘亘, 藤井隆司, 鈴木裕利, 石井成郎
2
10: ディスプレイ表示 (p.95〜) 2
3
ディスプレイの座標 x 177 MINDSTORMS y 127 テキスト表示 x 127 y (50,20) 40 177 図形表示 3
4
超音波センサの値を表示 超音波センサの値を液晶ディスプレイに表示 デバッグに重要 4
5
超音波センサの値を表示(PAD) (p.96) 超音波センサの値を読み取り、テキストをディスプレイに表示 MINDSTORMS 1 2 3
距離の読み取り 2 超音波センサ ディスプレイ表示 1 無限ループ テキストを表示 3 177 127 x y テキスト座標 MINDSTORMS 5
6
超音波センサの値を表示 (p.97 display_text.c)
#include "./jissenPBL.h" int main() { int dist=0; char sensval[64]; LcdInit(); LcdSelectFont(2); LcdRefresh(); initSensor(); ButtonLedInit(); //use button setSensorPort(CH_4,USONIC,0); startSensor(); while(true){ dist=getSensor(CH_4); sprintf(sensval,"%4d",dist); LcdText(1,50,50,sensval); LcdText(1,120,50,"mm"); Wait(100); if(ButtonPressed(BTN1))break; //Stop Program } closeSensor(); sprint()とは? 書式指定変換した出力を文字列に格納 整数型変数distの値を4桁の整数として 文字変数sensvalに格納する 1 2 3 6
7
図形の繰り返し表示(PAD) (p.98) 図形1と図形2を繰り返しにディスプレイに表示 1 2 3 4 5 6 7 x y
図形の表示 無限ループ 1 画像を1秒表示 2 3 ディスプレイのクリア 4 図形を1秒表示 5 6 ディスプレイのクリア 7 177 127 x y (50,20) 40 CircleOut(50,20,40); 7
8
図形の表示 (p.99 display_fig.c)
#include "./jissenPBL.h" int main() { LcdInit(); LcdRefresh(); ButtonLedInit(); //use button while(true){ LcdBmpFile(1,0,0,”/home/root/lms2012/prjs/Angry.rgf”); Wait(1000); LcdClearDisplay(); CircleOut(50,20,40); //(x,y,r) if(ButtonPressed(BTN1))break; //Stop Program } 1 2 3 4 5 6 7 8
9
■課題 障害物までの距離が小さくなるほど大きくなる円を表示 127 (89,64) r y x 177 9
10
■並列タスク (p.107〜) 10
11
→ライントレースと障害物回避を同時に行うには並列タスクを利用
シングルタスク シングルタスクと並列タスク →ライントレースと障害物回避を同時に行うには並列タスクを利用 11
12
PADによる並列タスクの図示 (p.110) 1 2 5 1 3 4 6 7 10 9 2 右旋回 無限ループ 反射光 > 40
ライントレースプログラムを起動 障害物回避プログラムを起動 2 True 右旋回 5 1 ライントレース 無限ループ 3 反射光 > 40 4 左旋回 6 False 障害物との距離が 30cm以下 超音波センサによる障害物回避 7 10 無限ループ 45度右旋回 9 True False 2 12
13
並列タスクにおける問題 (p.110) 命令の衝突(コンフリクト) タスクAがタスクBの実行を妨害 同時にモータを制御 タスクB:後退
モータBCを順方向に回転 タスクB:後退 モータBCを逆方向に回転 どっちを実行すればいいの? 13
14
セマフォ(信号灯) 14
15
セマフォ(信号灯) 15
16
セマフォ(信号灯) 16
17
セマフォ(信号灯) 17
18
セマフォによるコンフリクトの回避 18
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.