Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Это проект для SmartStorage от Каспера Боргера Тулиниуса.
Шаг 1: методы
Для этого проекта я использовал несколько разных программ.
Сама машина создана в 123D Design и распечатана на DaVinci jr. принтер
Не самый лучший, но очень простой и удобный.
Он управляется Arduino, запрограммированным на C.
Я использовал Visual Studio 2017 для создания WindowsFormApp (C #).
Шаг 2: код для Arduino
Для самой машины я использовал Arduino Mega. Он запрограммирован на C. Машина очень проста. Он выполняет простую последовательность действий, чтобы получить полку и представить ее оператору.
Я использовал два небольших шаговых двигателя, приводимых в движение двумя SBT0811.
Для управления машиной я сделал приложение, которое обменивается данными через com-порт.
#include "Stepper.h"
#define STEPS 32 // Количество шагов на оборот внутреннего вала // 2048 шагов на один оборот внешнего вала int cmd; // Fra WinApp int posZero = 0; int posOne = 1000; int posTwo = 1500; int posThree = 2000; int grab = 100; int delivery = -100; int steps_extractor_out = 512; int steps_extractor_back = -512; Подъемник шаговый (ШАГИ, 8, 10, 9, 11); Шаговый экстрактор (ШАГИ, 2, 3, 4, 5); void setup () {} void loop () {Serial.begin (9600); cmd = Serial.read (); если (cmd == 1) {Serial.end (); задержка (1000); } иначе, если (cmd == 0) {hoist.setSpeed (600); hoist.step (posOne); задержка (200); extractor.setSpeed (300); extractor.step (steps_extractor_out); задержка (200); hoist.setSpeed (100); hoist.step (захватить); задержка (200); extractor.step (steps_extractor_back); задержка (200); hoist.setSpeed (600); hoist.step (-posOne-grab); задержка (200); extractor.step (steps_extractor_out); задержка (5000); // EVT CMD FRA WINaPP extractor.step (steps_extractor_back); задержка (200); hoist.step (posOne + grab); задержка (200); extractor.step (steps_extractor_out); задержка (200); hoist.setSpeed (100); hoist.step (-grab); задержка (200); extractor.step (steps_extractor_back); задержка (200); hoist.setSpeed (600); hoist.step (-posOne); Serial.begin (9600); Serial.println (0); Serial.end (); } иначе, если (cmd == 2) {hoist.setSpeed (600); hoist.step (posTwo); задержка (200); extractor.setSpeed (300); extractor.step (steps_extractor_out); задержка (200); hoist.setSpeed (100); hoist.step (захватить); задержка (200); extractor.step (steps_extractor_back); задержка (200); hoist.setSpeed (600); hoist.step (-posTwo-grab); задержка (200); extractor.step (steps_extractor_out); задержка (5000); // EVT CMD FRA WINaPP extractor.step (steps_extractor_back); задержка (200); hoist.step (posTwo + grab); задержка (200); extractor.step (steps_extractor_out); задержка (200); hoist.setSpeed (100); hoist.step (-grab); задержка (200); extractor.step (steps_extractor_back); задержка (200); hoist.setSpeed (600); hoist.step (-posTwo); Serial.begin (9600); Serial.println (0); Serial.end (); } иначе, если (cmd == 3) {hoist.setSpeed (600); hoist.step (posThree); задержка (200); extractor.setSpeed (300); extractor.step (steps_extractor_out); задержка (200); hoist.setSpeed (100); hoist.step (захватить); задержка (200); extractor.step (steps_extractor_back); задержка (200); hoist.setSpeed (600); hoist.step (-posThree-grab); задержка (200); extractor.step (steps_extractor_out); задержка (5000); // EVT CMD FRA WINaPP extractor.step (steps_extractor_back); задержка (200); hoist.step (posThree + grab); задержка (200); extractor.step (steps_extractor_out); задержка (200); hoist.setSpeed (100); hoist.step (-grab); задержка (200); extractor.step (steps_extractor_back); задержка (200); hoist.setSpeed (600); hoist.step (-posThree); Serial.begin (9600); Serial.println (0); Serial.end (); }}
Шаг 3: приложение
Созданное мной приложение создано в VisualStudio 2017.
Это приложение для форм Windows, которое в данном случае включает SQL-базу данных.
В базе данных есть 3 таблицы, которые содержат информацию о пользователе, местонахождении каждой машины и содержимом каждой машины.
При запуске приложения вы входите в систему, используя свое имя и пароль.
Затем вы выберете, на какой машине работать, и вам будет представлено содержимое каждого ящика.
Затем вы можете просто нажать «получить ящик», и машина получит ящик, и вы сможете обновить количество данного предмета, который вы взяли или подали.