クリエイターセットDX

産業用ロボット入門
1 章 3 軸ロボットアームの制作

3 章 変数をつかった

2 章 ロボットアームの制御

4 章 ブロック運びゲーム

年組番サーボモーターの制御

名前

1章
3軸ロボットアームの制作

ロボットアームとは、人 間 のうで のように動 いて、ものをつかんで 運 んだり、ものを組み立てたりすることが できるロボットです。工場などで産業用ロボットとして人間のかわりに働いています。
溶接システム

組み立てシステム

パネル溶接システム（駒井ハルテック）

2つ以上の金属どうしをくっつける溶接という作業を速く

バラ積み部品ピッキングシステム（ファナック）

ものを組み立てる作業を、人の手を使わずに行います。

正確に行います。

ロボットアームには人のうでと同じようにたくさんの関 節があり、それぞれの関節をモーターなどで回転させることにより、自由に動かすことが できます。

手首関節( 曲がるところ）
ひじ肩1人の肩から手首までにはたくさんの 関 節が あります。この 部分と同じ動きをロボットアームにさせるだけでも、少なくとも7つのモーターが必要です。
75643
12

モーターの数が増えるほど動きは自由になりますが、その分制御するのは大変です。
反対に、動き方を限定すると、モーターの数が少なくなり、制御が簡単になります。

決まった場所にあるものをつかんで持ち上げる

1
12２つのモーターが必要
① つかむ

② 上げる

決まった場所にあるものを決まった場所まで運ぶ

12

11３つのモーターが必要

2
3

① つかむ

② 上げる

③ 運ぶ

1章では、関節を3つもった「3軸 ロボットアーム」をつくりましょう。
※※軸・・・回転の中心になる箇所のこと

2

1 3軸ロボットアームを組み立てよう次の 4つの 部分にわけて、3 軸ロボットアームを 組み立てます。

③うで2②うで1④手①本体① 本体：ボタンなど で 操 作を行う部分②うで1：左 右 移 動 の 動 作を行う部分③うで2：上下移 動 の 動 作を行う部分④ 手：つかむ 動 作を行う部分③うで2①本体②うで13つかむブロック④手

つかうパーツ

電池ボックス用
コード ×１

スタディーノ ×1

USBケーブル ×1

電池ボックス ×1

サーボモーター ×3

サーボモーター用
延長コード ×1

タッチセンサー ×１

ブロック
基本四角 白 ×4

ブロック ハーフＡ
薄グレー ×1

ブロック ハーフC
薄水 ×16

ブロック ハーフD
水 ×13①本体の組み立て①● ステーとブロックを図のように組み立てます。

×2① にブロックを図のように取り付けます。
●●
②4

センサー
接続コード（短）×1（3芯 15ｃｍ）

ステー ×2

③ タッチセンサーにブロックを図のように取り付けます。
●② を図のように取り付けます。
● スタディーノに ●④④に●②を図のように取り付けます。
●⑤●⑤ に図のように取り付けます。
● 単3のアルカリ電池を入れた電池ボックスを ●⑥5

⑦ 電池ボックスをスタディーノのPOWERのコネクターにつなぎます。
●②うで1の組み立て● ブロックを図のように組み立てます。
①● サーボモーターにブロックを図のように取り付けます。
②プログラムで動く方② にブロックを図のように取り付けます。
●●③6

③ にブロックを図のように取り付けます。
④●●③うで2の組み立て● ブロックを図のように組み立てます。
①● サーボモーターにブロックを図のように取り付けます。
②

プログラムで動く方② にブロックを図のように取り付けます。
●●③

7

④手の組み立て① ブロックを図のように組み立てます。
●● ブロックを図のように組み立てます。
②● ブロックを図のように組み立てます。
③③ にブロックを図のように取り付けます。
④●●

8

⑤ ブロックを図のように組み立てます。
●④に ●⑤ を図のように取り付けます。
●⑥●● ブロックを図のように組み立てます。
⑦⑦ を図のように取り付けます。
● サーボモーターに ●⑧プログラムで動く方

9

⑧に●⑤を図のように取り付けます。
⑨●●⑨に ●② を図のように取り付けます。
⑩●●⑩ のサーボモーターのコードと延長コードをつなぎます。
⑪●●

つかむブロックの組み合わせ● ブロックを図のように組み立てます。
①10

4つのパーツの組み合わせ● ①本体に②うで1を図のように取り付けます。
①①に③うで2を図のように取り付けます。
②●●②に④手を図のように取り付けます。
③●
●

11

● タッチセンサーをA4に、②うで1のサーボモーターをD9に、③うで2のサー④ボモーターをD10に、④手のサーボモーターをD11に接続します。

③うで2の サーボ モ ー

D9
D10
D11

ターのコードは、画像のように通してください。

A4③うで2のサーボモーターのコード● 完成です。
⑤完成!

2 入出力設定をしよう
D 9 〜 D11のサーボ モーター、A0 〜A 3 のボタンにチェックを入れましょう。
また A 4でタッチセンサーを 選 択しましょう。

12

3 ロボットアームが動く角度を調べよう
3軸ロボットアームはうでを上下左右に動かしたり、手を開閉することができます。

うでの動作

上に動く

D10

下に動く

D10

右に動く

左に動く

D9

D9

手の動作
閉じる

開く

D11

D11

テストモードでそれぞれのサーボモーターを動かして、ロボットアームの動作を確認しましょう。

13

①●を並べて、テストモードを開始しましょう。

● D10のサーボモーターを動かすと、うでが上下に動きます。
②
下に動く

上に動く

D10のサーボモーターの角度を0度と180度に変えたときのうでの動きをそれぞれ確認しましょう。

D10のサーボモーターの角度が0度のとき

うでがD10のサーボモーターの角度が180度に動くのとき

うでが14上・下上・下に動く● D9のサーボモーターを選 択しましょう。
③● D9のサーボモーターを動かすと、うでが 左 右に動きます。
④
右に動く

左に動く

D9のサーボモーターの角度を0度と180度に変えたときのうでの動きをそれぞれ確認しましょう。

D9のサーボモーターの角度が0度のとき

うでがD9のサーボモーターの角度が180度に動く

左・右に動くのとき

うでが15左・右● D11のサーボモーターを選 択しましょう。
⑤● D11のサーボモーターを動かすと、手が 動きます。▲▼をクリックして、少し⑥ずつ角度をかえながら、手が 閉じてブロックをつかむときの D11のサーボモーターの角度を調べましょう。このとき、ブロックが 落ちず、かつ、ブロックに大きな力がかかり過ぎない角度にします。

〇

ブロックをつかめるとき

×ブロックに大きな力がかかったとき

閉じる

外れる

ブロックをつかむD11のサーボモーターの角度度⑦ 手が開くときのD11のサーボモーターの角度を確認しましょう。
●D11のサーボモーターの角度
度

開く

2章では、調べたサーボモーターの角度をつかって、ロボットアームを自動で動かしてブロックを運ばせましょう。

16

2章
3軸ロボットアームの制御

1章でつくった3 軸ロボットアームをつかって自動でブロックを運ぶ プログラム
をつくりましょう。
ブロックをつかんで持ち上げる

ブロックを運んで置く

上から見た図上から見た図上から見た図正面から見た図

正面から見た図

正面から見た図

最初の状態※※ブロックを置いた後はうでを上げます。

複 雑な動 作に見えますが、それぞ れの動きを一つずつ 分 解するとわかりやすくなります。動 作を整 理して、写 真のようにブロックを運ぶ プログラムをつくりましょう。

17

1 ブロックをつかんで持ち上げる
プログラムをつくろう
ロボットア ー ム の「うで ( D 9 の サ ー ボ モ ー タ ー 、D 1 0 の サ ー ボ モ ー タ ー ) 」と「 手 ( D 1 1 の サ ー ボ モ ー タ ー ) を 順 番 に 動 かして 、「 ブ ロックを つ か ん で 持 ち上 げる」動 作 の プ ログラムをつくります 。
D9のサーボモーター

D10のサーボモーターD11のサーボモーター● ブロックをつかんで持ち上げるまでの動作を分解して考えると以下のよう①になります。

0

はじめの位置

1

手を開く

2

うでを右に動かす

3

うでを下げる

4

手を閉じる(つかむ)5

うでを上げる18

● それぞれの 動 作を行うときのサ ーボモーター の 角 度を、テストモードで実②際に確認しながら決め、プログラムをつくりましょう。

0

1

はじめの位置2

手を開く

うでを右に動かす

０度

Ｄ11

Ｄ9０度

180度
180度

D990 度D9動かさない

D9度

D1090 度D10動かさない

D10

動かさない

D1190 度

D11度

D11動かさない3

4

うでを下げる

手を閉じる(つかむ)5

うでを上げる

180度
Ｄ10０度

D9動かさない

D9動かさない

D9動かさない

D10度

D10動かさない

D10度

D11動かさない

D11度

D11動かさない19

● つくったプログラムを下 の 図 のように並 べましょう。テストモードで上から③順 番にクリックして、ロボットアームを動かしたときに荷 物 がつかめることを確認しましょう。
クリック

01クリック

2クリック

3クリック

4クリック

5④
● つかんで持ち上げるまでの動作のプログラムを「tsukamu」関数にまとめましょう。

102
3

はじ め の 位 置 に 動 かす プ ロ
グラムはにつなぐ

4520

⑤●「tsukamu」関数を実行するために、⑥●をつなぎましょう。

をクリックして、はじめからプログラムを実行しましょう。

2 ブロックを運んで置くプログラムをつくろう
ブロックをつかむときと同 様に、動 作を分 解してプログラムをつくりましょう。

①● ブロックを運んで置くまでの動作を分解して考えると以下のようになります。
0

はじめの位置1

うでを左に動かす

4うでを上げる

ブロックをつかんだ 状 態

3

手を開く(はなす)21

2うでを下げる②● それぞれの 動 作を行うときのサ ーボモーター の 角 度を、テストモードで実際に確認しながら決め、プログラムをつくりましょう。

01

はじめの位置うでを左に動かす

2

うでを下げる

続きなので用意しない

D9520ページ ⑤D9度

D9動かさない

D1020ページ ⑤5

D10動かさない

D10度

D11520ページ ⑤

D11動かさない

D11動かさない3

手をひらく(はなす)4

うでを上げる

3D9動かさない

D9動かさない

D10

動かさない

D10度

D11度

D11動かさない22

③● つくったプログラムを下の図のように並べましょう。テストモードで上から順番にクリックして、ブロックをつかんだ後に運んで置くことを確認しましょう。
クリック

1クリック

2クリック

3クリック

4

④
● ブロックを運んで置くまでの動作のプログラムを「hakobu」関数にまとめましょう。

1234⑤●「hakobu」関数を実行するために、⑥●をつなぎましょう。

をクリックして、はじめからプログラムを実行しましょう。

23

3 タッチセンサーで操作しよう
タッチセンサ ー が 押されたときにロボットアームが 動き出すようにプログラムを追加しましょう。

タッチセンサーを押す

ロボットアームが 動き出す①
● タッチセンサーが押されたときに「tsukamu」関数と「hakobu」関数が実行されるようにプログラムをつくりましょう。

②● プログラムを転 送して、目的 通りにプログラムが 動 いているかを確 認しま
しょう。

24

【参考】ロボットアームを完全自動で動かす方法
赤 外 線フォトリフレクタをつかうと、ブロックが 置かれたときに自動で感 知して動くロボットアームをつくることができます。

赤 外 線フォトリフレクタ

写 真 の 場 所に赤 外 線フォトリフレクタを 取り付 け て 、ブ ロックが あるときとないときの 赤 外 線フォトリフレクタの 値を調べ、しきい 値を決めます。
ブロックがない0

ブロックがある

しきい値

100

この 値を境に「 ブロックがある 」と判 断する
決めたしきい値をつかって、タッチセンサーの条件を赤外線フォトリフレクタの条件に変更すると、ブロックに反応して自動で動くロボットアームになります。

25

3章
変数をつかったサーボモーターの角度調整

2章でつくったロボットアームは自動でブロックを運んでくれました。しかし、状況によっては、ロボットアームを人間が手動で動かすことが必要になることもあります。このような場合、コントロールパネルを使うことで細かな操作を行います。

3章では、スタディーノのボタンをコントロールパネルとして、押すボタンによってうでの動きを制御できるようにプログラムをつくりましょう。また、タッチセンサーが押されているときに手が開くようにしましょう。
うでの制御

手の制御

26

1 ロボットアームの動作を確認しよう
ロボットアームのうでの制御はスタディーノのボタンをつかって行います。上下の動きはＡ1とＡ2のボタンで制御します。
Ａ1のボタンが押されているとき

Ａ2のボタンが押されているとき

左右の動きについては、好きな位置で止めることができれば、ブロックを好きな場所に運ぶことができます。よって、Ａ0のボタンが押されているときは１度ずつ右に動かし、Ａ3のボタンが押されているときは1度ずつ左に動かすようにします。
Ａ0のボタンが押されているとき

Ａ3のボタンが押されているとき

27

手 の 動 作 の 制御はタッチセンサ ーをつかって行 います。タッチセンサ ー が 押されているときは手が閉じて、押されていないときは手が開くようにします。
タッチセンサーが押されているとき

タッチセンサーが押されていないとき

閉じる

開く

2 うでを左右に動かすプログラムをつくろう
うでを左右に動かすときはボタンで１度ずつ動かします。このようなプログラムは、サーボモーターの角度を変数で指定することでつくることができます。
例えば、Ｄ9のサーボモーターの角度を「d9」という変数で表すと、「 d9」の値が変わるごとにＤ9のサーボモーターをその値の角度に動かすことができます。
「 d9」度にサーボモーターが 動く例「 d9 」が20大きくなる「D 9」のサーボモーターが20度 右に動く

20度

28

「ｄ9」の値を変えることをＡ0とＡ3のボタンで行います。Ａ0のボタンが押されているときには「d9」に保存されている数字を1ずつ大きくして右に動かします。Ａ3のボタンが押されているときには、「 d9」に保存されている数字を1ずつ小さくして左に動かします。すると、「 d9」の変化に応じてロボットアームを左右に動かすことができます。
Ａ0のボタンを押す

Ａ3のボタンを押す「 d9 」が1ずつ大きくなる「 d9」が1ずつ小さくなる

サーボモーターが1度ずつ右に動く

サーボモーターが1度ずつ左に動く

1ずつ大きくなる

1ずつ小さくなる

変 数「 d 9 」をつくって、ロボットアームを左 右に自由に動かすプログラムをつくりましょう。

29

①● Ｄ9のサーボモーターの角度を保存する変数「d9」をつくりましょう。

● Ａ0のボタンが押されているときのプログラムをつくりましょう。
②③● Ａ3のボタンが押されているときのプログラムをつくりましょう。

30

④● つくったプログラムを「sayuu」関数にまとめ、繰り返し実行するようにしましょう。また、最初のＤ9の角度を90度にして、「 d9」の最初の値も90にしましょう。

3 うでを上下に動かすプログラムをつくろう
上下の動きはＡ1とＡ2のボタンで制御するので、以下の表にしたがってプログラムをつくりましょう。
押されるボタン

Ａ1

Ａ2うでの動作

上に動く

下に動く

プログラム

Ｄ10のサーボモーターを180度にする

Ｄ10のサーボモーターを0度にする①● Ａ1のボタンが押されているときのプログラムをつくりましょう。

31

②● Ａ2のボタンが押されているときのプログラムをつくりましょう。

③● つくったプログラムを「jouge」関数にまとめ、繰り返し実行するようにしましょう。また、最初のＤ10の角度を90度にするようにしましょう。

4 手を動かすプログラムをつくろう
手の動きはタッチセンサーで制御するので、以下の表にしたがってプログラムをつくりましょう。手を閉じる角度は16ページで調べた角度をつかいましょう。
タッチセンサー押されているとき押されていないとき

手の動作

閉じる

開く

Ｄ11のサーボモーターをＤ11のサーボモーターをプログラム度にする

320度にする①● タッチセンサーが押されているときのプログラムをつくりましょう。

手を閉じるときの角度を入れる②● タッチセンサーが押されていないときのプログラムをつくりましょう。

● つくったプログラムを「te」関数にまとめ、繰り返し実行するようにしましょう。
③
また、最初のＤ11の角度を0度にするようにしましょう。

33

● プログラムを転送して、目的通りにプログラムが動いているかを確認しましょ④う。操作の練習として、2章のコースをつかって、同じようにブロックを運びましょう。

ロボットアームの操作が難しいとき
ロボットアームの 動きが 速く正 確 な 操 作 が 難しいときが あります 。このようなときは、サ ーボモーター の 動かす速さを調整しましょう。の「 速さ」の 値を変 更 することでサ ーボ モ ーター が動く速さを変 更することができます。

適 当な速さに変 更する

適 当な速さに変 更する34

5 プログラムの問題点を考えよう
先ほどつくったプログラムには、「d9」の変数が制限なく変化してしまうという問題点があります。ボタンを長く押していると、変数の値がサーボモーターの動く範囲である0〜180度を超えてしまい、それ以上アームが動かなくなります。このとき、反対側にサーボモーターを動かそうとすると、範囲内の値になるまでアームを動かすことができません。テストモードでこの問題を確認して、プログラムを改善しましょう。

①● テストモードを開始して、プログラムを実行しましょう。

「 d9」の値を大きくします。このとき、「 d9」の値が②● Ａ0のボタンを押し続けて、180を超えると、アームが動かなくなることを確認しましょう。

180を超えると動かなくなる「 d9」の値を小さくします。このとき、「 d9」の値が③● Ａ3のボタンを押し続けて、180以下になるまで、アームが動かないことを確認しましょう。

180以下になるまで動かない
このような状況にならないために、変数が変化する範囲に制限を設け、それ以上変数が変化しないようにプログラムを改良しましょう。

35

④● A 0 の ボタンが 押 されたとき の 変数の変化に制限を加えましょう。Ａ

0のボタンが押されると「d9」の値が 大 きくな る の で 、「 d 9 」の 値 が180より小さいときだけ変化するようにしましょう。

⑤● A 3 の ボタンが 押 されたとき の 変数の変化に制限を加えましょう。Ａ

3のボタンが押されると「d9」の値が小さくなるので、「d9」の 値が0より大きいときだけ変化するようにしましょう。

⑥● テストモードにして、「 d 9 」が 0〜180の 範 囲だけで変 化するかを確 認しましょう。

36

4章
ブロック運びゲーム

3章では、ボタンやタッチセンサーをつかって、自由に操 縦できるロボットアームのプログラムをつくりました。4章では、コースをつかってブロック運びゲームに挑戦します。

運ぶ ブロック

運ぶ ブロック

コース内 のブ ロックは 台 の上に 乗っており高さが あります。このブ ロックを 運
ぶ ためには上下方 向も自由に操 作 できる必 要が あります。変 数をつかって上下方向のサーボモーターＤ10も１度ずつ角度が 変えられるようにプログラムを改良しましょう。

37

1 コースを用意しよう
高さの違う台を2つつくって、その上に運ぶブロックを乗せましょう。台を動かさずに、２つのブロックを点線の中に入れることができればゲームクリアです。

1 に置く高い台と 2 に置く低い台をつくりましょう。また、2つ目の運ぶブロックをつくりましょう。

● ブロックを図のように組み立てます。
①ステーを重ねる38

① にブロックを図のように取り付けます。
●●②コースの 1 に置く● ブロックを図のように組み立てます。
③④ ブロックを図のように組み立てます。
●コースの 2 に置く● ブロックを図のように組み立てます。
⑤39

2 上下のうでの動作のプログラムを改良しよう
左 右のときと同 様 に 上下方 向もうでを自 由に操 作 で きるようにしましょう。上下の動きはＡ1とＡ2のボタンと変 数「d10」で 制 御します。以下の表にしたがってプログラムをつくりましょう。また、左 右のときと同 様に、0 度と18 0 度 で 変数の変 化に制 限をつけましょう。
押されるボタン

Ａ1

Ａ2うでの動作

上に1度ずつ動く下に1度ずつ動く

変数「d10」

1ずつ大きくなる

1ずつ小さくなるＤ10のサーボモーターをＤ10のサーボモーターを変数「d10」度にする

変数「d10」度にするプログラム①● Ｄ10のサーボモーターの角度を保存する変数「d10」をつくりましょう。

②● Ａ1のボタンが押されているときのプログラムをつくりかえましょう。

40

③● Ａ2のボタンが押されているときのプログラムをつくりかえましょう。

● 最 初 のＤ1 0 の 角 度 が 9 0 度 な の で 、④「d10」の最初の値も90にしましょう。

3 手の動作を改良しよう
ゲームをしている最 中に手 を開くためにタッチセンサーを押し続 けていると、他 のボタンの 操 作 が 行いにくいときが あります。そこで、タッチセン サーを押すたびに手 の 開 閉 が 変わるようにプログラムを改 良しましょう。このようなプログラムは、変 数をつかって手が 閉じているかどうかの 状 態を判 断することでつくることが できます。
タッチセンサーを押す

タッチセンサーを押す

タッチセンサーを押す

・・・
開く

閉じる

41

開く

手が 閉じているか開いているかの状 態を変 数「jo u t ai」に保 存します。手が 開いているときは「0」を、閉じているときは「1」を保 存しましょう。
開いている

閉じている

0

1

手joutaiの値

すると、タッチセンサーを押したときの手の動きは、「joutai」の 値から以下のようにわけることが できます。
タッチセンサーを押す

joutaiの 値が0のとき

開いている

閉じる

joutaiに1を保 存する

joutaiの 値が1のとき

開く
閉じている

joutaiに0を保 存する

これらを条 件としてまとめると、以下のようになります。
もしタッチセンサーの 値 が0ならもし 「joutai」の値が0 なら手を閉じて、「joutai」に1を保存する
そうでなければ(「joutai」の値が1なら)手を開いて、「joutai」に0を保存する

42

4 手の動作のプログラムを改良しよう①● 手の状態を判断するための「joutai」という変数をつくりましょう。

● 最初は手を開けた状態で始めるため、②を入れましょう。

③● 手を閉じるときのプログラムをつくりましょう。手を閉じた後に、閉じている状態を表す「1」を「joutai」に保存しましょう。

タッチセンサーを押したとき手が 開いているとき

43

④● 手を開くときのプログラムをつくりましょう。手を開いた後に、開いている状態を表す「0」を「joutai」に保存しましょう。

手が 閉じているとき⑤● プログラムを転送して、ブロック運びゲームに挑戦しましょう。
プログラム例44巻末資 料 ①（2章と3章で 使 用）

45

巻末資 料 ②（4章で 使 用）46

080503

K0620