Esempio n. 1
0
def run():
    #создаем трансляцию с камеры (тип потока h264/mjpeg, разрешение, частота кадров, хост куда шлем, функция обрабтчик кадров)
    rpiCamStreamer = rpicam.RPiCamStreamer(FORMAT, RESOLUTION, FRAMERATE, (IP, RTP_PORT), onFrameCallback)
    #robotCamStreamer.setFlip(False, True) #отражаем кадр (вертикальное отражение, горизонтальное отражение)
    rpiCamStreamer.setRotation(180) #поворачиваем кадр на 180 град, доступные значения 90, 180, 270
    rpiCamStreamer.start() #запускаем трансляцию

    #поток обработки кадров    
    frameHandlerThread = FrameHandlerThread(rpiCamStreamer)
    frameHandlerThread.start() #запускаем обработку
    try:
        while True:
            print ('CPU temp: %.2f°C. CPU use: %.2f%%' % (rpicam.getCPUtemperature(), psutil.cpu_percent()))
            time.sleep(1)
    except (KeyboardInterrupt, SystemExit):
        print('Ctrl+C pressed')

    #останавливаем обработку кадров
    frameHandlerThread.stop()

    #останов трансляции c камеры
    rpiCamStreamer.stop()    
    rpiCamStreamer.close()
   
    print('End program')
Esempio n. 2
0
    def run(self):
        print('SK_DisplayStatus started')

        #        gpio = RPiPWM.Gpio()
        #        gpio.ButtonAddEvent(self.ButtonEvent)

        # создаем объект для работы с дисплеем (еще возможные варианты - 128_32 и 96_16 - размеры дисплеев в пикселях)
        disp = RPiPWM.SSD1306_128_64()
        disp.Begin()  # запускаем дисплей
        disp.Clear()  # очищаем буффер изображения
        disp.Display()  # выводим пустую картинку на дисплей

        width = disp.width  # получаем высоту и ширину дисплея
        height = disp.height

        image = Image.new(
            '1',
            (width, height
             ))  # создаем изображение из библиотеки PIL для вывода на экран
        draw = ImageDraw.Draw(image)  # создаем объект, которым будем рисовать
        top = -2  # сдвигаем текст вверх на 2 пикселя
        x = 0  # сдвигаем весь текст к левому краю
        font = ImageFont.load_default()  # загружаем стандартный шрифт

        while not self.stopped.wait(self.interval):
            self.cpuTemp = rpicam.getCPUtemperature()
            self.cpuPercent = psutil.cpu_percent()
            self.voltage = self.adc.GetVoltageFiltered()

            #print ('CPU temp: %.2f°C. CPU use: %.2f%% .Battery: %.2fV' % (
            #self.cpuTemp, self.cpuPercent, self.voltage))

            draw.rectangle((0, 0, width, height), outline=0,
                           fill=0)  # очищаем дисплей

            if self.number_disp:
                draw.text((x, top), "Screen: 1 / 2", font=font, fill=255)
                draw.text((x, top + 8),
                          "Battery: " + str(self.voltage) + " V",
                          font=font,
                          fill=255)  # высота строки - 8 пикселей
                draw.text((x, top + 16),
                          "CPU Temp: " + str(self.cpuTemp) + " °C",
                          font=font,
                          fill=255)
                draw.text((x, top + 24),
                          "CPU Percent: " + str(self.cpuPercent) + " %",
                          font=font,
                          fill=255)
                draw.text((x, top + 32), "...", font=font, fill=255)
                draw.text((x, top + 40), "...", font=font, fill=255)
                draw.text((x, top + 48), "...", font=font, fill=255)
            else:
                draw.text((x, top), "Screen: 2 / 2", font=font, fill=255)

            disp.Image(image)
            disp.Display()
Esempio n. 3
0
#создаем трансляцию с камеры (тип потока h264/mjpeg, разрешение, частота кадров, хост куда шлем, функция обрабтчик кадров)
rpiCamStreamer = rpicam.RPiCamStreamer(FORMAT, RESOLUTION, FRAMERATE,
                                       (IP, RTP_PORT), onFrameCallback)
#robotCamStreamer.setFlip(False, True) #отражаем кадр (вертикальное отражение, горизонтальное отражение)
rpiCamStreamer.setRotation(
    180)  #поворачиваем кадр на 180 град, доступные значения 90, 180, 270
rpiCamStreamer.start()  #запускаем трансляцию

#поток обработки кадров
frameHandlerThread = FrameHandlerThread(rpiCamStreamer)
frameHandlerThread.start()  #запускаем обработку

#главный цикл программы
try:
    while True:
        print('CPU temp: %.2f°C. CPU use: %.2f%%' %
              (rpicam.getCPUtemperature(), psutil.cpu_percent()))
        time.sleep(1)
except (KeyboardInterrupt, SystemExit):
    print('Ctrl+C pressed')

#останавливаем обработку кадров
frameHandlerThread.stop()

#останов трансляции c камеры
rpiCamStreamer.stop()
rpiCamStreamer.close()

print('End program')
Esempio n. 4
0
        # Отрисовываем на картинке черный прямоугольник, тем самым её очищая
        draw.rectangle((0, 0, self._disp.width, self._disp.height),
                       outline=0,
                       fill=0)

        #Отрисовываем строчки текста с текущими значениями напряжения, сылы тока и мощности
        draw.text((0, 0),
                  "State: %d" % frameHandlerThread.state,
                  font=font,
                  fill=255)
        draw.text((0, 10),
                  "Voltage: %.2fV" % self._ina.voltage(),
                  font=font,
                  fill=255)
        draw.text((0, 20),
                  "CPU temp: %.2f°C" % rpicam.getCPUtemperature(),
                  font=font,
                  fill=255)
        draw.text((0, 30),
                  "CPU use: %.2f%%" % psutil.cpu_percent(),
                  font=font,
                  fill=255)
        time.sleep(1)
except (KeyboardInterrupt, SystemExit):
    print('Ctrl+C pressed')

#останавливаем поток отправки онлайн сообщений в контроллер EduBot
robot.Release()

#останавливаем обработку кадров
frameHandlerThread.stop()
Esempio n. 5
0
 def getTempVoltage(self):
     temp = rpicam.getCPUtemperature()
     voltage = adc.GetVoltageFiltered()
     res = [temp, voltage]
     return res
Esempio n. 6
0
#создаем трансляцию с камеры (тип потока h264/mjpeg, разрешение, частота кадров, функция обрабтчик кадров)
rpiCamStreamer = rpicam.RPiCamStreamer(FORMAT, RESOLUTION, FRAMERATE, onFrameCallback)
#задаем порт и хост куда шлем видео
rpiCamStreamer.setPort(RTP_PORT)
rpiCamStreamer.setHost(IP)
#robotCamStreamer.setFlip(False, True) #отражаем кадр (вертикальное отражение, горизонтальное отражение)
rpiCamStreamer.setRotation(180) #поворачиваем кадр на 180 град, доступные значения 90, 180, 270
rpiCamStreamer.start() #запускаем трансляцию

#поток обработки кадров    
frameHandlerThread = FrameHandlerThread(rpiCamStreamer)
frameHandlerThread.start() #запускаем обработку

#главный цикл программы
try:
    while True:
        print ('CPU temp: %.2f°C. CPU use: %.2f%%' % (rpicam.getCPUtemperature(), psutil.cpu_percent()))
        time.sleep(1)
except (KeyboardInterrupt, SystemExit):
    print('Ctrl+C pressed')

#останавливаем обработку кадров
frameHandlerThread.stop()

#останов трансляции c камеры
rpiCamStreamer.stop()    
rpiCamStreamer.close()
   
print('End program')