সুচিপত্র:

ক্যানস্যাট - নতুনদের গাইড: 6 টি ধাপ
ক্যানস্যাট - নতুনদের গাইড: 6 টি ধাপ

ভিডিও: ক্যানস্যাট - নতুনদের গাইড: 6 টি ধাপ

ভিডিও: ক্যানস্যাট - নতুনদের গাইড: 6 টি ধাপ
ভিডিও: শিউলি শিলা জয়ী কে দাঁতভাঙ্গা জবাব দিলেন খাদিজা আজিজ | সেরা বিতর্ক প্রতিযোগিতা | সবাই অবাক 2024, জুলাই
Anonim
CanSat - শিক্ষানবিস গাইড
CanSat - শিক্ষানবিস গাইড
CanSat - শিক্ষানবিস গাইড
CanSat - শিক্ষানবিস গাইড
CanSat - শিক্ষানবিস গাইড
CanSat - শিক্ষানবিস গাইড

এই নির্দেশাবলীর মূল উদ্দেশ্য হল একটি ক্যানস্যাটের উন্নয়ন প্রক্রিয়া ধাপে ধাপে ভাগ করা। কিন্তু, শুরু করার আগে, আসুন এটি সত্যিই স্পষ্ট করে তুলি যে একটি ক্যানস্যাট কী এবং এটি কী মূল কাজ, এছাড়াও সুযোগ গ্রহণ করে, আমরা আমাদের দলকে পরিচয় করিয়ে দিচ্ছি। এই প্রকল্পটি আমাদের বিশ্ববিদ্যালয়ে ইউনিভার্সিডেড টেকনোলজিকাল ফেডারেল ডো পারানা (ইউটিএফপিআর), ক্যাম্পাস কর্নেলিও প্রোসেপিওতে একটি এক্সটেনশন প্রকল্প হিসাবে শুরু হয়েছিল। আমাদের উপদেষ্টার দ্বারা পরিচালিত, আমরা ক্যানস্যাটে প্রবেশের অভিপ্রায়ে একটি কর্মপরিকল্পনা তৈরি করেছি, যার অর্থ হল এর সমস্ত দিক এবং বৈশিষ্ট্যগুলি অধ্যয়ন করা, যাতে এটি কীভাবে কাজ করে তা বুঝতে সক্ষম হয়, যার পরিণতিতে নির্মাণের ফলাফল হবে একটি CanSat, এবং এই গাইডের উন্নয়ন। একটি ক্যানস্যাটকে পিকোস্যাটেলাইট হিসাবে শ্রেণীবদ্ধ করা হয়, যার মানে হল তার ওজন 1 কেজি পর্যন্ত সীমাবদ্ধ, কিন্তু সাধারণত ক্যানস্যাটের ওজন প্রায় 350 গ্রাম এবং এর কাঠামো সোডা, 6, 1 সেমি ব্যাসের সিলিন্ডার, 11, 65 সেমি লম্বা। এই মডেলটি একটি স্যাটেলাইটের বিকাশের প্রক্রিয়াকে সহজ করার অভিপ্রায় দিয়ে উপস্থাপন করা হয়েছিল, যাতে এই প্রযুক্তিগুলিতে বিশ্ববিদ্যালয়গুলির অ্যাক্সেস সক্ষম করা যায়, এই প্যাটার্নটি গ্রহণ করা প্রতিযোগিতার কারণে জনপ্রিয়তা অর্জন করে। সাধারণভাবে, ক্যানস্যাটগুলি 4 টি কাঠামোর উপর ভিত্তি করে তৈরি করা হয়, অর্থাৎ, পাওয়ার সিস্টেম, সেন্সিং সিস্টেম, টেলিমেট্রি সিস্টেম এবং প্রধান সিস্টেম। সুতরাং আসুন প্রতিটি সিস্টেমের উপর ঘনিষ্ঠভাবে নজর দেওয়া যাক: - বিদ্যুৎ ব্যবস্থা: এই সিস্টেমটি তার চাহিদা অনুযায়ী অন্যদের বৈদ্যুতিক শক্তি সরবরাহের জন্য দায়ী। অন্য কথায়, এটি সিস্টেমগুলিকে প্রয়োজনীয় ভোল্টেজ এবং কারেন্ট সরবরাহ করার কথা, এর সীমা সম্মান করে। এছাড়াও, এটি সুরক্ষা উপাদানগুলিকে বৈশিষ্ট্যযুক্ত করতে পারে, যাতে অন্যান্য সিস্টেমের নিরাপত্তা এবং সঠিক আচরণের গ্যারান্টি থাকে। সাধারণত এটি একটি ব্যাটারি এবং একটি ভোল্টেজ রেগুলেটর সার্কিটের উপর ভিত্তি করে, কিন্তু অন্যান্য অনেক বৈশিষ্ট্য যোগ করা যেতে পারে, যেমন পাওয়ার ম্যানেজমেন্ট কৌশল এবং বিভিন্ন ধরণের সুরক্ষা। - সেন্সিং সিস্টেম: এই সিস্টেমটি সমস্ত সেন্সর এবং ডিভাইসের সমন্বয়ে গঠিত যা প্রয়োজনীয় তথ্য সংগ্রহের জন্য দায়ী। এটি প্রধান ব্যবস্থার সাথে বিভিন্ন উপায়ে সংযুক্ত হতে পারে, সিরিয়াল প্রোটোকল, অন্যদের মধ্যে সমান্তরাল প্রোটোকল, সেজন্য সবচেয়ে সুবিধাজনক একটি নির্ধারণ করতে সক্ষম হওয়ার জন্য এই সমস্ত কৌশলগুলি আয়ত্ত করা সত্যিই গুরুত্বপূর্ণ। সাধারণভাবে, সিরিয়াল প্রোটোকল হল সেগুলি যা প্রায়শই তাদের ছোট সংখ্যক সংযোগ এবং বহুমুখীতার কারণে নির্বাচিত হয়, এখন পর্যন্ত সবচেয়ে জনপ্রিয়গুলি হল SPI, I2C এবং UART প্রোটোকল। - টেলিমেট্রি সিস্টেম: এই সিস্টেমটি ক্যানস্যাট এবং গ্রাউন্ড কন্ট্রোল স্টেশনের মধ্যে বেতার যোগাযোগ স্থাপনের জন্য দায়ী, যার মধ্যে রয়েছে ওয়্যারলেস কমিউনিকেশন প্রোটোকল এবং হার্ডওয়্যার। - প্রধান সিস্টেম: এই সিস্টেমটি অন্যান্য সমস্ত সিস্টেমগুলিকে আন্তconসংযোগের জন্য দায়ী, এমনভাবে যে এটি একটি জীব হিসাবে তাদের অপারেশনের ক্রমকে নিয়ন্ত্রণ এবং সিঙ্ক্রোনাইজ করে।

ধাপ 1: প্রধান সিস্টেম

মূল ব্যবস্থা
মূল ব্যবস্থা

অনেক কারণের জন্য আমরা একটি ARM® Cortex®-M4F ভিত্তিক মাইক্রো কন্ট্রোলার বেছে নিয়েছি, এটি একটি লো পাওয়ার এমসিইউ, যা অনেক বেশি প্রসেসিং পাওয়ার অফার করে, সেইসাথে বেশ কিছু বৈশিষ্ট্য যা সাধারণত RISK মাইক্রোকন্ট্রোলারে দেখা যায় না, যেমন DSP ফাংশন। এই বৈশিষ্ট্যগুলি আকর্ষণীয় কারণ তারা মাইক্রোকন্ট্রোলার পরিবর্তনের প্রয়োজন ছাড়াই ক্যানস্যাট অ্যাপ্লিকেশনগুলির বৈশিষ্ট্যগুলির জটিলতা বৃদ্ধি করতে সক্ষম করে (অবশ্যই, এর সীমাগুলিও সম্মান করে)।

যতক্ষণ পর্যন্ত, প্রকল্পটির বেশ কিছু আর্থিক সীমাবদ্ধতা ছিল, মাইক্রোকন্ট্রোলারকেও সাশ্রয়ী বলে মনে করা হয়েছিল, তাই স্পেসিফিকেশনগুলি অনুসরণ করে, আমরা ARM® Cortex®-M4F ভিত্তিক MCU TM4C123G লঞ্চপ্যাড বেছে নেওয়া শেষ করেছি, এটি একটি লঞ্চপ্যাড যা আমাদের প্রকল্পে সজ্জিত । এছাড়াও ডকুমেন্টেশন (ডেটশীট এবং ফ্যাব্রিক্যান্ট দ্বারা প্রদত্ত বৈশিষ্ট্যের ডকুমেন্টেশন) এবং এমসিইউ এর আইডিই পেশাদার ছিল যা সত্যিই বিবেচনা করা উচিত, যতক্ষণ না তারা উন্নয়ন প্রক্রিয়াকে অনেক সাহায্য করেছে।

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

সুতরাং, এই সিস্টেমের জন্য যথাযথ 'মস্তিষ্ক' বেছে নেওয়ার পর, পরবর্তী ধাপটি ছিল তার সফটওয়্যারের বিকাশ, এটিকে সহজ রাখার জন্য আমরা কেবল একটি সিকোয়েন্সিয়াল প্রোগ্রাম ব্যবহার করার সিদ্ধান্ত নিয়েছি, যা 1Hz এর একটি ফ্রিকোয়েন্সিতে নিম্নলিখিত ক্রমটি করে:

সেন্সর রিডিং> ডেটা স্টোরেজ> ডেটা ট্রান্সমিশন

সেন্সর অংশটি পরে সেন্সিং সিস্টেমে ব্যাখ্যা করা হবে, সেইসাথে টেলিমেট্রি সিস্টেমে ডেটা ট্রান্সমিশন ব্যাখ্যা করা হবে। অবশেষে, মাইক্রোকন্ট্রোলারকে কীভাবে প্রোগ্রাম করতে হয় তা শিখতে হয়েছিল, আমাদের ক্ষেত্রে আমাদের MCU, GPIO's, I2C মডিউল, UART মডিউল এবং SPI মডিউলের নিম্নলিখিত কাজগুলি শিখতে হবে।

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

এছাড়াও, কোডটি সহজ এবং সংগঠিত করার জন্য, বেশ কয়েকটি লাইব্রেরি তৈরি করা হয়েছিল। সুতরাং, গ্রন্থাগারগুলি নিম্নলিখিত উদ্দেশ্যে তৈরি করা হয়েছিল:

- এসপিআই প্রোটোকল

- I2C প্রোটোকল

- UART প্রোটোকল

- NRF24L01+ - ট্রান্সসেপ্টর

এই লাইব্রেরিগুলি নীচেও পাওয়া যায়, কিন্তু মনে রাখবেন যে আমরা Keil uvision 5 IDE ব্যবহার করেছি, তাই এই লাইব্রেরিগুলি কোড কম্পোজারের জন্য কাজ করবে না। অবশেষে, সমস্ত লাইব্রেরি তৈরির পরে এবং সমস্ত প্রয়োজনীয় জিনিস শেখার পরে, চূড়ান্ত কোডটি একসাথে রাখা হয়েছিল এবং আপনি যেমনটি কল্পনা করতে পারেন এটি নীচেও উপলব্ধ।

ধাপ 2: সেন্সিং সিস্টেম

সেন্সিং সিস্টেম
সেন্সিং সিস্টেম
সেন্সিং সিস্টেম
সেন্সিং সিস্টেম
সেন্সিং সিস্টেম
সেন্সিং সিস্টেম
সেন্সিং সিস্টেম
সেন্সিং সিস্টেম

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

- একটি 3 অক্ষ ডিজিটাল অ্যাকসিলরোমিটার - MPU6050

- একটি 3 অক্ষ ডিজিটাল জাইরোস্কোপ - MPU6050

- একটি 3 অক্ষ ডিজিটাল ম্যাগনেটোমিটার - HMC5883L

- একটি ডিজিটাল ব্যারোমিটার - BMP280

- এবং একটি জিপিএস - টাইকো A1035D

পছন্দগুলি মূলত অ্যাক্সেসিবিলিটির উপর ভিত্তি করে ছিল, যার অর্থ যান্ত্রিক এবং বৈদ্যুতিক (যোগাযোগ প্রোটোকল, বিদ্যুৎ সরবরাহ ইত্যাদি) বৈশিষ্ট্যগুলি যতক্ষণ না আমাদের প্রকল্পের সাথে সামঞ্জস্যপূর্ণ ছিল, পছন্দগুলির জন্য আর কোনও পরামিতি আরোপ করা হয়নি, কারণ কিছু সেন্সরের জন্য প্রাপ্যতা অপশন সীমিত ছিল। সেন্সরগুলি অর্জন করার পরে, তাদের কাজে লাগানোর সময় ছিল।

সুতরাং প্রথম যেটি অন্বেষণ করা হয়েছিল তা ছিল 3 অক্ষের ডিজিটাল অ্যাকসিলরোমিটার এবং জাইরোস্কোপ, যাকে MPU6050 বলা হয় (এটি সহজেই যে কোন জায়গায় পাওয়া যাবে, যতদিন এটি ARDUINO প্রকল্পে ব্যাপকভাবে ব্যবহৃত হয়), এর যোগাযোগ I2C প্রোটোকলের উপর ভিত্তি করে, একটি প্রোটোকল যা প্রতিটি ক্রীতদাসের একটি ঠিকানা আছে, বিভিন্ন ডিভাইস সমান্তরালভাবে সংযুক্ত করার অনুমতি দেয়, ঠিকানাটি 7-বিট দীর্ঘ বিবেচনা করে, প্রায় 127 ডিভাইস একই সিরিয়াল বাসে সংযুক্ত করা যেতে পারে। এই কমিউনিকেশন প্রোটোকল দুটি বাস, একটি ডাটা বাস এবং একটি ক্লক বাসে কাজ করে, তাই তথ্য আদান -প্রদানের জন্য, মাস্টারকে অবশ্যই cy টি চক্র ঘড়ি পাঠাতে হবে (যেভাবে তথ্যটি একটি বাইটের সাথে মানানসই হবে, যতক্ষণ না এই যোগাযোগগুলি ভিত্তিক বাইট সাইজে) হয় রিসিভ বা ট্রান্সমিট অপারেশনে। MPU6050 এর ঠিকানা হল 0b110100X, এবং X একটি রিডিং বা একটি রাইটিং অপারেশনকে কল করতে (ইঙ্গিত করে) ব্যবহার করা হয় (0 একটি রাইটিং অপারেশন নির্দেশ করে এবং 1 একটি রিডিং অপারেশন নির্দেশ করে), তাই যখনই আপনি সেন্সর পড়তে চান তখন 0xD1 হিসাবে তার ঠিকানা ব্যবহার করুন এবং যখনই আপনি লিখতে চান তার ঠিকানাটি 0xD0 হিসাবে ব্যবহার করুন।

I2C প্রোটোকল অন্বেষণ করার পর, MPU6050 প্রকৃতপক্ষে অধ্যয়ন করা হয়েছিল, অন্য কথায় এর ডেটশীট পড়া হয়েছিল, যাতে এটি কাজ করার জন্য প্রয়োজনীয় তথ্য পেতে পারে, এই সেন্সরের জন্য কেবলমাত্র তিনটি রেজিস্টার কনফিগার করা প্রয়োজন ছিল, পাওয়ার ম্যানেজমেন্ট 1 নিবন্ধন - ঠিকানা 0x6B (সেন্সর স্লিপ মোডে নেই তা নিশ্চিত করার জন্য), জাইরোস্কোপ কনফিগারেশন রেজিস্টার - ঠিকানা 0x1B (জাইরোস্কোপের জন্য পূর্ণ স্কেল পরিসীমা কনফিগার করার জন্য) এবং পরিশেষে অ্যাকসিলরোমিটার কনফিগারেশন রেজিস্টার - ঠিকানা 0x1C (ইন অ্যাকসিলরোমিটারের জন্য পূর্ণ স্কেল পরিসীমা কনফিগার করার জন্য)। সেন্সর পারফরম্যান্সের অপ্টিমাইজেশনের অনুমতি দিয়ে কনফিগার করা যায় এমন আরও বেশ কয়েকটি রেজিস্টার রয়েছে, তবে এই প্রকল্পের জন্য এই কনফিগারেশনগুলি যথেষ্ট।

সুতরাং, সেন্সরটি সঠিকভাবে কনফিগার করার পরে, আপনি এখন এটি পড়তে সক্ষম। পছন্দসই তথ্যটি রেজিস্টার 0x3B এবং রেজিস্টার 0x48 এর মধ্যে সংঘটিত হয়, প্রতিটি অক্ষের মান দুটি বাইটের সমন্বয়ে গঠিত যা 2 এর পরিপূরক উপায়ে কোডিফাইড করা হয়, যার অর্থ এই যে পড়া অর্থগুলি অর্থপূর্ণ হওয়ার জন্য রূপান্তরিত হতে হবে (এই জিনিসগুলি হবে পরে আলোচনা করা হয়েছে)।

MPU6050 দিয়ে সম্পন্ন করার পর, এটি HMC5883L নামে 3 অক্ষের ডিজিটাল ম্যাগনেটোমিটার অধ্যয়ন করার সময় ছিল (এটি সহজেই কোথাও পাওয়া যাবে, যতক্ষণ এটি ARDUINO প্রকল্পে ব্যাপকভাবে ব্যবহৃত হয়), এবং আবার এর যোগাযোগ প্রোটোকল সিরিয়াল প্রোটোকল I2C। এর ঠিকানা 0b0011110X এবং X একটি রিডিং বা রাইটিং অপারেশনকে কল করতে (নির্দেশ করে) ব্যবহার করা হয় (0 একটি রাইটিং অপারেশন নির্দেশ করে এবং 1 একটি রিডিং অপারেশন নির্দেশ করে), তাই যখনই আপনি সেন্সর পড়তে চান তখন 0x3D হিসাবে এবং যখনই আপনি লিখতে চান শুধু 0x3C হিসেবে তার ঠিকানা ব্যবহার করুন।

এই ক্ষেত্রে, HMC5883L আরম্ভ করার জন্য, তিনটি রেজিস্টার কনফিগার করা প্রয়োজন, কনফিগারেশন রেজিস্টার A - ঠিকানা 0x00 (ডেটা আউটপুট হার এবং পরিমাপ মোড কনফিগার করার জন্য), কনফিগারেশন রেজিস্টার B - ঠিকানা 0x01 (সেন্সরের লাভ কনফিগার করার জন্য) এবং শেষ কিন্তু কমপক্ষে মোড রেজিস্টার - ঠিকানা 0x02 (ডিভাইসের অপারেটিং মোড কনফিগার করার জন্য)।

সুতরাং, সঠিকভাবে HMC5883L কনফিগার করার পর, এখন এটি পড়া সম্ভব। পছন্দসই তথ্যটি রেজিস্টার 0x03 এবং রেজিস্টার 0x08 এর মধ্যে সঞ্চালিত হয়, প্রতিটি অক্ষের মান দুটি বাইটের সমন্বয়ে গঠিত যা 2 এর পরিপূরক উপায়ে কোডিফাইড করা হয়, যার অর্থ হল পড়া তথ্যগুলি অর্থপূর্ণ হওয়ার জন্য রূপান্তরিত হতে হবে (এই জিনিসগুলি হবে পরে আলোচনা করা হয়েছে)। বিশেষ করে, এই সেন্সরের জন্য আপনার একবারে সমস্ত তথ্য পড়ার কথা, অন্যথায় এটি প্রস্তাবিত হিসাবে কাজ নাও করতে পারে, যতক্ষণ আউটপুট ডেটা শুধুমাত্র এই রেজিস্টারে লেখা হয় যখন সমস্ত রেজিস্টার লেখা হয়েছিল। তাই তাদের সব পড়তে ভুলবেন না।

অবশেষে, ডিজিটাল ব্যারোমিটার, আরেকটি I2C প্রোটোকল সেন্সর, অধ্যয়ন করা হয়েছিল, এটি BMP280 নামেও পরিচিত (এটি সহজেই যেকোনো জায়গায় পাওয়া যাবে, যতক্ষণ এটি ARDUINO প্রকল্পগুলিতে ব্যাপকভাবে ব্যবহৃত হয়)। এর ঠিকানা হল b01110110X এছাড়াও X একটি রিডিং বা একটি রাইটিং অপারেশনকে কল করতে (নির্দেশ করে) ব্যবহার করা হয় (0 একটি রাইটিং অপারেশন নির্দেশ করে এবং 1 একটি রিডিং অপারেশন নির্দেশ করে), তাই যখনই আপনি সেন্সরটি পড়তে চান তখন 0XEA এবং যখনই তার ঠিকানা ব্যবহার করুন আপনি লিখতে চান শুধু 0XEB হিসেবে তার ঠিকানা ব্যবহার করুন। কিন্তু এই সেন্সরের ক্ষেত্রে SD2 পিনের ভোল্টেজ লেভেল পরিবর্তন করে I2C ঠিকানা পরিবর্তন করা যেতে পারে, তাই আপনি যদি এই পিনে GND applly করেন তাহলে ঠিকানা হবে b01110110X এবং যদি আপনি এই পিনে VCC লাগান তাহলে ঠিকানা যাচ্ছে b01110111X হতে, এছাড়াও এই সেন্সরে I2C মডিউল সক্ষম করার জন্য আপনাকে অবশ্যই সেন্সরের CSB পিনে VCC লেভেল প্রয়োগ করতে হবে, অন্যথায় এটি সঠিকভাবে কাজ করবে না।

BMP280 এর জন্য শুধুমাত্র দুটি রেজিস্টার কনফিগার করার কথা ছিল যাতে এটি কাজ করতে পারে, ctrl_meas রেজিস্টার - ঠিকানা 0XF4 (ডেটা অধিগ্রহণের বিকল্পগুলি সেট করার জন্য) এবং কনফিগ রেজিস্টার - ঠিকানা 0XF5 (রেট সেট করার জন্য, সেন্সরের জন্য ফিল্টার এবং ইন্টারফেস বিকল্প)।

কনফিগারেশন স্টাফের সাথে সম্পন্ন করার পরে, এটি সত্যিই গুরুত্বপূর্ণ বিষয়গুলির জন্য সময়, ডেটা নিজেই, এই ক্ষেত্রে পছন্দসই তথ্য রেজিস্টার 0XF7 এবং 0XFC এর মধ্যে সঞ্চালিত হয়। তাপমাত্রা এবং চাপের মান উভয়ই তিনটি বাইটের সমন্বয়ে গঠিত যা 2 এর পরিপূরক পদ্ধতিতে কোড করা হয়, যার অর্থ হল অর্থপূর্ণ হওয়ার জন্য পঠিত ডেটা অবশ্যই রূপান্তরিত হতে হবে (এই বিষয়গুলি পরে আলোচনা করা হবে)। এছাড়াও এই সেন্সরের জন্য, একটি উচ্চ নির্ভুলতা পেতে, ডেটা রূপান্তর করার সময় বেশ কয়েকটি সংশোধন সহগ ব্যবহার করা যেতে পারে, সেগুলি 0X88 এবং 0XA1 রেজিস্টারের মধ্যে অবস্থিত, হ্যাঁ সেখানে সংশোধন সহগের 26 বাইট রয়েছে, তাই যদি স্পষ্টতা হয় এত গুরুত্বপূর্ণ নয়, শুধু তাদের ভুলে যান, অন্যথায় অন্য কোন উপায় নেই।

এবং শেষ কিন্তু কমপক্ষে জিপিএস - টাইকো A1035D, এটি UART সিরিয়াল প্রোটোকলের উপর নির্ভর করে, বিশেষ করে 4800 kbps এর হারে, কোন প্যারিটি বিট, 8 ডেটা বিট এবং 1 স্টপ বিট। UART, বা ইউনিভার্সাল অ্যাসিঙ্ক্রোনাস রিসিভার/ট্রান্সমিটার, একটি সিরিয়াল প্রোটোকল যেখানে তথ্যের সিঙ্ক্রোনাইজেশন সফটওয়্যারের মাধ্যমে করা হয়, কেন এটি একটি অসিঙ্ক্রোনাস প্রোটোকল, এই বৈশিষ্ট্যের কারণে, তথ্য প্রেরণ এবং প্রাপ্তির হার যেভাবে হয় তার চেয়ে ছোট। বিশেষ করে এই প্রোটোকলের জন্য প্যাকেজগুলি অবশ্যই একটি স্টার্ট বিট দিয়ে শুরু করা উচিত, কিন্তু স্টপ বিটটি alচ্ছিক এবং প্যাকেজের আকার 8 বিট লম্বা।

জিপিএস -টাইকো A1035D এর ক্ষেত্রে, দুটি কনফিগারেশনের প্রয়োজন ছিল, সেগুলি ছিল সেটডিজিপিএসপোর্ট (কমান্ড 102) এবং ক্যোয়ারী/রেট কন্ট্রোল (কমান্ড 103), এই সমস্ত তথ্য, প্লাস এনএমইএ রেফারেন্স ম্যানুয়াল, প্রোটোকল বেশিরভাগ জিপিএস মডিউলে ব্যবহৃত হয়। 102 কমান্ডটি বড রেট, ডেটা বিটের পরিমাণ এবং সমতা বিট এবং স্টপ বিটগুলির অস্তিত্ব বা না থাকার জন্য ব্যবহৃত হয়। কমান্ড 103 স্ট্যান্ডার্ড NMEA মেসেজ GGA, GLL, GSA, GSV, RMC, এবং VTG এর আউটপুট নিয়ন্ত্রণ করতে ব্যবহৃত হয়, সেগুলিকে রেফারেন্স ম্যানুয়ালে বিশদভাবে বর্ণনা করা হয়েছে, কিন্তু আমাদের ক্ষেত্রে GGA যা গ্লোবাল পজিশনিং সিস্টেম ফিক্সড ডেটা।

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

সমস্ত সেন্সর সম্পর্কে সমস্ত প্রয়োজনীয় তথ্য শেখার পরে, একই প্রোগ্রামে সবকিছু একসাথে রাখার জন্য, সিরিয়াল যোগাযোগ লাইব্রেরিগুলি ব্যবহার করে কিছু অতিরিক্ত প্রচেষ্টা লাগল।

ধাপ 3: টেলিমেট্রি সিস্টেম

টেলিমেট্রি সিস্টেম
টেলিমেট্রি সিস্টেম

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

বাজারে সাশ্রয়ী মূল্যে রেডিওগুলির অনেকগুলি বিকল্প রয়েছে, এই সমস্ত সিস্টেমগুলি বিভিন্ন ফ্রিকোয়েন্সিগুলিতে মড্যুলেশনের বিভিন্ন উপায় সরবরাহ করে, এই সিস্টেমের জন্য আমাদের পছন্দের একটি 2.4GHz RF ট্রান্সসিভার, NRF24L01+ছিল, কারণ এটি ইতিমধ্যে ছিল একটি সুপ্রতিষ্ঠিত যোগাযোগ প্রোটোকল, যতক্ষণ যাচাইকরণ ব্যবস্থা যেমন স্বয়ংক্রিয় স্বীকৃতি এবং স্বয়ংক্রিয় পুনরায় সংক্রমণ সিস্টেম। তদুপরি, এর সঞ্চালনের হার যুক্তিসঙ্গত বিদ্যুৎ ব্যবহারের ক্ষেত্রে 2Mbps পর্যন্ত গতিতে পৌঁছতে পারে।

সুতরাং এই ট্রান্সসিভারে কাজ করার আগে, আসুন NRF24L01+সম্পর্কে আরও একটু জেনে নিই। আগে উল্লেখ করা হয়েছে এটি একটি 2.4GHz ভিত্তিক রেডিও, যা রিসিভার বা ট্রান্সমিটার হিসাবে কনফিগার করা যায়। যোগাযোগ স্থাপনের জন্য প্রতিটি ট্রান্সসিভারের একটি ঠিকানা পাওয়া যায়, যা ব্যবহারকারী দ্বারা কনফিগার করা যায়, ঠিকানাটি আপনার প্রয়োজন অনুযায়ী 24 থেকে 40 বিট লম্বা হতে পারে। ডেটা লেনদেন এককভাবে বা ধারাবাহিকভাবে হতে পারে, ডেটার আকার 1 বাইটে সীমাবদ্ধ এবং প্রতিটি লেনদেন ট্রান্সসিভারের কনফিগারেশন অনুসারে একটি স্বীকৃতি শর্ত তৈরি করতে পারে বা নাও করতে পারে।

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

সিরিয়াল যোগাযোগের ক্ষেত্রে NRF24L01+ SPI ভাষা 'কথা বলে', তাই যখনই আপনি এই ট্রান্সসিভার পড়তে বা লিখতে চান, কেবল এগিয়ে যান এবং এর জন্য SPI প্রোটোকল ব্যবহার করুন। SPI হল একটি সিরিয়াল প্রটোকল যা পূর্বে উল্লেখ করা হয়েছে, যাতে ক্রীতদাসদের নির্বাচন একটি CHIPSELECT (CS) পিনের মাধ্যমে সম্পন্ন করা হয়, যাতে সম্পূর্ণ দ্বৈত (মাস্টার এবং দাস উভয়ই সমান্তরাল ভাবে প্রেরণ ও গ্রহণ করতে পারে) বৈশিষ্ট্য এই প্রটোকলের ডেটা লেনদেনের গতি অনেক বেশি।

NRF24L01+ এর ডেটশীট এই কম্পোনেন্টটি পড়তে বা লেখার জন্য কমান্ডের একটি সেট প্রদান করে, অভ্যন্তরীণ রেজিস্টারগুলি অ্যাক্সেস করার জন্য বিভিন্ন কমান্ড রয়েছে, অন্যান্য ক্রিয়াকলাপের মধ্যে RX এবং TX পেলোড, তাই পছন্দসই ক্রিয়াকলাপের উপর নির্ভর করে এটি একটি নির্দিষ্ট কমান্ড নিতে পারে এটা পালন। এই কারণেই ডেটশীটটি দেখে নেওয়া আকর্ষণীয় হবে, যেখানে ট্রান্সসিভারের উপর সমস্ত সম্ভাব্য ক্রিয়া সম্বলিত এবং ব্যাখ্যা করা একটি তালিকা রয়েছে (আমরা সেগুলি এখানে তালিকাভুক্ত করতে যাচ্ছি না, কারণ এটি এই নির্দেশাবলীর মূল বিষয় নয়)।

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

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

সুতরাং ট্রান্সসিভার সম্পর্কে সমস্ত প্রয়োজনীয় জ্ঞান অর্জনের পরে এবং যোগাযোগ প্রোটোকল নির্ধারণ করার পরে, এটি একই কোডের সমস্ত কিছু একসাথে রাখার এবং অবশেষে ক্যানস্যাট ফার্মওয়্যারটি সম্পন্ন করার সময় এসেছে।

ধাপ 4: পাওয়ার সিস্টেম

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

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

সমস্ত সিস্টেমের উপাদানগুলির সমস্ত ডেটশীটের সাথে পরামর্শ করার পর, সিস্টেমের মোট খরচ প্রায় 160mAh ছিল, 10 ঘন্টার স্বায়ত্তশাসন বিবেচনা করে, 1600mAh ব্যাটারি সিস্টেমের সঠিক কাজের শর্তাদি নিশ্চিত করার জন্য যথেষ্ট ছিল।

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

ধাপ 5: কাঠামো

ক্যানস্যাটের নিরাপত্তার জন্য কাঠামোটি সত্যিই গুরুত্বপূর্ণ, যদিও এই প্রকল্পে এটি একটু অবহেলিত ছিল (আসলে ক্যানস্যাটের যান্ত্রিক অংশের বিকাশে খুব একটা আগ্রহ ছিল না, কারণ সব সদস্য কোর্স ইলেকট্রনিক্স সম্পর্কিত ছিল)। যতক্ষণ পর্যন্ত প্রকল্পটি একটি বিদ্যমান প্যাটার্নের উপর ভিত্তি করে ছিল, ক্যানস্যাট প্যাটার্ন, এটি দেখতে কেমন হবে তা নিয়ে খুব বেশি চিন্তা করা প্রয়োজন ছিল না, তাই এটি একটি সিলিন্ডার ফর্ম্যাটে তৈরি করা উচিত, প্রায় 6, 1 সেমি ব্যাস এবং প্রায় 11, 65 সেমি লম্বা (সোডা একটি ক্যান একই পরিমাপ)।

বাইরের কাঠামোর সাথে কাজ করার পরে, মনোযোগ সব সংযুক্তি ব্যবস্থার উপর নিবদ্ধ ছিল, যা নলাকার কাঠামোর ভিতরে সমস্ত বোর্ড ধরে রাখার জন্য দায়ী ছিল, ক্যানস্যাট যেসব ত্বরণগুলিতে জমা দেওয়া হবে তার শোষণকেও সক্ষম করে, কিছু আলোচনা করার পর, উচ্চ ঘনত্বের ফেনা moldালাই করে উভয় কাঠামোকে কাঙ্ক্ষিত আকারে সংযুক্ত করার সিদ্ধান্ত নেওয়া হয়েছিল।

কাঠামো বন্ধ করার জন্য কিছু পিভিসি পাইপ কভার ব্যবহার করা হয়েছিল

ধাপ 6: উপসংহার এবং ভবিষ্যতের চিন্তা

ক্যানস্যাটকে এখনও কার্যক্রমে পরীক্ষা করা দরকার, আমরা আসলে একটি রকেট প্রতিযোগিতার জন্য আবেদন করছি (যা ডিসেম্বরে হতে চলেছে), সমস্ত বিল্ডিংয়ের মধ্য দিয়ে যাওয়ার পরেও (কিছুটা, আমাদের আসলে এখনও কিছু জিনিস শেষ করতে হবে) এবং উন্নয়ন প্রক্রিয়া, কিছু দৃষ্টিভঙ্গি এবং নোট যা আমরা ভেবেছিলাম আপনার সবার সাথে ভাগ করে নেওয়া আকর্ষণীয় হবে, প্রধানত সংগ্রাম, টিপস এবং এমনকি ভাল অভিজ্ঞতা সম্পর্কে, তাই এটি এখানে যায়:

- প্রকল্পের শুরু, পুরো প্রকল্পের উন্নয়নের সবচেয়ে ফলপ্রসূ সময় হতে চলেছে, দুlyখজনকভাবে গ্রুপটি তার সময়সীমার মধ্যে প্রকল্পটির প্রতি কিছুটা আগ্রহী হয়ে উঠেছিল, সম্ভবত তাৎক্ষণিক ফলাফলের অভাবের কারণে, অথবা হয়তো যোগাযোগের অভাব, যাইহোক প্রকল্প থেকে বেশ কিছু ভাল জিনিস বেরিয়ে এসেছে

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

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

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

প্রস্তাবিত: