一个 3D 打印项目,其中包含一些您在这个时代外出旅行时需要的工具——抓手、消毒剂和面罩室——一个包装。
该设计是使用 Autodesk Fusion360 完成的。主要部分将采用盒子的形式。有手柄、夹具、面罩室和一个无需电源即可锁定夹具位置的钥匙。
我们对设计进行了一些修改,因为打印后的尺寸计算有一些错误。与印刷产品相比,按钮、USB 端口和泵孔的孔尺寸按比例放大。
保持简单和小巧是重中之重,因此电子产品的空间不大。因此,使用的电子设备并不多。
这是在 EasyEDA 软件上创建的电子设备示意图。
作为主微控制器的Arduino MKR1010将为手机和 Firebase 提供 Wi-Fi 连接。
两个迷你 5V DC 泵将向手部和面罩室分配消毒剂。
一个步进电机 + ULN2003驱动器将控制夹具的运动。
四个触觉开关将提供以下控制:
PC817光电耦合器将充当开关,将信号从 Arduino (3.3 V) 转移到电机和泵 (5V)。
升压模块将 3.3 V 转换为 5 V。
用于下拉信号的电阻器和电池分压器以按比例降低电压,使其与 MKR1010 兼容。
3.7 V 锂聚合物电池作为主电源。它应该连接到 MKR1010 JST 连接器,并且可以通过将 USB 插入 MKR1010 来充电。
我们使用了 3 个库:FirebaseArduino 将 arduino 与 firebase 连接,ArduinoLowPower 以保持电池寿命,Stepper 用于控制步进电机。
//Libraries
#include "Firebase_Arduino_WiFiNINA.h"
#include "ArduinoLowPower.h"
#include "Stepper.h"
替换“XXX”您的 Firebase 和 WiFi 凭据。
//Credentials
#define FIREBASE_HOST "XXX" //your-database.firebaseio.com
#define FIREBASE_AUTH "XXX" //Firebase Secret Key
#define WIFI_SSID "XXX" //Wi-Fi SSID
#define WIFI_PASSWORD "XXX" //Wi-Fi Password
在引脚声明上,它不一定应该相同。关键是按钮(sw)的引脚必须是外部中断引脚。
//Pins
#define sw1 0
#define sw2 6
#define sw3 7
#define sw4 8
#define EN 1
#define IN1 2
#define IN2 3
#define IN3 4
#define IN4 5
#define battPin A1
#define pump1 9
#define pump2 10
#define STEPS 2048
我们将使用 MKR1010 的内部上拉电阻,并为每个开关分配一个中断功能。
//PinModes
pinMode (sw1, INPUT_PULLUP);
pinMode (sw2, INPUT_PULLUP);
pinMode (sw3, INPUT_PULLUP);
pinMode (sw4, INPUT_PULLUP);
pinMode (battPin, INPUT);
pinMode (pump1, OUTPUT);
pinMode (pump2, OUTPUT);
pinMode (EN, OUTPUT); //Motor power
//Wake Up Functions
LowPower.attachInterruptWakeup(sw1, closeGripper, LOW);
LowPower.attachInterruptWakeup(sw2, openGripper, LOW);
LowPower.attachInterruptWakeup(sw3, sanit_hand, FALLING);
LowPower.attachInterruptWakeup(sw4, sanit_chamber, FALLING);
循环内部非常简单,它只是将数据上传到 Firebase 服务器,如果不使用则关闭电机。此外,等待腔室中的消毒剂干燥所需的时间估计约为 2000 毫秒 * 100 = 200 秒,或约 3 分钟。
void loop() {
//For battery readings, we use 2:3 voltage divider
//Battery's max voltage = 4.2 V, scaled down to 2.8 V for Readings
//Battery's min voltage = 3.7 V, scaled down to 2.46 V for Readings
//Battery's max voltage translate to : 860 for 10 bits (2.8/3.3 * 1023)
//Battery's min voltage translate to : 768 for 10 bits (2.46/3.3 * 1023)
batt = map( analogRead (battPin), 768, 860, 0, 100 );
if (chamber_start){
process += 1;
if (process >= 100){
process = 0;
chamber_start = 0;
}
}
digitalWrite (EN,LOW); //Turn off motor if not used
task(); //Comment this part if no app is used
LowPower.sleep(2000);
}
对于泵功能,已经过测试,每个分配过程大约消耗总容量的 10%(用于手)和 30%(用于腔室)。之所以使用特定时间(2 秒和 5 秒),是因为泵需要一些时间才能将液体从容器中排出,而不是瞬间排出。
void sanit_hand(){
//Dispense for 2 seconds
digitalWrite (pump1, HIGH);
delay (2000);
hand_cap -= 10;
}
void sanit_chamber(){
//Dispense for 5 seconds
chamber_start = 1;
digitalWrite (pump2, HIGH);
delay (5000);
chamber_cap -= 30;
}
Firebase 数据上传将使用单个 FirebaseData 对象来更改 4 个路径的值,其中包含数组中的 4 个值。
//Data upload function
void task(){
String path[4] = {"/batt", "/sanitizer1", "/sanitizer2", "/process"};
int data[4] = {batt, hand_cap, chamber_cap, process};
for (uint8_t i = 0; i < 4; i++){
if (Firebase.setInt(firebaseData, path[i] , data[i]))
{
Serial.println("----------Set result-----------");
Serial.println("PATH: " + firebaseData.dataPath());
Serial.println("TYPE: " + firebaseData.dataType());
Serial.print("VALUE: ");
Serial.println(firebaseData.intData());
}
else
{
Serial.println("----------Can't set data--------");
Serial.println("REASON: " + firebaseData.errorReason());
Serial.println("--------------------------------");
Serial.println();
}
}
}
创建 Firebase 数据库的教程可以在我们的其他项目中看到:https ://www.hackster.io/ferozfernando56/low-budget-carriage-robot-9b29d1
移动应用程序利用 MKR1010 的 Wi-Fi 连接。其目的是显示旅行包的条件。
如上图,可以显示洗手液和面罩室的剩余百分比。此外,它还显示了室内消毒和干燥口罩的持续过程。
该应用程序作为附件提供。
下面是 3D 打印零件的图片以及我们如何将它们组装在一起。
这张图片显示了底壳的底部是如何排列的。用两个小瓶子盛装液体,用步进电机控制爪子。
所有电子设备都用热胶粘在上壳和一个小点 PCB 上。
该包可用作公共交通工具(例如火车或公共汽车,我们必须站立并抓住某物)的把手,以避免接触公共把手。
还有一个洗手液分配器,可以通过按下按钮来使用。
还有一个面罩室,可以用来存放一些面罩。
在腔室内,还有一个使用液体消毒剂对面罩进行消毒的过程。利用口罩的毛细特性,消毒剂可以散布在整个口罩上。
腔室内的液体消毒剂释放后,用户需要等待大约 2-3 分钟,等待消毒剂的酒精干燥。
抓手可用于打开门和按下按钮。它可以通过按下外壳上的按钮来打开/关闭
我们希望这个简单的项目可以通过尽可能减少触摸活动来帮助人们更安全地外出。我们非常感谢社区的投入!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !