爆料公社:教學研究Arduino 互動裝置簡介 - Powered by Discuz!
查看: 570|回復: 25

Arduino 互動裝置簡介

[複製鏈接]
發表於 2017-2-5 06:18:19 | 顯示全部樓層 |閱讀模式
  

這塊小小的板子
原本感覺上會是唸資工之類的才會用到的東西
沒想到卻是許多互動設計會用得到的玩意兒
這個的功能就是讓設計者可以透過接線
然後利用板子上的程式
(不過,這程式是自己要先用電腦寫完,再存到這塊板子裡面)讓連接的裝置如LED、燈光等
產生一些動態的呈現
甚至可以利用按鈕之類的與使用者互動
舉例來說
有些展覽會要使用者按一下鈕
然後周圍的LED燈光就會開始變化
就可以用Arduino來做到
而不需要搬一台筆電來控制

他的USB孔是這種
接印表機用的
平常在寫程式時就要用這個接到電腦
他也可以直接吃USB的電

但是等到設計完之後當然就不希望東西還要再掛在電腦上
畢竟程式都已經存到這片裡面
所以直接用這邊的電源插電就好了
這樣就可以直接把這塊板子藏在天花板或牆壁中

他有分為數位輸出輸入和類比輸出輸入
數位的就是只有0跟1 (有或沒有)
類比的話就是可以有程度上的不同 (比方音量調大小、LED亮度調整大小等)
在板子的一邊有13個孔
下面標Digital代表是數位輸出/輸入用
(不過3、5、6、9、10、11還是可以拿來當類比輸出用)
另外0跟1基本上不要去使用它~
所以這邊至少有12個孔可以拿來用
另外GND代表接地

另一邊則也有類比(Analog)的6個孔

在一開始板子上是沒有任何程式在裡面的
我們要自己寫進去
而寫程式的介面跟語法跟Processing非常像
其實他就是基於Processing來的
非常高階的程式語言(也就是比較接近人話而不是機器語言、0跟1等等)
所以即便不是資訊科出身的人要學會
也不會太困難
程式介面長這樣:

他裡面有很多例子可以拿來參考或測試

然後也與Processing一樣
有Reference可以查他函式的說明


而一般玩Arduino
不可或缺的一個配件就是麵包板了
麵包板就是讓人接電線用的
藍的是一整橫排都是同一條電路
紅的也是一整橫排都是同一條電路
中間的則是一直行ABCDE是同一條
FGHIJ也是同一條
可以把它想成:
─────
─────
|||||||||
|||||||||
─────
─────

而這要怎麼接就是要看設計者怎麼安排了

最基本的讓LED亮燈看看
一般而言
從那0~13的孔(程式裡面要寫是哪一個號碼的孔!)
接到正極
而接地的是接到負極

當然也可以接得更複雜一些
包括電組、LED

還可以接按鈕
(左下角那顆)

簡單的李麥克霹靂遊俠燈~
用按鈕可以控制跑的速度
  

以下是程式:

int buttonFast = 2;
int buttonSlow = 7;

int ledNo[] = {3,5,6,9,10,11};
int fadeValue[] = {0,0,0,0,0,0};

int buttonFastState = 0;
int buttonSlowState = 0;
int nowFastPressing = 0;
int nowSlowPressing = 0;

int nowSpeed=100;
int nowNo=1;
int inverse=0;

int i=0;

//Setup-------------------------------------------------------------------------------
void setup() {
  for(i=0;i<6;++i){
    pinMode(ledNo, OUTPUT);
  }
  pinMode(buttonFast, INPUT);
  pinMode(buttonSlow, INPUT);
}

//Loop-------------------------------------------------------------------------------
void loop(){
  buttonFastState = digitalRead(buttonFast);
  buttonSlowState = digitalRead(buttonSlow);

  //Faster button
  if (buttonFastState == HIGH) {
    if(nowFastPressing ==0){
      nowFastPressing=1;
      if(nowSpeed>40){
        nowSpeed-=10;
      }
    }
  }
  else {
    if(nowFastPressing==1){
      nowFastPressing=0;
    }
  }
  //Slower button
  if (buttonSlowState == HIGH) {
    if(nowSlowPressing ==0){
      nowSlowPressing=1;
      if(nowSpeed<1000){
        nowSpeed+=10;
      }
    }
  }
  else {
    if(nowSlowPressing==1){
      nowSlowPressing=0;
    }
  }
  
  delay(nowSpeed);
  nowNoSet();
  lightUp();
  
}

void nowNoSet(){
  if(nowNo==0){
    inverse=0;
  }
  if(nowNo==5){
    inverse=1;
  }
  
  if(inverse==0){
    nowNo++;
  }
  else{
    nowNo--;
  }
}

void lightUp(){
  for(i=0;i<6;++i){
    if(i==nowNo){
      fadeValue=240;
      analogWrite(ledNo, fadeValue);
    }
    else{
      if(fadeValue>0){
      fadeValue-=40;
      }
      else{
        fadeValue=0;
      }
      analogWrite(ledNo, fadeValue);
    }
  }
}




發表於 2017-2-13 20:52:09 | 顯示全部樓層
很好哦
回復 支持 反對

使用道具 舉報

發表於 2017-2-13 21:01:22 | 顯示全部樓層
佔坑編輯ing
回復 支持 反對

使用道具 舉報

發表於 2017-2-13 21:04:16 | 顯示全部樓層
確實不錯,頂先
回復 支持 反對

使用道具 舉報

發表於 2017-2-13 21:12:59 | 顯示全部樓層
花的顏色 又怎麼會帶著 淡淡的離別
回復 支持 反對

使用道具 舉報

發表於 2017-2-13 21:26:49 | 顯示全部樓層
液體要具備隱晦艱深的 對白
回復 支持 反對

使用道具 舉報

發表於 2017-4-15 11:16:03 | 顯示全部樓層
報告!別開槍,我就是路過來看看的。。。
回復 支持 反對

使用道具 舉報

發表於 2017-4-15 11:12:05 | 顯示全部樓層
……
回復 支持 反對

使用道具 舉報

發表於 2017-4-15 10:52:07 | 顯示全部樓層
珍愛生命,果斷回帖。
回復 支持 反對

使用道具 舉報

發表於 2017-4-15 11:15:54 | 顯示全部樓層
LZ是天才,堅定完畢
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 馬上加入

本版積分規則

親愛的,趕快加入我們吧!
X
快速回復 返回頂部 返回列表