সুচিপত্র:
- সরবরাহ
- ধাপ 1: ডিজিটাল ওয়াচ কিভাবে কাজ করে
- ধাপ 2: রাষ্ট্রীয় যন্ত্র
- ধাপ 3: এলসিডি কীপ্যাড শিল্ড
- ধাপ 4: স্টেট মেশিনকে ইন্টারফেস করা
- ধাপ 5: একসঙ্গে ওয়্যারিং জিনিস
- ধাপ 6: উদাহরণ পান
ভিডিও: একটি সসীম রাজ্য মেশিন ব্যবহার করে আরডুইনোতে ডিজিটাল ওয়াচ: 6 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
আরে, আমি আপনাকে দেখাবো কিভাবে YAKINDU স্টেটচার্ট টুল দিয়ে একটি ডিজিটাল ঘড়ি তৈরি করা যায় এবং একটি Arduino তে চালানো যায়, যা একটি LCD কীপ্যাড শিল্ড ব্যবহার করে।
ডিজিটাল ঘড়ির আসল মডেল ডেভিড হারেল থেকে নেওয়া হয়েছিল। সে সম্পর্কে একটি গবেষণাপত্র প্রকাশ করেছে
"[…] রাষ্ট্রীয় মেশিন এবং রাষ্ট্রীয় চিত্রের প্রচলিত আনুষ্ঠানিকতার বিস্তৃত বিস্তার।"
এই গবেষণাপত্রে তিনি তার গবেষণার জন্য ডিজিটাল ঘড়ির উদাহরণ ব্যবহার করেছেন। আমি এটিকে অনুপ্রেরণা হিসেবে ব্যবহার করেছি এবং YAKINDU স্টেটচার্ট টুলস (রাষ্ট্রযন্ত্রের গ্রাফিক্যাল মডেল তৈরির একটি সরঞ্জাম এবং এর সাথে C/C ++ কোড তৈরি করার জন্য একটি ঘড়ি) এবং পুনর্নির্মাণ করেছি এবং এটি একটি আরডুইনোতে পুনরায় জীবিত করেছি।
সরবরাহ
হার্ডওয়্যার:
- আরডুইনো উনো বা মেগা
- এলসিডি কিপ্যাড শিল্ড
সফটওয়্যার:
- YAKINDU স্টেটচার্ট টুলস
- Arduino এর জন্য Eclipse C ++ IDE
ধাপ 1: ডিজিটাল ওয়াচ কিভাবে কাজ করে
ডিজিটাল ঘড়ি কীভাবে কাজ করা উচিত তা নির্ধারণ করে শুরু করা যাক। আপনার কি মনে আছে এগুলো… চলুন বলা যাক… “অতিশয়” ডিজিটাল ঘড়িগুলি সবাই 90 এর দশকে ফিরে পেয়েছিল? একটি ইন্টিগ্রেটেড স্টপওয়াচ, বিভিন্ন অ্যালার্ম এবং এর বিরক্তিকর বিপ প্রতি ঘণ্টায়। যদি না হয়, তাহলে দেখুন: 90 এর ডিজিটাল ঘড়ি।
তাই মূলত এটি বিভিন্ন মোড সহ একটি কনফিগারযোগ্য ঘড়ি। প্রধানত, বর্তমান সময় প্রদর্শিত হবে, কিন্তু কিছু অন্যান্য বৈশিষ্ট্য আছে। ইনপুট হিসাবে, আপনি একটি চালু/বন্ধ, একটি মোড এবং একটি সেট বোতাম পেয়েছেন। উপরন্তু, আপনি আলো চালু এবং বন্ধ করতে পারেন। মোড বোতামের সাহায্যে আপনি মোডগুলির মধ্যে পার্থক্য করতে পারেন এবং ঘড়ির বৈশিষ্ট্যগুলি সক্রিয়/অক্ষম করতে পারেন:
- সময় প্রদর্শন করুন (ঘড়ি)
- তারিখ প্রদর্শন করুন (তারিখ)
- অ্যালার্ম সেট করুন (অ্যালার্ম 1, অ্যালার্ম 2)
- চিম সক্ষম করুন/নিষ্ক্রিয় করুন (চিম সেট করুন)
- স্টপওয়াচ ব্যবহার করুন (স্টপ ওয়াচ)
মেনুগুলির মধ্যে, আপনি মোড কনফিগার করতে অন/অফ বোতামটি ব্যবহার করতে পারেন। সেট বাটন আপনাকে সময় নির্ধারণ করতে দেয় - যেমন ঘড়ি বা অ্যালার্মের জন্য। স্টপওয়াচ লাইট অন এবং লাইট অফ বোতাম ব্যবহার করে নিয়ন্ত্রণ করা যায় - শুরু করা যায় এবং বন্ধ করা যায়। আপনি একটি সমন্বিত ল্যাপ কাউন্টার ব্যবহার করতে পারেন
তদুপরি, এখানে একটি আওয়াজ রয়েছে, যা প্রতি ঘণ্টায় ঘণ্টা বাজায় এবং একটি নিয়ন্ত্রণযোগ্য ব্যাকলাইট সংহত হয়। প্রথম ধাপে, আমি তাদের আরডুইনোতে সংযুক্ত করিনি।
ধাপ 2: রাষ্ট্রীয় যন্ত্র
আমি এই উদাহরণের ব্যাখ্যার জন্য বিস্তারিতভাবে যেতে চাই না। এটি এমন নয় যে এটি খুব জটিল, এটি একটু বড়। আমি কীভাবে এটি কাজ করে তার মূল ধারণাটি ব্যাখ্যা করার চেষ্টা করব। মৃত্যুদণ্ডটি স্ব-ব্যাখ্যা করা উচিত, মডেলটি দেখে বা ডাউনলোড করে এবং এটি অনুকরণ করে। রাষ্ট্র যন্ত্রের কিছু অংশ উপ -অঞ্চলে সমষ্টি হয়, যেমন নির্ধারিত সময় অঞ্চল। এর সাথে, রাষ্ট্রযন্ত্রের পঠনযোগ্যতা নিশ্চিত করতে হবে।
মডেলটি দুটি ভাগে বিভক্ত - একটি গ্রাফিকাল এবং একটি টেক্সচুয়াল। পাঠ্য অংশে ঘটনা, পরিবর্তনশীল ইত্যাদি সংজ্ঞায়িত করা হবে। গ্রাফিক্যাল অংশে - স্টেট ডায়াগ্রাম - মডেলের লজিক্যাল এক্সিকিউশন নির্দিষ্ট করা আছে। একটি স্টেট মেশিন তৈরি করতে, যা নির্দিষ্ট আচরণ পূরণ করে, কিছু ইনপুট ইভেন্ট প্রয়োজন, যা মডেলটিতে ব্যবহার করা যেতে পারে: অনঅফ, সেট, মোড, লাইট এবং লাইট_আর। সংজ্ঞা বিভাগে একটি অভ্যন্তরীণ ইভেন্ট ব্যবহার করা হয়, যা প্রতি 100 ms সময় বৃদ্ধি করে:
প্রতি 100 ms / সময় += 1
100 ms ধাপের উপর ভিত্তি করে বর্তমান সময় HH: MM: SS ফরম্যাটে গণনা করা হবে:
display.first = (সময় / 36000) % 24;
display.second = (সময় / 600) % 60; display.third = (সময় / 10) % 60;
অপারেশন আপডেট এলসিডি ব্যবহার করে প্রতিবার স্টেট মেশিনকে ডাকা হলে মানগুলি এলসিডি ডিসপ্লেতে যুক্ত হবে:
display.updateLCD (display.first, display.second, display.third, display.text)
ডিজিটাল ওয়াচ কিভাবে কাজ করে সে বিভাগে স্টেট মেশিনের মৌলিক এক্সিকিউশন ইতিমধ্যে সংজ্ঞায়িত করা হয়েছে। টুলের মধ্যে আমি কিছু "বিশেষ" মডেলিং উপাদান যেমন কম্পোজিট স্টেট, হিস্ট্রি, সাব-ডায়াগ্রামস, এক্সিটনোডস ইত্যাদি ব্যবহার করেছি। ইউজার গাইডে বিস্তারিত বর্ণনা পাওয়া যাবে।
ধাপ 3: এলসিডি কীপ্যাড শিল্ড
এলসিডি কীপ্যাড শিল্ডটি সাধারণ প্রকল্পগুলির জন্য বেশ শীতল, যার জন্য ভিজ্যুয়ালাইজেশনের জন্য একটি স্ক্রিন এবং ইনপুট হিসাবে কিছু বোতাম প্রয়োজন - একটি সাধারণ, সাধারণ এইচএমআই (হিউম্যান মেশিন ইন্টারফেস)। এলসিডি কীপ্যাড শিল্ডটিতে পাঁচটি ব্যবহারকারী বোতাম এবং অন্যটি রিসেট করার জন্য রয়েছে। পাঁচটি বোতাম একসাথে Arduino এর A0 পিনের সাথে সংযুক্ত। তাদের প্রত্যেকটি একটি ভোল্টেজ ডিভাইডারের সাথে সংযুক্ত, যা বোতামগুলির মধ্যে পার্থক্য করতে দেয়।
আপনি নির্দিষ্ট মান খুঁজে পেতে analogRead (0) ব্যবহার করতে পারেন, যা অবশ্যই নির্মাতার দ্বারা ভিন্ন হতে পারে। এই সহজ প্রকল্পটি LCD- তে বর্তমান মান প্রদর্শন করে:
#অন্তর্ভুক্ত "Arduino.h"
#অন্তর্ভুক্ত "LiquidCrystal.h" LiquidCrystal lcd (8, 9, 4, 5, 6, 7); অকার্যকর সেটআপ () {lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.write ("পরিমাপ মূল্য"); } অকার্যকর লুপ () {lcd.setCursor (0, 1); lcd.print (""); lcd.setCursor (0, 1); lcd.print (analogRead (0)); বিলম্ব (200); }
এগুলি আমার পরিমাপ করা ফলাফল:
- কোনটি নয়: 1023
- নির্বাচন করুন: 640
- বাম: 411
- ডাউন: 257
- উপরে: 100
- ডান: 0
এই থ্রেশহোল্ডগুলির সাহায্যে বোতামগুলি পড়া সম্ভব:
#ডিফাইন নন 0 #ডিফাইন SELECT 1 #ডিফাইন লেফট 2 #ডিফাইন ডাইন 3 #ডিফাইন ইউপি 4 #ডিফাইন রাইট 5 স্ট্যাটিক int readButton () {int result = 0; ফলাফল = analogRead (0); যদি (ফলাফল <50) {রিটার্ন ডান; } যদি (ফলাফল <150) {রিটার্ন ইউপি; } যদি (ফলাফল <300) {রিটার্ন ডাউন; } যদি (ফলাফল <550) {বাম ফেরত; } if (result <850) {return SELECT; } ফিরে না; }
ধাপ 4: স্টেট মেশিনকে ইন্টারফেস করা
স্টেট মেশিনের জেনারেটেড সি ++ কোড ইন্টারফেস প্রদান করে, যা স্টেট মেশিন নিয়ন্ত্রণের জন্য বাস্তবায়ন করতে হবে। প্রথম ধাপ হল কীপ্যাড শিল্ডের কীগুলির সাথে ইভেন্টগুলিকে সংযুক্ত করা। আমি ইতিমধ্যেই দেখিয়েছি কিভাবে বোতামগুলি পড়তে হয়, কিন্তু রাষ্ট্রীয় মেশিনে তাদের ইন্টারফেস করার জন্য, বোতামগুলি ডিবাউন্স করা প্রয়োজন - অন্যথায়, ইভেন্টগুলি একাধিকবার উত্থাপিত হবে, যার ফলাফল অনির্দেশ্য আচরণ। সফটওয়্যার ডিবাউন্সিং এর ধারণা নতুন নয়। আপনি Arduino ডকুমেন্টেশন একবার দেখে নিতে পারেন।
আমার বাস্তবায়নে, আমি একটি পতনশীল প্রান্ত সনাক্ত করি (বোতামটি ছেড়ে দেওয়া)। আমি বোতামের মান পড়ি, 80 ms এর জন্য অপেক্ষা করি (50 এর পরিবর্তে 80 এর সাথে ভাল ফলাফল পেয়েছি), ফলাফল সংরক্ষণ করুন এবং নতুন মান পড়ুন। যদি OldResult NONE (unpressed) না হয় এবং নতুন রেজাল্ট NONE না হয়, আমি জানি, বোতামটি আগেও টিপানো হয়েছে এবং এখন প্রকাশ করা হয়েছে। তারপরে, আমি রাষ্ট্রীয় মেশিনের ইনপুট ইভেন্টটি উত্থাপন করি।
int oldState = NONE; static void raiseEvents () {int buttonPressed = readButton (); বিলম্ব (80); oldState = buttonPressed; যদি (oldState! = NONE && readButton () == NONE) {switch (oldState) {case SELECT: {stateMachine-> getSCI_Button ()-> raise_mode (); বিরতি; } কেস বাম: {stateMachine-> getSCI_Button ()-> raise_set (); বিরতি; } কেস ডাউন: {stateMachine-> getSCI_Button ()-> raise_light (); বিরতি; } কেস ইউপি: {stateMachine-> getSCI_Button ()-> raise_light_r (); বিরতি; } ক্ষেত্রে অধিকার: {stateMachine-> getSCI_Button ()-> raise_onoff (); বিরতি; } ডিফল্ট: {বিরতি; }}}}
ধাপ 5: একসঙ্গে ওয়্যারিং জিনিস
প্রধান প্রোগ্রাম তিনটি অংশ ব্যবহার করে:
- রাষ্ট্রীয় যন্ত্র
- একটি টাইমার
- একটি ডিসপ্লে হ্যান্ডলার (সাধারণ lcd.print (…))
DigitalWatch* stateMachine = নতুন DigitalWatch (); CPPTimerInterface* timer_sct = new CPPTimerInterface (); DisplayHandler* displayHandler = নতুন DisplayHandler ();
স্টেট মেশিন একটি ডিসপ্লে হ্যান্ডলার ব্যবহার করে এবং একটি টাইমার পেয়েছে, যা সময়োপযোগী ইভেন্টগুলি নিয়ন্ত্রণ করতে আপডেট করা হবে। এর পরে, রাষ্ট্রীয় মেশিনটি শুরু হয় এবং প্রবেশ করে।
অকার্যকর সেটআপ () {stateMachine-> setSCI_Display_OCB (displayHandler); stateMachine-> setTimer (timer_sct); stateMachine-> init (); stateMachine-> এন্টার (); }লুপ তিনটি কাজ করে:
- ইনপুট ইভেন্টগুলি উত্থাপন করুন
- অতিবাহিত সময় গণনা করুন এবং টাইমার আপডেট করুন
- রাষ্ট্রযন্ত্রকে কল করুন
দীর্ঘ current_time = 0; দীর্ঘ last_cycle_time = 0; অকার্যকর লুপ () {raiseEvents (); last_cycle_time = current_time; current_time = মিলিস (); timer_sct-> updateActiveTimer (stateMachine, current_time - last_cycle_time); stateMachine-> runCycle (); }
ধাপ 6: উদাহরণ পান
এটাই. সম্ভবত, আমি বাস্তবায়নের প্রতিটি বিবরণ উল্লেখ করিনি, তবে আপনি উদাহরণটি দেখতে পারেন বা একটি মন্তব্য করতে পারেন।
একটি চলমান আইডিইতে উদাহরণ যোগ করুন: ফাইল -> নতুন -> উদাহরণ -> ইয়াকিন্ডু স্টেটচার্ট উদাহরণ -> পরবর্তী -> আরডুইনো -ডিজিটাল ওয়াচ (সি ++)
> আপনি এখানে IDE ডাউনলোড করতে পারেন <<
আপনি 30 দিনের ট্রায়াল দিয়ে শুরু করতে পারেন। পরে, আপনাকে অবশ্যই একটি লাইসেন্স পেতে হবে, যা অ-বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে!
প্রস্তাবিত:
DIY -- কিভাবে একটি মাকড়সা রোবট তৈরি করা যায় যা Arduino Uno ব্যবহার করে স্মার্টফোন ব্যবহার করে নিয়ন্ত্রণ করা যায়: 6 টি ধাপ
DIY || কিভাবে একটি স্পাইডার রোবট তৈরি করা যায় যা Arduino Uno ব্যবহার করে স্মার্টফোন ব্যবহার করে নিয়ন্ত্রণ করা যায়: স্পাইডার রোবট তৈরির সময় কেউ রোবটিক্স সম্পর্কে অনেক কিছু শিখতে পারে। এই ভিডিওতে আমরা আপনাকে দেখাবো কিভাবে একটি স্পাইডার রোবট তৈরি করা যায়, যা আমরা আমাদের স্মার্টফোন ব্যবহার করে পরিচালনা করতে পারি (Androi
একটি PIR, একটি 3D মুদ্রিত কুমড়া এবং ট্রল Arduino সামঞ্জস্যপূর্ণ অডিও প্রাঙ্গর/ব্যবহারিক জোক বোর্ড ব্যবহার করে একটি হ্যালোইন স্কেয়ার মেশিন: 5 ধাপ
একটি PIR, একটি 3D মুদ্রিত কুমড়া এবং ট্রল Arduino সামঞ্জস্যপূর্ণ অডিও প্রাঙ্কর/ব্যবহারিক জোক বোর্ড ব্যবহার করে একটি হ্যালোইন স্কেয়ার মেশিন: ইঞ্জিনিয়ারিং শক ইলেকট্রনিক্সের প্যাট্রিক থমাস মিচেল দ্বারা নির্মিত ট্রল বোর্ড, এবং কিকস্টার্টে পুরোপুরি অর্থায়ন করা হয়েছিল খুব বেশিদিন আগে নয়। আমি ব্যবহার করার কিছু উদাহরণ লিখতে সাহায্য করার জন্য কয়েক সপ্তাহ আগে আমার পুরস্কার পেয়েছি এবং একটি প্রচেষ্টায় একটি Arduino লাইব্রেরি তৈরি করেছি
কিভাবে একটি ডিজিটাল ক্যালিপার ছিঁড়ে ফেলা যায় এবং কিভাবে একটি ডিজিটাল ক্যালিপার কাজ করে: 4 টি ধাপ
কিভাবে একটি ডিজিটাল ক্যালিপার ছিঁড়ে ফেলা যায় এবং কিভাবে একটি ডিজিটাল ক্যালিপার কাজ করে: অনেকেই জানেন কিভাবে পরিমাপের জন্য ক্যালিপার ব্যবহার করতে হয়। এই টিউটোরিয়ালটি আপনাকে শেখাবে কিভাবে ডিজিটাল ক্যালিপার ছিঁড়ে ফেলতে হয় এবং কিভাবে ডিজিটাল ক্যালিপার কাজ করে তার ব্যাখ্যা
একটি MSP430: 6 ধাপে সসীম রাজ্য মেশিন
এমএসপি 430 এ সসীম স্টেট মেশিন: আমি আপনাকে টেক্সাস ইন্সট্রুমেন্টস কোড কম্পোজার স্টুডিওতে সরাসরি ইয়াকিন্ডু স্টেটচার্ট টুলস ব্যবহার করে ফিনাইট স্টেট মেশিন (এফএসএম) দিয়ে এমএসপি 430 জি 2 লঞ্চপ্যাড কীভাবে প্রোগ্রাম করতে হয় তা দেখাতে যাচ্ছি। এই টিউটোরিয়ালে ছয়টি ধাপ রয়েছে: YAKINDU স্টেটচার্ট টুল ইনস্টল করা হচ্ছে
ফিজেট স্পিনার ব্যবহার করে আরডুইনোতে হল ইফেক্ট সেন্সর: 3 টি ধাপ (ছবি সহ)
ফিডগেট স্পিনার ব্যবহার করে আরডুইনোতে হল ইফেক্ট সেন্সর: বিমূর্ত এই প্রজেক্টে আমি ব্যাখ্যা করছি কিভাবে হল ইফেক্ট সেন্সর কাজ করে আরডুইনো বোর্ড দিয়ে ফিজেট স্পিনার স্পিড পরিমাপ করে। কাজ:-একটি হল ইফেক্ট সেন্সর একটি ট্রান্সডুসার যা একটি চৌম্বকীয় ক্ষেত্রের প্রতিক্রিয়ায় তার আউটপুট ভোল্টেজের তারতম্য করে। হলের প্রভাব