2016年1月13日 星期三

[Arduino] 使用Autodesk 的123D Circuits來玩Arduino

使用Autodesk 的123D Circuits來玩Arduino
Ted Lee@CAVEDU
Jan. 10, 2016
88x31.png[1]

本文將介紹
常見的家電紅外線遙控器來操作MeArm用四顆伺服馬達來模機器擬四軸機器手臂的動作。我們採用各個撃破演算法將題目拆解成兩大塊:紅外線搖控處理(Lab6_3_1)與MeArm操作,再搭配三個實驗(Lab6_3_1-3)來細細品甞Arduino在自動控制上的威力!
本範例过関後,可獲得LED灯光Fade卡一張。

難易度:易

材料:
  1. LED(Light-Emitting Diode,發光二極体)一顆
  2. 220W電阻一顆(色环:紅紅黑金)
  3. 杜邦線若干條
  4. 麵包板一塊
  5. Arduino Uno R3一塊(本系列文章皆簡稱為Arduino開發版
  6. A-B型USB傳輸線一條

第一個實驗將以Arduino IDE內建的範例程式集(built-in examples)中的Blink(註一)做為踏入Arduino殿堂的第一支程式,同時也測試一下前面設定了老半天的环境是否可以正確地誏我們開發程式(註二)。
開啟Blink後的程式碼(註三)為:
/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
它对應的程式流程圖為:

執行結果

註一:從範例中學習(learning by examples)[1]是學習寫程式(programming)最快的方法之一,筆者強烈推荐!
註二:大抵上,軟、硬体的專案(project)開發流程為:
註三:Arduino程式的基本架構(structure)由兩個副程式(subroutines)所組成:
  1. setup():程式執行前的設定(setting),稱之為初始化(initialize),例如:設定串列傳輸速率為9,600bps(bit per second)
  2. loop():不斷重複執行(repeatedly execution)的副程式控制碼(control code),例如:控制馬達不停轉動。
void setup() {
     
}
void loop() {
 
}

Lab1_1_2
接線图接線影片
執行結果

参考資料:
  1. 六種授權條款