İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu, Kasper Borger Tulinius'un SmartStorage projesidir.
Adım 1: Yöntemler
Bu proje için birkaç farklı program kullandım.
Makinenin kendisi 123D Design'da oluşturuldu ve bir DaVinci jr'da yazdırıldı. yazıcı
En iyisi değil ama çok basit ve kullanıcı dostu.
C'de programlanmış bir Arduino tarafından çalıştırılır.
WindowsFormApp (C#) yapmak için Visual Studio 2017 kullandım.
Adım 2: Arduino için Kod
Makinenin kendisi için bir Arduino Mega kullandım. C'de programlanmıştır. Makine çok basittir. Bir raf almak ve bunu operatöre sunmak için basit bir sıra yürütür.
Kullandığım motorlar, 2 SBT0811 tarafından tahrik edilen 2 küçük step motordur.
Makineyi kontrol etmek için com portu ile iletişim kuran bir uygulama yaptım.
#include "Stepper.h"
#define ADIMLAR 32 //İç şaftın devri için adım sayısı //bir dış şaftın devri için 2048 adım int cmd; //Fra WinApp int posZero = 0; int konumBir = 1000; int posİki= 1500; int konumÜç = 2000; int kapmak = 100; int teslim = -100; int step_extractor_out = 512; int step_extractor_back = -512; Step vinç(ADIMLAR, 8, 10, 9, 11); Step çıkarıcı(ADIMLAR, 2, 3, 4, 5); void setup() { } void loop() { Serial.begin(9600); cmd = Seri.read(); if (cmd == 1) { Seri.end(); gecikme(1000); } else if (cmd == 0) { hoist.setSpeed(600); kaldırma.adım(konum); gecikme(200); çıkarıcı.setSpeed(300); çıkarıcı.step(steps_extractor_out); gecikme(200); kaldırma.setSpeed(100); kaldırma.adım(yakala); gecikme(200); çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.setHızı(600); kaldırma.step(-posOne-kapma); gecikme(200); çıkarıcı.step(steps_extractor_out); gecikme (5000); //EVT CMD FRA WINaPP çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.adım(posOne+kapma); gecikme(200); çıkarıcı.step(steps_extractor_out); gecikme(200); kaldırma.setSpeed(100); kaldırma.adım(-kapmak); gecikme(200); çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.setHızı(600); kaldırma.adım(-posOne); Seri.başla(9600); Seri.println(0); Seri.end(); } else if (cmd == 2) { hoist.setSpeed(600); kaldırma.adım(postİki); gecikme(200); çıkarıcı.setSpeed(300); çıkarıcı.step(steps_extractor_out); gecikme(200); kaldırma.setSpeed(100); kaldırma.adım(yakala); gecikme(200); çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.setHızı(600); kaldırma.step(-posTwo-kapma); gecikme(200); çıkarıcı.step(steps_extractor_out); gecikme (5000); //EVT CMD FRA WINaPP çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.adım(posTwo+kapma); gecikme(200); çıkarıcı.step(steps_extractor_out); gecikme(200); kaldırma.setSpeed(100); kaldırma.adım(-kapmak); gecikme(200); çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.setHızı(600); kaldırma.step(-posTwo); Seri.başla(9600); Seri.println(0); Seri.end(); } else if (cmd == 3) { hoist.setSpeed(600); kaldırma.adım(posÜç); gecikme(200); çıkarıcı.setSpeed(300); çıkarıcı.step(steps_extractor_out); gecikme(200); kaldırma.setSpeed(100); kaldırma.adım(yakala); gecikme(200); çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.setHızı(600); kaldırma.step(-posÜç-kapma); gecikme(200); çıkarıcı.step(steps_extractor_out); gecikme (5000); //EVT CMD FRA WINaPP çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.adım(posÜç+kapma); gecikme(200); çıkarıcı.step(steps_extractor_out); gecikme(200); kaldırma.setSpeed(100); kaldırma.adım(-kapmak); gecikme(200); çıkarıcı.step(steps_extractor_back); gecikme(200); kaldırma.setHızı(600); kaldırma.adım(-posÜç); Seri.başla(9600); Seri.println(0); Seri.end(); } }
3. Adım: Uygulama
Oluşturduğum uygulama VisualStudio 2017'de yapılmıştır.
Bu, bu durumda bir SQL-veritabanı içeren bir windows form uygulamasıdır.
Veritabanı, kullanıcı, her makinenin konumu ve her makinenin içeriği hakkında bilgi içeren 3 tabloya sahiptir.
Uygulamayı başlatırken adınız ve şifrenizle giriş yapın.
Ardından hangi makineyi çalıştıracağınızı seçeceksiniz ve her çekmecenin içeriği size sunulacak.
Sonra basitçe "çekmece al" a bastığınızda makine çekmeceyi alacak ve aldığınız veya dosyaladığınız verilen öğenin miktarını güncelleyebilirsiniz.