題 是否有終端命令或其他方式完全關閉Raspberry Pi相機?


我有一個Raspberry Pi相機並且使用我的Raspberry Pi很多,但相機有過熱的傾向。是否有終端命令關閉相機並在需要時將其重新打開?

它不是通過USB控制,而是CSI攝像頭連接器。


2
2017-12-05 22:13


起源


你可能更有可能得到答案 raspberrypi.stackexchange.com - DavidPostill♦
哪種型號的Raspberry Pi? - Ben Voigt
@BenVoigt我使用的是RPi 2 Model B V1.1 - Jacob
基於 原理圖 相機連接器的電源引腳未切換,也沒有任何復位引腳。因此,您正在通過Broadcom專有的驅動程序堆棧尋找一些軟件重置功能。 - Ben Voigt


答案:


RPI沒有PCI總線,因此我們無法使用標準Linux命令關閉板載攝像頭。為了完整起見,我將向您展示如何在RPI和普通電腦中做兩件事。

RPI

RPI相機可以在啟動時關閉。有個檔案, /boot/config.txt,您將需要此設置:

start_x=0             

在設置 start_x=1 打開它。

如果你想在運行中執行此操作,您可以嘗試(我沒有嘗試此操作)以下pyhton提示符:

 import picamera
 from time import sleep
 sleep(500)

看看這是否能真正解決你的過熱問題。當然,您需要安裝

  sudo apt-get install python-picamera

帶PCI總線的PC

命令是

 echo 0 > /sys/bus/usb/devices/1-1.3/bConfigurationValue

把它關掉,當然 echo 1 > ... 再打開它。唯一的問題是總線地址 1-1.3 是對的 我的 PC。你可以通過查看輸出找到你的地址

 # lsusb -t 
  ...............
  :  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M                                                                                                                                                                                                             
     |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M                                                                                                                                                                                                                    
     |__ Port 2: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M                                                                                                                                                                                                             
     |__ Port 2: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M                                                                                                                                                                                                             
     |__ Port 3: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M                                                                                                                                                                                                            
     |__ Port 3: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M  

你在這個輸出中看到了一個 Class=Video 對象,位於1號巴士,dev 3.現在你可以去

 # cd /sys/bus/usb/devices/; ls 
 1-0:1.0  1-1.2      1-1.3      2-0:1.0  2-1.5      2-1.6:1.0   2-1.6:1.2  2-1.6:1.5  2-1.6:1.8  3-2      3-3:1.0  4-0:1.0  usb3

唯一的1-3設備是 1-1.3。您輸入目錄並仔細檢查這是您的視頻攝像頭

# cat id{Vendor,Product}
   1bcf
   288e

你可以將其與輸出進行比較

 # lsusb 
  ................
  Bus 001 Device 003: ID 1bcf:288e Sunplus Innovation Technology Inc. 

谷歌搜索顯示1bcf確實是一個VideoCam。 1-1.3 是在上面的命令中插入的代碼。


3
2017-12-05 22:31



如果這不是USB設備,而是通過帶狀電纜連接怎麼辦? - Jacob
@MariusMatutiae為什麼我需要導入picamera才能使用sleep(500)?你的python代碼中是否有任何遺漏? - AtomHeartFather