সুচিপত্র:

সিএনসি ড্রাম প্লটার: 13 টি ধাপ (ছবি সহ)
সিএনসি ড্রাম প্লটার: 13 টি ধাপ (ছবি সহ)

ভিডিও: সিএনসি ড্রাম প্লটার: 13 টি ধাপ (ছবি সহ)

ভিডিও: সিএনসি ড্রাম প্লটার: 13 টি ধাপ (ছবি সহ)
ভিডিও: CNC lathe drum stick trial processing 2024, নভেম্বর
Anonim
Image
Image
সিএনসি ড্রাম প্লটার
সিএনসি ড্রাম প্লটার

এই নির্দেশযোগ্য প্লাস্টিকের পাইপের একটি অংশ, দুটি BYJ-48 স্টেপার মোটর এবং একটি SG-90 servo থেকে তৈরি A4/A3 প্লটার বর্ণনা করে। মূলত এটি একটি সমতল বিছানার চক্রান্তকারী যা একটি ড্রামে গড়িয়ে দেওয়া হয়।

একটি মোটর ড্রাম ঘুরায় অন্যটি প্রিন্ট-হেড সরায়। কলম বাড়াতে এবং নামানোর জন্য সার্ভো ব্যবহার করা হয়।

এই চক্রান্তকারীর একটি traditionalতিহ্যগত ফ্ল্যাটবেড প্লটারের চেয়ে অনেক সুবিধা রয়েছে:

  • উল্লেখযোগ্যভাবে ছোট পদচিহ্ন
  • শুধুমাত্র একটি রৈখিক গাইড রেল প্রয়োজন
  • নির্মাণ করা সহজ
  • সস্তা

একটি অন-বোর্ড দোভাষী ইঙ্কস্কেপ থেকে জিসকোড আউটপুট গ্রহণ করে।

চক্রান্তকারীর সাথে যোগাযোগ একটি ব্লুটুথ লিঙ্কের মাধ্যমে।

চক্রান্তকারী আমার নির্দেশিত https://www.instructables.com/id/CNC-Graphics-Table… এ বর্ণিত CNC গ্রাফিক্স ট্যাবলেটের সাথে সামঞ্জস্যপূর্ণ।

যথার্থ যন্ত্র না হলেও এই চক্রান্তকারীর নির্ভুলতা জলরঙের রূপরেখাকে কাগজে স্থানান্তরিত করার উদ্দেশ্যপ্রণোদিত উদ্দেশ্যে সন্তোষজনক।

ধাপ 1: সার্কিট

সার্কিট
সার্কিট

সার্কিটটিতে একটি Arduino UNO R3 মাইক্রোকন্ট্রোলার এবং একটি কাস্টম ieldাল রয়েছে যার উপর বিচ্ছিন্ন উপাদানগুলি মাউন্ট করা আছে। বাহ্যিক 5 ভোল্ট 1 এমপি রেগুলেটরের মাধ্যমে শক্তি প্রয়োগ করা হয়। গড় বর্তমান প্রায় 500mA।

BYJ-48 স্টেপিং মোটর PORTB (পিন D8, D9, D10, D11) এবং PORTC (পিন A0, A1, A2, A3) এর সাথে সংযুক্ত। SG-90 পেন-লিফট সার্ভো পিন D3 এর সাথে সংযুক্ত।

560 ওহম প্রতিরোধক, যা বাদ দেওয়া যেতে পারে, কিছু ভুল হলে আরডুইনোকে শর্ট-সার্কিট সুরক্ষা প্রদান করে। তারা সরবরাহের রেলজুড়ে "জাম্পার" হিসাবে কাজ করার সাথে সাথে তারা wireালটি তারের জন্য আরও সহজ করে তোলে।

1k2 এবং 2K2 রোধকারীরা HC-06 ব্লুটুথ মডিউলের ক্ষতি রোধ করে [1] আরডুইনো থেকে 5 ভোল্টের আউটপুটকে 3.3 ভোল্টে নামিয়ে দেয়।

[1] USB পোর্টের মাধ্যমে আরডুইনোতে কোড আপলোড করার সময় HC-06 ব্লুটুথ মডিউলটি আনপ্লাগ করুন। এটি কোন সিরিয়াল পোর্ট দ্বন্দ্ব এড়াবে।

ধাপ 2: লিনিয়ার ড্রাইভ

লিনিয়ার ড্রাইভ
লিনিয়ার ড্রাইভ
লিনিয়ার ড্রাইভ
লিনিয়ার ড্রাইভ
লিনিয়ার ড্রাইভ
লিনিয়ার ড্রাইভ

লিনিয়ার ড্রাইভটি 3 মিমি x 32 মিমি অ্যালুমিনিয়াম বার, অ্যালুমিনিয়াম শীটের একটি ফালা এবং চারটি ছোট বল-বহনকারী পুলি থেকে তৈরি।

অ্যালুমিনিয়াম বেশিরভাগ হার্ডওয়্যার স্টোর থেকে পাওয়া যায়। U624ZZ 4x13x7mm U-groove pulleys https://www.aliexpress.com থেকে পাওয়া যায়

সাধারণ হাতের সরঞ্জামগুলি যা আপনার প্রয়োজন। আপনার প্লটারের মাত্রা অনুসারে অ্যালুমিনিয়াম বারটি কাটুন।

মোটর সমাবেশ

BJY-48 স্টেপিং মোটরটি এক প্রান্তে বারের মধ্য দিয়ে মাউন্ট করুন এবং মোটর শ্যাফ্টে একটি GT2 20 দাঁত, 5mm বোর, পুলি সংযুক্ত করুন। এখন আপনার বারের অন্য প্রান্তে আরেকটি GT2 পুলি মাউন্ট করুন যাতে পুলি অবাধে ঘুরতে সক্ষম হয়। আমি এটি অর্জনের জন্য 5 মিমি ব্যাসের টিউবুলার (রেডিও) স্পেসার এবং 3 মিমি বোল্ট ব্যবহার করেছি।

এখন pulleys চারপাশে GT2 টাইমিং বেল্ট একটি দৈর্ঘ্য লুপ। টাইমিং বেল্ট এন্ড অর্ধ-টুইস্টের মাধ্যমে যোগদান করুন যাতে দাঁতগুলি একত্রিত হয় এবং একটি ক্যাবল টাই দিয়ে ঠিক করে।

অবশেষে একটি ক্যাবল টাই দিয়ে টাইমিং বেল্টের সাথে ক্যারেজ সমাবেশ সংযুক্ত করুন।

ক্যারেজ অ্যাসেম্বলি

ক্যারেজ সমাবেশ অ্যালুমিনিয়াম শীট [1] এর একটি ফালা থেকে তৈরি করা হয় যার উপর U624ZZ পুলিগুলি বোল্ট করা হয়। প্রয়োজনে অ্যালুমিনিয়াম শীট থেকে পুলিগুলি স্থান দেওয়ার জন্য 4 মিমি ওয়াশার ব্যবহার করুন।

4 মিমি খাঁজযুক্ত পুলিগুলি অ্যালুমিনিয়াম বারের উপরে এবং নীচে এমনভাবে আবদ্ধ থাকে যে কোনও উল্লম্ব আন্দোলন নেই তবে অ্যালুমিনিয়াম স্ট্রিপটি বাম এবং ডানে অবাধে চলে।

গাড়িটি অবাধে চলছে তা নিশ্চিত করার জন্য, প্রথমে উপরের দুটি পুলি মাউন্ট করুন, তারপর বারে বসে পুলিগুলি দিয়ে, নীচের দুটি পুলিগুলির অবস্থান চিহ্নিত করুন। এই দুটি পুলির জন্য গর্তগুলি এখন ড্রিল করা যেতে পারে। বড় 4 মিমি ড্রিলকে ড্রিফ্টিং থেকে বাঁচাতে প্রথমে একটি ছোট "পাইলট" ড্রিল ব্যবহার করুন।

অ্যালুমিয়াম স্ট্রিপকে "U" এ বাঁকানোর আগে, আপনার কলমের ব্যাসের সাথে সামঞ্জস্য রাখতে উপরে এবং নীচে একটি গর্ত ড্রিল করুন। এখন বাঁকগুলি সম্পূর্ণ করুন।

একটি ক্যাবল টাই এবং উপরের দুটি পুলির মধ্যে 3 মিমি বোল্টের মাধ্যমে ক্যারেজ সমাবেশে টাইমিং-বেল্ট সংযুক্ত করুন।

কলম উত্তোলন সমাবেশ

একটি বা দুটি কেবল টাই ব্যবহার করে ক্যারেজ সমাবেশের শীর্ষে একটি এসজি -90 সার্ভো সংযুক্ত করুন।

আপনি যে দুটি গর্ত ড্রিল করেছেন তার নিচে আপনার কলমটি ফেলে দিন। নিশ্চিত করুন যে কলমটি অবাধে উপরে এবং নিচে স্লাইড করে।

আপনার কলমের সাথে একটি "কলার" বেঁধে রাখুন যাতে কলমটি ড্রাম থেকে পরিষ্কার হয় যখন সার্ভোটি পেন-আপ অবস্থানে থাকে।

[1] একটি ধারালো ছুরি (বাক্স-কাটার) দিয়ে শীটের দুই পাশে স্কোর করে অ্যালুমিনিয়াম কাটা যেতে পারে তারপর টেবিলের প্রান্তের উপর কাটা বাঁকানো। কয়েকটি ঝাঁকুনি এবং শীটটি সোজা বিরতি রেখে ভেঙে যাবে। টিন-স্নিপের বিপরীতে এই পদ্ধতিটি অ্যালুমিনিয়ামকে কাঁপায় না।

ধাপ 3: ড্রাম

ড্রাম
ড্রাম
ড্রাম
ড্রাম
ড্রাম
ড্রাম

ড্রামে দুটি কাঠের শেষ-প্লাগ সহ প্লাস্টিকের পাইপের একটি অংশ রয়েছে [1]।

শেষ-প্লাগের রূপরেখা আঁকতে আপনার পাইপের ভিতরের ব্যাসার্ধে সেট করা একটি কম্পাস ব্যবহার করুন। এখন একটি সূক্ষ্ম ব্লেড করাত ("মোকাবেলা", "ঝামেলা") ব্যবহার করে প্রতিটি রূপরেখার চারপাশে কাটুন তারপর কাঠের রাস্পের সাহায্যে প্রতিটি শেষ-প্লাগ কাস্টম ফিট করুন। ছোট পাল্টা-ডুবে যাওয়া কাঠের স্ক্রু ব্যবহার করে শেষ প্লাগগুলি বেঁধে দিন।

প্রতিটি এন্ড-প্লাগের মধ্য দিয়ে একটি 6 মিমি ইঞ্জিনিয়ারিং বোল্ট অক্ষ তৈরি করে।

ড্রাম মাত্রা

ড্রামের মাত্রা আপনার কাগজের আকার দ্বারা নির্ধারিত হয়। 100 মিমি একটি ড্রাম ব্যাস A4 প্রতিকৃতি এবং A3 ভূদৃশ্য সমর্থন করে। 80 মিমি একটি ড্রাম ব্যাস শুধুমাত্র A4 ল্যান্ডস্কেপ সমর্থন করবে। জড়তা কমাতে যতটা সম্ভব ছোট ড্রাম ব্যাস ব্যবহার করুন … BYJ-48 মোটরগুলি কেবল ছোট।

90 মিমি একটি ড্রাম ব্যাস A4 প্রতিকৃতি এবং A3 ল্যান্ডস্কেপ পেপারের জন্য বিপরীত প্রান্ত হিসাবে আদর্শ, যখন ড্রামের চারপাশে মোড়ানো হয়, প্রায় 10 মিমি দ্বারা ওভারল্যাপ হয় যার মানে হল যে আপনার জায়গায় টেপ করার জন্য শুধুমাত্র একটি সীম আছে।

ঘোল ঘোরানো

প্রতিটি অক্ষ একটি অ্যালুমিনিয়াম প্রান্ত বন্ধনী দিয়ে যায় যাতে ড্রামটি অবাধে ঘোরাতে সক্ষম হয়। GT-2, 20 দাঁত, 6 মিমি বোর, পুলি এক প্রান্তে অক্ষের সাথে আবদ্ধ করে শেষ ফ্লোট প্রতিরোধ করা হয়। একটি ক্রমাগত GT-2 টাইমিং বেল্ট BJY-48 গিয়ার্ড স্টেপিং মোটরকে ড্রামের সাথে সংযুক্ত করে। মোটরটির 5 মিমি বোর আকারের একটি পুলি প্রয়োজন।

[1] প্লাস্টিকের এন্ড-প্লাগগুলি বেশিরভাগ পাইপের ব্যাসার্ধের জন্য পাওয়া যায় কিন্তু সেগুলি পাইপের ভিতরে না গিয়ে ফিট হয়ে যায় বলে প্রত্যাখ্যান করা হয় বোল্টের পরিবর্তে যদি ক্রমাগত অক্ষ ব্যবহার করা হয় তবে সেগুলি সম্ভবত ঠিক হবে…

ধাপ 4: নির্মাণ টিপস

নিশ্চিত করুন যে কলমটি ড্রামের কেন্দ্র বরাবর ভ্রমণ করে। কাঠের সাপোর্ট থেকে কোণ কেটে এটি অর্জন করা যেতে পারে। যদি কলমটি অফ-সেন্টার হয় তবে এটি ড্রামের পাশ দিয়ে স্লাইড করতে থাকে।

দুটি কলম গর্তের সঠিক ড্রিলিং গুরুত্বপূর্ণ। পেন গাইড বা ক্যারেজ অ্যাসেম্বলি-তে যে কোনও ঝাঁকুনি এক্স-অক্ষ বরাবর নড়বড়ে হয়ে যাবে।

GT-2 টাইমিং বেল্টগুলিকে অতিরিক্ত শক্ত করবেন না … তাদের কেবল টানটান হওয়া দরকার। BYJ-48 স্টেপিং মোটরগুলিতে প্রচুর টর্ক নেই।

BJY-48 স্টেপিং মোটরগুলি প্রায়শই অল্প পরিমাণে ব্যাকল্যাশ প্রদর্শন করে যা X- অক্ষ বরাবর নগণ্য কিন্তু Y- অক্ষের ক্ষেত্রে এটি উদ্বেগজনক। এর কারণ হল Y- অক্ষের মোটরের একটি ঘূর্ণন ড্রামের এক ঘূর্ণনের সমান, যেখানে ড্রামের দৈর্ঘ্য অতিক্রম করার জন্য X- অক্ষের মোটরের অনেকগুলি বাঁক প্রয়োজন। ড্রামের উপর ধ্রুব টর্ক রেখে যেকোনো Y- অক্ষের ব্যাকল্যাশ দূর করা যায়। একটি সহজ পদ্ধতি হল ড্রামের চারপাশে মোড়ানো নাইলন কর্ডের সাথে একটি ছোট ওজন সংযুক্ত করা।

ধাপ 5: ব্রেসেনহামের লাইন ড্রয়িং অ্যালগরিদম

ব্রেসেনহামের লাইন ড্রয়িং অ্যালগরিদম
ব্রেসেনহামের লাইন ড্রয়িং অ্যালগরিদম
ব্রেসেনহামের লাইন ড্রয়িং অ্যালগরিদম
ব্রেসেনহামের লাইন ড্রয়িং অ্যালগরিদম

এই চক্রান্তকারী ব্রেসেনহ্যামের লাইন ড্রয়িং অ্যালগরিদমের একটি অনুকূলিত সংস্করণ [1] ব্যবহার করে। দুর্ভাগ্যবশত এই অ্যালগরিদম 45 ডিগ্রির কম বা সমান লাইন slালগুলির জন্য বৈধ (যেমন একটি বৃত্তের একটি অকটেন্ট)।

এই সীমাবদ্ধতার কাছাকাছি পৌঁছানোর জন্য আমি প্রথম "অক্ট্যান্ট" -এ সমস্ত XY ইনপুটগুলিকে "ম্যাপ" করি, তারপর প্লট করার সময় এগুলিকে "আনম্যাপ" করি। এটি অর্জনের জন্য ইনপুট এবং আউটপুট ম্যাপিং ফাংশন উপরের চিত্রটিতে দেখানো হয়েছে।

ডেরিভেশন

আপনি ব্রেসেনহামের অ্যালগরিদমের সাথে পরিচিত হলে এই ধাপের বাকি অংশ বাদ দেওয়া হতে পারে।

আসুন (0, 0) থেকে (x1, y1) পর্যন্ত একটি রেখা আঁকুন যেখানে:

  • x1 = 8 = অনুভূমিক দূরত্ব
  • y1 = 6 = উল্লম্ব দূরত্ব

মূল (0, 0) এর মধ্য দিয়ে যাওয়া একটি সরলরেখার সমীকরণ y = m*x সমীকরণ দ্বারা দেওয়া হয়েছে যেখানে:

m = y1/x1 = 6/8 = 0.75 = opeাল

সহজ অ্যালগরিদম

এই লাইনটি চক্রান্ত করার জন্য একটি সহজ অ্যালগরিদম হল:

  • int x1 = 8;
  • int y1 = 6;
  • ভাসা m = y1/x1;
  • চক্রান্ত (0, 0);
  • জন্য (int x = 1; x <= x1; x ++) {
  • int y = বৃত্তাকার (m*x);
  • চক্রান্ত (x, y);
  • }

সারণি 1: সহজ অ্যালগরিদম

এক্স মি m*x y
0 0.75 0 0
1 0.75 0.75 1
2 0.75 1.5 2
3 0.75 2.25 2
4 0.75 3 3
5 0.75 3.75 4
6 0.75 4.5 5
7 0.75 5.25 5
8 0.75 6 6

এই সহজ অ্যালগরিদমের সাথে দুটি সমস্যা রয়েছে:

  • প্রধান লুপটিতে একটি গুণ আছে যা ধীর
  • এটি ভাসমান বিন্দু সংখ্যা ব্যবহার করে যা ধীরও

এই লাইনের জন্য y বনাম x এর একটি গ্রাফ উপরে দেখানো হয়েছে।

ব্রেসেনহামের অ্যালগরিদম

ব্রেসেনহ্যাম একটি ত্রুটি শব্দ 'ই' এর ধারণা চালু করেন যা শূন্য থেকে শুরু হয়। তিনি বুঝতে পেরেছিলেন যে টেবিল 1 এ দেখানো m*x মানগুলি 'm' থেকে 'e' এর পরপর যোগ করে পাওয়া যেতে পারে। তিনি আরও বুঝতে পেরেছিলেন যে y*শুধুমাত্র বৃদ্ধি পায় যদি m*x এর ভগ্নাংশ অংশ 0.5 এর বেশি হয়। 0 <= 0.5 <= 1 পরিসরের মধ্যে তার তুলনা রাখার জন্য যখনই y বৃদ্ধি পায় তখন সে 'e' থেকে 1 বাদ দেয়।

  • int x1 = 8;
  • int y1 = 6;
  • ভাসা m = y1/x1;
  • int y = 0;
  • ভাসা e = 0;
  • চক্রান্ত (0, 0);
  • জন্য (int x = 1; x <= x1; x ++) {
  • e+= m;
  • যদি (e> = 0.5) {
  • ই -= 1;
  • y ++;
  • }
  • প্লট (x, y);
  • }

টেবিল 2: ব্রেসেনহামের অ্যালগরিদম

এক্স মি ই -১ y
0 0.75 0 0 0
1 0.75 0.75 -0.25 1
2 0.75 0.5 -0.5 2
3 0.75 0.25 2
4 0.75 1 0 3
5 0.75 0.75 -0.25 4
6 0.75 0.5 -0.5 5
7 0.75 0.25 5
8 0.75 1 0 6

আপনি যদি অ্যালগরিদম এবং টেবিল 2 পরীক্ষা করেন তবে আপনি এটি পর্যবেক্ষণ করবেন;

  • প্রধান লুপ শুধুমাত্র যোগ এবং বিয়োগ ব্যবহার করে … কোন গুণ নেই
  • y এর প্যাটার্নটি টেবিল 1 এর মতো।

কিন্তু আমরা এখনও ভাসমান বিন্দু সংখ্যা ব্যবহার করছি … আসুন এটি ঠিক করি।

ব্রেসেনহ্যামের (অপ্টিমাইজড) অ্যালগরিদম

ব্রেসেনহ্যামের ভাসমান বিন্দু অ্যালগরিদম একটি পূর্ণসংখ্যা আকারে রূপান্তরিত হতে পারে যদি আমরা 'm' এবং 'e' কে 2*x1 দ্বারা স্কেল করি যে ক্ষেত্রে m = (y1/x1)*2*x1 = 2*y1

'M' এবং 'e' স্কেলিং ছাড়াও অ্যালগরিদম উপরের মতই:

  • আমরা প্রতিবার 'x' বাড়ালে 'e' তে 2*y1 যোগ করি
  • আমরা y বৃদ্ধি করি যদি e সমান বা x1 এর চেয়ে বড় হয়।
  • আমরা 1 এর পরিবর্তে 'e' থেকে 2*x1 বিয়োগ করি
  • x1 0.5 এর পরিবর্তে তুলনার জন্য ব্যবহৃত হয়

পরীক্ষার জন্য লুপ শূন্য ব্যবহার করলে অ্যালগরিদমের গতি আরও বাড়ানো যেতে পারে। এটি করার জন্য আমাদের ত্রুটি শব্দ 'ই' তে একটি অফসেট যুক্ত করতে হবে।

  • int x1 = 8;
  • int y1 = 6;
  • int m = (y1 << 1); // ধ্রুবক: *াল 2*x1 দ্বারা স্কেল করা
  • int E = (x1 << 1); // ধ্রুবক: 2*x1 লুপে ব্যবহারের জন্য
  • int e = -x1; // -E/2 এর অফসেট: পরীক্ষা এখন শূন্য এ সম্পন্ন
  • চক্রান্ত (0, 0);
  • int y = 0;
  • জন্য (x = 1; x <= x1; x ++) {
  • e += m;
  • যদি (e> = x1) {
  • ই -= ই
  • y ++;
  • }
  • চক্রান্ত (x, y);
  • }

টেবিল 3: ব্রেসেনহ্যামের (অপ্টিমাইজড) অ্যালগরিদম

এক্স মি ই - ই y
0 12 16 -8 0
1 12 16 4 -12 1
2 12 16 0 -16 2
3 12 16 -4 2
4 12 16 8 -8 3
5 12 16 4 -12 4
6 12 16 0 -16 5
7 12 16 -4 5
8 12 16 8 -8 6

আবার y এর প্যাটার্ন অন্যান্য টেবিলের মতই। এটা লক্ষ্য করা আকর্ষণীয় যে টেবিল 3 তে শুধুমাত্র পূর্ণসংখ্যা রয়েছে এবং m/E = 12/16 = 0.75 এর অনুপাত যা লাইনের opeাল 'm'।

এই অ্যালগরিদমটি অত্যন্ত দ্রুত কারণ প্রধান লুপটিতে কেবল যোগ, বিয়োগ এবং শূন্যের সাথে তুলনা জড়িত। X1 এবং y1 এর মান দ্বিগুণ করার জন্য একটি "বাম-শিফট" ব্যবহার করে আমরা যখন 'E' এবং 'm' এর মানগুলি আরম্ভ করি তখন গুণকে ব্যবহার করা হয় না।

[1] ব্রেসেনহামের অ্যালগরিদমের এই অপটিমাইজড সংস্করণটি "ব্রেসেনহ্যাম লাইন এবং সার্কেল ড্রইং", কপিরাইট © 1994-2006, ডব্লিউ র্যান্ডলফ ফ্রাঙ্কলিন (ডব্লিউআরএফ) থেকে নেওয়া। তার উপাদান অলাভজনক গবেষণা এবং শিক্ষার জন্য ব্যবহার করা যেতে পারে, যদি আপনি তাকে ক্রেডিট করেন এবং তার হোম পেজে আবার লিঙ্ক করুন,

ধাপ 6: কোড

সংযুক্ত ফাইলটি একই নামের একটি ফোল্ডারে ডাউনলোড করুন তারপর আপনার arduino IDE (সমন্বিত উন্নয়ন পরিবেশ) ব্যবহার করে চক্রান্তকারীর কাছে আপলোড করুন।

আপলোড করার চেষ্টা করার আগে HC-06 bluetoorh মডিউলটি আনপ্লাগ করুন। ইউএসবি তারের সাথে সিরিয়াল পোর্টের দ্বন্দ্ব এড়াতে এটি প্রয়োজনীয়।

তৃতীয় পক্ষের কোড

উপরের.ino কোড ছাড়াও আপনার নিম্নলিখিত সফ্টওয়্যার প্যাকেজগুলির প্রয়োজন হবে যা বিনামূল্যে / দান-মাল:

  • Teraterm যা https://osdn.net/projects/ttssh2/releases/ থেকে পাওয়া যায়
  • ইঙ্কস্কেপ যা https://inkscape.org/en/download/ থেকে পাওয়া যায়

উপরের প্রতিটি তৃতীয় পক্ষের প্যাকেজগুলি ইনস্টল এবং ব্যবহারের জন্য নির্দেশাবলী আমার নিবন্ধে পাওয়া যাবে

ধাপ 7: মেনু

তালিকা
তালিকা

"Teraterm" ব্যবহার করে আপনার চক্রান্তকারীর সাথে একটি ব্লুটুথ সংযোগ তৈরি করুন।

আপনার "ক্যাপস লক" চালু করুন কারণ সমস্ত কমান্ড উপরের ক্ষেত্রে রয়েছে।

'M' অক্ষরটি টাইপ করুন এবং একটি মেনু উপরে প্রদর্শিত হওয়া উচিত।

মেনুটি যুক্তিসঙ্গতভাবে স্ব -ব্যাখ্যামূলক:

  • M (বা M0) মেনু নিয়ে আসে
  • G0 আপনাকে কলমটি একটি নির্দিষ্ট XY কো-অর্ডিনেটে পাঠানোর অনুমতি দেয়।
  • G1 আপনাকে কলমটি একটি নির্দিষ্ট XY কো-অর্ডিনেটে কলম পাঠানোর অনুমতি দেয়।
  • T1 আপনাকে আপনার কলমকে আপনার 0, 0 কো-অর্ডিনেটের উপরে রাখতে দেয়। প্রস্থান করতে 'ই' টাইপ করুন।
  • T2 আপনাকে আপনার অঙ্কন স্কেল করতে দেয়। উদাহরণস্বরূপ "T2 S2.5" আপনার অঙ্কন 250%স্কেল করবে। ডিফল্ট স্কেল 100%
  • T3 এবং T4 আপনাকে কলম বাড়াতে বা কম করতে দেয়।
  • T5 একটি "ABC" পরীক্ষার প্যাটার্ন আঁকে।
  • T6 একটি "লক্ষ্য" আঁকে।
  • T7 রেডিয়াল লাইনের একটি সেট আঁকছে, যার উদ্দেশ্য হল যাচাই করা যে ব্রেসেনহ্যামের অ্যালগরিদম আটটি "অক্টেন্ট" এর প্রত্যেকটিতে কাজ করছে

মন্তব্য:

  • সমস্ত কলম চালনা মেনু বিকল্প T2 ব্যবহার করে অঙ্কন স্কেল সেট ব্যবহার করে
  • "17:" এবং "19:" সংখ্যাগুলি হল Arduino দোভাষীর কাছ থেকে "Xon" এবং "Xoff" টার্মিনাল হ্যান্ডশেক কোড।

ধাপ 8: ক্রমাঙ্কন

X_STEPS_PER_MM এবং Y_STEPS_PER_MM এর মান 90 মিমি ব্যাসের ড্রামের জন্য।

অন্যান্য ড্রাম ব্যাসের মানগুলি নিম্নলিখিত সম্পর্কগুলি ব্যবহার করে গণনা করা যেতে পারে:

  • ড্রামের পরিধি হল PI*ব্যাস
  • 2048 ধাপ প্রতিটি মোটর খাদ একটি বিপ্লব সমান
  • একটি GT-2 পুলির একটি বিপ্লব একটি টাইমিং বেল্টের 40 মিলিমিটার লিনিয়ার মুভমেন্টের সমান

আরেকটি পদ্ধতি হল নিম্নলিখিত কমান্ডগুলি প্রবেশ করানো,

  • G1 X0 Y100
  • G1 X100 Y100

তারপর ফলাফলের লাইনগুলির দৈর্ঘ্য পরিমাপ করুন এবং X-STEPS_PER_MM এবং Y_STEPS_PER_MM এর মানগুলি "স্কেল" করুন

ধাপ 9: Gcode Preprocessing

Gcode Preprocessing
Gcode Preprocessing
Gcode Preprocessing
Gcode Preprocessing

এই চক্রান্তকারীর শুধুমাত্র চারটি ইঙ্কস্কেপ জিওকোড প্রয়োজন (যেমন: G0, G1, G2, G3)। যদি আমরা সমস্ত অপ্রয়োজনীয় জিকোড এবং মন্তব্যগুলি সরিয়ে ফেলি তবে কোডটি উল্লেখযোগ্যভাবে দ্রুত কার্যকর হবে।

এটি করার জন্য আপনার "নোটপ্যাড ++" এর একটি অনুলিপি প্রয়োজন। এই ফ্রি টেক্সট এডিটরটিতে অবাঞ্ছিত লেখা খোঁজার এবং অপসারণের জন্য একটি "রেগুলার এক্সপ্রেশন" সার্চ ইঞ্জিন রয়েছে। Https://notepad-plus-plus.org/download/v6.9.2.html থেকে নোটপ্যাড ++ পাওয়া যায়

নোটপ্যাড ++ দিয়ে সংশোধন করার জন্য ফাইলটি খুলুন এবং ফাইলের শীর্ষে আপনার কার্সার রাখুন।

উপরের মেনু বার থেকে "সার্চ/রিপ্লেস …" এর পরে "প্রতীক/সমস্ত অক্ষর দেখুন/দেখান" নির্বাচন করুন।

"রেগুলার এক্সপ্রেশন" চেক বক্সে ক্লিক করুন (১ ম ছবি দেখুন) এবং সার্চ বক্সে নিচের প্রতিটি কোড সিকোয়েন্স লিখুন।

প্রতিটি প্রবেশের পরে "সমস্ত প্রতিস্থাপন করুন" ক্লিক করুন:

  • %
  • (.*)
  • ^এম।*$
  • জেড।*$

উপরের রেগুলার এক্সপ্রেশন সব % চিহ্ন, বন্ধনীতে দেখানো সকল মন্তব্য, সকল M কোড, সকল Z কোড এবং অনুসরণ করা কোডগুলি সরিয়ে দেয়।

এখন "এক্সটেন্ডেড এক্সপ্রেশন" চেকবক্সে ক্লিক করুন (২ য় ছবি দেখুন) এবং নিম্নলিখিত কোড ক্রম লিখুন:

r / n / r / n / r / n

এই অভিব্যক্তিটি প্রথম অনুক্রমের দ্বারা তৈরি অবাঞ্ছিত ক্যারেজ-রিটার্ন এবং লাইন-ফিডগুলি সরিয়ে দেয়।

আপনার ফাইলটি "নামে সংরক্ষণ করুন" ব্যবহার করে একটি ভিন্ন নামে সংরক্ষণ করুন।

সম্পন্ন.

ধাপ 10: ফলাফল

ফলাফল
ফলাফল

এই চক্রান্তকারীকে "ধারণার প্রমাণ" হিসেবে তৈরি করা হয়েছিল এবং কখনোই নিখুঁত হওয়ার উদ্দেশ্য ছিল না। বলা হচ্ছে যে ফলাফল খুব খারাপ নয়। তারা স্পষ্টভাবে কাগজের উপর জলরঙের রূপরেখা স্থানান্তর আমার নকশা লক্ষ্য পূরণ।

প্রথম তিনটি ছবি হল অন্তর্নির্মিত পরীক্ষার নিদর্শন যথাক্রমে T5, T6, T7।

"হ্যালো ওয়ার্ল্ড!" ব্লুটুথের মাধ্যমে প্যাটার্ন প্লটারের কাছে পাঠানো হয়েছিল। এই ফাইলের একটি "প্রাক-প্রক্রিয়াকৃত" কপি সংযুক্ত করা হয়েছে।

ধাপ 11: কোড আপডেট

কোড আপডেট
কোড আপডেট

এই চক্রান্তকারীর কোড Drum_Plotter_V2.ino এ আপডেট করা হয়েছে।

মূল Drum_Plotter.ino থেকে পরিবর্তন অন্তর্ভুক্ত:

  • মসৃণ কলম অবস্থান
  • এখন G02 gcode নির্দেশাবলী স্বীকৃতি দেয় (ঘড়ির কাঁটার চাপ)
  • এখন G03 gcode নির্দেশাবলী স্বীকার করে

সংযুক্ত ডায়াগ্রামটি আর্ক কোণ গণনার জন্য আমার পদ্ধতির রূপরেখা দেয়।

ধাপ 12: Drum_plotter_v3.ino

"সিএনসি ড্রাম প্লটার" এর জন্য একটি কোড আপডেট সংযুক্ত করা হয়েছে।

"drum_plotter_v3.ino" একটি ছোটখাট বাগ সংশোধন করে যা প্লটারের সঠিকতাকে প্রভাবিত করে।

ইতিহাস পরিবর্তন কর

সংস্করণ 2:

দ্বি-চাপ বক্ররেখা যোগ করা হয়েছে

সংস্করণ 3:

প্লটারের নির্ভুলতাকে প্রভাবিত করে এমন একটি ছোটখাট বাগের সমাধান করতে নিম্নলিখিত ফাংশনগুলি পুনরায় লেখা হয়েছিল।

  • (int) move_to () ফাংশনে রাউন্ড () দিয়ে প্রতিস্থাপিত।
  • draw_line () ফাংশন "অক্ট্যান্ট" সার্চ অ্যালগরিদম উন্নত
  • দোভাষী এখন পয়েন্টারের পরিবর্তে স্ট্রিং ফাংশন ব্যবহার করে যা নকশাটিকে সহজ করে। উদাহরণস্বরূপ, আমরা এখন 'M' অক্ষরের সন্ধানের পরিবর্তে "MENU" অনুসন্ধান করতে পারি তারপর নিচের পূর্ণসংখ্যা সংখ্যাটি বের করি। এটি আপনাকে আপনার নিজের কমান্ড দিয়ে প্লটারকে ব্যক্তিগতকৃত করতে দেয়।

ধাপ 13: Drum_plotter_plotter_v4.ino

16 জানুয়ারি 2017:

এই ড্রাম প্লটারের কোডটি আরও অপ্টিমাইজ করা হয়েছে। অতিরিক্ত বৈশিষ্ট্য যোগ করা হয়েছে।

পরিবর্তনগুলির মধ্যে রয়েছে:

  • দ্রুত draw_line () অ্যালগরিদম
  • move_to () ফাংশনের সাথে মিলে যাচ্ছে
  • ধাপ কাউন্টার
  • ছোট বাগ সংশোধন

আরো বিস্তারিত জানার জন্য সংযুক্ত "drum_plotter_v4.ino" এর মধ্যে মন্তব্যগুলি পড়ুন।

আমার অন্যান্য নির্দেশাবলী দেখতে এখানে ক্লিক করুন।

প্রস্তাবিত: