Mục lục:
- Bước 1: Sửa đổi hộp
- Bước 2: Các bộ phận in 3D
- Bước 3: Điện tử
- Bước 4: Mã
- Bước 5: Thiết lập cuối cùng
Video: Máy rút thuốc tự động: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Dự án này được sử dụng trong lĩnh vực y tế, nơi bệnh nhân cao tuổi phải có một cách đáng tin cậy để phân chia và cấp phát thuốc. Thiết bị này cho phép chia phần thuốc trước tối đa 9 ngày và được phân phát tự động vào thời điểm mong muốn. Nắp cũng có thể khóa được bằng thẻ RFID, đảm bảo rằng chỉ người chăm sóc mới có thể tiếp cận thuốc.
Quân nhu:
Có những vật liệu cần thiết để xây dựng dự án này:
- Arduino UNO
- Mô-đun điều khiển động cơ
- SG90 9G Servo
- Động cơ bước
- Mô-đun RTC DS1302
- Nhiều loại dây nhảy
- IIC 1602 LCD
- Quyền truy cập máy in 3D
- Chân chẳng hạn như chốt gỗ
- Mô-đun và thẻ RFID
- Hai nút bấm
- Hàn sắt
- Breadboard
- keo siêu dính
- Vít gỗ
- Hộp gỗ chưa hoàn thiện có nắp bản lề
- Băng keo hai mặt
Bước 1: Sửa đổi hộp
Hộp đầu tiên sẽ phải được sửa đổi. Có nhiều lỗ phải được khoan. Lỗ đầu tiên sẽ ở mặt trước của hộp, nơi hộp bảng điều khiển được in. Lỗ thứ hai ở phía sau hộp để cáp USB đi qua. Lỗ cuối cùng ở dưới cùng của hộp, nơi thuốc sẽ rơi xuống sau khi được phân phối. Cuối cùng, chân phải được gắn vào phía dưới. Tôi đã sử dụng chân cao su mà tôi tìm thấy xung quanh nhà của mình để làm chân, nhưng chốt bằng gỗ cũng có thể được sử dụng.
Bước 2: Các bộ phận in 3D
Có rất nhiều bộ phận in 3D cần thiết cho dự án này.
Họ đang:
- Băng chuyền giữ thuốc
- Cơ sở cho băng chuyền
- Phễu chứa thuốc
- Cánh tay cho động cơ servo để khóa nắp
- Cơ sở cho động cơ servo
- Chốt cho cánh tay servo
- Bảng điều khiển
- Cốc để phân phối thuốc vào
Phần đế cho băng chuyền được dán vào hộp bằng băng dính hai mặt. Cả chân đế cho động cơ servo và chốt cho cánh tay đều được vặn vào hộp bằng các vít gỗ ngắn. Hộp bảng điều khiển được dán vào mặt trước của hộp bằng keo siêu dính, sau khi các linh kiện đã được lắp vào.
Bước 3: Điện tử
Các thiết bị điện tử bây giờ cần được đặt vào trong hộp. Đầu tiên, động cơ bước được gắn vào đế băng chuyền bằng bu lông và đai ốc M3. Servo sau đó được dán siêu dính vào đế của nó. Sau đó, bộ điều khiển động cơ, Arduino, breadboard, mô-đun RFID và mô-đun RTC đều được gắn vào hộp bằng băng dính hai mặt. Màn hình LCD được lắp vào lỗ trên hộp điều khiển. Có một số hàn được yêu cầu. Đối với các nút nhấn, cáp jumper phải được hàn vào các đầu nối hình chóp. Đối với đầu đọc RFID, các chân phải được hàn vào bo mạch.
Bước 4: Mã
Dưới đây là mã nhận xét:
Các thư viện cho động cơ Servo, LCD, RTC, RFID và Stepper được bao gồm trong mã này.
///////////////// Thư viện và biến
#include #include // Thư viện chuẩn Arduino #include #include VirtuabotixRTC myRTC (2, 3, 4); // Định nghĩa các chân #define servopin 8 const int buttonup = 6; const int Mongolondown = 7; int hr = 0; int minn = 0; int sel = 0; int stateup = 0; int fixedown = 0; int stateel = 0; int chờ = 0; int locker = 0; // Thiết lập servo Servo servo; góc int = 180; #include // sử dụng thư viện bước đã sửa đổi với trình tự bắn nam châm 1000/0100/0010/0001. Đặt thư viện vào thư mục thư viện của bạn. #define gearratio 64 // Tỷ số truyền 1: 64 const int stepsPerRevolution = 2048; // động cơ Arduino Kit bị giảm tốc độ. Bằng thực nghiệm, tôi xác định rằng 2048 bước quay trục một vòng. int bước = 0; Màn hình LCD LiquidCrystal_I2C (0x27, 16, 2); // khởi tạo một bước 4 dây trên các chân từ 8 đến 11: Stepper myStepper (stepsPerRevolution, A0, A1, A2, A3); #include #include #define SS_PIN 10 #define RST_PIN 9 MFRC522 mfrc522 (SS_PIN, RST_PIN); // Tạo cá thể MFRC522. int deg = 10; void setup () {lcd.init (); // khởi tạo lcd lcd.backlight (); // Dòng bên dưới dùng để đặt thời gian hiện tại. Nó chỉ phải được thực hiện một lần và sau đó mã // phải được tải lên lại cùng với nó được nhận xét. //myRTC.setDS1302Time(40, 55, 11, 1, 7, 12, 2020); pinMode (nút bấm, INPUT_PULLUP); pinMode (mông, INPUT_PULLUP); Serial.begin (9600); // Khởi tạo một giao tiếp nối tiếp SPI.begin (); // Khởi tạo xe buýt SPI mfrc522. PCD_Init (); // Khởi tạo MFRC522 myStepper.setSpeed (0,15 * gearratio); // động cơ dường như giảm số 1/64, có nghĩa là tốc độ cần được đặt 64x. // khởi tạo cổng nối tiếp: servo.attach (servopin); } void loop () {/////////////////// Mã LCD // Liên tục cập nhật màn hình với thời gian hiện tại và thời gian phân phối. lcd.clear (); myRTC.updateTime (); lcd.setCursor (0, 0); lcd.print ("Thời gian:"); lcd.setCursor (6, 0); lcd.print (myRTC.hours); lcd.print (":"); lcd.print (myRTC.minutes); lcd.setCursor (0, 1); lcd.print ("Phân phối:"); lcd.setCursor (10, 1); lcd.print (giờ); lcd.print (":"); lcd.print (minn); /////////////////// Read Button States // Đọc trạng thái của các nút để thay đổi thời gian phân phối. stateup = digitalRead (nút lên); fixedown = digitalRead (mông); chậm trễ (100); /////////////////// Logic pha chế // Nếu thời gian hiện tại giống với thời gian pha chế đã chọn, hãy quay động cơ bước. // Cứ sau 9 lần thiết bị phân phối, động cơ quay thêm một khoảng để đảm bảo thực hiện được một vòng quay hoàn toàn. if (myRTC.hours == hr && myRTC.minutes == minn && step <9) {myStepper.step (227); step = các bước +1; chậm trễ (60100); myRTC.updateTime (); } else if (myRTC.hours == hr && myRTC.minutes == minn && step == 9) {myStepper.step (232); bước = 0; chậm trễ (60100); myRTC.updateTime (); /////////////////// Thay đổi thời gian pha chế // Thay đổi thời gian pha chế dựa trên nút nào được nhấn. // Thời gian trở về 0 khi giờ lên 24 và phút lên 60.} if (stateup == LOW && hr <23) {hr = hr + 1; chậm trễ (50); } else if (stateup == LOW && hr == 23) {hr = 0; chậm trễ (50); } if (fixedown == LOW && minn <59) {minn = minn + 1; chậm trễ (50); } else if (statementown == LOW && minn == 59) {minn = 0; chậm trễ (50); } /////////////////// Mã RFID // Đọc thẻ RFID khi thẻ được hiển thị. if (! mfrc522. PICC_IsNewCardPresent ()) {return; } // Chọn một trong các thẻ if (! Mfrc522. PICC_ReadCardSerial ()) {return; } Chuỗi nội dung = ""; ký tự byte; for (byte i = 0; i <mfrc522.uid.size; i ++) {//Serial.println(mfrc522.uid.uidByte <0x10? "0": ""); //Serial.println(mfrc522.uid.uidByte, HEX); content.concat (String (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (String (mfrc522.uid.uidByte , HEX)); tủ đựng đồ = 1; } content.toUpperCase (); /////////////////// MÃ KHÓA // Khi đọc đúng thẻ RFID, di chuyển servo đến vị trí mở khi nó được đóng, // và di chuyển servo đến vị trí đóng khi nó được mở ra. while (locker == 1) {if (content.substring (1) == "3B 21 D6 22") {// thay đổi ở đây UID của thẻ / thẻ mà bạn muốn cấp quyền truy cập {switch (deg) {case 180: servo.write (deg); độ = 10; tủ khóa = 0; Serial.print ("di chuyen"); chậm trễ (1000); nghỉ; trường hợp 10: servo.write (deg); độ = 180; tủ khóa = 0; chậm trễ (1000); nghỉ; }}} else {Serial.println ("Quyền truy cập bị từ chối"); chậm trễ (1000); }}}
Bước 5: Thiết lập cuối cùng
Bước cuối cùng là chuẩn bị dự án để sử dụng. Đầu tiên hãy tải mã lên với dòng cài đặt thời gian không được chú thích, để tải thời gian hiện tại lên RTC. Sau đó nhận xét mã ra và tải lại mã. Điều này sẽ đảm bảo rằng nếu thiết bị được rút phích cắm, thiết bị vẫn giữ được thời gian chính xác. Bây giờ, tất cả những gì bạn phải làm là đặt thuốc vào các khe, đặt cốc dưới lỗ phân phối và đặt thời gian phân phối. Thiết bị sẽ phân phối đáng tin cậy vào cùng một thời điểm mỗi ngày.
Đề xuất:
Cách xé một thước cặp kỹ thuật số và cách hoạt động của một thước cặp kỹ thuật số: 4 bước
Làm thế nào để xé một thước cặp kỹ thuật số và cách hoạt động của một thước cặp kỹ thuật số: Nhiều người biết cách sử dụng thước cặp để đo lường. Hướng dẫn này sẽ dạy bạn cách tháo thước cặp kỹ thuật số và giải thích cách hoạt động của thước cặp kỹ thuật số
Máy rút thuốc: 5 bước
Pill Dispenser: Tôi là một sinh viên tại Howest Kortrijk, để thể hiện những gì chúng tôi học được vào cuối năm chúng tôi phải thực hiện một dự án. Tôi đã chọn làm một hộp phân phối thuốc để bạn có thể nhìn thấy khi nào thuốc được uống. Tôi nảy ra ý tưởng này vì đôi khi họ không biết liệu
Bộ rút phích cắm - Hộp vô dụng tự rút phích cắm: 4 bước (có hình ảnh)
The Unpluginator - Self-Unplugging Useless Box: Đây là một ví dụ về Máy vô dụng. Mục đích duy nhất của nó là rút nguồn điện của chính nó. Nó chủ yếu được in 3D, với các thiết bị điện tử cần thiết. Tất cả các bản vẽ và mô phỏng được thực hiện trên Fusion 360, tất cả các lập trình được thực hiện trong Arduino
Liều hàng ngày: Máy rút thuốc thông minh: 5 bước
DailyDose: Smart Pill Dispenser: Chào mừng bạn đến với dự án của tôi có tên là DailyDose! Tên tôi là Chloë Devriese, tôi là sinh viên Công nghệ Truyền thông và Đa phương tiện tại Howest ở Kortrijk, Bỉ. Như một nhiệm vụ cho trường học, chúng tôi cần tạo ra một thiết bị IoT. Khi đến thăm ông nội của tôi, tôi đã nhận được
Máy rút thuốc tự động: Dự án của Arjan West: 7 bước (có hình ảnh)
Máy rút thuốc tự động: Dự án của Arjan West: Xin chào, trong phần hướng dẫn này, tôi sẽ giúp bạn tạo một hộp đựng thuốc cho người dùng biết khi nào họ phải uống một viên thuốc và họ phải uống viên thuốc nào. Trường hợp này sẽ đi kèm với một piezzobuzzer thông báo cho người đó khi đã đến lúc uống thuốc và 12 đèn led