Автозапуск скрипта при загрузке Raspbian. Работа с камерой.


  • 0

    Написал скрипт на Python, малинка со своим дисплеем и кнопками с которыми взаимодействует скрипт. При запуске скрипта на дисплей выводится меню и тд.
    Хочу добавить скрипт в автозагрузку чтобы можно было управлять устройством без монитора только с помощью дисплея и кнопок которые установил.

    Проблема в том что одна из функций программы которая запускается это работа с камерой, скрипт делает фото, и если скрипт запускается через автозапуск и я пытаюсь сделать фото скрипт виснет (не крашиться) на строке где он делает фото и сохраняет его. При обычном запуске всё работает нормально.

    Пробовал реализовать автозапуск разными способами, менял права, ничего не меняется. Я перепробовал много способов, но скорее всего что-то упустил. Кто сталкивался с такой проблемой?



  • 1

    Самое банальное, что приходит на ум - инициализация камеры происходит после того, как начал выполняться скрипт.

    Что за малинка?
    Как добавлял в автозапуск?
    Ну и сам скрипт бы увидеть с проблемным местом.



  • 2

    @ken 1. малинка Pi 3

    1. Добавлял в автозапуск через crontab, через /etc/rc.local, через sudo nano /etc/xdg/lxsession/LXDE-pi/autostart, это то что я смог вспомнить потому что эти способы точно запускали скрипт.
    from time import sleep
     
    camera = PiCamera()
    
    
    def cam():
        # Запускаем предпросмотр сигнала с камеры на экране поверх всех окон
        camera.start_preview()
    
        # Зададим разрешение камеры — 1024 пикселя по ширине и 768 по высоте
        #camera.resolution = (640, 480)
        #camera.resolution = (1024, 720)
        #camera.resolution = (1640, 922)
        #camera.resolution = (1640, 1232)
        #camera.resolution = (1920, 1080)
        #camera.resolution = (2464, 1848)
        camera.resolution = (3280, 2464)
    
        #настройки камеры
        camera.sharpness = 54                 #Резкость = 0
        camera.contrast = 50                 #контрастность = 0
        camera.brightness = 49              #по умолчанию яркость = 50
        camera.saturation = 60               #насыщение = 0
        #camera.ISO = 0
        #camera.video_stabilization = False   #стабилизация видеокамеры = False
        #camera.exposure_compensation = 0     #компенсация экспозиции = 0
        #camera.exposure_mode = 'auto'        #режим экспозиции = 'авто'
        #camera.meter_mode = 'tall'        #метровый режим = 'средний average'
        #camera.awb_mode = 'auto'
        #camera.image_effect = 'none'
        #camera.color_effects = None          #цветовые эффекты = нет
        #camera.rotation = 0                  #вращение = 0
        #camera.hflip = False
        #camera.vflip = False
        #camera.crop = (0.0, 0.0, 1.0, 1.0)
        #camera.hflip = True
        #camera.vflip = True
    
    
        # Переключим баланс белого из режима авто в профиль естественного освещения
        camera.awb_mode = 'sunlight'
    
        # Даём камере три секунды на автофокусировку и установку баланса белого
        sleep(3)
    
        # Делаем снимок и сохраняем его на рабочий стол с именем image.jpg
        camera.capture('/home/pi/Рабочий стол/ANALIZ/photo/image.jpg')
    
        # Выключаем режим предпросмотра
        camera.stop_preview()
    


  • 3

    Участник @Bakz написал в Автозапуск скрипта при загрузке Raspbian. Работа с камерой.:

    Написал скрипт на Python, малинка со своим дисплеем и кнопками с которыми взаимодействует скрипт. При запуске скрипта на дисплей выводится меню и тд.
    Хочу добавить скрипт в автозагрузку чтобы можно было управлять устройством без монитора только с помощью дисплея и кнопок которые установил.

    Проблема в том что одна из функций программы которая запускается это работа с камерой, скрипт делает фото, и если скрипт запускается через автозапуск и я пытаюсь сделать фото скрипт виснет (не крашиться) на строке где он делает фото и сохраняет его. При обычном запуске всё работает нормально.

    Пробовал реализовать автозапуск разными способами, менял права, ничего не меняется. Я перепробовал много способов, но скорее всего что-то упустил. Кто сталкивался с такой проблемой?

    Участник @Bakz написал в Автозапуск скрипта при загрузке Raspbian. Работа с камерой.:

    @ken 1. малинка Pi 3

    1. Добавлял в автозапуск через crontab, через /etc/rc.local, через sudo nano /etc/xdg/lxsession/LXDE-pi/autostart, это то что я смог вспомнить потому что эти способы точно запускали скрипт.
    from time import sleep
     
    camera = PiCamera()
    
    
    def cam():
        # Запускаем предпросмотр сигнала с камеры на экране поверх всех окон
        camera.start_preview()
    
        # Зададим разрешение камеры — 1024 пикселя по ширине и 768 по высоте
        #camera.resolution = (640, 480)
        #camera.resolution = (1024, 720)
        #camera.resolution = (1640, 922)
        #camera.resolution = (1640, 1232)
        #camera.resolution = (1920, 1080)
        #camera.resolution = (2464, 1848)
        camera.resolution = (3280, 2464)
    
        #настройки камеры
        camera.sharpness = 54                 #Резкость = 0
        camera.contrast = 50                 #контрастность = 0
        camera.brightness = 49              #по умолчанию яркость = 50
        camera.saturation = 60               #насыщение = 0
        #camera.ISO = 0
        #camera.video_stabilization = False   #стабилизация видеокамеры = False
        #camera.exposure_compensation = 0     #компенсация экспозиции = 0
        #camera.exposure_mode = 'auto'        #режим экспозиции = 'авто'
        #camera.meter_mode = 'tall'        #метровый режим = 'средний average'
        #camera.awb_mode = 'auto'
        #camera.image_effect = 'none'
        #camera.color_effects = None          #цветовые эффекты = нет
        #camera.rotation = 0                  #вращение = 0
        #camera.hflip = False
        #camera.vflip = False
        #camera.crop = (0.0, 0.0, 1.0, 1.0)
        #camera.hflip = True
        #camera.vflip = True
    
    
        # Переключим баланс белого из режима авто в профиль естественного освещения
        camera.awb_mode = 'sunlight'
    
        # Даём камере три секунды на автофокусировку и установку баланса белого
        sleep(3)
    
        # Делаем снимок и сохраняем его на рабочий стол с именем image.jpg
        camera.capture('/home/pi/Рабочий стол/ANALIZ/photo/image.jpg')
    
        # Выключаем режим предпросмотра
        camera.stop_preview()
    

    До сих пор не решил проблему. Кто сталкивался?





Похоже, подключение к PiBoard было разорвано, подождите, пока мы пытаемся восстановить соединение.