あ る で ぃ ー の Arduinoを使った 組込みシステム入門 愛媛大学工学部情報工学科 中原研究室 今回は何をするの? 世の中の電化製品はほとんど全て コンピュータが組み込まれています ↓ “組込みシステム” Arduino (あるでぃーの)を使って組込み システムを作ってみましょう 組込みシステムって何? 機器の制御を行う特定用途のコンピュータ お値段・消費電力・処理性能毎に適した マイコンが組み込まれている マイコン? 入力・出力・演算・制御・記憶を 一まとめにしたコンピュータ Arduino (あるでぃーの) AVRというマイコン搭載の入門用ボード Amazonで3000円くらい ブレッドボード 穴にワイヤや電子部品を刺すことができる お手軽にアイデアを試せる! First TRY! ArduinoをUSBケーブル経由でノートパ ソコンにつなぎます LEDを点灯させる回路を作ってみよう – LEDの極性(+,-)に注意! LED点灯回路 - (足が短い) 赤…5V 青…GND(0V) + (足が長い) こんな回路と同じ マイコンでコントロール Arduinoが プログラムで 電源のON/OFFを 切換える 回路の変更 ワイヤと抵抗の 穴が揃うように Arduinoの8番ピンに ワイヤの端を指す プログラムを書こう 動かない?? ポートを確認しましょう – TAのお兄さんにチェックしてもらおう 1秒ごとにLED点滅すればOK ちょっと解説… 初期設定 主にピンの 入出力を 指定します 処理を記述 この中が 永遠に 繰り返されます ←8番ピンを出力(OUTPUT) として指定 ←8番ピンを5V (HIGH) ←1000ミリ秒(=1秒)待つ ←8番ピンを0V (LOW) ←1000ミリ秒(=1秒)待つ デジタル信号 ON(=HIGH)とOFF(=LOW)を扱う Arduinoだと – ON(=HIGH)は5V – OFF(=LOW)は0V Let’s Lチカ 1. 500ミリ秒毎に点滅 2. 2000ミリ秒毎に点滅 3. LEDを3つ(赤・黄・緑)に増やして 1秒ごとに点滅 – 注意: LED毎に抵抗を挟むこと! 4. 【難】信号機を作ってみましょう ヒント プログラム こんなこともできるよ! ミニ四駆の自律走行 大学ではこんなことを勉強… フォールト・トレラント(ディペンダビリティ・ コンピューティング) – 絶対に故障しないシステム (もしくは故障してもカバーできる システム) – 墜落しない飛行機 微積分・統計学・コンピュータの知識を 駆使! 一休み… ArduinoからUSBケーブルを取りましょう ブレッドボードから部品を抜きましょう 圧電ブザーを鳴らそう ブレッドボードに配線してUSBケーブル をArduinoに刺す 8番ピンとGNDに刺してね プログラムを入力 1秒毎に“ラ”の音が鳴ったら成功! ←8番ピンを出力 (OUTPUT)として指定 ←”ラ”(440Hz)を鳴らす ←音を止める 音を変えてみよう ラ: 440 シ: 493 ド: 523 レ: 587 ミ: 659 ファ:698 ソ: 783 ラ: 880 色々な効果音を鳴らそう! 1. 救急車: 960Hzで500ms→770Hzで500ms 2. カッコウ: 1220Hzで200ms→無音で200ms →980Hzで600ms 3. NHKの時報 440Hzで100ms→無音900msを3回繰り返し ↓ 880Hzで1500ms スイッチを使おう - (足が短い) + (足が長い) 赤…5V, 青…GND (0V) こんな回路図と同じ スイッチを押すとどうなる? ONはHIGH(=5V), OFFはLOW(=0V) スイッチがOFFのときは入力端子が 5Vにつながるので、ON スイッチがONのときは入力端子が GND(=0V)につながるので、OFF プログラムを入力 押す→点灯, 離す→消灯 ←11番ピンを入力 (INPUT)として指定 ←11番ピンがLOWのときの処理 ←11番ピンがLOWでないときの処理 場合分けをしたい→if文 if( 条件 ) { // 条件が成立したときの処理 } else { // 条件が成立しないときの処理 } 条件: == (一致), != (不一致), < , >, <=, >= アナログ出力を使おう - (足が短い) + (足が長い) 3番ピン “~”がついたピンは アナログ出力できる プログラムを入力 だんだん明るくなる→だんだん暗くなる ←繰り返し処理のfor文 ←analog値を出力, 0V-5Vを 256刻みで出力 繰り返し処理→for文 for( 開始条件; 終了条件; 更新処理) { // 繰り返し処理 } 通常は変数を使う. 今回は”i”を使いました. 開始条件を書くときはおまじない”int”を書く. i++はiを1つ増やす, i--はiを1つ減らす. アナログ入力を 使おう - + 3番ピン CdSセル 明るい→抵抗小 暗い→抵抗大 A5番ピン プログラムを入力 手をかざす→暗→抵抗が大きい→valが小さくなる→消灯 手を放す→明→抵抗が小さい→valが大きくなる→点灯 ←analog値を読み出す. Writeと違い 1024刻みで読み込む 乱数を使おう + + + - 3番, 7番, 13番ピン ↑おなじない. ノイズ値を読み込む ←0~2までの値を ランダムに出力 プログラムを 入力 作品を作ってみよう ラーメンタイマ カウントダウンタイマ 明るくなるとメロディーが流れる 暗くすると音が鳴る 手をかざすと明かりが点く 電子占い 電子サイコロ 電子ルーレット Let’s 組込みコンピューティング
© Copyright 2024 ExpyDoc