• 検索結果がありません。

Microsoft PowerPoint - lego1.ppt [互換モード]

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - lego1.ppt [互換モード]"

Copied!
47
0
0

読み込み中.... (全文を見る)

全文

(1)

プログラミング入門第1回

プログラミング入門第1回

~

~レゴロボットのプログラミング1

レゴロボットのプログラミング1

~

~

2008/4/22 1 高畠俊徳,小林 学 二宮 洋,鈴木 誠 [email protected] [email protected] [email protected] [email protected]

(2)

0.

0. 本講義の進め方

本講義の進め方

講義の進め方

z毎回演習を行う z9時までに席に着いていること(以降は遅刻とす る) 時 分ま 来 な れば欠席 2 z9時20分までに来ていなければ欠席 z万一欠席した場合には,次の授業までに自分で 授業の演習を自習する. 資料は以下の「学生用ページ」→「授業用ページ」 にある http://www.shonan-it.ac.jp/each_science/info/

(3)

z 「プログラミングとはどんなものか?」をロボット制御を 通して学ぶ(全6回) z ロボット⇒ LEGO・MindStorms z プログラミング言語 ⇒RCX Code(純正ファームウェア)(3回)

0.

0. 本講義の進め方

本講義の進め方

3 ( ) ⇒C言語(3回)

(4)

.

. プログラミングとは

プログラミングとは

?

?

コンピュータシステムの構成

コンピュータシステムの構成

ハードウェア

電子回路やコンピュータ機器 など物そのもの

ハードウェア

電子回路やコンピュータ機器 など物そのもの

ソフトウェア(プログラム)

ンピ タを制御する手順

ソフトウェア(プログラム)

ンピ タを制御する手順 4 コンピュータを制御する手順・ 命令をまとめたもの コンピュータを制御する手順・ 命令をまとめたもの

ネットワーク

複数のコンピュータが互いに 接続された網状の構造

ネットワーク

複数のコンピュータが互いに 接続された網状の構造 多くの先輩はこれらを設計・開発・ 構築・運用する仕事に従事

(5)

• 買ってきたソフトを使うだけではつまらない!? ⇒自分で自由にコンピ タを使いこなしたい!!

.

. プログラミングとは

プログラミングとは

?

?

„プログラミングとは,プログラムを作成すること „プログラムとはコンピュータが何をすればよいのか記 述した命令の集まり „プログラミングとは,プログラムを作成すること „プログラムとはコンピュータが何をすればよいのか記 述した命令の集まり 5 ⇒自分で自由にコンピュータを使いこなしたい!! • プログラミングは難しくない!! ただし できるだけ詳しく、他に解釈のしようがないほど丁寧 できるだけ詳しく、他に解釈のしようがないほど丁寧 な説明 な説明が必要

(6)

• 人間ならば それ取って

.

. プログラミングとは

プログラミングとは

?

?

(7)

• コンピュータ(ロボット)に頼む場合 ⇒コンピュータにさせたい仕事を、できるだけ詳しくできるだけ詳しく、 正確に 正確に書く必要がある 子供の後ろに本がある その本を持って 私のところに来なさい

.

. プログラミングとは

プログラミングとは

?

?

7 私のところに来なさい

(8)

コンパイラ系(実行速度が速い)

コンパイラ系(実行速度が速い)

C言語

C言語

(すべての基礎.一番重要)

(すべての基礎.一番重要)

C++

++

(オブジェクト指向)

(オブジェクト指向)

JAVA

JAVA

(オブジェクト指向)

(オブジェクト指向)

C#

#

(オブジェクト指向)

(オブジェクト指向)

コンパイラ系(実行速度が速い)

コンパイラ系(実行速度が速い)

C言語

C言語

(すべての基礎.一番重要)

(すべての基礎.一番重要)

C++

++

(オブジェクト指向)

(オブジェクト指向)

JAVA

JAVA

(オブジェクト指向)

(オブジェクト指向)

C#

#

(オブジェクト指向)

(オブジェクト指向)

プログラミング言語の種類(一部)

プログラミング言語の種類(一部)

8

C#

#

(オブジェクト指向)

(オブジェクト指向)

インタプリタ系(作るのが簡単)

インタプリタ系(作るのが簡単)

BASIC

BASIC (開発が容易.一番古い)

(開発が容易.一番古い)

Perl

Perl

(WEBで利用)

(WEBで利用)

PHP

PHP

(WEBで利用)

(WEBで利用)

C#

#

(オブジェクト指向)

(オブジェクト指向)

インタプリタ系(作るのが簡単)

インタプリタ系(作るのが簡単)

BASIC

BASIC (開発が容易.一番古い)

(開発が容易.一番古い)

Perl

Perl

(WEBで利用)

(WEBで利用)

PHP

PHP

(WEBで利用)

(WEBで利用)

(9)

総合工学 総合工学 初級プログラミング初級プログラミング 基礎 基礎 プログラミング入門プログラミング入門 プログラミング基礎 プログラミング基礎 プログラミング演習 プログラミング演習 アルゴリズム&データ構造1 アルゴリズム&データ構造1 システムプログラム基礎 システムプログラム基礎 発展 発展 オブジェクト指向プログラミングオブジェクト指向プログラミング 総合工学 総合工学 初級プログラミング初級プログラミング 基礎 基礎 プログラミング入門プログラミング入門 プログラミング基礎 プログラミング基礎 プログラミング演習 プログラミング演習 アルゴリズム&データ構造1 アルゴリズム&データ構造1 システムプログラム基礎 システムプログラム基礎 発展 発展 オブジェクト指向プログラミングオブジェクト指向プログラミング

情報工学科プログラミング関連科目

情報工学科プログラミング関連科目

9 発展 発展 オブジェクト指向プログラミングオブジェクト指向プログラミング Web Webプログラミングプログラミング アルゴリズム&データ構造2 アルゴリズム&データ構造2 オペレーテイングシステム2 オペレーテイングシステム2 コンパイラ2 コンパイラ2 データベース管理システム データベース管理システム 画像処理プログラミング 画像処理プログラミング ネットワークアーキテクチャ2 ネットワークアーキテクチャ2 発展 発展 オブジェクト指向プログラミングオブジェクト指向プログラミング Web Webプログラミングプログラミング アルゴリズム&データ構造2 アルゴリズム&データ構造2 オペレーテイングシステム2 オペレーテイングシステム2 コンパイラ2 コンパイラ2 データベース管理システム データベース管理システム 画像処理プログラミング 画像処理プログラミング ネットワークアーキテクチャ2 ネットワークアーキテクチャ2

(10)

MindStorms

MindStorms

Robotics Invention System 2.0

Robotics Invention System 2.0とは

とは

• ブロック、ギア、RCX(Robotics Command System) • モータ、センサ、IR トランスミッタ、ソフトウェアCD-ROMなどがセットになっている

.

. ロボットの概要

ロボットの概要

10 ROMなどがセットになっている。

(11)

RCX

RCXについて

について

• 8bitCPUを搭載 Š センサ入力3ポート(1,2,3) タ出力 ポ

.

. ロボットの概要

ロボットの概要

11 Š モータ出力3ポート (A,B,C) Š LCDディスプレイ Š 赤外線トランスミッタ

(12)

RCX

RCXについて

について

.

. ロボットの概要

ロボットの概要

「注意1」 レゴを動かさないときには, こまめに電源を切ること 「注意2」 12 「注意2」 電池を取り替えるときは, 必ずレゴの電源を切ってから 「注意3」 入力ポートへの線の付け方 出力ポートへの線の付け方 に注意

(13)

RCX

RCXについて

について

.

. ロボットの概要

ロボットの概要

13 赤外線タワーのケーブルは ノートPCの裏の, 上側のUSBポートへつなぐ

(14)

RCX Code

RCX Codeについて

について

このような画面に、

LEGOブロックを組み合

わせてプログラミングを

.

. ロボットの概要

ロボットの概要

14

行う

RCX Code

という言語

を用いる

(15)

3.

3. まずは体験してみよう

まずは体験してみよう

• ローヴァーボットを動かす

(16)

• RCX Codeを使ったプログラミング • 下のアイコンを左ダブルクリック

3.1 RCX CodeRCX Codeを使ったプログラミングの準備を使ったプログラミングの準備

16 これを左クリック

(17)

①sitになっている ことを確認する (何も無ければここ に sit と入力す 3.1 RCX CodeRCX Codeを使ったプログラミングの準備を使ったプログラミングの準備 17 に sit と入力す る) ②ここを左クリック

(18)

3.1 RCX CodeRCX Codeを使ったプログラミングの準備を使ったプログラミングの準備

18 「プログラム」を左クリック

(19)

3.1 RCX CodeRCX Codeを使ったプログラミングの準備を使ったプログラミングの準備

19 「ロボットの選択」を左クリック

(20)

「ローヴァー ボット」であ ることを確 認 3.1 RCX CodeRCX Codeを使ったプログラミングの準備を使ったプログラミングの準備 20 ここを左クリック

(21)

3.2 前進前進 プログラムの始まりを表す ここにプログラムの命令 ブロックを入れていく ①「前進」ブロックをクリック (ブロックがくっつく) 21 ②「前進」を「ブロックの 置き場所」へもって行 き,クリック ③カチッとはまる

(22)

3.3 後退後退 ①左ターン をクリック ②前進の下に移動させてクリック 22 ③下にくっつく

(23)

③「ダウンロード」ボタンをクリック (プログラムがロボットに送られる) ②向かい合わせる 3.4 ロボットを動かすロボットを動かす 23 ①ロボットの 電源を入れる ④Runを押すと ロボットが動く

(24)

3.5 練習練習

(25)

3.6 動作時間の変更動作時間の変更

①ここをクリック

25 ②ここをクリック

(26)

③「2 0 秒」に 3.6 動作時間の変更動作時間の変更 26 ③「2.0 秒」に 変わる ①「2.0」をクリック ②「OK」をクリック

(27)

3.7 練習練習 2秒 0 5秒 以下に設定し,ロ ボットを動作させる 27 0.5秒 0.5秒 2秒

(28)

4.1 プログラムの制御構造1:順次

4

4 プログラミングの基礎

プログラミングの基礎

„プログラムの基本ルール1(順次): 命令は一度に一つだけ実行され, 一つずつ(下に)順々に実行される 命令1

非常に重要

28 命令2 命令3 命令4

(29)

4.2 命令の削除 29 ①「右ターン」を クリック (右ターンより下 がくっついて移 動) ②ごみ箱へ持って いき,クリック (削除される)

(30)

4.2 プログラムの制御構造2:反復(ループ,リピート) ③先頭に挿入 30 ①「リピート」を クリック ②「リピート無限」 をクリック

(31)

4.2 プログラムの制御構造2:反復(ループ,リピート) ②「ブロックの置 き場所」に置く 31 ①「前進」をクリック (前進より下を移動) ③ロボットを 動作させて みよう

(32)

4.2 プログラムの制御構造2:反復(ループ,リピート) „プログラムの基本ルール2(反復): 反復の終わりまで来たら反復の 始まりまで戻る. ある終了条件を満たすまで反復 は繰り返される.

非常に重要

反復の始まり 32 注:命令が一つずつ実行される のは変わらない 反復の終わり 終了条件が書いてある(ここでは無限回繰り返す) ここでは「前進」→「左ターン」→「前進」→「左ターン」・・・を繰り返す

(33)

4.3 プログラムの制御構造3:条件分岐 33 ①「はい、またはい いえ」をクリック ②「はい、または いいえ」ブロッ クをクリック ③「前進」の 前に挿入

(34)

4.3 プログラムの制御構造3:条件分岐 34 ①「前進」をク リック ②条件の「いい え」の中へ移 動 ③「左ターン」を「は い」の中へ移動

(35)

4.3 プログラムの制御構造3:条件分岐 ここに取り付ける 35 ①「左ターン」の 時間を2.0秒 に変更 ②タッチセンサーをRCXのセン サーポート1番に取り付け ③動作させてみよう

(36)

4.3 プログラムの制御構造3:条件分岐 „プログラムの基本ルール3(条件分岐): ある条件を満たした場合には,「は い」の方が実行され,満たしていない 場合には「いいえ」の方が実行される. 注:一度に実行されるのはどちらか 方だけ

非常に重要

36 一方だけ. 条件が記述されている (センサー1とつながったタッチ センサーがおされている か?) 「はい」の とき実行 「いいえ」の とき実行

(37)

①右上の「ファイル」 メニューをクリック

5

5 プログラムの保存と終了

プログラムの保存と終了

5.1 プログラムの保存 37 ②「名前を付けて 保存」をクリック

(38)

5.1 プログラムの保存

38 ①ファイル名を

「sit01」とする

(39)

5.2 プログラミングの終了 ①「メインメニュー」をクリック

39 ②「終了」ボタンをクリック

(40)

6.

6. いくつかの例題

いくつかの例題

[例1] 次のいくつかの例を実行してみよう (注:プログラムを理解しながら作成すること) [例2]反応をすばやくする 40 時間を0.1秒に

(41)

[例3]ライントレースカー(基本形) 図のようにライトセンサーを

センサーポート2番につなぐ

(42)

[例3]ライントレースカー(基本形)

①クリック ②「ライト」をクリック

42 ③「次へ」をクリック

(43)

[例3]ライントレースカー(基本形) ③「明るい」をクリック ①2番をクリック 43 ④「次へ」をクリック ②「次へ」をクリック

(44)

[例3]ライントレースカー(基本形)

2番のライトセンサーが明るいか?

44 ①「終了」をクリック ②実行させてみよう

(45)

[例4]ライントレースカー(衝突するとストップ)

(46)

[例5]前方が暗いとバック

図のようにライトセンサーをつなぐ 2番のライトセンサーが暗いか?

(47)

[例6]リモコンカー

図のようにタッチセンサーを2つつなぐ

参照

関連したドキュメント

今週の課題 REPORT0530 〆切 6月5日 19時 メール送付先: [email protected]

まとめ ページ管理 ページフォルトが発生?ページの置換が必要 ジ置換 ゴリズ

野党連合 油 ガ 部門 政策指針 野党連合MUD の石油・ガス部門の政策指針 《解決策》 

13.1 近似アルゴリズムの種類 困難な問題 対 は多項式時間

内部パラメータのキャリブレーション  Tsaiのアルゴリズム • 3次元座標既知の点から、レンズ歪みを含む内

はじめに(自己紹介) はじめに(自己紹介) 経 経 歴 歴 1995年 1995年 3月 3月 大阪工業大学 大阪工業大学 大学院

Application Architecture For .Net With WPF With WPF With WPF ユーザー ユーザー ユーザーインターフェイスコンポーネント ユーザーインターフェイスコンポーネント

効率のよい発見的方法の一つに Lloyd アルゴリズムがある K-Means クラスタリング: Lloyd