Beispiel #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')
Beispiel #2
0
def transmit():
    global frameHandlerThread
    global IP_RTP
    global RTP_PORT
    print('Start transmit...')
    #проверка наличия камеры в системе  
    assert rpicam.checkCamera(), 'Raspberry Pi camera not found'
    print('Raspberry Pi camera found')

    print('OpenCV version: %s' % cv2.__version__)


    FORMAT = rpicam.VIDEO_MJPEG #поток MJPEG
    WIDTH, HEIGHT = 320, 240
    RESOLUTION = (WIDTH, HEIGHT)
    FRAMERATE = 30


    rpiCamStreamer = rpicam.RPiCamStreamer(FORMAT, RESOLUTION, FRAMERATE)
    rpiCamStreamer.setPort(RTP_PORT)
    rpiCamStreamer.setHost(IP_RTP)
    
    rpiCamStreamer.start() #запускаем трансляцию

    #поток обработки кадров    
    frameHandlerThread = FrameHandlerThread(rpiCamStreamer)
    frameHandlerThread.start() #запускаем обработку
Beispiel #3
0
    def start(self):
        print('SK_GStreamer started')

        # видеопоток с робота
        self.robotCamStreamer = rpicam.RPiCamStreamer(
            FORMAT, RESOLUTION, FRAMERATE,
            (IP_PULT, PORT_GS))  #, self.onFrameCallback)
        #        self.robotCamStreamer.setRotation(180)
        self.robotCamStreamer.start()
Beispiel #4
0
 def __init__(self, Format, resolution, framerate, host, port):
     super(SKVideo_RPicam_Transmiter, self).__init__()
     self.daemon = True
     self.Format = Format
     self.resolution = resolution
     self.framerate = framerate
     self.host = host
     self.port = port
     self.robotCamStreamer = rpicam.RPiCamStreamer(self.Format,
                                                   self.resolution,
                                                   self.framerate,
                                                   (self.host, self.port),
                                                   self.onFrameCallback)
Beispiel #5
0
def onFrameCallback(frame):  #обработчик события 'получен кадр'
    #print('New frame')
    frameHandlerThread.setFrame(frame)  #задали новый кадр


print('Start program')

#проверка наличия камеры в системе
assert rpicam.checkCamera(), 'Raspberry Pi camera not found'
print('Raspberry Pi camera found')

print('OpenCV version: %s' % cv2.__version__)

#создаем трансляцию с камеры (тип потока 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)
Beispiel #6
0
# Получаем свой IP адрес
#ip = rpicam.getIP()
ip = '10.42.0.69'
assert ip != '', 'Invalid IP address'
print('Robot IP address: %s' % ip)

print('OpenCV version: %s' % cv2.__version__)

print('initiating Serial communication with Arduino')
try:
    ser = serial.Serial('/dev/ttyACM0', 115200, timeout=1)
    print('--conneced sucsesfuly')
except:
    print('--cant connected to arduino(')

rpiCamStreamer = rpicam.RPiCamStreamer(FORMAT, RESOLUTION, FRAMERATE)
#задаем порт и хост куда шлем видео
rpiCamStreamer.setPort(RTP_PORT)
rpiCamStreamer.setHost(IP)
#robotCamStreamer.setFlip(False, True) #отражаем кадр (вертикальное отражение, горизонтальное отражение)
rpiCamStreamer.setRotation(
    180)  #поворачиваем кадр на 180 град, доступные значения 90, 180, 270
rpiCamStreamer.start()  #запускаем тра

#нужно для корректной работы системы
GObject.threads_init()
mainloop = GObject.MainLoop()

# XML-RPC сервер управления в отдельном потоке
serverControl = SimpleXMLRPCServer((ip, CONTROL_PORT))  #запуск XMLRPC сервера
serverControl.logRequests = False  #оключаем логирование