সুচিপত্র:

Guillaume Meurillon দ্বারা CleanBot: 8 টি ধাপ
Guillaume Meurillon দ্বারা CleanBot: 8 টি ধাপ

ভিডিও: Guillaume Meurillon দ্বারা CleanBot: 8 টি ধাপ

ভিডিও: Guillaume Meurillon দ্বারা CleanBot: 8 টি ধাপ
ভিডিও: Lg à G Meurillon 2024, নভেম্বর
Anonim
Guillaume Meurillon দ্বারা CleanBot
Guillaume Meurillon দ্বারা CleanBot
Guillaume Meurillon দ্বারা CleanBot
Guillaume Meurillon দ্বারা CleanBot

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

আমার ধারণা ছিল একটি 'হ্যাকড' রোবট ভ্যাকুয়াম তৈরি করা, একটি রাস্পবেরি পাই, একটি আরডুইনো, একটি ইতিমধ্যেই ভেঙে যাওয়া রোবট ভ্যাকুয়াম এবং একগুচ্ছ সেন্সর ব্যবহার করে।

ধাপ 1: যন্ত্রাংশ সংগ্রহ

যন্ত্রাংশ সংগ্রহ করা
যন্ত্রাংশ সংগ্রহ করা
যন্ত্রাংশ সংগ্রহ করা
যন্ত্রাংশ সংগ্রহ করা
যন্ত্রাংশ সংগ্রহ করা
যন্ত্রাংশ সংগ্রহ করা
যন্ত্রাংশ সংগ্রহ করা
যন্ত্রাংশ সংগ্রহ করা

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

অংশগুলির তালিকা একটি ফাইল হিসাবে অন্তর্ভুক্ত করা হবে, যাতে আপনি সহজেই আপনার প্রয়োজনীয় অংশগুলির জন্য অনুসন্ধান করতে পারেন।

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

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

অংশ তালিকা:

  • রাস্পবেরি পাই 3 কমপক্ষে 8GB মাইক্রোএসডি ক্লাস 10 এবং একটি কেস সহ;
  • রাস্পবেরি পাই টি-মুচি এবং রুটিবোর্ড (গুলি);
  • Arduino Uno বা অনুরূপ (পছন্দসইভাবে একটি শালীন ADC সহ কিছু চীনা সংস্করণ, কিছু চীনা AREF সমস্যা আছে) কোন ধরণের ক্ষেত্রে;
  • একটি ইথারনেট কেবল;
  • একটি (ভাঙ্গা) রোবট ভ্যাকুয়াম;
  • 3x HC-SR04 অতিস্বনক মডিউল;
  • 1x হল সেন্সর মডিউল;
  • বিভিন্ন মান বিভিন্ন প্রতিরোধক;
  • একটি এলডিআর;
  • 12x এর জন্য 6x 18650 লি-আয়ন ব্যাটারি + 3-সেল হোল্ডার (পছন্দসইভাবে আপনার নতুন ব্যাটারি ব্যবহার করা উচিত বা আরও ভাল লিপো ব্যাটারি ব্যবহার করা উচিত, এগুলি দীর্ঘকাল চলবে);
  • 18650 (অথবা আপনি যে ধরনের ব্যাটারি ব্যবহার করবেন) 12v 3-cell চার্জিং পিসিবি;
  • কিছু পিসিবি DIY বোর্ড আপনার উপাদান ঝালাই;
  • পলিউরেথেন প্লাস্টিকের একটি শীট;
  • একটি ল্যাপটপ / ডেস্কটপ কম্পিউটার।

সরঞ্জাম তালিকা:

  • বেশ কয়েকটি ড্রিল বিট সহ একটি ড্রিল;
  • একটি কোণ গ্রাইন্ডার (যদি আপনার কোন অভিজ্ঞতা না থাকে তবে এটি ব্যবহার করবেন না) বা ড্রেমেলের মতো কিছু;
  • স্যান্ডিং পেপার এক টুকরা;
  • বেশ কয়েকটি স্ক্রু ড্রাইভার;
  • Superglue, মাউন্ট আঠালো,…;
  • একটি সোল্ডারিং আয়রন (আপনার তারগুলি সহজে ঝালাই করার জন্য গ্রীস ব্যবহার করুন);
  • এক জোড়া তারের কাটার এবং একটি স্ট্রিপিং টুল।

সফ্টওয়্যার তালিকা (alচ্ছিক):

  • অ্যাডোব এক্সডি: ওয়্যারফ্রেমিং এবং একটি প্রোটোটাইপ তৈরি করা;
  • Fritzing: একটি বৈদ্যুতিক স্কিম তৈরি;
  • পাইচার্ম পেশাদার: পাইথন আইডিই স্থাপনার এবং দূরবর্তী দোভাষী ব্যবহারের ক্ষমতা সহ;
  • পুটি: পাই এর সাথে দ্রুত এবং সহজ ssh সংযোগ;
  • Etcher.io: একটি এসডি কার্ডে একটি রাস্পবিয়ান ছবি ফ্ল্যাশ করার সহজ টুল;
  • Win32DiskImager: একটি বিদ্যমান রাস্পবিয়ান সেটআপ থেকে একটি ছবি তৈরি করার সহজ টুল;
  • প্রোগ্রামার নোটপ্যাড: সহজ টুল যা আপনি /boot/cmdline.txt ফাইলটি নিরাপদে সম্পাদনা করতে ব্যবহার করতে পারেন।

ধাপ 2: স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা

স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা
স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা
স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা
স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা
স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা
স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা
স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা
স্প্রে-পেইন্টিং এবং ইন্টারফেস ডিজাইন করা

আমি নকশা তৈরি করা শুরু করার আগে, আমি বাইরের স্প্রে-পেইন্ট করেছি, কারণ আমি রঙগুলি মোটেই পছন্দ করিনি। আমি দোকানে গেলাম এবং একটি প্লাস্টিকের প্রাইমার, সাদা রঙের একটি ক্যান এবং ফিরোজা একটি ক্যান তুলে নিলাম।

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

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

ধাপ 3: ডাটাবেস তৈরি করা

ডাটাবেস তৈরি করা
ডাটাবেস তৈরি করা

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

ছবিটি আপনাকে আমার টেবিলের বিন্যাস দেখায়, যা মাইএসকিউএল ওয়ার্কবেঞ্চে আঁকা, টেবিলের মধ্যে সমস্ত সম্পর্কের সাথে।

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

পরবর্তী টেবিলে "ডেভিসারুনস" রয়েছে, যা ডিভাইসটি প্রকৃত রান করেছে। রানটাইম গণনা করার জন্য deviceruns একটি নির্দিষ্ট ব্যবহারকারীর (যে ব্যক্তি রান শুরু করে) মালিকানাধীন, এবং একটি শুরু এবং শেষ সময় আছে।

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

ধাপ 4: অংশগুলি একসাথে সংযুক্ত করা

অংশগুলি একসাথে সংযুক্ত করা
অংশগুলি একসাথে সংযুক্ত করা
অংশগুলি একসাথে সংযুক্ত করা
অংশগুলি একসাথে সংযুক্ত করা

ডাটাবেস স্কিম তৈরির পর, আমি একটি কাজ করা প্রোটোটাইপে সমস্ত অংশকে একসাথে সংযুক্ত করার জন্য ব্রেডবোর্ড এবং ওয়্যারিং ব্যবহার করা শুরু করি।

ধাপ 5: রাস্পবেরি পাই সেট আপ করা

রাস্পবেরি পাই সেট আপ করা হচ্ছে
রাস্পবেরি পাই সেট আপ করা হচ্ছে

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

ওএস ইনস্টল করার জন্য, কেবল এচার ডাউনলোড করুন, এটি আপনার মাইক্রো এসডি কার্ডে ছবিটি দ্রুত এবং সহজভাবে লেখার জন্য একটি GUI সরঞ্জাম।

হেডলেস মোড সক্ষম করতে, যাতে আপনি পাই অ্যাক্সেস করতে পারেন, আপনাকে আপনার কম্পিউটারে পুটি ইনস্টল করতে হবে। পরবর্তী ধাপ হল এচার দ্বারা তৈরি বুট ফোল্ডারে যাওয়া, এবং আপনার প্রিয় টেক্সট এডিটর, প্রাক্তন প্রোগ্রামারস নোটপ্যাড দিয়ে cmdline.txt ফাইলটি খুলতে হবে। ফাইলের শেষে এই লেখা যোগ করুন:

ip = 169.254.10.1

শুধু নিশ্চিত করুন যে আপনি একটি নতুন লাইন তৈরি করবেন না, এটি লাইনের শেষে যোগ করুন!

এরপরে, বুট ফোল্ডারের মূলটিতে ফিরে যান এবং ssh নামে একটি ফাইল তৈরি করুন। কোন এক্সটেনশন যোগ করবেন না, এটি নিশ্চিত করবে যে SSH সার্ভারটি প্রতিবার আপনার Pi লঞ্চ করার সময় চালু হবে। এখন কেবল আপনার পাইতে এসডি কার্ড রাখুন, আপনার পাইয়ের সাথে পর্যাপ্ত শক্তি উৎস সংযুক্ত করুন এবং আপনার পাই এবং আপনার কম্পিউটারের মধ্যে একটি ইথারনেট কেবল যুক্ত করুন।

পুটি খুলুন, এবং আইপি ঠিকানা টাইপ করুন: 169.254.10.1। এখন হ্যাঁ ক্লিক করুন এবং লগ ইন করুন, ডিফল্ট ব্যবহারকারীর নাম পাই এবং পাসওয়ার্ড হল রাস্পবেরি।

পরবর্তী, আপ টু ডেট পেতে নিম্নলিখিত কমান্ডটি চালান:

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y

চূড়ান্ত পদক্ষেপ হল আপনার রাস্পবেরি পাইতে একটি ভার্চুয়াল পাইথন ইন্টারপ্রেটার তৈরি করা, এটি আপনার কোডটি কার্যকর করবে। এটি করার জন্য, কেবল পুটি খুলুন এবং নিম্নলিখিতটি টাইপ করুন:

sudo mkdir project1

cd project1 python3 -m pip install --upgrade pip setuptools wheel virtualenv python3 -m venv --system -site -package venv

ধাপ 6: ওয়েব-অ্যাপ্লিকেশন লেখা

ওয়েব-অ্যাপ্লিকেশন লেখা
ওয়েব-অ্যাপ্লিকেশন লেখা

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

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

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

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

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

ধাপ 7: কেসিং শেষ করার জন্য টুকরো তৈরি করা

কেসিং শেষ করার জন্য টুকরো তৈরি করা
কেসিং শেষ করার জন্য টুকরো তৈরি করা
কেসিং শেষ করার জন্য টুকরো তৈরি করা
কেসিং শেষ করার জন্য টুকরো তৈরি করা
কেসিং শেষ করার জন্য টুকরো তৈরি করা
কেসিং শেষ করার জন্য টুকরো তৈরি করা
কেসিং শেষ করার জন্য টুকরো তৈরি করা
কেসিং শেষ করার জন্য টুকরো তৈরি করা

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

প্রথম বন্ধনীটি উপরে একটি গর্ত পূরণ করার জন্য তৈরি করা হয়েছে, যেখানে একটি ডিসপ্লে বসতে ব্যবহৃত হয়।

অন্য বন্ধনীটি আমার HC-SR04 অতিস্বনক সেন্সরগুলির জন্য একটি সমর্থন যা ডিভাইসের সামনে অবস্থিত।

শেষ কাজটি করা বাকি ছিল, একটি চাকার শক্তিবৃদ্ধিতে একটি গর্ত কাটা এবং একটি চুম্বক insোকানো, যাতে আমি চাকার ঘূর্ণন পর্যবেক্ষণ করতে পারি।

এই বন্ধনীগুলি শেষ করার পরে, আমি তাদের যে পেইন্টটি রেখেছিলাম সেগুলি দিয়ে স্প্রে-পেইন্ট করেছি, যাতে এটি নকশার সাথে মানানসই হয়।

ধাপ 8: কোড

প্রোগ্রামটি ইনস্টল করতে, কোড.জিপ ফাইলটি ডাউনলোড করুন এবং প্রকল্প 1 ডিরেক্টরিতে এটি আনজিপ করুন।

পরবর্তী, রাস্পবিয়ান বা পুটিতে একটি টার্মিনালে এই কমান্ডটি সম্পাদন করুন:

sudo cp project1/conf/project-1*/etc/systemd/system/

sudo cp project1/conf/project1-*/etc/systemd/system/sudo systemctl ডেমন-রিলোড sudo systemctl সক্ষম প্রকল্প -1* sudo systemctl সক্ষম প্রকল্প 1* sudo systemctl পুনরায় আরম্ভ nginx

এরপরে, আপনার তৈরি করা ডাটাবেসটি খুলুন এবং একটি আর্গন 2 হ্যাশ পাসওয়ার্ড সহ একটি নতুন ব্যবহারকারী তৈরি করুন। এখন আপনি প্রোগ্রামটি ব্যবহার করতে পারেন।

উপভোগ করুন!

প্রস্তাবিত: