只需機器有四種類型的糖果,每種類型都有它的特殊代碼,可以使用此特殊代碼在獲取糖果。實際上,我們打算激勵孩子們使用現(xiàn)代技術創(chuàng)造自己的玩具,而不是浪費大量時間玩智能手機或 PC。
回歸到項目,
如果你想從第一種口味中得到糖果,你應該在你的文案寫 C111。
如果你想從第二種口味中得到糖果,你應該在你的文案寫 C112。
如果你想從第三種口味中獲得糖果,你應該在你的文案寫 C113。
如果你想從第四種口味中獲得糖果,你應該在你的文案寫 C114。
第1步:你需要什么
這些是該項目所需東西的清單:
工具:
1.螺絲刀
2.鉗子
3. 平切刀
4.數(shù)字萬用表
5. 雙面膠帶。
6. 銅墊片(6mm 公 - 母)
7. 膠帶
材料:
1. 亞克力板 3mm
2.膠合板3mm
3. 螺絲和螺母
組件:
1. 8 x 標準金屬伺服電機(7.5 kg.cm)
2. 螺栓 M4 x 10mm
電子元件:
1.ArduinoMEGA 2560 2. 1個Sheel 3.開關電源(5V - 5A) 4.小面包板 5. 跳線(公 - 公) 6. 跳線(公-母)
第 2 步:機構和框架設計
這一切都始于一個適當?shù)脑O計,在我的例子中,一些草圖以獲得對尺寸和形狀的良好感覺。在草圖階段之后很快就出現(xiàn)了 CAD 模型。(關注公眾號 電路一點通)在 SolidWorks 中創(chuàng)建了我的模型。在對所有零件進行建模后,制作技術圖紙。我使用這些圖紙來加工激光切割機上的所有定制零件。
由于我打算在世界各地的許多活動中隨身攜帶這臺機器,因此我將其設計為易于拆卸和安裝,因此我使用螺釘和螺母、Martise 和 Tenon 來固定它的所有零件。
第 3 步:機構和框架(制造和組裝)
我用激光切割機從膠合板和亞克力板上切割機器零件。然后我用 M4*10mm 螺栓將伺服電機固定到它們的載體上。固定伺服電機后,使用銅墊片將 Arduino Mega 和 1sheeld 固定到它們的載體上,然后固定電源,現(xiàn)在你可以將所有機器零件聚集在一起.
第 4 步:電子和 Arduino 代碼
這里最重要的部分是為伺服電機供電,您應該直接從電源為伺服電機供電,以避免使 Arduino 板休息。不要忘記將所有地線相互連接在將電機與 Arduino 和 1Sheeld 連接后,從電源為它們供電,您應該按照以下步驟操作:
第 1 步:將 1Sheeld 放在 Arduino 板上,然后將 Arduino 插入筆記本電腦或 PC。
第 2 步:將 1Sheeld 應用程序下載到您的智能手機上。該應用程序可在 Google Play 商店中獲取,網(wǎng)址為http://1sheeld.com/app
第 3 步:下載 1Sheeld 庫
第 4 步:解壓縮文件夾,將其復制并粘貼到您的 Arduino 庫目錄中。
第 5 步:打開我的 Arduino Sketch(您將在附件中找到它
第 6 步:上傳您的草圖 Hesre 是整個教程中最重要的部分,將 1Sheeld 切換到 Uploading-mode(這是板上標有 UART Switch 的開關),然后再將您的草圖上傳到 Arduino 板,以避免兩者之間的串行沖突1Sheeld 和 Arduino,然后在 IDE 中按下 Upload 按鈕。
將 UART 開關推離 1Sheeld 徽標時,將打開上傳模式。
完成上傳后,您需要將 1Sheeld 切換回操作模式。不要忘記!如果您不將 UART 開關切換回操作模式,您的項目將無法正常工作,因為 1Sheeld 和 Arduino 板之間將沒有通信。
當 UART 開關被推到最靠近 1Sheeld 標志時,操作模式被打開。
第 7 步:使用 1Sheeld 應用程序
在您的 Android 智能手機上打開 1Sheeld 應用程序。該應用程序?qū)⑹紫韧ㄟ^藍牙掃描您的 1Sheeld,這需要幾秒鐘,手機會找到它。一旦它在屏幕上顯示為 1Sheeld #xxxx,您將需要輸入配對碼(默認配對碼為 1234)并通過藍牙連接到 1Sheeld。
注意:如果您遇到問題,請確保您的 Android 手機的藍牙已打開,并且 Android 手機靠近您的 1Sheeld。
第 8 步:訪問 Twitter 和 Terminal Shields
從屏蔽列表中選擇 Twitter Shield 和 Terminal Shield,然后按應用程序右上角的多個屏蔽圖標。
Vending Machine.ino:
#define CUSTOM_SETTINGS
#define INCLUDE_TWITTER_SHIELD
#define INCLUDE_TERMINAL_SHIELD
#include
#include
Servo BlockColoumn1; // create servo object to control a servo
Servo BlockCandy1; // create servo object to control a servo
Servo BlockColoumn2; // create servo object to control a servo
Servo BlockCandy2; // create servo object to control a servo
Servo BlockColoumn3; // create servo object to control a servo
Servo BlockCandy3; // create servo object to control a servo
Servo BlockColoumn4; // create servo object to control a servo
Servo BlockCandy4; // create servo object to control a servo
void setup()
{
OneSheeld.begin();
BlockColoumn1.attach(3); // attaches the servo on pin 3 to the servo object
BlockCandy1.attach(4); // attaches the servo on pin 4 to the servo object
BlockColoumn2.attach(5); // attaches the servo on pin 5 to the servo object
BlockCandy2.attach(6); // attaches the servo on pin 6 to the servo object
BlockColoumn3.attach(7); // attaches the servo on pin 7 to the servo object
BlockCandy3.attach(8); // attaches the servo on pin 8 to the servo object
BlockColoumn4.attach(9); // attaches the servo on pin 9 to the servo object
BlockCandy4.attach(10); // attaches the servo on pin 10 to the servo object
/* Subscribe to setOnSelected event for the Twitter shield. */
Twitter.setOnSelected(&shieldSelection);
/* Subscribe to onNewTweet event. */
Twitter.setOnNewTweet(&myTweet);
}
void loop()
{
}
void shieldSelection()
{
/* Track keyword 1Sheeld on Twitter. */
Twitter.trackKeyword("C111");
Twitter.trackKeyword("C112");
Twitter.trackKeyword("C113");
Twitter.trackKeyword("C114");
}
void myTweet(char * userName , char * userTweet)
{
/* Check if the tweet has 1Sheeld keyword. */
if (strstr(userTweet, "C111") != 0)
{
BlockCandy1.write(90);
OneSheeld.delay(400);
BlockCandy1.write(180);
OneSheeld.delay(20);
BlockColoumn1.write(90);
OneSheeld.delay(400);
BlockColoumn1.write(180);
Terminal.println(" C111 Detected");
}
else if (strstr(userTweet, "C112") != 0)
{
BlockCandy2.write(90);
OneSheeld.delay(400);
BlockCandy2.write(180);
OneSheeld.delay(20);
BlockColoumn2.write(90);
OneSheeld.delay(400);
BlockColoumn2.write(180);
Terminal.println(" C112 Detected");
}
else if (strstr(userTweet, "C113") != 0)
{
BlockCandy3.write(90);
OneSheeld.delay(400);
BlockCandy3.write(180);
OneSheeld.delay(20);
BlockColoumn3.write(90);
OneSheeld.delay(400);
BlockColoumn3.write(180);
Terminal.println(" C113 Detected");
}
else if (strstr(userTweet, "C114") != 0)
{
BlockCandy4.write(90);
OneSheeld.delay(400);
BlockCandy4.write(180);
OneSheeld.delay(20);
BlockColoumn4.write(90);
OneSheeld.delay(400);
BlockColoumn4.write(180);
Terminal.println(" C114 Detected");
}
else
{
BlockCandy1.write(180);
BlockColoumn1.write(180);
BlockCandy2.write(180);
BlockColoumn2.write(180);
BlockCandy3.write(180);
BlockColoumn3.write(180);
BlockCandy4.write(180);
BlockColoumn4.write(180);
Terminal.println(" Nothing Detected");
}
}// void my tweet
審核編輯:湯梓紅
-
智能手機
+關注
關注
66文章
18412瀏覽量
179692 -
伺服電機
+關注
關注
85文章
2020瀏覽量
57628 -
uart
+關注
關注
22文章
1219瀏覽量
101119 -
應用程序
+關注
關注
37文章
3237瀏覽量
57547 -
Arduino
+關注
關注
187文章
6457瀏覽量
186501
原文標題:DIY 自動糖果售貨機( Arduino 代碼)
文章出處:【微信號:電路一點通,微信公眾號:電路一點通】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論