Kara 发表于 2022-11-17 14:57:12

利用电子废弃物制作的低成本离心机,物联网远程环境监...

本帖最后由 Kara 于 2022-11-17 15:02 编辑

利用电子废弃物制作的低成本离心机,物联网远程环境监控系统

高质量的微型离心机通常太贵,大多数人买不起。该项目旨在提供低成本的替代方案。
简介
微型离心机是任何生物医学实验室的必备设备。然而,像这样的生物医学设备对于大多数爱好者来说通常都太贵了,所以我开发了这个离心机来帮助降低一个合适的微型离心机的成本。
什么是微型离心机?微型离心机是一种设备,以很高的转速旋转样品,以分离和纯化样品中的材料。微离心机的一个常见用途是差速离心,它用于从细胞样本中分离细胞器和核酸(如DNA)。高质量、可靠的微型离心机的价格从1000美元起,入门级微型离心机的价格约为300- 700美元。这对许多业余爱好者和其他人来说太贵了,所以我开始开发自己的开源微离心机。
项目影响
该项目的目标贫困学校和资金不足、买不起适当设备的医院。我希望这个项目将对许多人有用,并能在其他方面无法提供机会的领域开辟机会。
设计过程1. 硬件对于这个项目,我将使用Arduino 101,因为我正在参加发明未来比赛。不过不幸的是,我没有赢得Arduino 101,所以我买了一个。我想让这个设备联网,以便把它集成到我即将到来的互联网连接生物黑客实验室,并将最终开发一个应用程序,可以集成这些设备,以提供无缝的实验室体验。


为了制作离心机,我需要一个马达,它可以以很高的转速旋转,以产生足够的向心力来分离细胞样本。我决定使用一个3.5英寸的硬盘,因为它可以以7200转/分钟的速度旋转,并且应该能够产生高达4400克的功率!因为我想让这个离心机尽可能的用户友好,同时给用户最大的控制权,我选择增加一个液晶显示器,电位器,和几个按钮,这样我就可以开发一个有用的设备界面。我还想增加一个互联网控制的离心机接口,使设备更容易使用。
为了能够使用硬盘驱动器,我们需要移除硬盘驱动器的所有部分,除了电机。为了做到这一点,我们需要从使用TORX扳手去除背板上的PCB开始。我没有正确大小的torx扳手,所以我只是撕下了PCB。我并不打算使用它,虽然它应该是好的。

现在已经取下了PCB,翻转硬盘驱动器,并开始删除螺丝在红色圈的区域。一旦你做对了,你应该能够撬开保护板。




现在,您已经拆卸了前板,然后您可以拆卸针的硬盘驱动器通过拆卸顶部磁铁撬出它与螺丝刀。它只是被两块磁铁的力粘在了一起。取下它们的时候要小心,因为磁铁的吸力非常强大,我之前在玩它们的时候很多次不小心压到了我的手指。




只要能够把上面的磁铁拿掉,剩下的就很简单了!只要取下针铰链上的螺丝,然后取下针。然后你就可以继续拆卸固定第二个磁铁的其他螺丝了。


完成之后,取下固定盘片的螺丝,取出来盘片和垫片。布线
要控制硬盘驱动器,我们必须添加一个ESC(电子速度控制器)到设备。我使用的是一个标准的爱好ESC,常用在爱好飞机,因为它运行12v,和硬盘运行12v。为了给ESC和硬盘提供足够的电源,你可以使用任何12v电源,但我找不到,所以我使用了一个标准的计算机电源。我把一个跳线连接到绿色的电线和一个GND端子上,这样它一插进去就能接通电源。你也可以添加一个电源开关来增加一些额外的控制设备。

将ESC连接到12v轨和GND上。然后将ESC的PWM线缆连接到GND、5V和D7。从5v和GND接一个电位器,中间端接A0。然后你可以测试一下电机的接线。


测试/基本的原型
上传以下代码到Arduino 101:#include <Servo.h>
Servo esc;
int throttlePin = 0;
void setup()
{
esc.attach(9);
}
void loop()
{
int throttle = analogRead(throttlePin);
throttle = map(throttle, 0, 1023, 0, 179);
esc.write(throttle);
}
要连接电机到ESC,你必须做一个连续性测试,检查是否在硬盘驱动器的底部的引脚连接或不。你也可以随机焊接在ESC的电线上的针上的硬盘驱动器电机,并切换他们如果电机不工作,因为有6个可能的组合,只有2个工作正常。这些代码和线路应该足以开发一个基本的离心机。

3D打印照片:
安装和测试之后,我们就可以改进代码和界面了。我在Arduino上添加了格罗夫盾(Grove Shield)和液晶显示器(LCD),并在程序中添加了RPM指示器。不能完全依靠它的读数,因为它提供的估计基于电位器上的读数,而不是电机。下面是v0.1代码的副本:#include <Wire.h>
#include "rgb_lcd.h"
#include <Servo.h>
Servo esc;
rgb_lcd lcd;
int throttlePin = 0;
void setup() {
   // set up the LCD's number of columns and rows:
   lcd.begin(16, 2);
   // Print a message to the LCD.
   lcd.print("Initializing...");
   esc.attach(9);
   lcd.setRGB(50, 50, 50);
}
void loop() {
   lcd.clear();
   int throttle = analogRead(throttlePin);
   throttle = map(throttle, 0, 1023, 0, 179);
   int throttlepercent = (throttle*100) / 179;
   int myRPM = 7200 / (100 - throttlepercent);
   esc.write(throttle);
   // Turn off the display:
   lcd.print("Speed: ");
   if(myRPM == -1){
   lcd.print("7200");
   }else if(myRPM <= 100){
   lcd.print("0");
   }else{
   lcd.print(myRPM);
   }
   lcd.print(" RPM");
   delay(50);
}

该设备工作时的照片:V0.1 Code(Current):

#include <Wire.h>
#include "rgb_lcd.h"

#include <Servo.h>

Servo esc;
rgb_lcd lcd;
int throttlePin = 0;
void setup() {

    // set up the LCD's number of columns and rows:
    lcd.begin(16, 2);
    // Print a message to the LCD.
    lcd.print("Initializing...");
    esc.attach(9);
    lcd.setRGB(50, 50, 50);
}

void loop() {
    lcd.clear();
    int throttle = analogRead(throttlePin);
    throttle = map(throttle, 0, 1023, 0, 179);
    int throttlepercent = (throttle*100) / 179;
    int myRPM = 7200 / (100 - throttlepercent);
    esc.write(throttle);
    // Turn off the display:
    lcd.print("Speed: ");
    if(myRPM == -1){
    lcd.print("7200");
    }else if(myRPM <= 100){
      lcd.print("0");
    }else{
    lcd.print(myRPM);
    }
    lcd.print(" RPM");
    delay(50);
}


如果您对此项目有任何想法、意见或问题,请在下方留言。以上内容翻译自网络,原作者:kemfic,如涉及侵权,可联系删除。


页: [1]
查看完整版本: 利用电子废弃物制作的低成本离心机,物联网远程环境监...