طابعة Dotwork رخيصة محلية الصنع



في بعض الأحيان يضيء ضوء المخترع في داخلي ، وأنا أجلس لساعات وألحظ / أرى شيئًا. حدث هذا هذه المرة. حصلت على فكرة إنشاء الطابعة الخاصة بي. لقد تم بالفعل ضرب موضوع إنشاء طابعة ثلاثية الأبعاد ، وهو مكلف ماليًا. بعد قليل من التفكير ، قررت عمل نسخة ميزانية من الطابعة ، والتي يمكن رسمها بقلم رصاص / قلم / قلم حبر. وتذكرًا لمحاولاتي لرسم شيء ما بأسلوب Dotwork ، اخترت طابعة تعمل على أتمتة هذه العملية.في المجموع ، تم إنشاء متطلبات الطابعة التالية:

  • رخيصة
  • تستخدم أدوات مرتجلة للرسم
  • والنتيجة هي رسومات بأسلوب Dotwork

وعندما اتضح أن هذا المشروع يمكن الترويج له باعتباره ورقة مصطلح ، فقد تقرر في النهاية: أن تكون طابعة. لجعل التصميم ليس كبيرًا جدًا ، تم أخذ حجم المنطقة القابلة للطباعة على أنها A5.

حول dotwork
(Dotwork) – , . - . , , . , . - , . , .

الإطار


بدأت العملية بالبحث عن إطار عمل للأساسيات. وقع الاختيار على H-bot ، لأنه سهل التنفيذ وغير مكلف ، وعلى عكس CoreXY ، لا يحتاج إلى قطع حزام. كما يتبين من الرسم البياني ، ستحتاج إلى محركين متدرجين و 4 محاور وحزام واحد.




للقاعدة ، تم استخدام قضبان بقسم 20 * 40. بالطبع ، من الأفضل استخدام الخشب الرقائقي وقطع الثقوب اللازمة عليه ، ثم سيكون التصميم أكثر تعقيدًا وقابلية للعرض ، ولكن نظرًا لحقيقة أنه من الصعب نقل ومعالجة قطعة من الخشب الرقائقي ، فقد تم اختيار القضبان.

تم شراء حوامل السكك الحديدية والمحامل في الصين. وهي مصممة للأدلة التي يبلغ قطرها 8 مم. بعد بحث قصير ، تقرر جعل محور إبر الحياكة. رخيصة ، فقط الطول الصحيح ، سهلة القطع. بالإضافة إلى ذلك ، كما اتضح ، يتم بثق الأخاديد بشكل جيد على إبر الحياكة مع المحامل. سمحت هذه الخاصية للهيكل بالتحرك بحرية على طول الأدلة ، على الرغم من الافتقار إلى التوازي.

نظرًا لأن هذا لا يزال نموذجًا أوليًا ، فقد تم إصلاح المحامل الخطية بالأسلاك. قوية وموثوقة وإذا كان أي شيء ، يمكنك إزالتها بسرعة.



تم شراء المحرك بزيادات 0.9 درجة لأقصى قدر من الدقة. عندما أضع المحركات ، تم اكتشاف مشكلة جديدة: الأغطية على المحركات لا تناسب الحزام - حدث الانزلاق بأقصى سرعة. كانت المحاولات الأولية للإزالة غير ناجحة ، ولم يساعد التدفئة / التبريد بأي شكل من الأشكال ، لذلك تم اتخاذ قرار وحشي ولكنه فعال:



بحيث لا يطير الحزام ، يجب أن يكون المسار بأكمله على طول المنصة على نفس المستوى. في هذا الصدد ، كان من الضروري وضع قطع من الخشب تحت المحامل من أجل تعديل ارتفاعها. لكن هذا لم ينقذ من تجمع الحزام. ومرة أخرى جاء السلك لإنقاذ:



للتحكم في المحركات تم استخدام Arduino Uno ، أو بالأحرى نسختها الصينية. كما اتضح ، لكان اردوينو ميني كافياً. لم يكن هناك ما يكفي من الطاقة من اردوينو للمحركات ، وبالتالي تم طلب MOTOR SHIELD L293D. كمصدر للطاقة ، تم استخدام مصدر الطاقة من المودم القديم ، من كل شيء موجود في متناول اليد ، أعطى أعلى جهد - 9 فولت (تم تصميم المحركات ل 5-12 فولت). لسهولة الاتصال ، تم كسر الإدخال من المودم ، تم لحام سلكين إليه وتم توصيل كل هذا بالدرع. شنت الدرع على اردوينو.



في البداية ، تم التخطيط لاستخدام نظام من عجلتين للتحكم في قلم الحافة ، كما هو الحال في آلات الدرفلة ، ولكن ، لسرعة التنفيذ ، تم التثبيت على الفور على محرك سيرفو. اتضح أن النقاط لا يتم تعيينها بواسطة طرف قلم لباد ، ولكن جانبية. من المخطط العودة إلى الفكرة الأولية في الإصدار التالي من الطابعة. يتم توصيل المؤازرة أيضًا بالدرع.



تعبئة الرمز


بالنسبة لـ arduino ، تم كتابة رمز يتلقى أمرًا من جهاز كمبيوتر عبر المنفذ التسلسلي في شكل سلسلة من 9 أحرف. الحرف الأول هو رمز الأمر ، متبوعًا بـ 4 أحرف للإحداثيات X و Y. سيكون هناك رابط للرمز الموجود على جانب الكمبيوتر الشخصي في نهاية المقالة.

كود اردوينو
#include <AFMotor.h> 
#include <Servo.h> 

AF_Stepper motor(2048, 1);
AF_Stepper motor2(2048, 2);
Servo servo1;

int x0 = 0;
int y0 = 0;
int K = 1;

void setup() {
  motor.setSpeed(15);
  motor2.setSpeed(15);  
  servo1.attach(10);
  servo1.write(65);
  Serial.begin(9600);
}

void OneTouch(){
  servo1.write(60);
  delay(50);
  servo1.write(65);
}

void MoveRight(int h){
  motor.step(h, FORWARD, SINGLE);    
  motor2.step(h, FORWARD, SINGLE);    
}

void MoveDown(int h){
  motor.step(h, BACKWARD, SINGLE);   
  motor2.step(h, FORWARD, SINGLE);    
}

void MoveUp(int h){
  motor.step(h, FORWARD, SINGLE);    
  motor2.step(h, BACKWARD, SINGLE);   
}

void MoveLeft(int h){
  motor.step(h, BACKWARD, SINGLE);     
  motor2.step(h, BACKWARD, SINGLE);    
}

void OnePointer(int x, int y){
  int stepX = x - x0;
  int stepY = y - y0;
  
  if (stepX > 0)
    MoveRight(stepX);
  else
    MoveLeft(-stepX);
    
  if (stepY > 0)
    MoveDown(stepY);
  else
    MoveUp(-stepY);
   
  x0 = x;
  y0 = y;
  
  OneTouch();
}

void Move(int x, int y){
  int stepX = x - x0;
  int stepY = y - y0;
  int kX, kY;
    
      
  while ((stepX != 0) || (stepY != 0)){
    kX=K;
    kY=K;
    if (kX> abs(stepX))
      kX = abs(stepX);
    if (kY> abs(stepY))
      kY = abs(stepY);
  
    if (stepX > 0){
      MoveRight(kX);
      stepX-=kX;
    }
    if (stepX < 0){
      MoveLeft(kX);
      stepX+=kX;
    }
    if (stepY > 0){
      MoveDown(kY);
      stepY-=kY;
    }
    if (stepY < 0){
      MoveUp(kY);
      stepY+=kY;
    }
  }
  
  x0 = x;
  y0 = y;
  
  OneTouch();
}

void loop() {
  while (Serial.available() == 0);
     String buffer ="";
     int i = 0;
     delay(100);
      
     while(i < 9) {
        buffer += Serial.read();
        i++;
     }
     
     String code =  buffer.substring(0,1);
     code.trim();
     int cod = code.toInt(); 
     
     String first =  buffer.substring(0,5);
     first.trim();
     int x = first.toInt() - cod*10; 

     String second =  buffer.substring(0,9);
     second.trim();
     int y = second.toInt() - x*10000 - cod * 100000;   
     
     switch (cod){
       case 0:
         Move(x,y);
         OneTouch();
       break;
       case 1:
         servo1.write(65);
         delay(50);
         Move(x,y);
       break;
       case 2:
         servo1.write(60);
         delay(50);
         Move(x,y);
         servo1.write(65);
       break;
       case 3:
         servo1.write(65);
         delay(50);
       break;
       case 4:
         servo1.write(60);
         delay(50);
         break;
       case 5:
         Move(x,y);
         break;
       case 6:
         Move(0,0);
         motor.release();
         motor2.release();
         break;
       case 7:
         K=x;
         break;
     }
     
     Serial.print(1);
}

يتيح لك التطبيق الموجود على جانب الكمبيوتر تنزيل صورة وترجمتها بالأبيض والأسود وإنشاء مجموعة من النقاط.

مبدأ توليد النقاط
- 256 int. N RGB(N,N,N). , «Num points» «fuction» . , , 0. :

  • X Y
  • 0, :

    1. 1

هذا ما تبدو عليه نافذة التطبيق:



كما اتضح ، إذا لم تترك المحركات الطاقة بعد كل حركة ، فستعود إلى الخلف ، وإذا تركت ، فإنها تصبح دافئة. ويسخن الدرع أكثر ، لذلك تم حفر المبرد القديم وتثبيته فوق الدوائر المصغرة. يأخذ الطاقة من نفس مصدر الطاقة مباشرة ، حتى لا يشغل الموصلات على الدرع. بعد اختبار دام ساعتين ، لم يحترق شيء. تمت إضافة مربع أيضًا لحماية الهيكل.



نظرًا لعدم وجود جدول له ، بحيث لا تتعثر الورقة عند الطباعة ، تم أخذ ورقة بتنسيق A3. المنصة تقف على الورقة وتضغط عليها. وحتى لا ينزلق الهيكل بأكمله ، يتم وضع دمبل أو وعاء مربي عليه. يطبع ببطء إلى حد ما ، في المتوسط ​​يستغرق 0.7 ثانية للنقطة. وها هو الناتج:



الخلاصة


تبين أن الطابعة بطيئة وغير قابلة للتمثيل وتتطلب تحسينات ، ولكنها تطبع بالطريقة الصحيحة. لقد تم وضع البداية واستخلاص العديد من الاستنتاجات ، سواء في التصميم أو في التعليمات البرمجية ، وإذا كنت لا تزال لديك الصبر على الإصدار الثاني من هذه الوحدة ، فسيتم أخذ كل شيء في الاعتبار والعمل بشكل أفضل.

من الأموال المنفقة عليه (تقريبًا):

  • 3 $ لإبر الحياكة
  • محركات $ 17 2pcs. (على الرغم من أنك قد تأخذ أقل دقة)
  • اردوينو أونو 3 دولار (لكن يكفي لنانو)
  • 5.5 دولار المحامل الخطية 8 * 15 * 24 مم ، 10 قطع. (استغرق الأمر 8 قطع.)
  • SHIELD L293D بسعر 2.5 دولار (يمكنك شراء دائرتين صغيرتين L293D بشكل منفصل ، ومحرك المؤازر مدعوم من arduino)
  • 2 $ المحامل التقليدية 8 * 22 * ​​7mm ، 6pcs.
  • 8 دولارات يتصاعد للأدلة 8 مم ، 8 قطع.
  • 4 $ حزام 20-GT2-6 (2m) + بكرتين
  • 2 $ سيرفو Sg90 9 ج
  • ~ 10 دولارات للإطار والمسامير والمسامير والأسلاك (هنا يمكنك توفير المال إذا كان لديك بالفعل الكثير في المنزل)

مجانا: مروحة ، وإمدادات الطاقة.

إجمالي حوالي 57 $ ، على الرغم من أنه يمكن القيام به حتى أرخص.

كود للكمبيوتر الشخصي.

فيديو قصير لتشغيل الطابعة:

Source: https://habr.com/ru/post/ar388587/


All Articles