সুচিপত্র:

$ 1 Arduino- ভিত্তিক ভেন্ডিং মেশিন: 8 টি ধাপ
$ 1 Arduino- ভিত্তিক ভেন্ডিং মেশিন: 8 টি ধাপ

ভিডিও: $ 1 Arduino- ভিত্তিক ভেন্ডিং মেশিন: 8 টি ধাপ

ভিডিও: $ 1 Arduino- ভিত্তিক ভেন্ডিং মেশিন: 8 টি ধাপ
ভিডিও: Diy Arduino Based Mini CNC Plotter Machine Using Arduino UNO R3, L293D Motor Driver and DVD Rom 2024, জুলাই
Anonim
Image
Image
কেসিং
কেসিং

আমরা আমাদের ইঞ্জিনিয়ারিং শিক্ষকের কাছ থেকে আমাদের ধারণা পেয়েছি - আমরা সবাই ভেবেছিলাম আমাদের ক্লাসের জন্য একটি ভেন্ডিং মেশিন রাখা ভাল ধারণা হবে এবং তিনি বললেন - "ঠান্ডা, একটা বানান"। দেখা গেল যে একটি ভেন্ডিং মেশিন একটি দুর্দান্ত সিনিয়র প্রকল্প হবে এবং যখন সম্পূর্ণ হবে তখন আমাদের প্রকৌশল প্রোগ্রামের জন্য তহবিল সংগ্রহকারী হিসাবে কাজ করবে।

এটিকে $ 1 ভেন্ডিং মেশিন বলা হয় না কারণ এটি তৈরি করতে $ 1 খরচ হয়, কিন্তু কেবল কারণ বিল গ্রহণকারী একটি পুরানো মডেল যা শুধুমাত্র $ 1 বিল নেয়:)

ধাপ 1: মানদণ্ড

আমরা একটি ভেন্ডিং মেশিন চেয়েছিলাম যা একটি ডেস্কের উপরে বসবে এবং খুব বেশি লম্বা হবে না। আমরা টেবিলের প্রস্থের মাত্রা নিয়েছি যাতে আমরা টেবিলে ঝুলন্ত ভেন্ডিং মেশিন না থাকি।

ধাপ 2: আবরণ

কেসিং
কেসিং
কেসিং
কেসিং
কেসিং
কেসিং

আমরা আমাদের বাক্সটি 19 ইঞ্চি চওড়া 17 ইঞ্চি লম্বা 25 ইঞ্চি লম্বা করেছি। আমরা আমাদের কাঠ কাটার জন্য একটি সিএনসি মেশিন ব্যবহার করেছি। আমরা মুখগুলি ডিজাইন করার জন্য সলিডওয়ার্ক ব্যবহার করেছি এবং তারপর সেগুলিকে আমাদের CNC সফটওয়্যারের জন্য ফাইল টাইপ অঙ্কনে রূপান্তর করেছি। আমরা প্রান্তগুলিকে বালি দিয়েছিলাম এবং তারপরে 1 ¼ দিয়ে তাদের স্ক্রু করেছি। আমরা সামনের প্যানেলটিকে একটি কব্জা দিয়ে সংযুক্ত করেছি এবং স্ক্রু ব্যবহার করেছি, যাতে স্ক্রুগুলি অন্য দিকে না যায়। আমরা এক্রাইলিক গ্লাসও ব্যবহার করেছি যা আমরা তাক এবং সামনের প্যানেলের জন্য কেটেছি।

ধাপ 3: ইলেকট্রনিক্স

ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স
ইলেকট্রনিক্স

আরডুইনো

আমরা একটি Arduino মেগা 2560 বোর্ড ব্যবহার করেছি। আমরা অ্যাডাফ্রুট মোটর বোর্ড ব্যবহার করেছি যাতে তারা স্টেপার মোটর চালাতে পারে। আমরা একে অপরের সাথে সংযোগ স্থাপনের জন্য অ্যাডাফ্রুটের পিন যুক্ত করেছি। তাদের একে অপরের উপরে ertedোকানো হয়েছিল। প্রত্যেকে 2 টি মোটর চালাতে পারে। এছাড়াও, দয়া করে মনে রাখবেন যে জাম্পারটি সংযুক্ত করা দরকার।

ডেস্কটপ পাওয়ার সাপ্লাই

Bestek ATX পাওয়ার সাপ্লাই একটি অ্যাডাপ্টার ব্যবহার করে পাওয়ার সাপ্লাই চালু রাখতে। অ্যাডাপ্টারটি sparkfun.com থেকে এবং বিভিন্ন ভোল্টেজ প্রদান করে।

মোটর মধ্যে coils

আমরা মোটর ধরে রাখতে, কুণ্ডলী ধরতে এবং তাকের সাথে কুণ্ডলী গাইড করার জন্য সলিডওয়ার্ক মডেল তৈরি করেছি। আমরা ইবে থেকে আমাদের কুণ্ডলী অর্জন করেছি এবং সেগুলিকে মাত্রায় কেটেছি। কয়েল মাউন্টের সাথে সংযোগ করার জন্য আমরা সোজা প্রান্ত দিয়ে 6 পাইনি বলে আমাদের তাদের 3 টি বাঁকতে হয়েছিল। আমরা তখন সেগুলি 3D প্রিন্ট করে কয়েল এবং মোটরের সাথে সংযুক্ত করেছি। আমাদের যে স্টেপার মোটর ছিল, আমরা একটি মাউন্টে রেখেছিলাম। এটি মোটরটি ধরে রাখবে এবং কুণ্ডলীকে একটি সরল পথ বরাবর নির্দেশ করবে।

এলসিডি এবং কীপ্যাড

আমরা পাওয়ারের জন্য পাওয়ার সাপ্লাই অ্যাডাপ্টারে 5V লিডের সাথে সংযুক্ত একটি Arduino কীপ্যাড এবং LCD স্ক্রিন ব্যবহার করেছি এবং তারপর একই Arduino বোর্ডে

তারের

আমরা 18 গেজ তারের ব্যবহারের সুপারিশ করি। আমাদের ক্ষেত্রে, আমাদের বিভিন্ন গেজ ব্যবহার করে আপোষ করতে হয়েছিল কারণ আমাদের 18 টি গেজ শেষ হয়ে গেছে

LED স্ট্রিপ

আমরা মেশিনটি জ্বালানোর জন্য একটি LED স্ট্রিপ ব্যবহার করেছি। আমরা এটি পাওয়ার সাপ্লাই অ্যাডাপ্টারে 12V লিডের সাথে সংযুক্ত করেছি। আমরা যে এলইডি স্ট্রিপটি ব্যবহার করেছি কৃতজ্ঞতার সাথে একটি + এবং - এটিতে এটি সংযুক্ত করার প্রক্রিয়াটিকে সহজ করে তুলেছে।

ধাপ 4: বিল গ্রহণকারী

বিল গ্রহণকারী
বিল গ্রহণকারী
বিল গ্রহণকারী
বিল গ্রহণকারী
বিল গ্রহণকারী
বিল গ্রহণকারী
বিল গ্রহণকারী
বিল গ্রহণকারী

আমরা আমাদের বিল গ্রহণকারী হিসাবে একটি কয়েনকো BA30B ব্যবহার করেছি। এটিকে পাওয়ারের উৎস হিসেবে সরাসরি দেয়ালের সাথে সংযুক্ত করতে হয়েছিল। আমরা এটি একটি 24-পিন অ্যাডাপ্টারের সাথে এটিএক্স পাওয়ার সাপ্লাই থেকে প্লাগ ইন করতে এবং সহজ তারের অনুমতি দেয়। আমরা অনুসরণ করা পিনআউটগুলি নিম্নলিখিত লিঙ্কটিতে পাওয়া যায়:

techvalleyprojects.blogspot.com/2011/07/ard…

আমাদের ক্ষেত্রে, বিল গ্রহণকারী বাড়াতে আমাদের একটি মাউন্ট তৈরি করতে হয়েছিল কারণ অন্যথায় এটি আমাদের আবরণের জন্য খুব কম হবে।

ধাপ 5: পরীক্ষা

উপাদানগুলি কাজ করে তা নিশ্চিত করার জন্য প্রথমে কেসিংয়ের বাইরে ইলেকট্রনিক্স পরীক্ষা করুন। যে কোনও সমস্যা দেখা দেয় সেগুলি কেসিংয়ের ভিতরে রাখার আগে ঠিক করা উচিত।

ধাপ 6: কেসিং থেকে ইলেকট্রনিক্স

একবার আপনি ইলেকট্রনিক্স পরীক্ষা করে দেখেছেন এবং তাদের ফলাফলে সন্তুষ্ট হয়ে গেলে, সেগুলিকে আপনার কেসিংয়ে রাখা শুরু করুন। তারের দৈর্ঘ্য সামঞ্জস্য করুন যাতে তারা ভিতরে আরামদায়ক হয়।

ধাপ 7: চূড়ান্ত পরীক্ষা

একবার কেসিংয়ে রাখা হলে, আবার সবকিছু পরীক্ষা করুন। যদি সবকিছু আপনার প্রত্যাশা অনুযায়ী কাজ করে, অভিনন্দন! আপনি একটি ভেন্ডিং মেশিন তৈরি করেছেন।

ধাপ 8: Arduino কোড + লিঙ্ক

ডাউনলোড:

Arduino কোড

drive.google.com/drive/folders/1oC4MhOcMFy…

অংশ ফাইল এবং সমাবেশ সহ SolidWorks ফোল্ডার

drive.google.com/drive/folders/1amZoypiWcZ…

লিঙ্কটিতে কিছু ঘটে থাকলে, এখানে আরডুইনো কোডটি সম্পূর্ণরূপে প্রদর্শিত হয়। Arduino কোড <<

#অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত করুন "Arduino.h" #অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত করুন #অন্তর্ভুক্ত করুন "উপযোগিতা/Adafruit_MS_PWMServoDriver.h" #অন্তর্ভুক্ত

const int stepsPerRevolution = 200; const বাইট ROWS = 4; // চার সারি const বাইট COLS = 3; // তিনটি কলামের চর কী [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; বাইট rowPins [ROWS] = {5, 6, 7, 8}; // কীপ্যাড বাইট কলপিন্স [COLS] = {2, 3, 4} এর সারি পিনআউটগুলির সাথে সংযুক্ত করুন; // কীপ্যাডের কলাম পিনআউটগুলির সাথে সংযুক্ত করুন কীপ্যাড কীপ্যাড = কীপ্যাড (মেক -কেম্যাপ (কী), রোপিনস, কোলপিনস, রো, কোলস); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield (); Adafruit_StepperMotor *myMotor1 = AFMS1.getStepper (-200, 1); Adafruit_StepperMotor *myMotor2 = AFMS1.getStepper (-200, 2); Adafruit_MotorShield AFMS2 = Adafruit_MotorShield (0x61); Adafruit_StepperMotor *myMotor3 = AFMS2.getStepper (-200, 1); Adafruit_StepperMotor *myMotor4 = AFMS2.getStepper (-200, 2); Adafruit_MotorShield AFMS3 = Adafruit_MotorShield (0x62); Adafruit_StepperMotor *myMotor5 = AFMS3.getStepper (-200, 1); Adafruit_StepperMotor *myMotor6 = AFMS3.getStepper (-200, 2); Adafruit_MotorShield AFMS4 = Adafruit_MotorShield (0x63); Adafruit_StepperMotor *myMotor7 = AFMS4.getStepper (-200, 1); Adafruit_StepperMotor *myMotor8 = AFMS4.getStepper (-200, 2); লিকুইডক্রিস্টাল এলসিডি (1, 11, 9, 10, 12, 13); // ডিজিটাল পিনস lcd সংযুক্ত আছে // কনস্ট্যান্টস // // বিল ভ্যালিডেটরের ক্রেডিটের জন্য (-) লাইন const int billValidator = 22;

// ভেরিয়েবল /

/ নাড়ির সময়কাল রেকর্ড করা (মিলিসেকেন্ড) স্বাক্ষরবিহীন দীর্ঘ সময়কাল;

// মোট ডলার রেকর্ড করা int DollarCounter = 0; অকার্যকর সেটআপ () {lcd.begin (16, 1); // সেট এলসিডি পাঠ্য স্থানাঙ্ক lcd.print ("শুধুমাত্র $ 1 সন্নিবেশ করান"); // পাঠ্য সেট করুন Serial.begin (9600); // যোগাযোগের জন্য সিরিয়াল পোর্টগুলি শুরু করুন। Serial.println ("Stepper test!"); // সিরিয়াল মনিটরে স্টেপার টেস্ট টাইপ করুন যাতে আমরা জানতে পারি কোন স্টেপার মোটরটি চাপা আছে। AFMS1. শুরু (); AFMS2. শুরু (); AFMS3. শুরু (); AFMS4. শুরু (); myMotor1-> setSpeed (100); // মোটর স্পিড সেট করুন যেখানে তারা myMotor2-> setSpeed (100) চালাবে; myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // বিল ভ্যালিডেটর এবং বোতাম পিনমোডের জন্য পিন সেটআপ (বিলভ্যালিডেটর, ইনপুট); // বিলকসেপ্টর সেট করে

// যোগাযোগের জন্য সিরিয়াল পোর্টগুলি শুরু করুন। Serial.begin (9600); Serial.println ("ডলারের অপেক্ষায় …"); } অকার্যকর লুপ () {{সময়কাল = pulseIn (billValidator, HIGH); // বিল গ্রহণকারীর কাছ থেকে প্রাপ্ত পালস দৈর্ঘ্যের সন্ধান শুরু করে যদি (সময়কাল> 12000) // প্রক্রিয়াজাত ও খাঁটি ডলার হিসাবে যাচাই করার জন্য এর মান অতিক্রম করতে হয় {// কাউন্ট ডলার ডলার কাউন্টার ++; // Serial.print বোঝার জন্য চেক করা হচ্ছে ("ডলার ধরা পড়েছে। Total n মোট:"); // নতুন ডলার গণনা প্রদর্শন করুন Serial.println (DollarCounter); // লুপ যাতে একটি বোতাম না চাপা পর্যন্ত অপেক্ষা করতে হয় (সময়কাল> 12000) {char key = keypad.getKey (); // কিওড সংযুক্ত করে এবং দেখতে শুরু করে যে কোনটি চাপলে (কী! = NO_KEY) {// কী চাপা সিরিয়াল.প্রিন্টলন (কী) খুঁজবে; // সিরিয়াল মনিটরে কোনটি চাপানো হয়েছিল তা আমাদের জানতে দিন} {যদি (কী == '1') {// যদি কী 1 টি চাপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '1'; myMotor8-> ধাপ (580, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor8-> মুক্তি (); // মোটরটিকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়}

যদি (কী == '2') {// যদি কী 2 টি চাপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '2'; myMotor7-> ধাপ (400, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor7-> মুক্তি (); // মোটরটিকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়} যদি (কী == '3') {// যদি কী 3 টি চাপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '3'; myMotor6-> ধাপ (400, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor6-> রিলিজ (); // মোটরকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়} যদি (কী == '4') {// যদি কী 4 টি চাপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '4'; myMotor5-> ধাপ (180, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor5-> মুক্তি (); // মোটরটিকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়} যদি (কী == '5') {// যদি কী 5 টি চাপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '5'; myMotor4-> ধাপ (6900, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor4-> রিলিজ (); // মোটরটিকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়} যদি (কী == '6') {// যদি কী 6 টিপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '6'; myMotor3-> ধাপ (400, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor3-> রিলিজ (); // মোটরটিকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়} যদি (কী == '7') {// যদি কী 7 টি চাপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '7'; myMotor7-> ধাপ (400, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor7-> মুক্তি (); // মোটরটিকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়} যদি (কী == '8') {// যদি কী 8 টিপানো হয়, তাহলে নিম্নলিখিতগুলি করুন: int keyPressed = key - '8'; myMotor8-> ধাপ (400, ফরওয়ার্ড, ডাবল); // মোটর শুরু করে এবং 350 ডিগ্রির দিকে অগ্রসর হয়। myMotor8-> মুক্তি (); // মোটরটিকে নিজের জায়গায় ধরে রাখার অবস্থা থেকে মুক্তি দেয়। প্রত্যাবর্তন; // লুপ কোডের শুরুতে ফিরে যায়}}}}}} >>

প্রস্তাবিত: