Tag Archives: 123D Circuits

[翰吉新書] Arduino 從入門到雲端,即將出版

本書內容為CAVEDU教育團隊於諸多自造者空間所開設之”Arduino習作工坊”課程中彙整而得,針對使者最常用到的周邊依序介紹,分成入門、燈光、動力(馬達)、聲音、通訊、機器人以及雲端應用等七個章節。讀者可根據個人需求選讀適合的章節。

另一方面,隨著萬物聯網的時代來臨,大家都希望能從雲端來監測並控制開發板,當然如果能夠結合一些有趣的運算服務或是社群網站就更棒了。例如 Arduino.cc 所推出的Arduino Cloud雲服務,可在網頁上檢視Arduino所上傳的感測器狀態。另一方面,本書也介紹另一個常用的雲服務-Temboo,可用來連接許多實用的網路服務,例如將感測器資料上傳到Google試算表或是發布Facebook個人動態等等,都能使用Arduino結合Temboo就能做到,輕鬆又方便。期待您能從本書中找到喜歡的題目喔!

目錄:

第一章   Arduino 自造者的好朋友

第二章  燈光之夜

第三章  動力之夜

第四章  聲音之夜

第五章 無線控制之夜

第六章 機器人之夜

第七章 雲端之夜

列印

[123D Circuit] 丟骰子遊戲 – 海大機械作業

上週阿吉老師在海洋大學 Arduino 微處理機課程的作業,用丟骰子遊戲來教隨機數與 if / else 判斷式。按下Arduino 的按鈕之後,會根據莊家與玩家各自的三顆骰子點數合來亮起兩顆 LED 其中之一。本範例感謝海洋大學機械系劉哲甫同學分享。

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/652275-hw_0317_throwthedice/embed#breadboard” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

程式碼:

int player1 = 4;
int player2 = 5;
int bsensor = 0;
int bswitch = 7;
int randomMax = 6;
int randommin = 1;
int Point = 0;
int a=0;
int b=0;

void setup() {
  Serial.begin(9600);
  Serial.println("Ready......");
  pinMode(player1, OUTPUT);
  pinMode(player2, OUTPUT);
  pinMode(bswitch, INPUT);
  delay(500);
}

void loop() {
  digitalWrite(player1,HIGH);
  delay(100);
  digitalWrite(player2,HIGH);
  delay(100);
  Serial.println("Player1 throw the dice");
  bsensor=digitalRead(bswitch);
  while(!bsensor){bsensor=digitalRead(bswitch);}
  for(int i=1;i<=3;i++){
    Point=random(randommin,randomMax);
    Serial.print("Dice");
    Serial.print(i);
    Serial.print("=");
    Serial.println(Point);
    a=a+Point;
    delay(100);
  }
  delay(500);
  Serial.println("Player2 throw the dice");
  bsensor=digitalRead(bswitch);
  while(!bsensor){bsensor=digitalRead(bswitch);}
  for(int i=1;i<=3;i++){
    Point=random(randommin,randomMax);
    Serial.print("Dice");
    Serial.print(i);
    Serial.print("=");
    Serial.println(Point);
    b=b+Point;
    delay(100);
  }
  Serial.println("Counting......");
  delay(1000);
  Serial.print("Player1 point=");
  Serial.println(a);
  Serial.print("Player2 point=");
  Serial.println(b);
  Serial.println("Push button to restart......");
  if(a<b){
    digitalWrite(player2,LOW);
    delay(100);
  }
  else{
    digitalWrite(player1,LOW);
    delay(100);
  }
  bsensor=digitalRead(bswitch);
  while(!bsensor){bsensor=digitalRead(bswitch);}
  a=0;
  b=0;
  digitalWrite(player1,HIGH);
  delay(100);
  digitalWrite(player2,HIGH);
  delay(500);           
}

[123D Circuit] 一元二次方程式公式解

這是本周海洋大學與元智大學的課堂作業,示範各種算術運算子以及副程式傳值練習。ax^2 + bx +c = 0 的一元二次方程式公式解是 (QQ, 為什麼還要算這種東西…):

用程式語法來表示就是這樣:

(-b + sqrt(pow(b,2)-4*a*c))/(2*a)  (-b  sqrt(pow(b,2)-4*a*c))/(2*a)

未命名

code 如下,直接上傳到 Arduino 就可以在 Serial Monitor 看到結果,或是用 123D Circuit 來線上模擬也可以喔。 x^2 -2x + 1 的兩個根都是 1 ,您算對了嗎?

void setup() {
  Serial.begin(9600);  
}

void loop() {
  formula(1,-6,8);
  delay(2000);
}

void formula(int a, int b, int c){
   float result1 = (-b + sqrt(pow(b,2)-4*a*c))/(2*a);
   Serial.print(result1);
   Serial.print(", ");
   float result2 = (-b - sqrt(pow(b,2)-4*a*c))/(2*a);
   Serial.println(result2);    
}

 

123D Circuit 更新 – 可模擬RGB LED 與直流馬達

由 AutoDesk 公司推出的 123D 系列軟體,其中 123D Circuit 可以線上模擬電路以及 Arduino 執行狀況,很適合用來教學。

之前的版本中,RGB LED 與 直流馬達都是無法模擬的,改版之後就可以了,您可以在畫面上看到 RGB LED 的顏色變化以及直流馬達的速度變化。

阿吉老師上學期在海洋大學教了一學期的 Arduino ,就有用 123D Circuit 來教學。相關文章請點我

螢幕快照 2014-10-16 上午1.42.36

 

請由此來看以上程式的模擬效果,可以看到 RGB LED 的顏色與馬達轉動的變化。

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/378962-the-unnamed-circuit/embed#breadboard” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

在此有一點奇怪,Arduino 是無法直接控制直流馬達的才對,但是這樣接居然會動?123D Circuit 沒有說明這個馬達的規格,但是點選馬達之後,可看到速度(speed constant),速度單位以及負載(load)都可以調整。負載愈大,馬達就轉愈慢甚至無法轉動。

螢幕快照 2014-10-16 上午1.46.13   螢幕快照 2014-10-16 上午1.52.12

新增元件的畫面也不一樣了,可以看到官方的用心啊~

螢幕快照 2014-10-16 上午1.18.34

Circuit Scribe – 電路用畫的就會通

Circuit Scribe 是一套直接用墨水筆來畫電路的電子教學套件,主打當然是可導電的墨水筆啦。這類商品最近愈來愈多,不過 Circuit Scribe 標榜方便以及強健性(就是畫出來的電路)您可在 123D Circuits 官方網站上直接訂購。

ggg

來看看影片吧,電路用畫的就會通,感覺真的很方便呢

[youtube=”https://www.youtube.com/watch?feature=player_embedded&v=Sw5lfbhmyt0″]

還有販售現成的套件包、模組與周邊商品,生意頭腦很不錯啊。並且特別強調耐用性,方便的同時也要耐用才行囉

Draw circuits on paper with Circuit Scribe

套件包由簡單到完整版都有,下圖是 Developer Kit 豪華版,包含了所有的東西。

模組包含了電源類、連接器類、輸入類與輸出類,種類相當齊全。

周邊商品的話則可以單買墨水筆以及筆記本

 

123D Circuit 新元件 – Oscillator 振盪器

Screen Shot 2014-04-25 at 10.03.31 PM

123D Circuit 推出新元件了:振盪器 Oscillator。週期與電壓都可以自由調整,這樣就能在 123D Circuit 模擬更多電路實驗了。不太清楚振蕩器功用的朋友,可以參考維基百科的說明

來看看一個簡單的範例吧,按下執行箭頭就可以執行,它會產生兩種波形。

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/195514-simple-74hc14-oscillator/embed” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

Screen Shot 2014-04-25 at 10.21.34 PM

140319 Arduino習作工坊 動力之夜@MakerBar Taipei

3/19 是 Arduino習作工坊 動力之夜, 今天的主題是控制三種馬達: 伺服馬達, 步進馬達以及普通的直流馬達.

Arduino 可以直接控制伺服馬達, 但步進馬達與直流馬達就需要另外的Arduino擴充板或是馬達控制晶片( L298N 或 ULN2003之類. 今天晚上是使用 TA7279 來控制直流馬達.

有關步進馬達, 轉載一下網友的教學文章:http://ming-shian.blogspot.tw/2013/05/arduinouln2003.html

以下是在 123D Circuit 的 Arduino 伺服馬達範例, 馬達會在0~180之間來回擺動. 按下 play 鍵即可執行

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/151247-servo_sweep/embed” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

來看照片吧, 線一多難免手忙腳亂, 這是使用馬達控制晶片的壞處, 不過也能讓您對於馬達的控制有更清楚的認識.

1395647381898

好認真的表情啊

1395647437541 1395647376158

[123D Circuit] 使用Serial Monitor 輸入 aswd 控制LED矩陣移動 – 海大機械作業

九個LED排成陣列,在Serial Monitor 按下 a s w d 四個鍵,會讓 LED 燈亮滅,產生移動的效果。(因為123D Circuits a沒有 LED Matrix 所以用這種方式土炮)

這是阿吉老師在海洋大學機械系出的回家作業,班上一位大一同學的作品,寫得還不錯,分享給大家

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/148242-hw_3/embed” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

 請注意,123D circuit 在網頁嵌入時無法顯示 Serial Monitor,歡迎您自行建立一個 123D Circuit 專案來玩玩看。

未命名

相關123D Circuits教學文章請按我

Code is here:

int x=7,t;

void setup(){
   for(t=1;t<=9;t++)
   { pinMode(t, OUTPUT); }
   digitalWrite(7, HIGH);
   Serial.begin(9600);
}

void loop(){
   if(Serial.available()>0){
      digitalWrite(x, LOW);
      switch (Serial.read()){
         case 'w':
            x = x%3==0? x-2:x+1 ;
            break;
         case 's':
            x = x%3==1? x+2:x-1 ;
            break;
         case 'a':
            x = x+3>9? x-6:x+3;
            break;
         case 'd':
            x = x-3<1? x+6:x-3;
            break;
         default:
            Serial.println("Wrong!!");
            break;
      }
     digitalWrite(x, HIGH);
   }
}

[123D Circuit] 使用Serial Monitor 觀看類比腳位變化

http://arduino.cc/en/Tutorial/AnalogReadSerial

使用可變電阻接到Arduino 類比輸入腳位 A0, 這樣就能藉由 Serial Monitor 來看到腳位數值的變化 (0~1023)

直接看看模擬效果吧:

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/143627-analogreadserial/embed” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

 

 

 

001

[123D Circuit] 可變電阻控制LED漸明漸暗

螢幕快照 2014-02-24 下午3.05.53

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/129886-potentiometer_led/embed” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

簡單的範例:使用可變電阻(A0)來控制 D9 LED 的漸明漸暗。請幫LED加個 220 或 330 歐姆的電阻,不然會爆掉喲

還能用 iframe 的格式分享,可以直接在瀏覽器上看到模擬效果,太厲害了

140218 Arduino微處理機課程@海洋大學機械系

 

 

 

 

 

 

陰雨綿綿的週二,來到海洋大學~

這學期每週二的17:30~20:30 會由CAVEDU 阿吉老師擔任業界講師來授課,使用Arduino與相關週邊來教大家基礎的電子電路,以及 C語言程式設計。班上30多位同學大部份都是大一,也有幾位大三大四的學長姐。大家都願意晚上留下來上課,真感動。

雖然大一同學對程式可能不是很熟練,但只要穩扎穩打(加上適當的回家作業要求),相信學期末各組都會有很棒的成品的。

現在Arduino 的相關資源很豐富了,除了有 Scratch與 ArduBlock 這樣的圖形介面之外,也有類似像 123D Circuit 這樣的模擬軟體。甚至也能用 Processing 或是 LabVIEW 搭配 Arduino 來完成各種應用。

第一天先用123D Circuit 來模擬 Arduino LED閃爍的效果([123D Circuits] Arduino LED閃爍

2014-02-18 18.26.552014-02-18 18.26.50

123D Circuit 的 Arduino 模擬畫面

螢幕快照 2014-02-11 下午4.30.45

系上還有 NI 的 ELVIS耶,用這個搭配LabVIEW學電子電路相當不錯

2014-02-18 17.25.50

 

 

[123D Circuits] Arduino LED閃爍

[線上電路設計與模擬 123D Circuits] 

先來個簡單的範例,請找到LED 接到麵包板上,並使用滑鼠來拉線,長腳到 Arduino D13, 短腳則是GND,接好如下圖,您也可以直接將LED插上去(反正不會燒掉)。

我們要用 Arduino 官方範例的 Blink 程式來介紹,它會讓D13腳位上的LED一秒亮一秒暗。線拉好之後請點選畫面右邊的[Start Simulation] 就會自動執行程式(如果程式有錯的話,也會顯示 debug 結果)。畫面上的LED就會開始閃爍囉~

請注意目前只有 Arduino UNO,其他板子是沒有的。

直接看模擬效果吧!

[iframe width=”725″ height=”448″ src=”http://123d.circuits.io/circuits/123127-blink/embed” frameborder=”0″ marginwidth=”0″ marginheight=”0″ scrolling=”no”]

螢幕快照 2014-02-11 下午4.27.55

直接把LED插上Arduino也可以

螢幕快照 2014-02-10 下午7.25.05

那麼,Arduino的程式是放在哪邊呢? 請拉到畫面最下方,找到[Arduino Code Editor] 選項並點選,會另外跳出一個視窗。

螢幕快照 2014-02-11 下午4.28.45

[Arduino Code Editor]視窗,您可在此修改程式。也可以自己寫來玩玩看。

螢幕快照 2014-02-11 下午4.28.52

這時再點選 [Compile and restart simulation] 就會重新編譯並執行程式。把LED接到別的腳位試試看?

螢幕快照 2014-02-11 下午4.29.05

也可以改用 Arduino另一個Fade程式,讓D9腳位上的LED漸明漸暗。之所以要接到D9 是因為Arduino Uno 的D13腳位不支援PWM。所以如果接到D13的話,就沒有漸明漸暗的效果了。

螢幕快照 2014-02-11 下午4.30.45

 

 

 

 

線上電路設計與模擬 123D Circuits

http://123d.circuits.io/

由AutoDesk 公司推出的 123 Circuit 線上電路模擬軟體,先來個簡單的教學文。請先到官方網站建立一個帳號(可以用Facebook, Google+ 或其它社群網站帳號)

帳號建立好之後,請點選右上角的[Create new circuit] 來建立新的電路專案。您可以建立純電子元件的專案,例如使用電池對LED供電。但真正吸引我的地方在於它可以搭配Arduino 進行線上模擬功能,Arduino的官方範例幾乎都可以使用,用來教學非常方便。在本頁面中您可以看到別人做好的電路圖,有的要付費有的免費。

螢幕快照 2014-02-11 下午4.39.16

接著請點選 [New breadboard] 建立一個 Arduino + 麵包板的專案。底下有簡易教學。

螢幕快照 2014-02-11 下午4.39.48

 

建立好專案之後,請點選您帳號的大頭照回到個人頁面,您可在此看到您所有的專案列表,長得像這樣子:

螢幕快照 2014-02-11 下午5.01.56

重要的功能來了!您可以點選[Download Gerber],裡面是 PCB 板的資料,都幫您轉好了!另外還有 generate Enloosure,這時會跳轉到 http://openjscad.org/ 網站,並幫您的電路長好一個外殼,並且這個外殼的 code 可以自由修改,您只要輸出給 3D 列印機就完成了(這真的都給 AutoDesk 包就好了啊…)

 

螢幕快照 2014-02-11 下午4.56.30

 

要來介紹專案了:New Breadboard專案初始畫面,左邊是各種視圖。右邊則是各種元件,目前無法 import 元件,就是上面有什麼用什麼。

螢幕快照 2014-02-10 下午7.20.28

點選 Add component 就能在列表中尋找各種元件,各種電子零件都找得到。例如您可以先選擇電阻之後再去調整其電阻值,這樣就不會在零件海中迷路了!

螢幕快照 2014-02-11 下午4.25.52

 

左側提供了各種視圖,這是schmetaics 示意圖

螢幕快照 2014-02-11 下午4.28.04

PCB 印刷電路板

螢幕快照 2014-02-11 下午4.28.09

還有專案設定,您可在此設定圖層數目,邀請別人一起來設計這個電路等等。

螢幕快照 2014-02-11 下午4.28.29