সুচিপত্র:

Arduino Morse Code Writer: 7 ধাপ (ছবি সহ)
Arduino Morse Code Writer: 7 ধাপ (ছবি সহ)

ভিডিও: Arduino Morse Code Writer: 7 ধাপ (ছবি সহ)

ভিডিও: Arduino Morse Code Writer: 7 ধাপ (ছবি সহ)
ভিডিও: 10 Minute School #viral #shortvideo #trending #aymansadik #wedding #viralvideo #english 2024, জুলাই
Anonim
Image
Image
আরডুইনো মোর্স কোড রাইটার
আরডুইনো মোর্স কোড রাইটার

আমি এমন একটি রোবট বানিয়েছি যা যেকোনো লেখাকে মোর্স কোডে রূপান্তর করতে পারে এবং তারপর তা লিখে রাখে !! এটি কার্ডবোর্ড এবং লেগো থেকে তৈরি এবং ইলেকট্রনিক্সের জন্য আমি আরডুইনো এবং মাত্র দুটি মোটর ব্যবহার করেছি।

সরবরাহ

আরডুইনো ইউনো বোর্ড স্টেপার মোটর মাইক্রো সার্ভো SG90ULN2003 স্টেপার মোটর ড্রাইভার মডিউল পাওয়ার সাপ্লাই মডিউল ব্রেডবোর্ড 4 × জাম্পার ওয়্যার 6 male মহিলা-থেকে-পুরুষ ডুপোন্ট তার 9V1A অ্যাডাপ্টার ইউএসবি কেবল কার্ডবোর্ড 2 en কাঠের ডোয়েল 2 × স্প্রিংস স্ট্র হোয়াইট পেপার লেগো সুপার আঠালো হট গ্লাউজ আঠালো গান কলম ধারক) কাঁচি কর্তনকারী

ধাপ 1: ভিত্তি নির্মাণ

ঘাঁটি নির্মাণ
ঘাঁটি নির্মাণ
ঘাঁটি নির্মাণ
ঘাঁটি নির্মাণ
ঘাঁটি নির্মাণ
ঘাঁটি নির্মাণ

বেস তৈরি করে শুরু করুন খনিটি 4 টি স্টাড চওড়া এবং 20 টি স্টাড লম্বা, সেই দৈর্ঘ্যের একটি স্তর তৈরির পরে, আমি স্টেপার মোটরের জন্য জায়গা ছেড়ে একপাশে একটি ফাঁক রেখে এর চারপাশে একটি স্টাড প্রশস্ত বোর্ডার তৈরি করেছি, তারপরে আমি যোগ করেছি টাইল টুকরা মাঝখানে অংশ যেখানে কাগজ ফালা হবে। লেগো ব্যবহার করে এটি খুব শক্ত এবং সংশোধন করা সহজ। কাগজের রোল তৈরির জন্য, আমি A4 কাগজের 1.2 সেমি চওড়া স্ট্রিপগুলি কাটলাম (আমি এই প্রস্থটি বেছে নিলাম কারণ এটি আমার ব্যবহৃত লেগো হুইলের সমান প্রস্থ, আপনি আপনার চাকার উপর নির্ভর করে আপনার বড় বা ছোট করতে পারেন) এবং আমি তাদের প্রান্তগুলিকে একসঙ্গে আঠালো করেছি একটি খুব লম্বা স্ট্রিপ তৈরি করতে, তারপর আমি চাকার চারপাশে মোড়ানো।

ধাপ 2: Servo পিস

সার্ভো পিস
সার্ভো পিস
সার্ভো পিস
সার্ভো পিস
সার্ভো পিস
সার্ভো পিস

এই পদক্ষেপের জন্য আপনার প্রয়োজন:

  • 4 সেমি লম্বা দুটি কাঠের ডোয়েল
  • 2 সেমি লম্বা দুটি ঝর্ণা
  • একটি খড় 2 সেমি লম্বা দুটি টুকরো করে কাটা
  • একটি 12 সেমি বাই 4 সেমি কার্ডবোর্ডের টুকরা
  • দুটি 4cm by 1.5cm কার্ডবোর্ডের টুকরা
  • একটি 4cm বাই 2cm কার্ডবোর্ডের টুকরা

প্রথমে, ডোয়েলগুলিকে 4 বাই 1.5 টুকরোর একটিতে আঠালো করুন, তারপরে ডোয়েলে স্প্রিংস এবং খড় ertোকান, তারপরে অন্য জায়গায় কার্ডবোর্ডের টুকরোটি আঠালো করুন যাতে সবকিছু জায়গায় থাকে।

দ্বিতীয়ত, খড়ের উপরে 4cm দ্বারা 2cm টুকরা আঠালো করুন।

তৃতীয়ত, পুরো টুকরোটি উল্টে দিন এবং এর পিছনে একটি ছোট ডোয়েল আঠালো করুন, মাঝখানে নয় বরং কিছুটা বাম দিকে। (আমি প্রথম ছবিতে ছোট ডোয়েল যোগ করতে ভুলে গেছি)

পরিশেষে, সার্বো মোটরের সামনের সাইজের কার্ডবোর্ডের বড় টুকরোতে একটি ছিদ্র কেটে মোটরটিকে আঠালো করুন, তারপর আমরা ডোয়েল দিয়ে তৈরি টুকরোটিকে বড় টুকরোতে আঠালো করি যাতে যখন সার্ভো চলে তখন এটি ধাক্কা দেয় ছোট ছোট ডোয়েল যা পালাক্রমে ঝর্ণাকেও নিচে ঠেলে দেয়।

আমি 12cm এর নিচের অংশ থেকে প্রায় 4cm কেটে 4cm টুকরো করে শেষ করলাম এবং আরও 4cm কে 1.5cm টুকরো করে আটকে দিলাম, তারপর 5.5cm দিয়ে 4cm কার্ডবোর্ডের টুকরো দিয়ে coveringেকে দিলাম। ইলাস্টিক ব্যান্ডের লুপ এবং এটিকে পিচবোর্ডের একটি ছোট টুকরোতে আঠালো করে তারপর আমি এটিকে 4cm দ্বারা 2cm টুকরা দিয়ে আটকে দিলাম যা সার্ভো শুরু হলে নিচে চলে যাবে। এই সংযোজনগুলি মার্কারকে পাশ থেকে অন্য দিকে সরানো বন্ধ করে দেয় যখন স্প্রিংসগুলি ফিরে আসে।

ধাপ 3: বেসে সার্ভো মোটর এবং পেপার রোল যুক্ত করা

বেসে Servo মোটর এবং পেপার রোল যোগ করা
বেসে Servo মোটর এবং পেপার রোল যোগ করা
বেসে Servo মোটর এবং পেপার রোল যোগ করা
বেসে Servo মোটর এবং পেপার রোল যোগ করা

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

ধাপ 4: স্টেপার মোটর ফ্রেম তৈরি করা

স্টেপার মোটর ফ্রেম তৈরি করা
স্টেপার মোটর ফ্রেম তৈরি করা
স্টেপার মোটর ফ্রেম তৈরি করা
স্টেপার মোটর ফ্রেম তৈরি করা
স্টেপার মোটর ফ্রেম তৈরি করা
স্টেপার মোটর ফ্রেম তৈরি করা

এই পদক্ষেপটি কিছুটা চ্যালেঞ্জ ছিল, কারণ মোটরটি লেগোর সাথে পুরোপুরি ফিট করার জন্য তৈরি করা হয়নি। যাইহোক, আমি মোটর দুটি গর্ত ব্যবহার করে এটি করতে পরিচালিত এটা জায়গায় নিরাপদ। এরপরে, আমি একটি লেগো হুইলকে মোটরের ডগায় আঠালো করেছিলাম এবং তারপরে আমি এটিকে পাশের বেসের ঠিক পাশে রেখেছিলাম যা আমি ধাপ 1 এ খোলা রেখেছিলাম।

ধাপ 5: সমাপ্তি স্পর্শ

সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া
সমাপক ছোঁয়া

আমি কাগজটি ঠিক করার জন্য চাকাটি coverেকে রাখার জন্য দুটি চাপের টুকরো যুক্ত করেছি। এবং আমি দুটি ছোট চাপের টুকরো যোগ করেছি একটি স্টেপার মোটরের তার ধরে রাখার জন্য এবং আরেকটি কাগজ ধরে রাখার জন্য। অবশেষে, আমি স্টেপার মোটর চাকাটি কিছুটা বড় করে বদলে দিয়েছি যা কাগজটিকে পুরানো চাকার চেয়ে ভালভাবে সরিয়েছে।

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

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

অবশেষে, আপনাকে মোটরগুলিকে আরডুইনোতে সংযুক্ত করতে হবে এবং কোডটি আপলোড করতে হবে।

আমরা সার্ভো মোটর দিয়ে শুরু করব, বাদামী তারের (স্থল তার) GND পিনের সাথে, তারপর 5V পিনের সাথে লাল তারের (বিদ্যুতের তারের), এবং কমলা তারের (সংকেত তারের) Dig #5 এর সাথে সংযুক্ত করব। পিন পরবর্তী, স্টেপার মোটর, 1N1 কে Dig #11, 1N2 থেকে Dig #10, 1N3 থেকে Dig #9, 1N4 থেকে Dig #8, 5V কে ব্রেডবোর্ডের পজিটিভ দিকে এবং গ্রাউন্ড পিনকে নেগেটিভ সাইডের সাথে সংযুক্ত করুন। রুটিবোর্ড। এবং পাওয়ার সাপ্লাই মডিউলকে ব্রেডবোর্ডের সাথে সংযুক্ত করতে ভুলবেন না যাতে নিশ্চিত করা হয় যে এর ইতিবাচক এবং নেতিবাচক দিকগুলি রুটিবোর্ডের সংশ্লিষ্ট দিকগুলির সাথে সঠিকভাবে সংযুক্ত। আপনি যদি তা করতে ভুলে যান, তাহলে আপনি আপনার প্রকল্পের ক্ষমতা উল্টে দেবেন, এবং আপনি তা করতে চান না।

কোডের জন্য, আমি চারটি পদ্ধতি লিখেছি, একটি বিন্দু লিখতে, একটি ড্যাশ লিখতে, এবং দুটি প্রতিটি অক্ষর এবং প্রতিটি শব্দের মধ্যে স্থান ছেড়ে দেওয়ার জন্য। এইভাবে, আমি এই পদ্ধতিগুলিকে কল করতে পারি যখন আমার প্রয়োজন হয় যখন প্রতিটি চিঠির জন্য এটি আবার লেখার পরিবর্তে। তারপরে আমি একটি লুপ লিখেছিলাম যা পাঠ্যের প্রতিটি অক্ষর দিয়ে যায় এবং এটি লিখি, এর ভিতরে, আমি প্রতিটি অক্ষরের জন্য একটি if স্টেটমেন্ট লিখেছি কিন্তু আপনি চাইলে সুইচ স্টেটমেন্টে লিখতে পারেন। অবশ্যই আপনি কোড যোগ করতে পারেন প্রোগ্রামটি সংখ্যা পড়তে সক্ষম করতে। যখন সমস্ত ওয়্যারিং প্রস্তুত থাকে, তখন কোডটি আপনার আইডিইতে কপি এবং পেস্ট করুন। স্টেপার, সার্ভো এবং স্ট্রিং লাইব্রেরি ইনস্টল করতে ভুলবেন না। এর পরে, আপনি যেতে ভাল।

কিভাবে এটা কাজ করে

যখন আরডুইনো প্রোগ্রামটি শুরু করে তখন পাঠ্যের প্রথম অক্ষরটি দেখায়। উদাহরণস্বরূপ, যখন ডট ফাংশন বলা হয়, সার্ভো মোটরটি 160 এ সেট করা হয় যা কলমটি নিচে সরিয়ে দেয়, তারপর এটি 90 এ সেট করা হয় যা স্প্রিংসগুলিকে তাদের সাথে কলমটি সরিয়ে নিয়ে আসতে দেয়। এবং যদি ড্যাশ ফাংশন বলা হয়, সার্ভো কলমটি নিচে সরিয়ে দেয়, তবে স্টেপার মোটর চাকাটি ঘুরিয়ে দেয় যা কাগজটি টেনে কলমকে একটি ড্যাশ তৈরি করে। এবং যদি স্পেস ফাংশনগুলির মধ্যে একটিকে বলা হয় স্টেপার মোটর ঘুরছে কিন্তু কলম দিয়ে তাই এটি কাগজটিকে টেনে নিয়ে যায় অক্ষর বা শব্দের মধ্যে একটি স্থান তৈরি করে। যখন এটি সম্পন্ন হয়, এটি পরবর্তী অক্ষরে যায় এবং একই প্রক্রিয়া পুনরাবৃত্তি করে। আশা করি তুমি পছন্দ করেছ;)

কোড

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্নির্মাণ // এই stepper মোটর স্ট্রিং বাক্য = "*হ্যালো" জন্য পরিবর্তনশীল; // বিভিন্ন শব্দ লিখতে এই পরিবর্তনশীল পরিবর্তন করুন কিন্তু শুধুমাত্র ছোট অক্ষরে লিখুন এবং আপনার শব্দটি "*" Stepper myStepper (stepsPerRevolution, 8, 10, 9, 11) দিয়ে শুরু করুন; Servo myServo; // এই পদ্ধতিটিই রোবটকে ডট ভয়েড ডট () {Serial.println ("ডট স্টার্ট") লিখতে বাধ্য করে; myServo.write (160); বিলম্ব (1000); myServo.write (90); বিলম্ব (1000); myStepper.step (stepsPerRevolution); বিলম্ব (1000); Serial.println ("ডট সম্পন্ন"); } // এই পদ্ধতিটিই রোবটকে ড্যাশ ভয়েড ড্যাশ () {Serial.println ("ড্যাশ স্টার্ট") লিখতে বাধ্য করে; myServo.write (160); বিলম্ব (1000); myStepper.step (stepsPerRevolution); বিলম্ব (1000); myServo.write (90); বিলম্ব (1000); myStepper.step (stepsPerRevolution); বিলম্ব (1000); Serial.println ("ড্যাশ সম্পন্ন"); } // এই পদ্ধতিটিই রোবটকে প্রতিটি অক্ষরের শূন্য স্থান () {Serial.println ("স্পেস স্টার্ট") এর মধ্যে একটি স্থান ছেড়ে দেয়। myServo.write (90); বিলম্ব (1000); myStepper.step (200); বিলম্ব (1000); Serial.println ("স্থান সম্পন্ন"); } // এই পদ্ধতিটিই রোবটকে প্রতিটি শব্দের মধ্যে একটি বড় জায়গা ছেড়ে দেয় বিগস্পেস () {myServo.write (90); myStepper.step (250); বিলম্ব (1000); } void setup () {// আপনার সেটআপ কোড এখানে রাখুন, একবার চালানোর জন্য: Serial.begin (9600); myStepper.setSpeed (100); myServo.attach (5); int first = sentence.indexOf ('*'); // এই লুপের জন্য স্ট্রিং এর প্রতিটি অক্ষর দিয়ে যায় এবং তারপর এটি লিখতে সঠিক পদ্ধতিগুলি কল করে (int i = 0; i <sentence.length (); i ++) {if (sentence.charAt (first+i) == 'a') {Serial.print (".-"); বিন্দু (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'b') {Serial.print ("-…"); ড্যাশ (); বিন্দু (); বিন্দু (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'c') {Serial.print ("-.-।"); ড্যাশ (); বিন্দু (); ড্যাশ (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'd') {Serial.print ("-.."); ড্যাশ (); বিন্দু (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'e') {Serial.print ("।"); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'f') {Serial.print ("..-।"); বিন্দু (); বিন্দু (); ড্যাশ (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'g') {Serial.print ("-।"); ড্যাশ (); ড্যাশ (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'h') {Serial.print ("…।"); বিন্দু (); বিন্দু (); বিন্দু (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'i') {Serial.print (".."); বিন্দু (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'j') {Serial.print (".---"); বিন্দু (); ড্যাশ (); ড্যাশ (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'k') {Serial.print ("-.-"); ড্যাশ (); বিন্দু (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'l') {Serial.print (".-.."); বিন্দু (); ড্যাশ (); বিন্দু (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'm') {Serial.print ("-"); ড্যাশ (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'n') {Serial.print ("-।"); ড্যাশ (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'o') {Serial.print ("---"); ড্যাশ (); ড্যাশ (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'p') {Serial.print (".--।"); বিন্দু (); ড্যাশ (); ড্যাশ (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'q') {Serial.print ("--.-"); ড্যাশ (); ড্যাশ (); বিন্দু (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'r') {Serial.print (".-।"); বিন্দু (); ড্যাশ (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 's') {Serial.print ("…"); বিন্দু (); বিন্দু (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 't') {Serial.print ("-"); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'u') {Serial.print ("..-"); বিন্দু (); বিন্দু (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'v') {Serial.print ("…-"); বিন্দু (); বিন্দু (); বিন্দু (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'w') {Serial.print (".--"); বিন্দু (); ড্যাশ (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'x') {Serial.print ("-..-"); ড্যাশ (); বিন্দু (); বিন্দু (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == 'y') {Serial.print ("-.--"); ড্যাশ (); বিন্দু (); ড্যাশ (); ড্যাশ (); স্থান (); } অন্যথায় যদি (sentence.charAt (প্রথম + i) == 'z') {সিরিয়াল.প্রিন্ট ("-.."); ড্যাশ (); ড্যাশ (); বিন্দু (); বিন্দু (); স্থান (); } অন্যথায় যদি (sentence.charAt (first + i) == '') {Serial.print ("/"); বিগস্পেস (); }}} void loop () {// এখানে কিছু লিখবেন না}

ধাপ 7: সমস্যা সমাধান

চাকা নড়ছে না

চাকা এবং কাগজের মধ্যে খুব বেশি ঘর্ষণ হতে পারে, চাকাটিকে একটু উঁচু করার চেষ্টা করুন বা এটি পরিবর্তন করুন।

চাকা কাগজ টেনে নেয় কিন্তু তারপর কাগজ না টেনে ঘুরতে থাকে

আপনি স্টেপার মোটরের কেন্দ্রে চাকা আঠালো করেছেন তা নিশ্চিত করুন

বিন্দু এবং ড্যাশ সংযুক্ত

ডট, ড্যাশ এবং স্পেস ফাংশনগুলি সঠিকভাবে লেখা আছে কিনা তা পরীক্ষা করুন, সেগুলি এইরকম হওয়া উচিত:

// এই পদ্ধতিটিই রোবটকে একটি ডটভয়েড ডট () {Serial.println ("ডট স্টার্ট") লিখতে বাধ্য করে; myServo.write (160); বিলম্ব (1000); myServo.write (90); বিলম্ব (1000); myStepper.step (stepsPerRevolution); বিলম্ব (1000); Serial.println ("ডট সম্পন্ন"); }

// এই পদ্ধতিটিই রোবটকে ড্যাশ লিখতে বাধ্য করে

অকার্যকর ড্যাশ () {Serial.println ("ড্যাশ শুরু"); myServo.write (160); বিলম্ব (1000); myStepper.step (stepsPerRevolution); বিলম্ব (1000); myServo.write (90); বিলম্ব (1000); myStepper.step (stepsPerRevolution); বিলম্ব (1000); Serial.println ("ড্যাশ সম্পন্ন"); }

// এই পদ্ধতিটি রোবটকে প্রতিটি অক্ষরের মধ্যে একটি স্থান ছেড়ে দেয়

শূন্য স্থান () {Serial.println ("স্থান শুরু"); myServo.write (90); বিলম্ব (1000); myStepper.step (200); বিলম্ব (1000); Serial.println ("স্থান সম্পন্ন"); }

প্রস্তাবিত: