Giftduino - 完美的 Arduino 礼品盒
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
|
关于这个项目
电子产品
对于这个项目,我们在 circuito.io 上使用了两个相对较新的组件:
霍尔效应传感器和诺基亚图形 LCD。
霍尔效应传感器对磁场作出反应。为了激活它,需要改变它周围的磁场。因此,您可能已经猜到我们使用了磁铁 .磁铁放在礼盒的盖子上。
每次打开盖子时,霍尔效应传感器都会被激活,并发出信号让屏幕和压电扬声器轮流播放。这是关于霍尔效应传感器及其工作原理的很好的解释。
第一步 - 收集组件
在这个魔法电路链接 我们预先选择了我们在项目中使用的组件。点击生成后 ,您将看到您需要的所有部件,包括电阻器、电容器等外围设备。
请注意,使用 circuito.io,您可以使用可用的组件为该项目创建许多不同的组合。
以下是我们为该项目想到的其他一些组合:
- 更换压电扬声器 带有 LED
- 更换霍尔效应传感器 带有超声波测距仪
- 更换墙上电源适配器 9V 电池
- 更换诺基亚屏幕 带有 LCD 16x2
第二步——接线
如果您点击了生成 在上面的魔术链接上并在回复中向下滚动,您将看到接线方案。按照分步指南进行操作,该指南将向您展示如何组装电子设备。看起来可能很复杂,但如果你按照指南一步一步来,真的很简单!
第三步——代码
如果您在 circuito.io 回复中再次向下滚动,您将到达 代码 部分。在本节中,您必须下载 从 circuito.io 中提取代码并将其解压缩到您的计算机。
之后,您需要打开代码 使用 Arduino IDE 并将其上传到您的 Arduino .
来自 circuito.io 的代码是一个示例代码。它集成了所有组件及其库。此代码将帮助您测试接线是否正确。
完成此部分后,您可以复制粘贴 将本教程末尾的代码放入 firmware.ino 您从 circuito.io 获得的代码中的选项卡。
在代码中,您将看到解释每个部分及其功能的注释,因此您可以更改值,例如,您可以更改框打开时播放的曲调或出现的像素艺术.完成后不要忘记将新代码上传到您的 Arduino。
你做得很好!现在我们将继续制作礼品盒
制作盒子
我们制作的盒子是 3D 打印部件和 PVC 纸板的组合,但你真的可以在这里疯狂使用不同的材料,让它看起来完全不同。
例如,您可以使用木材和玻璃,您可以将盒子变大或变小,装饰它,使其变圆,使其成为您想要的任何颜色。这真的取决于你。
如果你想制作一个像我们这样的盒子,你有 .STL 文件 就在这里 下载 .
组装 - 将所有东西放在一起
准备好所有部件后,就该将所有部件组合在一起了。
- 将带有屏蔽罩的 Arduino 放入盒子内。
- 将磁铁粘在盒盖上。
- 用一根柔性钢丝连接盒盖和盒体
恭喜!您已经为自己打造了完美的礼品盒。
如果您制作了一个,请点击“我制作了这个”告诉我们,或者在我们的 Facebook 页面上向我们发送您项目的图片和视频。
代码
- Giftduino 代码
Giftduino 代码Arduino
将此代码直接复制并粘贴到您从 circuito.io 下载的代码中的固件选项卡#include "Arduino.h"#include "HallA1302.h"#include "AnalogReader.h"#include "Adafruit_GFX.h" #include "Adafruit_PCD8544.h"#include "TimerFreeTone.h"#include "Speaker.h"#define HALLA_PIN_VOUT A3#define NOKIALCD_PIN_DC 4#define NOKIALCD_PIN_CS 2#define NOKIALCD_PIN_RST 3#define PIEZOSSIGPEAKER5//didefinions LCD以像素为单位)#define LCD_CONTRAST 70#define LCD_SIZE_COL 84#define LCD_SIZE_ROW 48unsigned int piezoSpeakerHoorayLength =6; //旋律中的音符数量unsigned int piezoSpeakerHoorayMelody[] ={NOTE_C4, NOTE_E4, NOTE_G4, NOTE_C5, NOTE_G4, NOTE_C5}; // 笔记列表。列表长度必须匹配 HoorayLength!unsigned int piezoSpeakerHoorayNoteDurations[] ={8 , 8 , 8 , 4 , 8 , 4 }; // 注意持续时间; 4 =四分音符,8 =八分音符,等等。列表长度必须匹配 HoorayLength!HallA1302hallA(HALLA_PIN_VOUT);Adafruit_PCD8544 nokiaLcd(NOKIALCD_PIN_DC, NOKIALCD_PIN_CS, NOKIALCD_PIN_RST);Speaker Essential piezo/*PINOSPERT 设置你的piez_PINOSPEKER代码电路工作。每次您的电路通电时,它首先运行。 */void setup() { // 用于调试的设置串行 // 使用串行监视器查看打印的消息 Serial.begin(9600); Serial.println("开始"); //校准传感器//hallA.calibrate(); //初始化诺基亚实例 nokiaLcd.begin(LCD_SIZE_COL, LCD_SIZE_ROW); nokiaLcd.setContrast(LCD_CONTRAST); //调整显示对比度}/* 这段代码是你电路的主要逻辑。它定义了您选择的组件之间的交互。设置后,它一遍又一遍地运行,在一个永恒的循环中。 */void loop() { //从霍尔传感器获取测量值。根据磁极极性,传感器将返回正值或负值。 int HallAVal =HallA.read(); Serial.println(hallAVal); //检查盒子是否被打开 if (abs(hallAVal - 512) <50) { delay(500);//等待 0.5 秒 nokiaLcd.clearDisplay(); //擦除并清除显示缓冲区 nokiaLcd.setRotation(2); nokiaLcd.setTextColor(BLACK); //设置文字颜色为黑色,背景默认为白色 nokiaLcd.setTextSize(2); //设置文字大小 nokiaLcd.setTextSize(1); //设置文本大小 nokiaLcd.print(" Surprise !"); nokiaLcd.setTextSize(2); //设置文字大小 nokiaLcd.drawCircle(37, 15, 3, BLACK); nokiaLcd.drawCircle(41, 15, 3, 黑色); nokiaLcd.drawRect(25, 22, 30, 20, 黑色); nokiaLcd.drawRect(22, 18, 36, 5, 黑色); nokiaLcd.drawRect(37, 22, 5, 20, 黑色); nokiaLcd.display(); // 在屏幕上显示 // 扬声器将播放万岁音乐 piezoSpeaker.playMelody(piezoSpeakerHoorayLength, piezoSpeakerHoorayMelody, piezoSpeakerHoorayNoteDurations);延迟(10000); //等待 10 秒 }}
定制零件和外壳
框架
顶部
USB 端口
制造工艺