Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

Arduinoでプログラミングに触れてみよう 続編 Slide 1 Arduinoでプログラミングに触れてみよう 続編 Slide 2 Arduinoでプログラミングに触れてみよう 続編 Slide 3 Arduinoでプログラミングに触れてみよう 続編 Slide 4 Arduinoでプログラミングに触れてみよう 続編 Slide 5 Arduinoでプログラミングに触れてみよう 続編 Slide 6 Arduinoでプログラミングに触れてみよう 続編 Slide 7 Arduinoでプログラミングに触れてみよう 続編 Slide 8 Arduinoでプログラミングに触れてみよう 続編 Slide 9 Arduinoでプログラミングに触れてみよう 続編 Slide 10 Arduinoでプログラミングに触れてみよう 続編 Slide 11 Arduinoでプログラミングに触れてみよう 続編 Slide 12 Arduinoでプログラミングに触れてみよう 続編 Slide 13 Arduinoでプログラミングに触れてみよう 続編 Slide 14 Arduinoでプログラミングに触れてみよう 続編 Slide 15 Arduinoでプログラミングに触れてみよう 続編 Slide 16 Arduinoでプログラミングに触れてみよう 続編 Slide 17 Arduinoでプログラミングに触れてみよう 続編 Slide 18 Arduinoでプログラミングに触れてみよう 続編 Slide 19 Arduinoでプログラミングに触れてみよう 続編 Slide 20 Arduinoでプログラミングに触れてみよう 続編 Slide 21 Arduinoでプログラミングに触れてみよう 続編 Slide 22 Arduinoでプログラミングに触れてみよう 続編 Slide 23 Arduinoでプログラミングに触れてみよう 続編 Slide 24 Arduinoでプログラミングに触れてみよう 続編 Slide 25 Arduinoでプログラミングに触れてみよう 続編 Slide 26 Arduinoでプログラミングに触れてみよう 続編 Slide 27 Arduinoでプログラミングに触れてみよう 続編 Slide 28 Arduinoでプログラミングに触れてみよう 続編 Slide 29 Arduinoでプログラミングに触れてみよう 続編 Slide 30 Arduinoでプログラミングに触れてみよう 続編 Slide 31 Arduinoでプログラミングに触れてみよう 続編 Slide 32 Arduinoでプログラミングに触れてみよう 続編 Slide 33 Arduinoでプログラミングに触れてみよう 続編 Slide 34 Arduinoでプログラミングに触れてみよう 続編 Slide 35 Arduinoでプログラミングに触れてみよう 続編 Slide 36 Arduinoでプログラミングに触れてみよう 続編 Slide 37 Arduinoでプログラミングに触れてみよう 続編 Slide 38 Arduinoでプログラミングに触れてみよう 続編 Slide 39 Arduinoでプログラミングに触れてみよう 続編 Slide 40 Arduinoでプログラミングに触れてみよう 続編 Slide 41 Arduinoでプログラミングに触れてみよう 続編 Slide 42 Arduinoでプログラミングに触れてみよう 続編 Slide 43 Arduinoでプログラミングに触れてみよう 続編 Slide 44 Arduinoでプログラミングに触れてみよう 続編 Slide 45 Arduinoでプログラミングに触れてみよう 続編 Slide 46 Arduinoでプログラミングに触れてみよう 続編 Slide 47 Arduinoでプログラミングに触れてみよう 続編 Slide 48 Arduinoでプログラミングに触れてみよう 続編 Slide 49 Arduinoでプログラミングに触れてみよう 続編 Slide 50 Arduinoでプログラミングに触れてみよう 続編 Slide 51 Arduinoでプログラミングに触れてみよう 続編 Slide 52 Arduinoでプログラミングに触れてみよう 続編 Slide 53 Arduinoでプログラミングに触れてみよう 続編 Slide 54 Arduinoでプログラミングに触れてみよう 続編 Slide 55 Arduinoでプログラミングに触れてみよう 続編 Slide 56 Arduinoでプログラミングに触れてみよう 続編 Slide 57 Arduinoでプログラミングに触れてみよう 続編 Slide 58 Arduinoでプログラミングに触れてみよう 続編 Slide 59 Arduinoでプログラミングに触れてみよう 続編 Slide 60 Arduinoでプログラミングに触れてみよう 続編 Slide 61 Arduinoでプログラミングに触れてみよう 続編 Slide 62 Arduinoでプログラミングに触れてみよう 続編 Slide 63 Arduinoでプログラミングに触れてみよう 続編 Slide 64 Arduinoでプログラミングに触れてみよう 続編 Slide 65 Arduinoでプログラミングに触れてみよう 続編 Slide 66 Arduinoでプログラミングに触れてみよう 続編 Slide 67 Arduinoでプログラミングに触れてみよう 続編 Slide 68 Arduinoでプログラミングに触れてみよう 続編 Slide 69 Arduinoでプログラミングに触れてみよう 続編 Slide 70 Arduinoでプログラミングに触れてみよう 続編 Slide 71 Arduinoでプログラミングに触れてみよう 続編 Slide 72 Arduinoでプログラミングに触れてみよう 続編 Slide 73 Arduinoでプログラミングに触れてみよう 続編 Slide 74 Arduinoでプログラミングに触れてみよう 続編 Slide 75 Arduinoでプログラミングに触れてみよう 続編 Slide 76 Arduinoでプログラミングに触れてみよう 続編 Slide 77 Arduinoでプログラミングに触れてみよう 続編 Slide 78 Arduinoでプログラミングに触れてみよう 続編 Slide 79 Arduinoでプログラミングに触れてみよう 続編 Slide 80 Arduinoでプログラミングに触れてみよう 続編 Slide 81 Arduinoでプログラミングに触れてみよう 続編 Slide 82 Arduinoでプログラミングに触れてみよう 続編 Slide 83 Arduinoでプログラミングに触れてみよう 続編 Slide 84 Arduinoでプログラミングに触れてみよう 続編 Slide 85 Arduinoでプログラミングに触れてみよう 続編 Slide 86 Arduinoでプログラミングに触れてみよう 続編 Slide 87 Arduinoでプログラミングに触れてみよう 続編 Slide 88 Arduinoでプログラミングに触れてみよう 続編 Slide 89 Arduinoでプログラミングに触れてみよう 続編 Slide 90 Arduinoでプログラミングに触れてみよう 続編 Slide 91 Arduinoでプログラミングに触れてみよう 続編 Slide 92 Arduinoでプログラミングに触れてみよう 続編 Slide 93 Arduinoでプログラミングに触れてみよう 続編 Slide 94 Arduinoでプログラミングに触れてみよう 続編 Slide 95 Arduinoでプログラミングに触れてみよう 続編 Slide 96 Arduinoでプログラミングに触れてみよう 続編 Slide 97 Arduinoでプログラミングに触れてみよう 続編 Slide 98 Arduinoでプログラミングに触れてみよう 続編 Slide 99 Arduinoでプログラミングに触れてみよう 続編 Slide 100 Arduinoでプログラミングに触れてみよう 続編 Slide 101 Arduinoでプログラミングに触れてみよう 続編 Slide 102 Arduinoでプログラミングに触れてみよう 続編 Slide 103 Arduinoでプログラミングに触れてみよう 続編 Slide 104 Arduinoでプログラミングに触れてみよう 続編 Slide 105 Arduinoでプログラミングに触れてみよう 続編 Slide 106 Arduinoでプログラミングに触れてみよう 続編 Slide 107 Arduinoでプログラミングに触れてみよう 続編 Slide 108 Arduinoでプログラミングに触れてみよう 続編 Slide 109 Arduinoでプログラミングに触れてみよう 続編 Slide 110 Arduinoでプログラミングに触れてみよう 続編 Slide 111 Arduinoでプログラミングに触れてみよう 続編 Slide 112 Arduinoでプログラミングに触れてみよう 続編 Slide 113 Arduinoでプログラミングに触れてみよう 続編 Slide 114 Arduinoでプログラミングに触れてみよう 続編 Slide 115 Arduinoでプログラミングに触れてみよう 続編 Slide 116 Arduinoでプログラミングに触れてみよう 続編 Slide 117 Arduinoでプログラミングに触れてみよう 続編 Slide 118 Arduinoでプログラミングに触れてみよう 続編 Slide 119 Arduinoでプログラミングに触れてみよう 続編 Slide 120 Arduinoでプログラミングに触れてみよう 続編 Slide 121 Arduinoでプログラミングに触れてみよう 続編 Slide 122 Arduinoでプログラミングに触れてみよう 続編 Slide 123 Arduinoでプログラミングに触れてみよう 続編 Slide 124 Arduinoでプログラミングに触れてみよう 続編 Slide 125 Arduinoでプログラミングに触れてみよう 続編 Slide 126 Arduinoでプログラミングに触れてみよう 続編 Slide 127 Arduinoでプログラミングに触れてみよう 続編 Slide 128 Arduinoでプログラミングに触れてみよう 続編 Slide 129 Arduinoでプログラミングに触れてみよう 続編 Slide 130 Arduinoでプログラミングに触れてみよう 続編 Slide 131 Arduinoでプログラミングに触れてみよう 続編 Slide 132 Arduinoでプログラミングに触れてみよう 続編 Slide 133 Arduinoでプログラミングに触れてみよう 続編 Slide 134 Arduinoでプログラミングに触れてみよう 続編 Slide 135 Arduinoでプログラミングに触れてみよう 続編 Slide 136 Arduinoでプログラミングに触れてみよう 続編 Slide 137 Arduinoでプログラミングに触れてみよう 続編 Slide 138 Arduinoでプログラミングに触れてみよう 続編 Slide 139 Arduinoでプログラミングに触れてみよう 続編 Slide 140 Arduinoでプログラミングに触れてみよう 続編 Slide 141 Arduinoでプログラミングに触れてみよう 続編 Slide 142 Arduinoでプログラミングに触れてみよう 続編 Slide 143 Arduinoでプログラミングに触れてみよう 続編 Slide 144 Arduinoでプログラミングに触れてみよう 続編 Slide 145 Arduinoでプログラミングに触れてみよう 続編 Slide 146 Arduinoでプログラミングに触れてみよう 続編 Slide 147 Arduinoでプログラミングに触れてみよう 続編 Slide 148 Arduinoでプログラミングに触れてみよう 続編 Slide 149 Arduinoでプログラミングに触れてみよう 続編 Slide 150 Arduinoでプログラミングに触れてみよう 続編 Slide 151 Arduinoでプログラミングに触れてみよう 続編 Slide 152 Arduinoでプログラミングに触れてみよう 続編 Slide 153 Arduinoでプログラミングに触れてみよう 続編 Slide 154 Arduinoでプログラミングに触れてみよう 続編 Slide 155 Arduinoでプログラミングに触れてみよう 続編 Slide 156 Arduinoでプログラミングに触れてみよう 続編 Slide 157 Arduinoでプログラミングに触れてみよう 続編 Slide 158 Arduinoでプログラミングに触れてみよう 続編 Slide 159 Arduinoでプログラミングに触れてみよう 続編 Slide 160 Arduinoでプログラミングに触れてみよう 続編 Slide 161 Arduinoでプログラミングに触れてみよう 続編 Slide 162 Arduinoでプログラミングに触れてみよう 続編 Slide 163 Arduinoでプログラミングに触れてみよう 続編 Slide 164 Arduinoでプログラミングに触れてみよう 続編 Slide 165 Arduinoでプログラミングに触れてみよう 続編 Slide 166 Arduinoでプログラミングに触れてみよう 続編 Slide 167 Arduinoでプログラミングに触れてみよう 続編 Slide 168 Arduinoでプログラミングに触れてみよう 続編 Slide 169 Arduinoでプログラミングに触れてみよう 続編 Slide 170 Arduinoでプログラミングに触れてみよう 続編 Slide 171 Arduinoでプログラミングに触れてみよう 続編 Slide 172 Arduinoでプログラミングに触れてみよう 続編 Slide 173 Arduinoでプログラミングに触れてみよう 続編 Slide 174 Arduinoでプログラミングに触れてみよう 続編 Slide 175 Arduinoでプログラミングに触れてみよう 続編 Slide 176 Arduinoでプログラミングに触れてみよう 続編 Slide 177 Arduinoでプログラミングに触れてみよう 続編 Slide 178 Arduinoでプログラミングに触れてみよう 続編 Slide 179 Arduinoでプログラミングに触れてみよう 続編 Slide 180 Arduinoでプログラミングに触れてみよう 続編 Slide 181 Arduinoでプログラミングに触れてみよう 続編 Slide 182 Arduinoでプログラミングに触れてみよう 続編 Slide 183 Arduinoでプログラミングに触れてみよう 続編 Slide 184 Arduinoでプログラミングに触れてみよう 続編 Slide 185 Arduinoでプログラミングに触れてみよう 続編 Slide 186 Arduinoでプログラミングに触れてみよう 続編 Slide 187 Arduinoでプログラミングに触れてみよう 続編 Slide 188 Arduinoでプログラミングに触れてみよう 続編 Slide 189 Arduinoでプログラミングに触れてみよう 続編 Slide 190 Arduinoでプログラミングに触れてみよう 続編 Slide 191 Arduinoでプログラミングに触れてみよう 続編 Slide 192 Arduinoでプログラミングに触れてみよう 続編 Slide 193 Arduinoでプログラミングに触れてみよう 続編 Slide 194 Arduinoでプログラミングに触れてみよう 続編 Slide 195 Arduinoでプログラミングに触れてみよう 続編 Slide 196 Arduinoでプログラミングに触れてみよう 続編 Slide 197 Arduinoでプログラミングに触れてみよう 続編 Slide 198 Arduinoでプログラミングに触れてみよう 続編 Slide 199 Arduinoでプログラミングに触れてみよう 続編 Slide 200 Arduinoでプログラミングに触れてみよう 続編 Slide 201 Arduinoでプログラミングに触れてみよう 続編 Slide 202 Arduinoでプログラミングに触れてみよう 続編 Slide 203 Arduinoでプログラミングに触れてみよう 続編 Slide 204 Arduinoでプログラミングに触れてみよう 続編 Slide 205 Arduinoでプログラミングに触れてみよう 続編 Slide 206 Arduinoでプログラミングに触れてみよう 続編 Slide 207 Arduinoでプログラミングに触れてみよう 続編 Slide 208 Arduinoでプログラミングに触れてみよう 続編 Slide 209 Arduinoでプログラミングに触れてみよう 続編 Slide 210 Arduinoでプログラミングに触れてみよう 続編 Slide 211 Arduinoでプログラミングに触れてみよう 続編 Slide 212 Arduinoでプログラミングに触れてみよう 続編 Slide 213 Arduinoでプログラミングに触れてみよう 続編 Slide 214 Arduinoでプログラミングに触れてみよう 続編 Slide 215 Arduinoでプログラミングに触れてみよう 続編 Slide 216 Arduinoでプログラミングに触れてみよう 続編 Slide 217 Arduinoでプログラミングに触れてみよう 続編 Slide 218 Arduinoでプログラミングに触れてみよう 続編 Slide 219 Arduinoでプログラミングに触れてみよう 続編 Slide 220 Arduinoでプログラミングに触れてみよう 続編 Slide 221 Arduinoでプログラミングに触れてみよう 続編 Slide 222 Arduinoでプログラミングに触れてみよう 続編 Slide 223 Arduinoでプログラミングに触れてみよう 続編 Slide 224 Arduinoでプログラミングに触れてみよう 続編 Slide 225 Arduinoでプログラミングに触れてみよう 続編 Slide 226 Arduinoでプログラミングに触れてみよう 続編 Slide 227 Arduinoでプログラミングに触れてみよう 続編 Slide 228 Arduinoでプログラミングに触れてみよう 続編 Slide 229 Arduinoでプログラミングに触れてみよう 続編 Slide 230 Arduinoでプログラミングに触れてみよう 続編 Slide 231 Arduinoでプログラミングに触れてみよう 続編 Slide 232 Arduinoでプログラミングに触れてみよう 続編 Slide 233 Arduinoでプログラミングに触れてみよう 続編 Slide 234 Arduinoでプログラミングに触れてみよう 続編 Slide 235 Arduinoでプログラミングに触れてみよう 続編 Slide 236 Arduinoでプログラミングに触れてみよう 続編 Slide 237 Arduinoでプログラミングに触れてみよう 続編 Slide 238 Arduinoでプログラミングに触れてみよう 続編 Slide 239 Arduinoでプログラミングに触れてみよう 続編 Slide 240 Arduinoでプログラミングに触れてみよう 続編 Slide 241 Arduinoでプログラミングに触れてみよう 続編 Slide 242 Arduinoでプログラミングに触れてみよう 続編 Slide 243
Upcoming SlideShare
SEAndroid -AndroidのアーキテクチャとSE化について-
Next
Download to read offline and view in fullscreen.

1 Like

Share

Download to read offline

Arduinoでプログラミングに触れてみよう 続編

Download to read offline

2016/01/10 筑波大学GFESTにて実施

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Arduinoでプログラミングに触れてみよう 続編

  1. 1. Arduinoで
 プログラミングに触れてみよう 続編 2016/01/10 Hiromu Yakura
  2. 2. 自己紹介 • 矢倉 大夢 (やくら ひろむ) • 筑波大学 情報学群 情報科学類 1年 • 情報処理推進機構 未踏クリエイター
  3. 3. 目的 • プログラミングとはどういう作業かを知ってもらう • プログラミングで必要な論理的思考を感じてもらう • プログラミングの指示したとおりに動くという
 楽しさに触れてもらう
  4. 4. Arduino • マイクロコントローラ • コンピュータの機能が
 ひとつの基盤に • 3000円くらいで買える
  5. 5. セットアップ • Internet Explorer   を起動する • アドレスバーに arduino.cc と打ち込む • 左上の「Download」をクリック
  6. 6. セットアップ • 中央右の「Windows ZIP File for non admin install」
  7. 7. セットアップ • 右下の「JUST DOWNLOAD」
  8. 8. • ダウンロードしたファイルをダブルクリックで開き
 「ファイルをすべて解凍」をクリック • ダイアログが出てきたら「展開」をクリック • 解凍が終われば「arduino-1.6.7」フォルダを開く セットアップ
  9. 9. • 付属のUSBケーブルでArduinoを接続する • 「drivers」フォルダの「dpinst-x86.exe」を起動 • 「次へ」をクリックして、インストールを開始 セットアップ
  10. 10. セットアップ • 以下の様なダイアログが2-3回表示されるが
 すべて「インストールする」を選択する
  11. 11. セットアップ • 以下の画面になれば、インストール完了なので
 「完了」を押して終了する
  12. 12. セットアップ • 「arduino-1.6.7」の「arduino.exe」を起動
  13. 13. • 「ツール」の
 「マイコンボード」を
 「Arduino/Genuino Uno」に
  設定する セットアップ
  14. 14. • 「ツール」の
 「シリアルポート」のうち
  有効になっているものを
  選択する セットアップ
  15. 15. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  16. 16. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  17. 17. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  18. 18. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  19. 19. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  20. 20. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  21. 21. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  22. 22. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  23. 23. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  24. 24. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  25. 25. Breadboard • はんだ付けせずに
 回路設計をするボード • 裏側で配線されている
  26. 26. LEDを光らせてみよう
  27. 27. 回路設計 262221 • LEDは足の長い方が
 21番にくるように • 抵抗はどれでもOK
  28. 28. 回路設計 • 13番ピンから赤 • + (電源供給) の役割 • GNDピンから青 • − の役割
  29. 29. LEDを光らせてみよう • Arduino IDE • Arduinoで
 プログラミングする用の
 ソフトウェア
  30. 30. LEDを光らせてみよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   }
  31. 31. LEDを光らせてみよう ここをクリック
  32. 32. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  33. 33. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  34. 34. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  35. 35. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  36. 36. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  37. 37. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  38. 38. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  39. 39. • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく 回路を理解しよう
  40. 40. 回路を理解しよう • +から回路をたどる • LEDを通る • 抵抗を通る • ーにたどりつく
  41. 41. • このような回路図 • 13番からLED • LEDから抵抗 • 抵抗からGND 回路を理解しよう
  42. 42. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   }
  43. 43. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } 2つのグループに分けられる
  44. 44. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   }
  45. 45. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } 最初の1回だけ
 実行される
  46. 46. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } 最初の1回だけ
 実行される 繰り返し
 実行される
  47. 47. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } ← 13番ピンを
   OUTPUTに使用する
  48. 48. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } ← 13番ピンを
   OUTPUTに使用する = +として
 電流を出せるように
  49. 49. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } ← 13番ピンを
   HIGHに設定する
  50. 50. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } ← 13番ピンを
   HIGHに設定する = +から電流を出す
  51. 51. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);   } ← LOWにすると
   LEDは光らない
  52. 52. LEDを点滅させてみよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(13,  LOW);      delay(1000);   }
  53. 53. LEDを点滅させてみよう ここをクリック
  54. 54. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(13,  LOW);      delay(1000);   }
  55. 55. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(13,  LOW);      delay(1000);   } ← 13番ピンを
   HIGHに設定する +から電流を出す =
  56. 56. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(13,  LOW);      delay(1000);   } ← 1000ms (1秒間)
  そのままにする
  57. 57. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(13,  LOW);      delay(1000);   } ← 13番ピンを
   LOWに設定する =+からの電流を止める
  58. 58. プログラムを理解しよう void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(13,  LOW);      delay(1000);   } ← 1000ms (1秒間)
  そのままにする
  59. 59. LEDを点滅させてみよう • チャレンジ: プログラムを改造してみよう • 0.1秒点灯 / 0.1秒消灯 • 1秒点灯 / 0.5秒消灯 • (0.5秒点灯 / 1秒消灯) x 2 → 1秒点灯 / 0.5秒消灯
  60. 60. LEDを点滅させてみよう • チャレンジ: 0.1秒点灯 / 0.1秒消灯 void  loop()  {      digitalWrite(13,  HIGH);      delay(100);      digitalWrite(13,  LOW);      delay(100);   }
  61. 61. LEDを点滅させてみよう • チャレンジ: 1秒点灯 / 0.5秒消灯 void  loop()  {      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(13,  LOW);      delay(500);   }
  62. 62. LEDを点滅させてみよう • 上級者向け: 回路とプログラムを改造してみよう • 2つのLEDを点灯させてみよう • setupとpinModeを同様に使えばよい • 2つのLEDを点滅させてみよう
  63. 63. LEDを点滅させてみよう • 上級者向け: 回路とプログラムを改造してみよう • 2つのLEDを異なる周期で点滅させてみよう • 1つ目は1秒ごと、2つ目は0.5秒ごとに点滅 • 1つ目は1秒ごと、2つ目は0.3秒ごとに点滅 • 変数と条件分岐(後述)を使えば良い
  64. 64. センサーを読み取ってみよう • CdSセンサー • 赤茶色の部分がCdS
 (硫化カドミウム) • 明るいと抵抗値が低く
 暗いと抵抗値が高くなる
  65. 65. センサーを読み取ってみよう
  66. 66. 回路設計 2923 28 • CdSセンサーは
 どっち向きに
 刺してもOK • 抵抗はどれでもOK
  67. 67. 回路設計 • 5Vピンから赤 • + (電源供給) の役割 • GNDピンから青 • − の役割 • A0ピンから緑 • センサーの値を
 読み取る役割
  68. 68. センサーを読み取ってみよう int  val;   void  setup()  {      Serial.begin(9600);   }   void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(100);   }
  69. 69. センサーを読み取ってみよう ここをクリック
  70. 70. センサーを読み取ってみよう • 「ツール」の「シリアルモニタ」を選択 • 右下が「9600 bps」になっていることを確認
  71. 71. センサーを読み取ってみよう • 手をかざして値の変化を見てみる
  72. 72. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  73. 73. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  74. 74. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  75. 75. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  76. 76. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  77. 77. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  78. 78. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  79. 79. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  80. 80. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  81. 81. • +から回路をたどる • 抵抗を通る • 枝分かれ • CdSセンサーを通る • ーにたどりつく 回路を理解しよう
  82. 82. • +から回路をたどる • 抵抗を通る • 枝分かれ • A0にたどりつく • ーにたどりつく 回路を理解しよう
  83. 83. 回路を理解しよう • このような回路図 • 5Vから抵抗 • 枝分かれしてA0 • センサーからGND
  84. 84. センサーを読み取ってみよう • CdSセンサー • 赤茶色の部分がCdS
 (硫化カドミウム) • 明るいと抵抗値が低く
 暗いと抵抗値が高くなる
  85. 85. センサーを読み取ってみよう • CdSセンサー • 赤茶色の部分がCdS
 (硫化カドミウム) • 明るいと抵抗値が低く
 暗いと抵抗値が高くなる
  86. 86. 回路を理解しよう • 明るいとき • センサーの抵抗値が
 高くなる • A0の電圧が
 高くなる
  87. 87. 回路を理解しよう • 暗いとき • センサーの抵抗値が
 低くなる • A0の電圧が
 低くなる
  88. 88. int  val;   void  setup()  {      Serial.begin(9600);   }   void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(100);   } プログラムを理解しよう ← valという変数を宣言
  89. 89. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域
  90. 90. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); ← 変数宣言   valという領域を
   作る
  91. 91. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); val ← 変数宣言   valという領域を
   作る
  92. 92. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); ← 代入   valを100と
   設定する  ← 変数宣言 val
  93. 93. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); ← 代入   valを100と
   設定する  ← 変数宣言 val 100
  94. 94. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); ← 変数宣言 val 100← 代入  ← 100ミリ秒待つ
  95. 95. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); ← 変数宣言 val 100← 代入  ← 代入   valを200と
   設定する  ← 100ミリ秒待つ
  96. 96. プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); ← 変数宣言 val 200← 代入  ← 代入   valを200と
   設定する  ← 100ミリ秒待つ
  97. 97. ← 代入  プログラミングの基本概念 • 変数 = 情報を記録しておくための領域 int  val;   val  =  100;   delay(val);   val  =  200;   delay(val); ← 変数宣言 val 200← 代入  ← 200ミリ秒待つ ← 100ミリ秒待つ
  98. 98. int  val;   void  setup()  {      Serial.begin(9600);   }   void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(100);   } プログラムを理解しよう ← valという変数を宣言
  99. 99. int  val;   void  setup()  {      Serial.begin(9600);   }   void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(100);   } プログラムを理解しよう ← シリアル通信の
   速度を設定
  100. 100. • シリアル通信 = ArduinoとPC間での通信ができる
        シリアルモニタで送受信ができる プログラミングの基本概念
  101. 101. • シリアル通信 = ArduinoとPC間での通信ができる
        シリアルモニタで送受信ができる プログラミングの基本概念 Serial.begin(9600); - 通信の速度を設定する
  102. 102. • シリアル通信 = ArduinoとPC間での通信ができる
        シリアルモニタで送受信ができる プログラミングの基本概念 ← PC側の設定と
   一致していないと
   正しく通信できない Serial.begin(9600); - 通信の速度を設定する
  103. 103. • シリアル通信 = ArduinoとPC間での通信ができる
        シリアルモニタで送受信ができる プログラミングの基本概念 Serial.begin(9600); - 通信の速度を設定する Serial.println(データ);
     - データを1行分PCへ送信する Serial.print(データ);
     - データをPCへ送信する(改行されない)
  104. 104. int  val;   void  setup()  {      Serial.begin(9600);   }   void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(100);   } プログラムを理解しよう ← A0ポートの電圧を
   数値として読み取る   0 5Vが0 1023に対応
  105. 105. int  val;   void  setup()  {      Serial.begin(9600);   }   void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(100);   } プログラムを理解しよう ← valに記憶された
   A0の値を
   シリアル通信で送信
  106. 106. int  val;   void  setup()  {      Serial.begin(9600);   }   void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(100);   } プログラムを理解しよう ← 100ms (0.1秒間) 待つ
  107. 107. 回路を理解しよう • 明るいとき • センサーの抵抗値が
 低くなる • A0の電圧が
 低くなる
  108. 108. 回路を理解しよう • 暗いとき • センサーの抵抗値が
 高くなる • A0の電圧が
 高くなる
  109. 109. センサーを読み取ってみよう • 手をかざして値の変化を見てみる • 明るい時に低く、暗い時に高くなっているはず
  110. 110. センサーを読み取ってみよう • チャレンジ: プログラムを改造してみよう • 0.5秒ごとに読み取った値を送る • 送る値を明るい時は低く、暗い時は高いまま 0 511にする
  111. 111. センサーを読み取ってみよう • チャレンジ: 0.5秒ごとに読み取った値を送る void  loop()  {      val  =  analogRead(0);      Serial.println(val);      delay(500);   }
  112. 112. センサーを読み取ってみよう • チャレンジ: 送る値を0 511にする void  loop()  {      val  =  analogRead(0);      Serial.println(val  /  2);      delay(100);   } analogReadで読み取る値は0 1023なので 2で割ると切り捨てられて0 511になる
  113. 113. センサーを読み取ってみよう • 上級者向け: 回路を改造してみよう • プログラムはそのままでLEDを追加して
 暗い時ほど明るく光るようにする • ヒント: 暗い時ほどLEDに
     高い電圧がかかればよい
  114. 114. センサーとLEDを組み合わせてみよう
  115. 115. 回路設計 • 右半分は
 さっきと同じ • LEDは21番に
 足の長い方を • 抵抗は
 どれでもOK2115 20
  116. 116. 回路設計 • A0ピンから緑 • センサーの値を
 読み取る役割 • 13番ピンから黄 • LEDに電気を流す役割
  117. 117. センサーとLEDを組み合わせてみよう int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(100);   }
  118. 118. センサーとLEDを組み合わせてみよう ここをクリック
  119. 119. • LEDの回路と
 センサーの回路を
 そのまま
 組み合わせた • GNDは共通して
 −の列を使う 回路を理解しよう
  120. 120. • LEDの回路と
 センサーの回路を
 そのまま
 組み合わせた • GNDは共通して
 −の列を使う 回路を理解しよう
  121. 121. ← A0ポートの電圧を
   数値として読み取る int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう
  122. 122. int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう ← 条件分岐
  123. 123. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (条件)  {      処理1;   }  else  {      処理2;   }
  124. 124. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (     }  else  {     } 条件にあてはまるとき  ・処理1は実行される
  ・処理2は無視される if  (条件)  {      処理1;   }
  125. 125. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (     }  else  {     } 条件にあてはまらないとき  ・処理1は無視される
  ・処理2は実行される    else  {      処理2;   }
  126. 126. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (条件)  {      処理;   } 条件にあてはまるときだけ 処理が実行される
  127. 127. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (条件1)  {      処理1;   }  else  if  (条件2)  {      処理2;   }  else  {      処理3;   }
  128. 128. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (     }  else  if  (     }  else  {     } if  (条件1)  {      処理1;   } 条件1にあてはまるとき  ・処理1は実行される
  ・処理2は無視される  ・処理3は無視される
  129. 129. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (     }  else  if  (     }  else  {     }    else  if  (条件2)  {      処理2;   }  else  {      処理3;   } 条件1にあてはまらないとき
  130. 130. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (     }  else  if  (     }  else  {     }    else  if  (条件2)  {      処理2;   } 条件1にあてはまらず 条件2にあてはまるとき  ・処理1は無視される
  ・処理2は実行される  ・処理3は無視される
  131. 131. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (     }  else  if  (     }  else  {     }    else  {      処理3;   } 条件1にあてはまらず 条件2もあてはまらないとき  ・処理1は無視される
  ・処理2は無視される  ・処理3は実行される
  132. 132. プログラミングの基本概念 • 条件分岐 = 状況に応じて実行内容を変える if  (条件1)  {      処理1;   }  else  if  (条件2)  {      処理2;   } 条件1にあてはまるとき 処理1が実行される 条件1にあてはまらず 条件2にあてはまるとき
 処理2は実行される
  133. 133. int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう ← valが800より大きいか
  134. 134. int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう ← valが800より大きいか = センサーの値が
 800より大きいか
  135. 135. int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう ← valが800より大きいか = センサーの値が
 800より大きいか ≒ ある程度以上明るいか
  136. 136. int void     }   void    val  =                  }              }     } int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }                    delay(100);   } プログラムを理解しよう ← 明るい時は
   13番ピンをHIGHに
  137. 137. int void     }   void    val  =                  }              }     } int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }                    delay(100);   } プログラムを理解しよう ← 明るい時は
   13番ピンをHIGHに LEDに電流を送る=
  138. 138. int void     }   void    val  =                  }              }     } int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);                      else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう ← 暗い時は
   13番ピンをLOWに
  139. 139. int void     }   void    val  =                  }              }     } int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);                      else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう ← 暗い時は
   13番ピンをLOWに LEDへの電流を止める =
  140. 140. int  val;   void  setup()  {      pinMode(13,  OUTPUT);   }   void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(100);   } プログラムを理解しよう ← 100ms (0.1秒) 間待つ
  141. 141. センサーを読み取ってみよう • チャレンジ: プログラムを改造してみよう • 明るい時に点灯し、暗い時に消灯させる
  142. 142. int  val;   void  setup()  {      pinMode(13,  OUTPUT);   } センサーを読み取ってみよう • チャレンジ: 明るい時に点灯・暗い時に消灯させる void  loop()  {      val  =  analogRead(0);      if  (val  >  800)  {          digitalWrite(13,  LOW);      }  else  {          digitalWrite(13,  HIGH);      }      delay(100);   } HIGHとLOWを
 逆にすれば良い
  143. 143. センサーを読み取ってみよう • 上級者向け: 回路とプログラムを改造してみよう • 2つのLEDを使って
 明るい時は1つのLEDを点灯
 暗い時はもう1つのLEDを点灯させる
  144. 144. センサーを読み取ってみよう • 上級者向け: 回路とプログラムを改造してみよう • 3秒以上暗いと点灯 • ヒント: millis()で起動からの時間がわかる • ヒント: 暗くなった瞬間の時間を記憶する変数
  145. 145. 加速度を読み取ってみよう Vdd Enable GND OutX OutY OutZ • 3軸加速度センサー • タテ・ヨコ・奥行きにかかる
 重力の大きさがわかる • どれくらいの割合で
 かかっているかで
 傾きがわかる • スマートフォンにも搭載
  146. 146. 加速度を読み取ってみよう Vdd Enable GND OutX OutY OutZ • Vdd: 電源供給 (+) • Enable: 通電しているときのみ
     動作する • GND: GNDにつなぐ (ー)
  147. 147. 加速度を読み取ってみよう Vdd Enable GND OutX OutY OutZ • Out X: X軸の加速度 • Out Y: Y軸の加速度 • Out Z: Z軸の加速度 X軸 Y軸
  148. 148. 加速度を読み取ってみよう
  149. 149. 回路設計 • 上半分 • センサーの1, 2に+を接続 • センサーの3にーを接続 3027
  150. 150. 回路設計 • 下半分 • センサーの6が緑 • センサーの7が黄 • センサーの8が黒 3027
  151. 151. 回路設計 • A0ピンから黒 • Z軸のデータ • A1ピンから黄 • Y軸のデータ • A2ピンから緑 • X軸のデータ
  152. 152. int  x,  y,  z;   void  setup()  {      Serial.begin(9600);   } 加速度を読み取ってみよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z);      delay(500);   }
  153. 153. 加速度を読み取ってみよう ここをクリック
  154. 154. 加速度を読み取ってみよう • 「ツール」の「シリアルモニタ」を選択 • 右下が「9600 bps」になっていることを確認
  155. 155. 加速度を読み取ってみよう • ボードを傾けて変化を見てみる • どの向きに傾けるとX軸, Y軸, Z軸がどう変化するか
  156. 156. 回路を理解しよう • 加速度センサーと
 対応するピンを
 素直につないでいる
  157. 157. プログラムを理解しよう int  x,  y,  z;   void  setup()  {      Serial.begin(9600);   } ← x, y, zという3つの変数を宣言
  158. 158. プログラムを理解しよう int  x,  y,  z;   void  setup()  {      Serial.begin(9600);   } ← シリアル通信の速度を設定
  159. 159. プログラムを理解しよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z);      delay(500);   } ← A2のX軸の値を読み取る
  160. 160. プログラムを理解しよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z);      delay(500);   } ← A1のY軸の値を読み取る
  161. 161. プログラムを理解しよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z);      delay(500);   } ← A0のZ軸の値を読み取る
  162. 162. プログラムを理解しよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z);      delay(500);   } ← 読み取った値を
   シリアル通信で送る
  163. 163. プログラムを理解しよう    Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z); x = 50, y = 100, z = 150のとき 送信されたデータ「」
  164. 164. プログラムを理解しよう    Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z); x = 50, y = 100, z = 150のとき ← 「X: 」を送信 送信されたデータ「X: 」
  165. 165. プログラムを理解しよう    Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z); x = 50, y = 100, z = 150のとき ← 「50 」を送信 送信されたデータ「X: 50」
  166. 166. プログラムを理解しよう    Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z); x = 50, y = 100, z = 150のとき ← 「, Y: 」を送信 送信されたデータ「X: 50, Y: 」
  167. 167. プログラムを理解しよう    Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z); x = 50, y = 100, z = 150のとき ← 「100」を送信 送信されたデータ「X: 50, Y: 100」
  168. 168. プログラムを理解しよう    Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z); x = 50, y = 100, z = 150のとき ← 「, Z: 」を送信 送信されたデータ「X: 50, Y: 100, Z: 」
  169. 169. プログラムを理解しよう    Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z); x = 50, y = 100, z = 150のとき ← 「150」を送信して
   改行する 送信されたデータ「X: 50, Y: 100, Z: 150」
  170. 170. プログラムを理解しよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z);      delay(500);   } ← 読み取った値を
   シリアル通信で送る
  171. 171. プログラムを理解しよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      Serial.print("X:  ");      Serial.print(x);      Serial.print(",  Y:  ");      Serial.print(y);      Serial.print(",  Z:  ");      Serial.println(z);      delay(500);   } ← 500ms (0.5秒間) 待つ
  172. 172. 加速度とLEDを組み合わせてみよう 底面上面 • ブレッドボードをイラスト右側が底面になるように
 立てるとLEDが点灯するようにしたい
  173. 173. 加速度とLEDを組み合わせてみよう
  174. 174. 回路設計 • さっきの回路にLEDを足す • 黄色の線がLEDの
 足の長い方と繋がる • GNDはセンサーと共有 25 19
  175. 175. 回路設計 • さっきの回路にLEDを足す • 黄色の線が13番ピンに
  176. 176. int  x,  y,  z;   void  setup()  {      Serial.begin(9600);      pinMode(13,  OUTPUT);   } 加速度とLEDを組み合わせてみよう void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      if  (x  >  700)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(500);   }
  177. 177. 加速度とLEDを組み合わせてみよう ここをクリック
  178. 178. 回路を理解しよう • さっきの回路に
 LEDを足しただけ
  179. 179. プログラムを理解しよう int  x,  y,  z;   void  setup()  {      Serial.begin(9600);      pinMode(13,  OUTPUT);   } ← 13番ピンをOUTPUTに使用
  180. 180. プログラムを理解しよう ← x軸の値が700を
   超えたら
   13番ピンのLEDを点灯 void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      if  (x  >  700)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(500);   }
  181. 181. プログラムを理解しよう ← x軸の値が700より
   低ければ
   13番ピンのLEDを消灯 void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      if  (x  >  700)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(500);   }
  182. 182. 加速度とLEDを組み合わせてみよう 上面 底面 • ブレッドボードをイラスト上部が底面になるように
 立ててもLEDが点灯するようにしたい
  183. 183. 加速度とLEDを組み合わせてみよう void    x  =      y  =      z  =                  }              }     }    if  (x  >  700  ||  y  >  700)  { ← この1行だけ
   変更する
  184. 184. 加速度とLEDを組み合わせてみよう ここをクリック
  185. 185. プログラムを理解しよう ← 条件が
   変更されている void    x  =      y  =      z  =                  }              }     }    if  (x  >  700  ||  y  >  700)  {
  186. 186. プログラミングの基本概念 x  >  700  ||  y  >  700      =  x  >  700  または  y  >  700   x  >  700  &&  y  >  700      =  x  >  700  かつ  y  >  700   • 二項演算子 = 「もしくは」「かつ」を表す
  187. 187. プログラミングの基本概念 x  >  700  ||  y  >  700  ||  z  >  700      =  x  >  700  または  y  >  700  または z  >  700 x  >  700  &&  y  >  700  &&  z  >  700      =  x  >  700  かつ  y  >  700  かつ z  >  700   • 二項演算子 = 「もしくは」「かつ」を表す
  188. 188. プログラミングの基本概念 • 二項演算子 = 「もしくは」「かつ」を表す x  >  700  ||  y  >  700  &&  z  >  700      =  x  >  700  または「y  >  700  かつ  z  >  700」 (x  >  700  ||  y  >  700)  &&  z  >  700      =「x  >  700  または y  >  700」かつ z  >  700
  189. 189. プログラミングの基本概念 x  >  700  ||  y  >  700  &&  z  >  700      =  x  >  700  または「y  >  700  かつ  z  >  700」 (x  >  700  ||  y  >  700)  &&  z  >  700      =「x  >  700  または y  >  700」かつ z  >  700 「もしくは」より「かつ」が優先される • 二項演算子 = 「もしくは」「かつ」を表す
  190. 190. プログラムを理解しよう ← x > 700 または   y > 700 のとき   LEDが点灯する void    x  =      y  =      z  =                  }              }     }    if  (x  >  700  ||  y  >  700)  {
  191. 191. センサーを読み取ってみよう • チャレンジ: 回路とプログラムを改造してみよう • 上下をひっくり返したときに
 LEDが点灯するようにする • ヒント: シリアル通信でひっくり返した時の
     数値を確認するとよい
  192. 192. int  val;   void  setup()  {      pinMode(13,  OUTPUT);   } センサーを読み取ってみよう • チャレンジ: 上下ひっくり返すと点灯 zについての 条件を指定する void  loop()  {      x  =  analogRead(2);      y  =  analogRead(1);      z  =  analogRead(0);      if  (z  <  100)  {          digitalWrite(13,  HIGH);      }  else  {          digitalWrite(13,  LOW);      }      delay(500);   }
  193. 193. センサーを読み取ってみよう • 上級者向け: 回路とプログラムを改造してみよう • LEDを3つ使って、それぞれの方向に傾けた時に
 それぞれ別のLEDが点灯するように • ある方向に1回転した時にLEDが点灯するように
  194. 194. モーターを使ってみよう • まずワイヤー線2本の先っぽを切り取り
 軽くハサミを当てて皮膜を1cmほど外す
  195. 195. モーターを使ってみよう • ダブルギアボックスからモーターを1つ取り出し
 それぞれの端子に線を刺して軽くねじる
  196. 196. モーターを使ってみよう • 電池ボックスを
 つなげて
 接続を確認する
  197. 197. モーターを使ってみよう • TA7291P - モータードライバ • モーターの制御に使う 1 10
  198. 198. モーターを使ってみよう • TA7291P - モータードライバ • 1 - GND • 4 - 回転速度制御 • 今回は使わないので
 8につなぐ • 8 - モーター用電源入力 • 電池ボックスにつなぐ 1 84
  199. 199. モーターを使ってみよう • TA7291P - モータードライバ • 5, 6 - 回転方向制御 • Arduinoのピンにつなぐ • 7 - 制御用電源入力 • Arduinoの5Vにつなぐ 5 6 7
  200. 200. モーターを使ってみよう • TA7291P - モータードライバ • 2, 10 - モーター制御 • モーター端子につなぐ 2 10
  201. 201. モーターを使ってみよう
  202. 202. モーターを使ってみよう • ブレッドボードに
 モーターと電池ケースを
 つなげる
  203. 203. モーターを使ってみよう • 上の+とーの列に
 電池ボックスの
 +とーを刺す
  204. 204. モーターを使ってみよう • モータードライバを
 外すとこうなる • 21から30の部分に
 モータードライバ 21 30 モーターへ 13番ピン GND 12番ピン 5V
  205. 205. void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(1000);   } void  setup()  {      pinMode(12,  OUTPUT);      pinMode(13,  OUTPUT);   } モーターを使ってみよう
  206. 206. モーターを使ってみよう ここをクリック
  207. 207. モーターを使ってみよう • 1秒ごとに止まり、回転の向きが逆になるはず • 部品が熱くなったり、焦げた匂いがしたりすれば
 すぐに電池ボックスと5Vのピンを抜く
  208. 208. プログラムを理解しよう void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(1000);   } モータードライバの 回転方向制御ピンに
 つながっている Arduinoの12,13番ピンの HIGH, LOWを制御する
  209. 209. プログラムを理解しよう void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(1000);   } ブレーキ
  210. 210. プログラムを理解しよう void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(1000);   } ブレーキ 逆転
  211. 211. プログラムを理解しよう void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(1000);   } ブレーキ 逆転 ストップ
  212. 212. プログラムを理解しよう void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(1000);   } ブレーキ 逆転 ストップ 正転
  213. 213. プログラムを理解しよう void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(12,  HIGH);      digitalWrite(13,  HIGH);      delay(1000);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(1000);   } ブレーキ
 = 電気的な抵抗で止める 逆転 ストップ = 摩擦のみで止める 正転
  214. 214. モーターを使ってみよう • チャレンジ: プログラムを改造してみよう • 2秒正転→2秒逆転
  215. 215. モーターを使ってみよう void  loop()  {      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(2000);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(2000);   } 正転 逆転 • チャレンジ: 2秒正転→2秒逆転
  216. 216. モーターを使ってみよう void                                                 } 切り替える際に ブレーキを挟んだほうが モーターの摩耗が 少なくなる    digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(100);    digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(100);
  217. 217. 2つのモーターを使ってみよう • もう1つのモーターについても線をつける
  218. 218. 2つのモーターを使ってみよう • これも
 電池ボックスを
 つなげて
 接続を確認する
  219. 219. 2つのモーターを使ってみよう • 説明書に従ってダブルギアボックスを組み立てる • ギア比は114.7:1(Cタイプ)となるようにする • 細かい部品が多いので無くさないようにすること
  220. 220. 2つのモーターを使ってみよう • 6角ネジの位置は短いシャフトで合わせるとよい
  221. 221. 2つのモーターを使ってみよう • これも
 電池ボックスを
 つなげて
 接続を確認する
  222. 222. 2つのモーターを使ってみよう
  223. 223. 2つのモーターを使ってみよう • 線対称的にモーターと
 モータードライバーを配置 • 電源・GNDは共有
  224. 224. 2つのモーターを使ってみよう • モータードライバーを
 外すとこうなる • 21から30の部分に
 モータードライバ モーターへ 13番ピン GND 12番ピン 5V 11番ピン 10番ピン モーターへ
  225. 225. void  setup()  {      pinMode(10,  OUTPUT);      pinMode(11,  OUTPUT);      pinMode(12,  OUTPUT);      pinMode(13,  OUTPUT);   } 2つのモーターを使ってみよう void  loop()  {      digitalWrite(10,  HIGH);      digitalWrite(11,  LOW);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(1000);      digitalWrite(10,  LOW);      digitalWrite(11,  LOW);      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(1000);   }
  226. 226. 2つのモーターを使ってみよう ここをクリック
  227. 227. 2つのモーターを使ってみよう • チャレンジ: プログラムを改造してみよう • 2秒正転→2秒逆転
  228. 228. 2つのモーターを使ってみよう    digitalWrite(10,  LOW);      digitalWrite(11,  HIGH);      digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);      delay(2000);      digitalWrite(10,  LOW);      digitalWrite(11,  LOW);      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(100);   } void  loop()  {      digitalWrite(10,  HIGH);      digitalWrite(11,  LOW);      digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);      delay(2000);      digitalWrite(10,  LOW);      digitalWrite(11,  LOW);      digitalWrite(12,  LOW);      digitalWrite(13,  LOW);      delay(100);  
  229. 229. 2つのモーターを使ってみよう • 上級者向け: プログラムを改造してみよう • 2つのモーターが異なる周期で動くようにする • 1つのモーターは2秒正転→1秒逆転 • もう1つのモーターは1秒正転→1秒逆転
  230. 230. 独立して動くようにしてみよう
  231. 231. 独立して動くようにしてみよう • 9V電池の赤をVinに
 黒をGNDにつなぐ • USBを外しても
 動くようになる
  232. 232. 車輪をつけてみよう
  233. 233. 車輪をつけてみよう
  234. 234. 車輪をつけてみよう • 必要な部品は、以下のとおり • スポーツタイヤセット • ユニバーサルプレート: 2チームで1箱 • ボールキャスター: 2チームで1セット
  235. 235. 車輪をつけてみよう • まず、裏側にダブルギアボックスをつける • 説明書と違い、以下のように支えをつけるとよい
  236. 236. 車輪をつけてみよう • 次に、ボールキャスターをつける • 37mmになるように組み立てる • 電池ボックスも両面テープで裏側につけておく
  237. 237. 車輪をつけてみよう • Arduino、ブレッドボード、9V電池は表面に • 先ほどと全く同じように配線する • 左右で回転の向きが違う場合は
 モーターの接続先を逆にすればよい
  238. 238. 2つのモーターを使ってみよう • チャレンジ: プログラムを改造してみよう • 2秒右折→2秒左折 • ヒント: 左右のタイヤを逆向きに回転させると
     曲がることができる
  239. 239. 2つのモーターを使ってみよう                                         } void                                            digitalWrite(12,  HIGH);      digitalWrite(13,  LOW);    digitalWrite(12,  LOW);      digitalWrite(13,  HIGH);
  240. 240. 加速度センサーを載せてみよう
  241. 241. 加速度センサーを載せてみよう • 加速度センサーのVccは
 3.3Vに接続する • 3.3Vでも動作する • GNDも忘れずに A0ピン A1ピン A2ピン 3.3V
  242. 242. 加速度センサーを載せてみよう • アクティビティ: 自動で高いところへと向かう車を
         作ってみよう • 加速度に応じて進行方向を変える • ヒント: 条件分岐と車の制御を組み合わせる
  243. 243. 加速度センサーを載せてみよう • 上級者向け: 高いところで自動で止まるには? • 上級者向け: 山が複数あるところで
       一番高いところを見つけるには? • ヒント: プログラミングでいうところの
     最適化問題を物理的に再現してみました • キーワード: 山登り法、焼きなまし法
  • the-hideo54

    Jan. 25, 2016

2016/01/10 筑波大学GFESTにて実施

Views

Total views

10,578

On Slideshare

0

From embeds

0

Number of embeds

8,350

Actions

Downloads

4

Shares

0

Comments

0

Likes

1

×