সুচিপত্র:

স্টেট মেশিন সহ আরডুইনো অটো রোবট: 4 টি ধাপ
স্টেট মেশিন সহ আরডুইনো অটো রোবট: 4 টি ধাপ

ভিডিও: স্টেট মেশিন সহ আরডুইনো অটো রোবট: 4 টি ধাপ

ভিডিও: স্টেট মেশিন সহ আরডুইনো অটো রোবট: 4 টি ধাপ
ভিডিও: কিভাবে উইন্ডোজ দিতে হয় | Windows 10 Setup process Step By Step | How To Install Windows 10 2024, জুলাই
Anonim
Image
Image

প্রজেক্ট সারসংক্ষেপ

এই প্রকল্পে, আমি আপনাকে অটো রোবট প্রোগ্রামিংয়ের একটি উপায় দেখাতে চাই, যা একটি Arduino ভিত্তিক DIY রোবট। ইয়াকিন্ডু স্টেটচার্ট টুলস (অ-বাণিজ্যিকের জন্য বিনামূল্যে) ব্যবহার করে আমরা সহজেই রাষ্ট্রীয় মেশিনগুলি ব্যবহার করে গ্রাফিক্যালি অটো রোবটের আচরণের মডেল তৈরি করতে পারি এবং C/C ++ কোড তৈরি করতে পারি। আমরা তাদের একটি উদাহরণ ব্যবহার করে আমাদের পছন্দ অনুযায়ী আচরণ প্রসারিত করব।

যারা রাষ্ট্রযন্ত্র কি তা জানেন না এবং জটিল উইকিপিডিয়া নিবন্ধের মাধ্যমে গুজব করতে চান না, তাদের জন্য এখানে একটি ছোট ব্যাখ্যা দেওয়া হল:

একটি স্টেট মেশিন হল নোড এবং সেই নোডের মধ্যে পথ। আপনার একটি প্রারম্ভিক নোড আছে এবং অন্যান্য নোডের পথ তাদের রক্ষীদের উপর নির্ভর করে, যা ইভেন্ট দ্বারা প্রতিনিধিত্ব করা যেতে পারে। এই ইভেন্টগুলি রাষ্ট্রীয় যন্ত্র থেকে বা বাইরে থেকে (যেমন একটি ফাংশন ইত্যাদি) উত্থাপিত হয়।

টুল নিজেই একটি ড্র্যাগ অ্যান্ড ড্রপ ইন্টারফেস এবং একটি ডোমেইন-নির্দিষ্ট ভাষা ব্যবহার করে। আমি এটা আপনার জন্য যেতে হবে, তাই আপনি তাদের ডকুমেন্টেশন খনন করতে হবে না আপনার Otto আপ এবং চলমান পেতে। IDE সেট আপ করা খুব কঠিন নয়, কারণ সমস্ত প্লাগ-ইন ইত্যাদি স্বয়ংক্রিয়ভাবে ইনস্টল করা উচিত।

সরবরাহ

অটো রোবট বা জোভি রোবট

এই দুটি রোবটই মূলত একই কাজ করে এবং একই API ব্যবহার করে। অটো রোবট হল একটি DIY রোবট, যার যন্ত্রাংশ অনলাইনে, যদি আপনার কাছে থাকে তবে 3D প্রিন্টারের সাহায্যে প্রিন্ট করার জন্য প্রস্তুত। এর বিকল্প হল জোভি রোবট, যা অনলাইনে কেনা যায় এবং ব্যবহারের জন্য প্রস্তুত।

YAKINDU স্টেটচার্ট টুলস

যে যন্ত্রটি আমরা রাষ্ট্রযন্ত্রের মডেল করার জন্য ব্যবহার করব। আপনি 30 দিনের ট্রায়াল দিয়ে শুরু করতে পারেন এবং পরে অ-বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে লাইসেন্স পেতে পারেন।

Arduino প্লাগইন এর জন্য Eclipse C ++ IDE

আমাদের এটি ম্যানুয়ালি ডাউনলোড করতে হবে না, কারণ IDE আমাদের জন্য এটি করে। আমি এখনও ভেবেছিলাম এটি এখানে তালিকাভুক্ত করা ভাল হবে।

ধাপ 1: সবকিছু সেট আপ করা

অটোকে কীভাবে ইন্টারফেস করতে হয় তা বোঝা
অটোকে কীভাবে ইন্টারফেস করতে হয় তা বোঝা

আইডিই ইনস্টল করার পরে, এটি চালান এবং আপনার পিসির যেকোনো জায়গায় একটি ওয়ার্কস্পেস সেট আপ করুন (সেটআপটি প্রথমবারের মতো Eclipse ব্যবহার করার মতো)। যখন প্রোগ্রামটি পুরোপুরি শুরু হয়ে গেছে, স্বাগত পৃষ্ঠায় ক্লিক করুন এবং 'ফাইল -> নতুন -> উদাহরণ …' এ ক্লিক করুন এবং তারপরে 'ইয়াকিন্ডু স্টেটচার্ট উদাহরণ' নির্বাচন করুন, কিছুক্ষণ অপেক্ষা করুন এবং "এমবেডেড সিস্টেম -> জোউই (সি ++) অনুসন্ধান করুন) "উদাহরণ।

গুরুত্বপূর্ণ: 'ডিপেন্ডেন্সি ইনস্টল করুন …' নামক উপরের ডান বোতামে ক্লিক করুন! এটি আপনার জন্য সবকিছু ইনস্টল করে, তাই আপনাকে লাইব্রেরি, প্লাগ-ইন এবং এর মত চিন্তা করতে হবে না। উদাহরণটি ডাউনলোড করুন, "এমবেডেড সিস্টেমস -> জোভি (সি ++)" উদাহরণের নির্দেশাবলী অনুসরণ করুন এবং তারপরে পরবর্তী ধাপটি চালিয়ে যান।

ধাপ 2: অটোকে কীভাবে ইন্টারফেস করতে হয় তা বোঝা

". Sct" ফাইলে যান এবং আপনার পছন্দ মতো স্টেট মেশিন এডিট করুন। ডানদিকে উপলব্ধ সমস্ত আইটেম সহ একটি মেনু রয়েছে। আমরা কেবল রাজ্য এবং রূপান্তরে আগ্রহী।

ছবিতে, আপনি দেখতে পাচ্ছেন যে, আমি কিছু জিনিস ট্রানজিশনে লিখেছি; "X এর পরে" বেশ স্ব-ব্যাখ্যামূলক এবং "সর্বদা" এর অর্থ হল, এটি রাজ্য থেকে কোড শেষ করার পরেই সেখানে যায়। "এন্ট্রি /" এর মানে হল, কোডটি রাজ্যে প্রবেশ করার পরই কার্যকর করা উচিত।

আইডিই স্টেট মেশিনকে সি ++ এ কম্পাইল করে, যা আরডুইনো কমপ্লায়েন্ট। অটোর বৈশিষ্ট্যগুলি ব্যবহার করতে, আমাদের ইন্টারফেস অ্যাক্সেস করার জন্য আমাদের কিছুটা কাজ করতে হবে।

নিম্নোক্ত কীওয়ার্ডগুলি স্টেট মেশিন ব্যবহার করার জন্য জিনিসগুলি সংজ্ঞায়িত করতে ব্যবহার করা যেতে পারে:

ধ্রুবক, যা মান ধরে রাখে এবং পরিবর্তন করা যায় না

ভেরিয়েবল, যা মান ধরে রাখে এবং পরিবর্তন করা যায়

অপারেশন, যা বাস্তবায়নের জন্য ভার্চুয়াল C ++ পদ্ধতিতে উৎপন্ন হবে

ইন্টারফেস:

const PIN_YL: integer = 2 const PIN_YR: integer = 3 const PIN_RL: integer = 4 const PIN_RR: integer = 5 const sound: integer = 2 const mouth_heart: integer = 13 const mouth_happyOpen: integer = 11 operation zowi_init (YL: integer, YR ।

প্রো টিপ: যদি আপনি না জানেন যে কোন জায়গায় কী প্রবেশ করতে হবে অথবা কোনো ত্রুটি আছে বলে মনে হচ্ছে, আপনি কী প্রবেশ করতে পারেন তার কিছু ইঙ্গিত পেতে "ctrl+space" টিপুন।

উপরন্তু, আপনার উদাহরণগুলি দেখা উচিত, তাদের সেখানে কিছু কোড আছে! আপনি মডেলটি সম্পাদনা করার জন্য তাদের একটি কাঠামো হিসাবে ব্যবহার করতে পারেন, যা একমাত্র অংশ যা আমরা এখন পর্যন্ত আগ্রহী।

ধাপ 3: ফাঁক পূরণ করা

শূন্যস্থান পূরণ করা
শূন্যস্থান পূরণ করা

মডেলটিতে কিছু পরিবর্তন করার পরে আপনি "zowiSCT.sgen -> জেনারেট কোড আর্টিফ্যাক্টস" এ ডান ক্লিক করতে পারেন। এটি C ++ এ ভার্চুয়াল ফাংশন তৈরি করে, যা রাষ্ট্রীয় মেশিনে "src-gen" ফোল্ডারে ঘোষণা করা হয়, যা আমরা তখন সাধারণ C ++ ব্যবহার করে প্রয়োগ করি।

অটো থেকে আমরা যে কার্যকারিতাটি চাই তা পেতে "src" ফোল্ডারে এই দুটি ফাইল তৈরি করুন।

প্রথমে Impl.h

#ifndef SRC_IMPL_H_

#সংজ্ঞায়িত করুন SRC_IMPL_H_ #অন্তর্ভুক্ত "../src-gen/ZowiSCT.h" ক্লাস Impl: public ZowiSCT:: DefaultSCI_OCB {public: Impl (); ভার্চুয়াল ~ ইমপ্ল (); অকার্যকর zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR); অকার্যকর zowi_home (); অকার্যকর zowi_putMouth (sc_integer mouthType); অকার্যকর zowi_sing (sc_integer songName); অকার্যকর zowi_walk (sc_real ধাপ, sc_integer টি, sc_integer dir); অকার্যকর zowi_shakeLeg (); }; #endif / * SRC_IMPL_H_ * /

তারপর Impl.cpp

#অন্তর্ভুক্ত "Impl.h"

#অন্তর্ভুক্ত "../Zowi/Zowi.h" Zowi zowi = নতুন Zowi (); Impl:: Impl () {} Impl:: ~ Impl () {} void Impl:: zowi_home () {zowi.home (); } void Impl:: zowi_init (sc_integer YL, sc_integer YR, sc_integer RL, sc_integer RR) {zowi.init (YL, YR, RL, RR); } void Impl:: zowi_putMouth (sc_integer mouthType) {zowi.putMouth (mouthType); } void Impl:: zowi_sing (sc_integer songName) {zowi.sing (songName); } void Impl:: zowi_walk (sc_real steps, sc_integer T, sc_integer dir) {zowi.walk (ধাপ, T, dir); } void Impl:: zowi_shakeLeg () {zowi.shakeLeg (); }

ধাপ 4: অটো ডান্স তৈরি করা

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

আপনি যদি চান, আপনি অন্য কিছু উদাহরণ পরীক্ষা করতে পারেন: YAKINDU Statechart Tools

প্রস্তাবিত: