
學習目標 :利用faya電子積塊製作一吹泡泡機器人
學習時間 : 180min
使用模組 : (1) UNO (相容版)
(2) 電源底板
(3) 步進馬達模組
(4) 觸碰開關模組
(5) 直流馬達模組
工具 : 樂高積木 / 底板 (相容)
泡泡水
泡泡水容器
泡泡桿
====================相關知識====================
這篇文章中所用到的模組使用方式及相關知識整理如下,需進一步了解時可點進去參考:
功能介紹 : faya電子積塊與LEGO積木的結合
模組介紹 : faya電源底板
模組介紹 : faya觸控開關模組
模組介紹 : faya直流馬達模組
模組介紹 : faya步進馬達模組
======================開箱======================
夢幻泡泡機(型號NTG-501)是fayalab的第一款創意組合系列產品,所使用的牛皮紙盒能夠放下32x16的積木底板,並且配合罐裝泡泡水的高度,PIZZA盒款的盒裝方式對於使用後的收納也十分很方便。
盒內包含了製作夢幻泡泡機所需的全部模組及附件:
1.泡泡水 2.泡泡桿 3.泡泡盒
4.UNO主板 5.電源底板模組 6.步進馬達模組 7.直流馬達模組 8.觸碰開關模組
9.積木包 10.塑膠螺斯/螺帽/柱 11.跳線盒 12.USB傳輸線
13.積木柱子/風扇葉片 14.電源線(A)/(B) 15.積木底板
===================範例實作=====================
目標:
(1) 按下觸控開關
(2) 步進馬達逆時針旋轉180度,轉至下方容器中
(3) 停頓2秒讓泡泡桿子沾泡泡水
(4) 步進馬達順時針旋轉180度,轉至風扇葉面處
(5) 直流馬達啟動,讓風扇葉片吹出泡泡。
組裝:首先把[4.UNO主板]、[5.電源底板模組]和[10.塑膠螺斯/螺帽/柱]組合在一起,讓UNO主板能和積木底板結合,同時提供簡便的電源介面提供電源給其他模組,詳細組裝過程請看[模組介紹 : faya電源底板],完成後如下圖所示:

接著把[16.步進馬達模組]、[17.直流馬達模組]、[18.觸碰開關模組]的四個角落裝上[13.積木柱],記得步進馬達的需要疊三個柱子,詳細組裝過程請看[功能介紹 : faya電子積塊與LEGO積木的結合],完成後如下圖所示:


首先從[9.積木包]中拿出下列4顆大小相同的積木(顏色不拘),置於[15.積木底板]如下圖中同樣的位置
接著在如下圖相同位置建一個立方體 (長 x 寬 x 高 = 6 x 5 x 4),稍後會在它的上方擺觸控開關模組,為了避免到最後積木數量不足,此立方體穩固就好,無須實心。長和寬的數字大表積木上圈圈顆粒的數量,如下圖所示:



完成後就可以開始組裝步進馬達模組,如果前幾步的組裝過程沒錯的話,步進馬達的四個柱子應能夠穩穩地垂直安裝在立方體上,如下圖所示

將這塊結合直流馬達模組的6x8的平板積木安裝在圖下的位置
(1) 電源線連接
如下面幾張圖所示,連接的說明請看這篇文章 或簡易版,先用一跳電源線(A)將Arduino的電源引到電源底板
Arduino_A1 ===> 步進馬達模組_A
Arduino_A2 ===> 步進馬達模組_B
Arduino_A3 ===> 步進馬達模組_/A
Arduino_A4 ===> 步進馬達模組_/B
Arduino_5 ===> 直流馬達模組_SIG
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 2017/5/3 | |
// Faya-Nugget 範例程式 (BubbleMaker_1.ino) | |
// 單元: 創意組合-夢幻泡泡機 | |
// 網址: http://fayalab.blogspot.com/2017/05/blog-post.html | |
// 目標 (1) 按下觸控開關 | |
// (2) 步進馬達逆時針旋轉180度,轉至下方泡泡水容器中 | |
// (3) 停頓2秒讓泡泡桿子沾泡泡水 | |
// (4) 步進馬達順時針旋轉180度,轉回風扇葉片處 | |
// (5) 直流馬達啟動,讓風扇葉片吹出泡泡 | |
// 注意事項: 泡泡桿子起始位置請對準直流風扇葉片 | |
// 接線: Arduino ==> faya模組 | |
// A ==> A (步進馬達) | |
// A2 ==> B (步進馬達) | |
// A3 ==> /A (步進馬達) | |
// A4 ==> /B (步進馬達) | |
// 4 ==> DIR (直流馬達) | |
// 5 ==> SIG (直流馬達) | |
// A0 ==> OUT (觸控開關) | |
#include<Stepper.h> | |
//步進馬達腳位和參數設定 | |
int StepMotorPin_A = A1; | |
int StepMotorPin_B = A2; | |
int StepMotorPin_AP = A3; | |
int StepMotorPin_BP = A4; | |
Stepper fayaStepper(32, StepMotorPin_A, StepMotorPin_AP, StepMotorPin_B, StepMotorPin_BP); | |
//直流馬達腳位設定 | |
int DCMotorPin_SIG = 5; | |
int DCMotorPin_DIR = 4; | |
// 觸控開關腳位設定 | |
int ButtonPin = A0; | |
void setup() { | |
//設定連接馬達的Arduino的腳位皆為輸出 | |
pinMode(StepMotorPin_A, OUTPUT); | |
pinMode(StepMotorPin_B, OUTPUT); | |
pinMode(StepMotorPin_AP, OUTPUT); | |
pinMode(StepMotorPin_BP, OUTPUT); | |
pinMode(DCMotorPin_SIG, OUTPUT); | |
pinMode(DCMotorPin_DIR, OUTPUT); | |
fayaStepper.setSpeed(768); //設定步進馬達轉速 | |
//轉子768rpm = 馬達轉軸768/64 = 12rpm = 5秒轉一圈 | |
digitalWrite(DCMotorPin_DIR,LOW); // 配合風扇葉片結構,設定直流馬達順時針旋轉 | |
// 風才會往前吹 | |
} | |
void loop() { | |
if((analogRead(ButtonPin) > 400)) //當按下觸控開關時 | |
{ | |
fayaStepper.step(-1024); // 步進馬達逆時針旋轉半圈 (2048為旋轉一圈,1024為旋轉半圈) | |
delay(2000); // 桿子在泡泡水中沾2秒 | |
fayaStepper.step(1024); // 步進馬達順時針旋轉半圈回到原來位置 | |
DCMotor_Run(); // 直流馬達啟動吹氣 | |
} | |
} | |
void DCMotor_Run() | |
{ | |
delay(500); // 等待0.5秒 | |
analogWrite(DCMotorPin_SIG,250); // 風扇轉速調整:160 ~ 255, 超過範圍或無法正常動作 | |
delay(3000); // 3秒鐘吹泡泡時間 | |
analogWrite(DCMotorPin_SIG,0); // 風扇停止運轉 | |
} |
備註:
- 程式裡面的語法和各模組的用法都在之前的文章介紹過了,請參考本文前面各相關文章的連結
- 泡泡桿的起始位置請對準直流馬達
- 由於此泡泡機的風扇位置和泡泡水位置剛好差180度,因此L55和L57的steps值填1024,讓步進馬達轉半圈,不同的泡泡機結構須修改這兩行的參數
- 請先測試是否達到以下影片功能後,再使用泡泡水
測試結果:測試結果前,先用幾塊積木圍一個13x9的面積,用來固定泡泡水盒用。
換一個角度再看一次
- 有的泡泡水可以吹很久,可以透過66行更改吹泡泡時間
- 泡泡水的濃稠不一定,可以透過65行改變風扇力道,製造不同大小的泡泡
- 泡泡桿距離出風口的遠近會影響吹出泡泡的數量,可以適當調整

希望大家能夠如期地讓夢幻泡泡機吹出泡泡,並且更改自己心目中的泡泡機外型,學習愉快,也歡迎大家在底下留言或到我們的粉絲團留言喔!
====================================
fayalab 粉絲團
FB本篇留言版
沒有留言:
張貼留言