【離線操作】MotoBlockly視力保健機

Description

Description
作者:黃文玉

創作發想

前陣子利用超音波測距模組(HC-SR04)製作智慧型垃圾桶,想再多做一些應用,想了想發現可以製作[視力保健機],當小朋友看書的距離太近時,蜂鳴器就會嗶嗶叫來警示,光這樣可能太單薄了一些,所以又加入[光敏電阻]來測光,當光線太暗時,蜂鳴器就會嗶嗶叫來警示,最後再加入[傾斜開關],如果姿勢歪掉,也會嗶嗶叫來警示!先利用Transformer來測試,最後再用MotoBlockly來完成離線裝置!

題目一:視力保健機(Transformer版)

說明:利用簡單的Arduino模組,如超音波測距模組(HC-SR04)來測看書距離;[光敏電阻]來測環境的亮度;[傾斜開關]來測頭部是否歪斜,利用上述模組來做一個視力保健機!

材料

  • Arduino控制板 X 1
  • 超音波距離感測器 HC-SR04 X 1
  • 光敏電阻模組 X 1
  • RGB三色LED燈 X 1
  • 無源蜂鳴器 X 1
  • 傾斜開關 X1 (含10K電阻(棕黑橙金)一個)
  • 小型麵包板 X 1
  • 9V電池及電池扣 X 1 (離線工作用)
  • 杜邦線
  • 簡易頭燈 X 1 (改裝成視力保健機)
  • 整理盒(Motoduino的盒子) X 1

硬體部分

接線說明

啟動Transformer 2.0,並進入Scratch2.0
Scratch程式:(程式也很簡單,所以才說適合國小學生來做)

問題:
有關光敏電阻值究竟高於多少才算太暗,這要再經過實測才知道?
傾斜開關究竟要傾斜到多少才算姿勢不良,這也要去調整,然後再給予固定!

題目二:視力保健機(MotoBlockly版,離線版)

硬體的部分同上
進入Moto Blockly (檔案於附件,程式寫法同上)

Arduino程式

int ultrasonic_trig = 10;
int ultrasonic_echo = A0;

float ultrasonic_distance() {
  digitalWrite(ultrasonic_trig, LOW);
  digitalWrite(ultrasonic_echo, LOW);
  delayMicroseconds(5);
  digitalWrite(ultrasonic_trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(ultrasonic_trig, LOW);
  unsigned long sonic_duration = pulseIn(ultrasonic_echo, HIGH);
  float distance_cm = (sonic_duration / 2.0) / 29.1;
  return distance_cm;
}

void setup()
{
  pinMode( ultrasonic_trig , OUTPUT);
  pinMode( ultrasonic_echo , INPUT);
  pinMode(2, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(7, INPUT);
  pinMode(3, OUTPUT);

}


void loop()
{
    if (ultrasonic_distance( ) <= 30 && ultrasonic_distance( ) >= 15) {
      digitalWrite(2,HIGH);
      tone(13,255,200);
      delay(200);
      digitalWrite(2,LOW);
      delay(200);

    }
    if (ultrasonic_distance( ) < 15) {
      digitalWrite(2,HIGH);
      tone(13,255,100);
      delay(100);
      digitalWrite(2,LOW);
      delay(100);

    }
    if (analogRead(A1) > 500) {
      digitalWrite(4,HIGH);
      tone(13,300,100);
      delay(100);
      digitalWrite(4,LOW);
      delay(100);

    }
    if (digitalRead(7) == 1) {
      digitalWrite(3,HIGH);
      tone(13,300,100);
      delay(100);
      digitalWrite(3,LOW);
      delay(100);

    }
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);

}

離線版完成圖

成果展示


原文連結(含附檔於最下方)

 

 

黃 文玉

黃 文玉

現職為高雄市左營區新上國小電腦老師。
黃 文玉

Latest posts by 黃 文玉 (see all)

Contact

Contact
  • Category
    Arduino

Project簡述

Project簡述
  • 簡述
    前陣子利用超音波測距模組(HC-SR04)製作智慧型垃圾桶,想再多做一些應用,想了想發現可以製作[視力保健機],當小朋友看書的距離太近時,蜂鳴器就會嗶嗶叫來警示~
  • 作者
    黃文玉

您的姓名 〈需填寫〉

您的電子郵件信箱 〈需填寫〉

主旨

您的信件內容