সুচিপত্র:
- সরবরাহ
- ধাপ 1: ভিত্তি নির্মাণ
- ধাপ 2: Servo পিস
- ধাপ 3: বেসে সার্ভো মোটর এবং পেপার রোল যুক্ত করা
- ধাপ 4: স্টেপার মোটর ফ্রেম তৈরি করা
- ধাপ 5: সমাপ্তি স্পর্শ
- ধাপ 6: ইলেকট্রনিক্স
- ধাপ 7: সমস্যা সমাধান
ভিডিও: Arduino Morse Code Writer: 7 ধাপ (ছবি সহ)
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 07:56
আমি এমন একটি রোবট বানিয়েছি যা যেকোনো লেখাকে মোর্স কোডে রূপান্তর করতে পারে এবং তারপর তা লিখে রাখে !! এটি কার্ডবোর্ড এবং লেগো থেকে তৈরি এবং ইলেকট্রনিক্সের জন্য আমি আরডুইনো এবং মাত্র দুটি মোটর ব্যবহার করেছি।
সরবরাহ
আরডুইনো ইউনো বোর্ড স্টেপার মোটর মাইক্রো সার্ভো 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: বেসে সার্ভো মোটর এবং পেপার রোল যুক্ত করা
আমি বেসের একপাশে আরও দুটি ইট যোগ করে সার্ভো টুকরোটি সমর্থন করি এবং আমি এটিকে জায়গায় আঠালো করি।
ধাপ 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 ("স্থান সম্পন্ন"); }
প্রস্তাবিত:
Pixy2Bot অবজেক্ট ফলোয়ার (Servo Code): 4 ধাপ
Pixy2Bot অবজেক্ট ফলোয়ার (Servo Code): একটি Arduino Uno + Motor Shield, দুটি সস্তা ক্রমাগত সার্ভোস এবং একটি Pixy2 দিয়ে রোবট (কোন প্যান/টিল্ট মেকানিজম) অনুসরণ করে একটি সহজ বস্তু তৈরি করা। ভিডিও: https://youtu.be/lxBLt5DJ5BM
কিভাবে সহজ ধাপ এবং ছবি দিয়ে একটি কম্পিউটারকে আলাদা করা যায়: 13 টি ধাপ (ছবি সহ)
কিভাবে সহজ ধাপ এবং ছবি দিয়ে একটি কম্পিউটারকে ডিসাসেম্বল করবেন: এটি একটি পিসি কিভাবে ডিসাসেম্বল করা যায় সে সম্পর্কে একটি নির্দেশনা। বেশিরভাগ মৌলিক উপাদানগুলি মডুলার এবং সহজেই সরানো হয়। তবে এটি গুরুত্বপূর্ণ যে আপনি এটি সম্পর্কে সংগঠিত হন। এটি আপনাকে অংশগুলি হারানো থেকে রক্ষা করতে সহায়তা করবে, এবং পুনরায় সমাবেশ তৈরিতেও সহায়তা করবে
Arduino Morse কোড ট্রান্সমিটার: 11 টি ধাপ
আরডুইনো মোর্স কোড ট্রান্সমিটার: এই নির্দেশনায়, আপনি একটি মোর্স কোড ট্রান্সমিটার তৈরির জন্য একটি আরডুইনো ইউনো ব্যবহার করবেন এবং আপনার প্রেরিত বার্তাগুলি পড়ার জন্য সিরিয়াল মনিটর ব্যবহার করবেন। আপনার প্রয়োজনীয় যন্ত্রাংশ: Arduino UnoBreadboardBuzzerButtonsJumper wires
Arduino Yún Morse Generator: 4 ধাপ (ছবি সহ)
আরডুইনো ইয়ান মোর্স জেনারেটর: কখনও এমন একটি বারে ছিলেন যেখানে আপনি আপনার বন্ধুর সাথে কথা বলতে পারতেন না কারণ সঙ্গীত খুব জোরে ছিল? আচ্ছা এখন আপনি তাকে মোর্স কোডে বিয়ার চাইতে পারেন! চল শুরু করি
Basys 3 Morse Decoder: 11 ধাপ
Basys 3 Morse Decoder: এটি একটি কলেজ শ্রেণীর জন্য একটি প্রকল্প। এই প্রকল্পটি ভিএইচডিএলে ভিভাদো নামে একটি প্রোগ্রামে লেখা হয়েছে। বেসিস 3 বোর্ড ব্যবহার করে একটি মোর্স ডিকোডার বাস্তবায়নের জন্য প্রয়োজনীয় সমস্ত মডিউল তৈরির কাজগুলি। বোর্ডটি একটি সুই থেকে মোর্স কোড নিতে ব্যবহৃত হয়