SlideShare a Scribd company logo
1 of 19
ロボットシステム学
第3回
上田隆一
本日の内容
• Arduino
• Arduinoのシミュレータ
– 手を動かしましょう
Oct. 7, 2015 ロボットシステム学 2
Arduinoの概要
• AVRマイコンを搭載したマイコンボード
– ATmega328P
– オープンソースハードウェア
• 仕様が公開されている
• 2005年イタリア発
– 学生向けの
プロトタイピングシステム
Oct. 7, 2015 ロボットシステム学 3
Arduinoの構成(Arduino Unoの場合)
• ブレッドボード等で回路を試作しやすいような配慮
• もちろん試作だけでなくシステムでの利用も可
• Arduinoでプログラミングしてマイコンを外して利用可
• 部品
– マイコン(AVR): ATmega328P
– ピンソケット
• マイコンの端子とつながっていてジャンパー線が挿せる
– USBソケット: シリアル通信・電源の供給
Oct. 7, 2015 ロボットシステム学 4
ピンソケットの配置
• ほぼマイコンと直結されている
• マイコンから遠い側の配置
– 0〜13のディジタルI/O
• 「~」がついているものはPWMの機能が利用可能
• 0,1番(TX、RX)はシリアル通信にも使える
– GND: グラウンド
– AREF: アナログ入力の基準電圧入力用
Oct. 7, 2015 ロボットシステム学 5
• マイコンから近い側の配置
– A0〜A5: アナログ入力(ADコンバータ)
– Vin: 外部電源の線と直結
– 3.3V: レギュレータからの電源供給
• 最大電流はボードの購入先の資料で
確認のこと(オープンソースハードなので)
– 5V: USBあるいはレギュレータからの電源供給
– RESET: リセット
– IOREF: ボードの電圧を出す(外から3.3Vか5Vを判別するため)
Oct. 7, 2015 ロボットシステム学 6
Arduinoの構成(ソフトウェア)
• 生身のマイコンにつきものの面倒臭さの除去
– 予めブートローダが書き込まれている
– ブートローダの役割
• 電源を入れたときに既存のスケッチを起動
• PC側からプログラム(Arduino用語でスケッチと呼ぶ)を
受信したら、フラッシュメモリに書き込んで起動
Oct. 7, 2015 ロボットシステム学 7
Arduinoを使う場合/使わない場合
• Arduinoの欠点
– ボードを使うと生身のマイコンより面積をとる
– 完全にマイコンをコントロールしたい場合には
マイコンのこともArduinoのことも知る必要がある
• 特に割り込み回り
• 生身のマイコンを使うかArduinoの方法に従うか
– とりあえずArduinoみたいな簡単なもので困ったら
生身のマイコンを使えばよい
– 使わない人がいたら理由をよく聞くと勉強になる
Oct. 7, 2015 ロボットシステム学 8
プログラムを動作させるまでの流れ
• PCでArduinoのIDEを
ダウンロード・インストール
– https://www.arduino.cc/en/Main/Software
– IDE: integrated development environment
(統合開発環境)
Oct. 7, 2015 ロボットシステム学 9
• コードを書く
– IDE上/エディタ
– コードはファイルと同名のディレクトリに保存される
• Arduinoのポートを選択
• コンパイル&転送
– IDEの画面上の矢印ボタンを押す
– 勝手に動き出す
Oct. 7, 2015 ロボットシステム学 10
Arduinoのプログラム例
• LEDを点滅させる最も簡単なもの
– リポジトリ
– コードの簡単な解説
• setup関数
– 最初に1回だけ呼ばれる
• loop関数
– 繰り返し呼ばれる
• 13番ピンの電圧のHIGH/LOW(5V/0V)でLEDが光る
Oct. 7, 2015 ロボットシステム学 11
ポイント
• 13番ピンの入出力の方向を指定
– マイコンがINPUT/OUTPUTを切り替えられるので
• digitalWriteという関数で電圧(HIGH/LOW)を変更
Oct. 7, 2015 ロボットシステム学 12
シミュレータを使って確認
• やること
– シミュレータ( 123D CIRCUITS)で今の回路と
等価なものを作成
– ただしLEDに抵抗をつけましょう
Oct. 7, 2015 ロボットシステム学 13
アナログ出力の使い方
• 3, 5, 6, 9, 10, 11番ピンはPWMを
内部で行ってくれる
• PWM(pulse width modulation, パルス幅変調)
– ディジタル出力の電圧を短時間に周期的に切り替え
– HIGHの時間とLOWの時間を加減することで
平均で消費される電力を増減
Oct. 7, 2015 ロボットシステム学 14
PWMの例(LEDの光量調整)
• アナログ出力の例の前に・・・
– ディジタル出力でもPWMはできる
• 左: HIGH:LOW = 19:1(デューティー比: 19/20)
• 右: HIGH:LOW = 1:19(デューティー比: 1/20)
– 面倒なこと
• 周期の短さに限界
(※ 50Hzより長いとチラつく)
• ループを一つ占拠
Oct. 7, 2015 ロボットシステム学 15
• アナログ出力を使う
– 回路とコードの例
– ポイント
• analogWrite関数を用いる
• 0 から 255 の整数値でデューティー比を与える
Oct. 7, 2015 ロボットシステム学 16
アナログ入力
• 回路とコードの例
– 光センサから読んだ値とLEDの明るさの連動
• ポイント
– analogRead関数でピンへの電圧を読み取る
• 0が0V、1023が5Vに対応
– analogWriteへの入力は0から255までなので、
A0から読んだ値は4で割る
– シミュレータで作ってみましょう
Oct. 7, 2015 ロボットシステム学 17
補遺: チャタリング
• チャタリング: 微小時間に HIGH 状態と
LOW 状態が細かく振動
• シミュレータのスイッチは
チャタリングしないので注意
• 例
– 右の回路で
チャタリング
を起こすコード
– シミュレータ
Oct. 7, 2015 ロボットシステム学 18
次回以降
• 次週: Arduinoでモータを扱う
– 123D Circuitsを使った課題を出します
• 次々週以降: Linuxにシフトしていきます
– Raspberry Pi
– ROS
Oct. 7, 2015 ロボットシステム学 19

More Related Content

What's hot

kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14
swkagami
 

What's hot (15)

ロボットシステム学2015年第6回
ロボットシステム学2015年第6回ロボットシステム学2015年第6回
ロボットシステム学2015年第6回
 
ロボットシステム学2015年第5回
ロボットシステム学2015年第5回ロボットシステム学2015年第5回
ロボットシステム学2015年第5回
 
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを 使ったロボットシステム」
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃ret2libcとpopretで初等的BOF攻撃
ret2libcとpopretで初等的BOF攻撃
 
Pythonでジョブキューシステムを作った
Pythonでジョブキューシステムを作ったPythonでジョブキューシステムを作った
Pythonでジョブキューシステムを作った
 
python-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしようpython-ptraceでプロセスメモリエディタっぽいことをしよう
python-ptraceでプロセスメモリエディタっぽいことをしよう
 
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
楽しく使おう・始めよう!Raspberry Pi入門〜基礎編~
 
kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
 
OS development beginner version 20160611
OS development beginner version 20160611OS development beginner version 20160611
OS development beginner version 20160611
 
簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門簡単に楽しく始めよう!Raspberry Pi入門
簡単に楽しく始めよう!Raspberry Pi入門
 
Raspberry pisym
Raspberry pisymRaspberry pisym
Raspberry pisym
 
機械学習とJubatus
機械学習とJubatus機械学習とJubatus
機械学習とJubatus
 
210728 mpy
210728 mpy210728 mpy
210728 mpy
 

Similar to ロボットシステム学2015第3回

Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)
Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)
Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)
Takayori Takamoto
 
20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)
Atsushi ENTA
 
Rtm講習会 140626 01
Rtm講習会 140626 01Rtm講習会 140626 01
Rtm講習会 140626 01
openrtm
 
130711 01
130711 01130711 01
130711 01
openrtm
 
TensorFlow Liteを使った組み込みディープラーニング開発
TensorFlow Liteを使った組み込みディープラーニング開発TensorFlow Liteを使った組み込みディープラーニング開発
TensorFlow Liteを使った組み込みディープラーニング開発
Makoto Koike
 

Similar to ロボットシステム学2015第3回 (20)

Miniseminar stm32 l4-iot-kit-updated-101018
Miniseminar stm32 l4-iot-kit-updated-101018Miniseminar stm32 l4-iot-kit-updated-101018
Miniseminar stm32 l4-iot-kit-updated-101018
 
Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)
Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)
Arduinoが拓く「新しいものづくりの世界」120713(robotechセミナー)
 
20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)20110724 WIZDOM:知識ゼロからのArduino(1)
20110724 WIZDOM:知識ゼロからのArduino(1)
 
Rtm講習会 140626 01
Rtm講習会 140626 01Rtm講習会 140626 01
Rtm講習会 140626 01
 
Bee Style:vol.020
Bee Style:vol.020Bee Style:vol.020
Bee Style:vol.020
 
Imaocande LT
Imaocande LTImaocande LT
Imaocande LT
 
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
 
Koedo84
Koedo84Koedo84
Koedo84
 
Netduino
NetduinoNetduino
Netduino
 
130711 01
130711 01130711 01
130711 01
 
Arduino実践 資料1/2 〜【html5j エンタメ技術部】第2回勉強会 公開用
Arduino実践 資料1/2 〜【html5j エンタメ技術部】第2回勉強会 公開用Arduino実践 資料1/2 〜【html5j エンタメ技術部】第2回勉強会 公開用
Arduino実践 資料1/2 〜【html5j エンタメ技術部】第2回勉強会 公開用
 
Arduino入門#1
Arduino入門#1Arduino入門#1
Arduino入門#1
 
Slides AXIS WS2
Slides AXIS WS2Slides AXIS WS2
Slides AXIS WS2
 
スタートアップ機能の等価回路モデル
スタートアップ機能の等価回路モデルスタートアップ機能の等価回路モデル
スタートアップ機能の等価回路モデル
 
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
 
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
 
Arduinoで出来ること
Arduinoで出来ることArduinoで出来ること
Arduinoで出来ること
 
TensorFlow Liteを使った組み込みディープラーニング開発
TensorFlow Liteを使った組み込みディープラーニング開発TensorFlow Liteを使った組み込みディープラーニング開発
TensorFlow Liteを使った組み込みディープラーニング開発
 
AI・IoT時代のテクノロジーとの付き合い方
AI・IoT時代のテクノロジーとの付き合い方AI・IoT時代のテクノロジーとの付き合い方
AI・IoT時代のテクノロジーとの付き合い方
 
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
 

More from Ryuichi Ueda

2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
Ryuichi Ueda
 

More from Ryuichi Ueda (20)

第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
 
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノックシェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
 
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
 
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
 
移動ロボットのナビゲーション
移動ロボットのナビゲーション移動ロボットのナビゲーション
移動ロボットのナビゲーション
 
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
 
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
 
bash(の変な使い方)update
bash(の変な使い方)updatebash(の変な使い方)update
bash(の変な使い方)update
 
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
 
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
 
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
 
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
 
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
 
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
 
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
 
Robot frontier lesson3 2018
Robot frontier lesson3 2018Robot frontier lesson3 2018
Robot frontier lesson3 2018
 
Robot frontier lesson2 2018
Robot frontier lesson2 2018Robot frontier lesson2 2018
Robot frontier lesson2 2018
 
Robot frontier lesson1 2018
Robot frontier lesson1 2018Robot frontier lesson1 2018
Robot frontier lesson1 2018
 
第34回シェル芸勉強会
第34回シェル芸勉強会第34回シェル芸勉強会
第34回シェル芸勉強会
 
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
2017年10月18日 シェル芸勉強会 meets バイオインフォマティクス vol.1 スライド
 

Recently uploaded

Recently uploaded (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

ロボットシステム学2015第3回