情報デザイン演習1 「フィジカル・コンピューティング」(2021)
https://gyazo.com/3f46f310477b18c9d26d9ac1ec8da41a
授業の目的
情報と物質をまたぐガジェットのデザインを、Arduino互換基板(Grove Beginner Kit)によって経験します
時間
木曜4限 (15:30〜17:10)
場所
3111教室
教材
キット(Grove Beginner Kit for Arduino)
https://akizukidenshi.com/catalog/g/gK-15515/
https://wiki.seeedstudio.com/Grove-Beginner-Kit-For-Arduino/
ドキュメント
https://wiki.seeedstudio.com/Grove-Beginner-Kit-For-Arduino/
https://files.seeedstudio.com/wiki/Grove-Beginner-Kit-For-Arduino/res/Grove-Beginner-Kit-For-ArduinoPDF.pdf
/icons/---.icon
スケジュール (全6週)
1. Arduino 講習 1
授業内容
環境構築
Arduino IDE
https://www.arduino.cc/en/software
CP2102 USB Driver
https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers
Lチカ
2. Arduino 講習 2
授業内容
Arduino に親しむ
Lesson 1〜10をやる
https://wiki.seeedstudio.com/Grove-Beginner-Kit-For-Arduino/#lesson-guide
Lesson 4
code:lesson4x1.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
analogWrite(BuzzerPin, 128);
delay(1000);
analogWrite(BuzzerPin, 0);
delay(1000);
}
code: lesson 4x2.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
analogWrite(BuzzerPin, 256);
delay(200);
analogWrite(BuzzerPin, 192);
delay(200);
analogWrite(BuzzerPin, 128);
delay(200);
analogWrite(BuzzerPin, 64);
delay(200);
analogWrite(BuzzerPin, 0);
delay(500);
}
code:lesson_4x3.js
int BuzzerPin = 5;
void setup() {
pinMode(BuzzerPin, OUTPUT);
}
void loop() {
tone(BuzzerPin, 261);//ド
delay(500);
tone(BuzzerPin, 293);//レ
delay(500);
tone(BuzzerPin, 330);//ミ
delay(500);
}
Lesson 7
9行目のコメントアウトを外す
code:lesson7x.js
u8x8.setBusClock(100000);
フォントを変える
https://github.com/olikraus/u8g2/wiki/fntlist8x8
Lesson 8
温度湿度センサをD3につなぐ
16行目に追記する
code: lesson8x.js
u8x8.setBusClock(100000);
Lesson 10
基板のバージョンによって、加速度センサが認識されないことがある
回路にバグがあるので配線を修正する
https://forum.seeedstudio.com/t/i2c-module-problems-with-grove-beginner-kit-for-arduino/252416/6
3. Arduino 講習 3
授業内容
Arduino に親しむ
情報デザイン演習1 「フィジカル・コンピューティング」(2021)#60910e30d3297d0000ec772d
アクチュエータを接続する
ボリュームでサーボモータを動かす
code: servo.js
//サーボをArduinoに接続する
// オレンジ→D9、赤→5V、焦茶→GND
//AOにボリュームをつなぐ
#include <Servo.h>
Servo myservo;
int angle = 0;
void setup() {
// put your setup code here, to run once:
myservo.attach(9);
}
void loop() {
// put your main code here, to run repeatedly:
angle = analogRead(A0);
angle = map(angle, 0, 1023, 0, 180);
myservo.write(angle);
delay(10);
}
ステッパーモーター(28byj-48)を制御する
code: step.js
#define orange 8
#define yellow 9
#define pink 10
#define blue 11
int interval = 4500;
void setup() {
pinMode(orange, OUTPUT);
pinMode(pink, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
for(int i=0; i<=200; i++){
ccw();
}
delay(1000);
for(int i=0; i<=200; i++){
cw();
}
delay(1000);
}
void ccw(){
digitalWrite(orange, HIGH);
digitalWrite(pink, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, HIGH);
digitalWrite(pink, LOW);
digitalWrite(yellow, LOW);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
}
void cw(){
digitalWrite(orange, HIGH);
digitalWrite(pink, LOW);
digitalWrite(yellow, LOW);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(blue, HIGH);
delayMicroseconds(interval);
digitalWrite(orange, LOW);
digitalWrite(pink, HIGH);
digitalWrite(yellow, HIGH);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
digitalWrite(orange, HIGH);
digitalWrite(pink, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(blue, LOW);
delayMicroseconds(interval);
}
ソレノイドを動かす
ガジェットの企画法 2021
宿題
作りたいガジェットを企画し、スライドを作成する
実装に必要なセンサやアクチュエータをリストアップする
4. 企画発表会
授業内容
企画をプレゼンテーションをする (1名3分)
提出物
https://forms.office.com/r/b89fhhbKw8
プレゼンテーションに使用したスライド(PDF)
実装に必要なセンサやアクチュエータのリクエスト
スイッチサイエンス、秋月電子、モノタロウ、Amazonあたりから選定してください
5. 試作相談会 (必要な人は12504にきて作業する)
授業内容
必要な追加部品などを受け渡す
試作方法を相談する
授業時間外も、火曜〜木曜なら対応できる
宿題
ガジェットを作り上げる
6. 試作試遊会
授業内容
作品の展示と試遊
人気投票
https://forms.office.com/r/5TSym7FFBm
キットの返却(学期末までに)
提出物
https://forms.office.com/r/L0Z7JVmtH2
試作レポート (試作物の写真は必須、映像は推奨)
評価基準
企画の良さ (最大40点)
試作の作り込み度 (最大60点)
出席+人気投票( +α)
/icons/---.icon
さらに学習を進めたい人へ
小林茂「Prototyping Lab 第2版 」オライリージャパン (2017)
Arduinoの利用法について網羅的に書かれています
https://www.amazon.co.jp/dp/4873117895/
ダスティン・ロバーツ「Making Things Move」オライリージャパン (2012)
動くガジェットの作り方について書かれています
https://www.amazon.co.jp/dp/4873115361
過去の授業
情報デザイン演習1 「フィジカル・コンピューティング」(2020)
情報デザイン演習1 「フィジカル・コンピューティング」(2019)
#design #prototyping #2021