デザイン演習Ⅲ・Ⅳ dot 4~最終課題~
「逆オルゴール」作成
作成過程・結果の失敗
- 板に穴をあけ
歯車を備え付ける板に穴をあける際に板に対して、垂直に穴を開けないと穴にはめる歯車の支柱が傾く。
→結果、支柱に取り付ける歯車が傾き、歯車同士の嚙み合いが悪くなる。また、板と歯車の間で摩擦が生じ、歯車が回らない。
- 一部の歯車しか回すことが出来なかった。
- モーターの力に対して歯車の枚数、歯車同士の噛み合い調整に失敗したことこらモーターの力では体うよう出来なかった。
- 二段目の歯車は歯車の傾きなどから歯車同士の噛み合いが悪く、最終的に回らない歯車というデザインになった。
- IOTを用いることができなかった
- IOTを用いたイメージは出来ていたがIOTを行うプログラミンが出来なかった。
作業過程の試行錯誤・分かったこと
- 歯車の支柱を設置する穴は板に対して垂直にする
歯車を回す際に歯車と板の摩擦を避けるために別の板で摩擦を避ける
(別の板)
- MDFより3Dプリンターで出力した者の方が摩擦抵抗が少ない。
- 板は大きければ大きいほど歯車の傾きが少ない。
- 挟む板厚さ≧歯車の厚さより歯車の厚さ≧挟む板にすることで歯車の傾きを減少できる。
- ひとつのマイクから二つのモーターを回す
- 歯数が少ない小さい歯車から歯数が多い大きい歯車を回すのは負荷が大きい
- ひとつの歯車に4つ以上歯車を組み合わせて歯車を回すと負荷が大きい








プログラミングコード
- // 音センサ(アナログ生値表示)
- const int DIR = 8;
- const int STEP = 9;
-
- // ポート指定用変数設定
- int a0_in_port = A0; // センサ デジタル情報入力
-
- // 受信データ用変数設定
- int a0_data; // analogデータ用
-
- void setup() {
- // put your setup code here, to run once:
- // シリアルモニタ通信速度設定
- Serial.begin(9600);
- pinMode(DIR, OUTPUT);
- pinMode(STEP, OUTPUT);
- }
-
- void loop() {
- // put your main code here, to run repeatedly:
- // 音センサからの情報取得
- a0_data = analogRead(a0_in_port); // アナログデータ
-
- // シリアルモニタへ出力
- Serial.println( a0_data );
- if (a0_data>500){
- for (int i=0; i <= 80000; i++){
- clockwise(900);
- }
- }
-
- // 1m秒待機
- delay(1);
- }
- void clockwise(int delaytime){
- digitalWrite(DIR, HIGH);//HIGHは時計回り
- digitalWrite(STEP, HIGH);
- delayMicroseconds(delaytime);
- digitalWrite(STEP, LOW);
- delayMicroseconds(delaytime);
- }
- void counter_clockwise(int delaytime){
- digitalWrite(DIR, LOW);//はLOWは反時計回り
- digitalWrite(STEP, HIGH);
- delayMicroseconds(delaytime);
- digitalWrite(STEP, LOW);
- delayMicroseconds(delaytime);
- }
使用材料・機材・道具