আমি কীভাবে আমার সফ্টওয়্যার ব্যবহার করে সিস্টেম এলইডি নিয়ন্ত্রণ করতে পারি?


64

আরপিআইতে 5 টি এলইডি রয়েছে: ওকে, পিডব্লিউআর, এফডিএক্স, এলএনকে, 10 এম।

আমি জানতে চাই যে সফটওয়্যার থেকে এগুলির যে কোনওটিকে নিয়ন্ত্রণ করা সম্ভব ie যেমন সেগুলি চালু করুন, বা তীব্রতা পরিবর্তন করুন (বা রঙের হাঁফান পরিবর্তন করুন )।

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


2
এবং হ্যাঁ - আমি জানি আমি জিপিআইও আউটপুটগুলিতে খুব সহজেই এলইডি যুক্ত করতে পারি - তবে আমি আগ্রহী যে বাহ্যিক হার্ডওয়্যার ছাড়া কী করা যায়।
মারিয়া জাভেরিনা

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

2
@ জিভিংস সম্মত হন যে তারা সম্ভবত আরপিআইয়ের দামের ভিত্তিতে একক রঙের ... তবে এটি জিজ্ঞাসা করতে কখনই ব্যথা হয় না :)
মারিয়া জাভেরিনা

উত্তর:


57

ওকে এলইডি ব্যবহারকারীর স্পেস সফটওয়্যার থেকে নিয়ন্ত্রণ করা যায়। বিশদগুলি এখানে: পুনরায়: আমরা কী বোর্ডের নেতৃত্বগুলি নিয়ন্ত্রণ করতে পারি?

উপরের থেকে সংক্ষিপ্তসার (সমস্ত ক্রেডিট ব্রায়ানডাব্লু):

ঠিক আছে এলইডি হিসাবে উপলব্ধ /sys/class/leds/led0/

কার্নেল এলইডি ড্রাইভারের "ট্রিগার" রয়েছে যা কার্নেলের কিছু অংশ এলইডি নিয়ন্ত্রণ করতে দেয়। LED এর ডিফল্ট ট্রিগারটি ' mmc0', যা এসডি কার্ডটি অ্যাক্সেস করা হলে এটি চালু করে।

root@raspberrypi:~# cat /sys/class/leds/led0/trigger
none [mmc0]

আপনি mmc0নিম্নলিখিত হিসাবে ট্রিগার নিষ্ক্রিয় করতে পারেন :

echo none >/sys/class/leds/led0/trigger

' brightness' ফাইলটি ব্যবহার করে LED চালু এবং বন্ধ করা যায় । সর্বনিম্ন উজ্জ্বলতা 0, এবং সর্বোচ্চ 255 5 কোনও পরিবর্তনশীল উজ্জ্বলতা সমর্থন না থাকায় 0 এর চেয়ে বড় যে কোনও মান এলইডি চালু করবে।

echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness

উজ্জ্বলতা 0 তে সেট করা স্বয়ংক্রিয়ভাবে ট্রিগারটিকে "কিছুই নয়" তে সেট করে।

আপনি যদি এলইডিটিকে তার ডিফল্ট ফাংশনে ফিরে যেতে চান:

echo mmc0 >/sys/class/leds/led0/trigger

কয়েকটি কার্নেল মডিউল রয়েছে যা আপনি লোড করতে পারেন ( ledtrig_timerএবং ledtrig_heartbeat) যা আপনার জন্য এলইডি ফ্ল্যাশ করবে।

modprobe ledtrig_heartbeat
echo heartbeat >/sys/class/leds/led0/trigger

একবার আপনি mmc0ট্রিগারটি বন্ধ করে দিলে, আপনি LED নিয়ন্ত্রণ করতে GPIO16 ব্যবহার করতে পারেন। এটি সক্রিয়-নিম্ন, তাই আপনাকে এলইডি চালু করতে পিনটি কম সেট করতে হবে এবং এটিকে বন্ধ করতে উচ্চতর high

পাইথন থেকে, আপনি RPi.GPIOপিন 16 নিয়ন্ত্রণ করতে মডিউলটি ব্যবহার করতে পারেন There এছাড়াও সি # ড্রাইভারও রয়েছে।

কোডের উদাহরণ

#!/usr/bin/python

import RPi.GPIO as GPIO
from time import sleep

# Needs to be BCM. GPIO.BOARD lets you address GPIO ports by periperal
# connector pin number, and the LED GPIO isn't on the connector
GPIO.setmode(GPIO.BCM)

# set up GPIO output channel
GPIO.setup(16, GPIO.OUT)

# On
GPIO.output(16, GPIO.LOW)

# Wait a bit
sleep(10)

# Off
GPIO.output(16, GPIO.HIGH)

3
হ্যালো লোক! লিঙ্ক পচা রোধ করতে আপনি এখানে থ্রেডের মূল পয়েন্টগুলি সংক্ষিপ্ত করতে পারেন? ধন্যবাদ!

এটি হ্যাকও নয়!
অ্যালেক্স চেম্বারলাইন

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

4
রাস্পবেরি পাই 2 এফওয়াইআই, আপনি শেষ পর্যন্ত পিডাব্লুআর এলইডিও নিয়ন্ত্রণ করতে পারেন! এটি দিয়ে জিপিআইও মোডে স্যুইচ করুন echo gpio | sudo tee /sys/class/leds/led1/trigger, তারপরে চালু বা বন্ধ করুন echo [0|1] | sudo tee /sys/class/leds/led1/brightness
geerlingguy

2
কমান্ড লাইন থেকে (কীভাবে / ব্যবহারকারীর / শ্রেণিতে লেখার জন্য সুপার ব্যবহারকারীর সুবিধাগুলি ছাড়াই ...) কীভাবে করা যায় তা নিয়ে যে কেউ ভাবছেন, প্রথমে জিপিওতে ট্রিগার করার জন্য এলইডি সেট করুন, এবং তারপরে ওয়্যারিংপিপি শিখুন। স্পার্কফুন. com/ টিউটোরিয়ালস / ইনস্টল করুন রাস্পবেরি-জিপিও / সি-ওয়্যারিংপি-সেটআপ এর পরে আপনি কেবল " ON জিপিও- জি মোড 16 আউটপুট && জিপিও-জি 16 0" লিখতে পারেন নেতৃত্বাধীন চালু করতে (এবং 1 টি বন্ধ)
জুনস.ফি

20

বোর্ডে থাকা LED টির কোনওটিই সফ্টওয়্যারটিতে নিয়ন্ত্রণ করা যায় না - এগুলি সমস্ত অন্যান্য জিনিসের জন্য ব্যবহৃত হয়।

  • ঠিক আছে - এসডি কার্ড অ্যাক্সেস নির্দেশ করে
  • পিডব্লিউআর - মাইক্রো ইউএসবি সংযোগের শক্তি নির্দেশ করে
  • এফডিএক্স - সম্পূর্ণ দ্বৈত ল্যান
  • এলএনকে - ল্যান ক্রিয়াকলাপ
  • 10 এম - 10 এম / 100 এম সংযোগের গতি - এটি জ্বালানো থাকলে, আরপিআই 100 এম এ সংযুক্ত থাকে।

এখন, এটি সরকারী উত্তর ... আসুন স্কিম্যাটিক অধ্যয়ন করি ।

পৃষ্ঠা 4 পিডাব্লুআর এলইডি সরাসরি বিদ্যুত সরবরাহের সাথে সংযুক্ত থাকে, তাই আমরা সফ্টওয়্যারটিতে এটি নিয়ন্ত্রণ করতে পারি না।

পৃষ্ঠা 3 এফডিএক্স, এলএনকে এবং 10 এম সমস্তই ইথারনেট চিপের সাথে সংযুক্ত রয়েছে, সুতরাং আমরা আবার তাদের সফ্টওয়্যারটিতে নিয়ন্ত্রণ করতে পারি না (কিছু ফান ট্র্যাফিক হ্যাক ছাড়া ...)।

পৃষ্ঠা 4 কিন্তু ঠিক আছে আসলে GPIO 16 দ্বারা নিয়ন্ত্রিত হয়, তাই একটি হ্যাক সম্ভাবনা ...


1
@ অ্যালেক্সচ্যাম্বারলাইন এলইডিগুলির সুন্দর সংজ্ঞা। তবে আমরা কি সত্যই নিশ্চিত যে এগুলি সফ্টওয়্যার দ্বারা নিয়ন্ত্রণ করা যায় না? নেটওয়ার্ক এলইডি কি ফার্মওয়্যার নিয়ন্ত্রণে আছে বা আসল হার্ডওয়্যার? এবং যদি তারা ফার্মওয়্যার দ্বারা নিয়ন্ত্রিত হয়, আমরা কি কোনওভাবে এই প্রকৌশলীকে বিপরীত করতে পারি?
মারিয়া জাভেরিনা

5
পরীক্ষা করে দেখুন পরিকল্পিত PWR সরাসরি ক্ষমতা সাথে সংযুক্ত করা হয়, এবং FDX, lnk & ইথারনেট চিপ 10M -। আমি যেমন বলেছি, আপনি ঠিক আছে LED হ্যাক করতে সক্ষম হতে পারে।
অ্যালেক্স চেম্বারলাইন

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

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


7

আপনি সমস্ত সীসা নিয়ন্ত্রণ করতে পারেন (পুরানো পাই মডেলগুলিতে পিডব্লিউআর ব্যতীত, অন্যান্য উত্তরে বলা আছে)।

তবে ইথারনেট নেতৃত্বের জন্য আপনাকে ড্রাইভারকে প্যাচ করতে হবে এবং কার্নেলটি পুনরায় তৈরি করতে হবে।

রিকম্পাইলটি কীভাবে এখানে পাবেন সে সম্পর্কিত তথ্য: http://elinux.org/RPi_Kernel_Compilation

প্যাচ এবং আরও তথ্যের (এখানে প্রয়োজনে গুগল অনুবাদ করুন): http://everpi.tsar.in/2013/11/patch-para-controlar-os-leds-ethernet-do-raspberrypi.html

সম্পন্ন হওয়ার পরে, আপনি: / sys / শ্রেণী / smsc95xx_leds এবং eth_fdx, eth_lnk ইথ_এসপিডি নিয়ন্ত্রণ করতে সক্ষম হবেন।

উদাহরণ: প্রতিধ্বনি 0> / sys / শ্রেণী / smsc95xx_leds / eth_fdx প্রতিধ্বনি 1> / sys / শ্রেণী / smsc95xx_leds / eth_fdx


6

আমি নিশ্চিত করতে পারি যে রাস্পবেরি পাই 2 দিয়ে পিডাব্লুডি এলইডি নিয়ন্ত্রণ করাও সম্ভব!

পাওয়ার এলইডি এতে ফাইলগুলি দ্বারা নিয়ন্ত্রিত হয়:

/sys/class/leds/led1

আপনি স্ট্যাটাস এলইডি ব্যবহার করে ঠিক তা বন্ধ করতে পারেন:

echo 0 > /sys/class/leds/led1/brightness # Power LED
echo 0 > /sys/class/leds/led0/brightness # Status LED

এলইডি নিয়ন্ত্রণের আরও উপায়ের জন্য গায়ের উত্তর দেখুন


রাস্পবেরি পাইতে শূন্য "ইকো 0 ..." এটি চালু করে! বন্ধ নেই
নিলসবি

6

আমি একটি ইউজারস্পেস প্রোগ্রাম লিখেছি যা আপনাকে ইথারনেট এলইডি নিয়ন্ত্রণ করতে দেয়।

প্রোগ্রামটির আরও সাম্প্রতিক প্রয়োজন libusb-1.0(পুরানো 0.1 নয়)। এটি LAN9512 (যেমন পুরানো রাস্পবেরি বি তে) পাশাপাশি LAN9514 চিপগুলির সাথে কাজ করে (যেমন রাস্পবেরি বি + বা রাস্পবেরি 2)

বিশদগুলি এখানে পাওয়া যাবে: LAN951x LED নিয়ন্ত্রণ


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

5

পাই 2 এর সাহায্যে আপনি লাল এবং সবুজ রঙের উভয়ই LED এর বোর্ড নিয়ন্ত্রণ করতে পারেন।

উইন্ডোজ 10 আইওটি ডকুমেন্টেশনগুলি যথাক্রমে জিপিআইও 35 এবং 47 এ রেড পাওয়ার এলইডি এবং সবুজ ওকে এলইডি তালিকাভুক্ত করে।

https://ms-iot.github.io/content/en-US/win10/samples/PinMappingsRPi2.htm

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

এখানে একটি নমুনা। (দ্রষ্টব্য যে এটি পূর্ববর্তী পোস্টগুলিতে উল্লিখিত হিসাবে ট্রিগারটিকে ওভাররাইড করে না)

print ("Program Start")
import RPi.GPIO as GPIO
import time

channels = [35, 47]

print ("Turning off LED's")
GPIO.setmode(GPIO.BCM)
GPIO.setup(channels, GPIO.OUT)
GPIO.output(channels, GPIO.LOW)
time.sleep(5)

print ("Turning on LED's")
GPIO.output(channels, GPIO.HIGH)
time.sleep(5)

GPIO.cleanup()

print ("Program End")
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.