সুচিপত্র:

একটি ভাল রাস্পবেরি পাই পাওয়ার বোতাম তৈরি করুন: 4 টি ধাপ
একটি ভাল রাস্পবেরি পাই পাওয়ার বোতাম তৈরি করুন: 4 টি ধাপ

ভিডিও: একটি ভাল রাস্পবেরি পাই পাওয়ার বোতাম তৈরি করুন: 4 টি ধাপ

ভিডিও: একটি ভাল রাস্পবেরি পাই পাওয়ার বোতাম তৈরি করুন: 4 টি ধাপ
ভিডিও: ফোনে কোন সমস্যা থাকলে এক্ষুনি জেনে নিন 2024, নভেম্বর
Anonim
Image
Image

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

বন্ধ করা হয়েছে এমন একটি Pi পুনরায় চালু করার জন্য প্রকল্পগুলিও রয়েছে, তবে এগুলি আপনাকে কোনও চাক্ষুষ প্রতিক্রিয়া দেয় না।

কিন্তু এমন বোতাম কার দরকার? আপনি যদি আমার মত একজন নির্বোধ, অথবা এমনকি একটি উচ্চাকাঙ্ক্ষী nerd, আপনি সর্বদা আপনার Pi স্থানীয়ভাবে বা নেটওয়ার্কের মাধ্যমে লগ ইন করতে পারেন এবং এখন sudo shutdown -h টাইপ করতে পারেন। কিন্তু যদি আপনি নন-টেকনিক্যাল ব্যবহারকারীদের জন্য একটি প্রকল্প তৈরি করেন, তাহলে তা হবে না। সত্য, আপনি প্রায়শই কেবল পাওয়ার কর্ডটি টেনে নিয়ে যেতে পারেন, তবে মনে রাখবেন, আমি প্রায় সবসময় বলেছিলাম! সকলের ভাগ্য তাড়াতাড়ি বা পরে ফুরিয়ে যায়। আমি গত সপ্তাহে আমার উপর একটি এসডি কার্ড মারা গিয়েছিলাম, যদিও আমি কখনই জানতে পারব না যে এটি হঠাৎ বিদ্যুৎ ক্ষতির কারণে ছিল কি না।

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

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

(ভিডিওতে আমি এটি একটি পাই জিরো v1.2 এবং একটি পুনর্নির্মাণ ল্যাপটপ স্ক্রিন এবং একটি সুদূর পূর্ব থেকে নিয়ন্ত্রক দ্বারা তৈরি একটি মনিটর দিয়ে প্রদর্শন করছি।)

ধাপ 1: নকশা

কিভাবে এটা কাজ করে
কিভাবে এটা কাজ করে

আমার পাওয়ার বোতামটি আপনার জন্য এটি করবে:

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

উপাদানগুলি খুব সস্তা। তোমার যা দরকার তা হল:

  • ATTiny85 (Arduino- সামঞ্জস্যপূর্ণ চিপ)
  • 3 প্রতিরোধক: 2 x 330Ω এবং 1 x 10kΩ
  • 1 LED - আমি সবুজ বা নীল প্রস্তাব করি, কিন্তু এটি আপনার পছন্দ
  • রুটিবোর্ড এবং জাম্পার তার, অথবা স্ট্রিপবোর্ড, অথবা যাইহোক আপনি এটি তৈরি করতে চান।

ধাপ 2: এটি কিভাবে কাজ করে

সমস্ত Pi পাওয়ার বোতামের মতো, এটি একটি GPIO পিনকে নিম্ন অবস্থায় নিয়ে আসে যাতে Pi তে চলমান একটি সহায়ক প্রোগ্রামে শাটডাউন অনুরোধের সংকেত দেওয়া যায়। আমি GPIO4 (পিন 7) ব্যবহার করেছি কিন্তু আপনি অন্য কোন পিন ব্যবহার করতে পারেন।

একটি Pi শাটডাউন সম্পন্ন করার একমাত্র উপায় হল TxD পিন 8 দেখা, যা তারপর কম যায়। এটি সিরিয়াল কনসোল সক্ষম হওয়ার উপর নির্ভর করে, যা এটি ডিফল্টরূপে। প্রকৃতপক্ষে TxD নিয়মিতভাবে উপরে ও নিচে যাবে যখন এটি একটি সিরিয়াল কনসোল হিসাবে ব্যবহার করা হচ্ছে, কিন্তু এটি একবারে প্রায় 30mS এর বেশি কম হবে না, এমনকি ধীরতম সাধারণ বড হারেও। এটি এখনও একটি সিরিয়াল কনসোলের জন্য ব্যবহার করা যেতে পারে কারণ আমরা এটি নিষ্ক্রিয়ভাবে দেখি।

রিবুট করতে, আমাদের সংক্ষেপে এসসিএল 1 (পিন 5) কম টানতে হবে। এই পিনটি যে কোনও I2C ডিভাইস (আমার মিডি ইন্টারফেস সহ) দ্বারা ব্যবহৃত হয়, তবে বুট শুরু করার পরে আমরা এটি একা রেখে যাই।

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

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

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

পাইতে চলমান সহায়ক প্রোগ্রামটি বেশিরভাগ শাটডাউন বোতামের চেয়ে একটু বেশি জটিল। এটি একটি শাটডাউন শুরু করে GPIO পিনের উপর একটি লম্বা কম পালসকে সাড়া দেয়, কিন্তু এটি স্বল্প সংক্ষেপে GPIO পিনকে কম টেনে নিজেও সাড়া দেয়। এইভাবে ATTiny85 বলতে পারে যে এটি চলছে এবং তাই BOOTING থেকে RUNNING অবস্থায় চলে যেতে পারে।

ধাপ 3: একটি ডেমো প্রোটোটাইপ তৈরি করা

একটি ডেমো প্রোটোটাইপ তৈরি করা
একটি ডেমো প্রোটোটাইপ তৈরি করা
একটি ডেমো প্রোটোটাইপ তৈরি করা
একটি ডেমো প্রোটোটাইপ তৈরি করা
একটি ডেমো প্রোটোটাইপ তৈরি করা
একটি ডেমো প্রোটোটাইপ তৈরি করা

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

ধাপ 4: ATTiny85 প্রোগ্রামিং

Arduino স্কেচ এবং সাহায্যকারী প্রোগ্রাম এই ধাপে সংযুক্ত করা হয়। আপনার Arduino স্কেচ ফোল্ডারে, PiPwr নামে একটি ফোল্ডার তৈরি করুন এবং এতে PiPwr.ino ফাইলটি অনুলিপি করুন। Arduino IDE চালু করলে আপনি এখন এটি আপনার স্কেচবুকে পাবেন।

ATTiny85 প্রোগ্রাম করার বিভিন্ন উপায় আছে। যদি আপনার বুটলোডার ইনস্টল করা থাকে তবে আপনি ATTiny85 ডেভেলপমেন্ট বোর্ড ব্যবহার করতে পারেন যার খরচ মাত্র কয়েক পাউন্ড। এটি একটি USB পোর্টের মাধ্যমে আপনার পিসির সাথে সংযোগ স্থাপন করে। আমি একটি Hidiot ব্যবহার করেছি যা মূলত একই কিন্তু একটি প্রোটোটাইপিং এলাকার সাথে।

Arduino IDE এর অধীনে ফাইল - পছন্দসমূহ, যোগ করুন

digistump.com/package_digistump_index.json

অতিরিক্ত বোর্ড ম্যানেজারের URL- এ।

টুলস -বোর্ডের অধীনে আপনার এখন অনেকগুলি ডিজিসপার্ক বিকল্প দেখা উচিত। Digispark নির্বাচন করুন (ডিফল্ট - 16.5MHz)।

যদি আপনার ATTiny85 এর বুটলোডার না থাকে (অথবা আপনি জানেন না) তাহলে আপনি কয়েক পাউন্ডের জন্য একটি AVR ISP প্রোগ্রামার পেতে পারেন। অথবা আপনি প্রোগ্রামার হিসেবে একটি Arduino Uno বা সস্তা Pro Mini বা Nano ব্যবহার করতে পারেন। নির্দেশাবলীর জন্য গুগল "arduino as isp attiny85" (উদ্ধৃতি ছাড়া)।

আপনি যদি স্কেচটি সংশোধন করতে চান তবে আপনি এটি সম্পূর্ণরূপে মন্তব্য করেছেন এবং আশা করি অনুসরণ করা সহজ হবে। ডিবাগ করার জন্য Arduino Pro Mini বা Nano ব্যবহার করা অনেক সহজ। সিরিয়াল মনিটর ব্যবহার করে যে ধাপগুলো চলে তা দেখতে সেটআপের মধ্যে serial.begin () এবং লুপ () এ প্রিন্ট স্টেটমেন্টগুলি আনকমেন্ট করুন। উত্সে বিকল্প পিনের সংজ্ঞা আছে, মন্তব্য করা হয়েছে, একটি ইউনো, প্রো মিনি বা ন্যানোর জন্য।

আপনার রাস্পবেরি পাইতে, shutdown_helper.py ফাইলটি অনুলিপি করুন ফোল্ডারে/etc/local/bin এবং এটি কমান্ড দিয়ে এক্সিকিউটেবল হিসাবে সেট করুন

sudo chmod +x /usr/local/bin/shutdown_helper.py

এখন আপনার প্রিয় সম্পাদকের সাথে /etc/rc.local ফাইলটি সম্পাদনা করুন। (আপনাকে রুট হিসাবে এটি করতে হবে।) শেষ লাইনের আগে (প্রস্থান 0) লাইনটি সন্নিবেশ করান

nohup /usr/local/bin/shutdown_helper.py &

রিবুট করুন, এবং সাহায্যকারী প্রোগ্রাম স্বয়ংক্রিয়ভাবে শুরু হবে।

প্রস্তাবিত: