Найти в Дзене

Видео и звуковой извещатель о гостях у калитки с видео фиксацией.

Я использую программу BabyCam на двух смартфонах. Один (первый) в режиме "Ребёнок" ведет постоянную видео съёмку калитки, а второй в режиме "Родители" висит над моим диваном и воспроизводит изображение и звук, передаваемые с первой камеры. К сожалению, в BabyCam нет датчика движения и лишь по видеоизображению или громкому звуку можно узнать, что кто-то подошёл к калитке и можно вручную получить фото гостя.  Поэтому я написал программу в редакторе basic! или rfo-basic для андроид с версиями меньше 14.  Моя программа включается в третьем смартфоне, находящемся рядом с первым в прихожей.  Он периодически фотографирует ту же калитку, но не записывает изображение до тех пор, пока моя программа не обнаружит изменения в двух участках изображения по сравнению с предыдущим, снятым немного ранее.  Главный участок слежения выбирается нажатием пальца на второе появившееся изображение. Участок для сравнения программа выбирает сама по указанному в ней сдвигу.  Кроме записи в память смартфона нового

Я использую программу BabyCam на двух смартфонах. Один (первый) в режиме "Ребёнок" ведет постоянную видео съёмку калитки, а второй в режиме "Родители" висит над моим диваном и воспроизводит изображение и звук, передаваемые с первой камеры. К сожалению, в BabyCam нет датчика движения и лишь по видеоизображению или громкому звуку можно узнать, что кто-то подошёл к калитке и можно вручную получить фото гостя. 

Поэтому я написал программу в редакторе basic! или rfo-basic для андроид с версиями меньше 14. 

Моя программа включается в третьем смартфоне, находящемся рядом с первым в прихожей. 

Он периодически фотографирует ту же калитку, но не записывает изображение до тех пор, пока моя программа не обнаружит изменения в двух участках изображения по сравнению с предыдущим, снятым немного ранее.

 Главный участок слежения выбирается нажатием пальца на второе появившееся изображение. Участок для сравнения программа выбирает сама по указанному в ней сдвигу. 

Кроме записи в память смартфона нового изображения, третий смартфон произносит фразу, которая регистрируется микрофоном первого смартфона и по WiFi передаётся на второй смартфон над моим диваном. 

В текстовый файл записывается имя фотокадра, включающее дату и время фотосъёмки. 

Участки кадра для контроля изменения изображений можно изменять так, что не будет реакции на посторонние изменения, например, появление машины соседей. 

В конце есть строка,

 IF much <mu THEN GOTO camGuard

задающая число проверок, в каждой из которых 4 съемки кадров. 

WAKELOCK 4

me=0

input "число циклов", muc$,"10000"

mu=val(muc$) 

rb1=1

rb2=1

camGuard:

GR.OPEN 255,0,0,0

GR.CAMERA.SELECT 1

GR.CAMERA.AUTOSHOOT test,2,1

GR.BITMAP.DRAW test1,test,1,1

GR.RENDER

DO

 GR.TOUCH flag, x , y

 IF flag

cri=x+90

GR.COLOR 49,99,99,9,49

GR.RECT test1, x-38, y+18,x+38,y-18

GR.RECT test1, cri-38, y+18,cri+38,y-18

 ! GR.RENDER

 ! ? x, y

 ! GR.GET.BMPIXEL test,x,y,alpha, red, green, blue

 ! rgb=red+green+blue

 ! ? rgb, red,green,blue

 PAUSE 900

 ENDIF

 !GR.RENDER

UNTIL x>1

FOR r=-38 TO r=+38 STEP 1

 FOR h=-18 TO h=+18 STEP 1

 GR.GET.BMPIXEL test,x+r,y+h,alpha, red, green, blue

 rb1=rb1+red+green+blue

 NEXT h

NEXT r

cls

? cri

FOR rr=-38 TO rr=+38 STEP 1

 FOR hh=-18 TO hh=+18 STEP 1

 GR.GET.BMPIXEL test,cri+rr,y+hh,alpha, red, green, blue

 rb2=rb2+red+green+blue

 NEXT hh

NEXT rr

GR.COLOR 99,99,99,9,99

GR.RECT test1, x-38, y+18,x+38,y-18

GR.RECT test1, cri-38, y+18,cri+38,y-18

!GR.CIRCLE test1, cri,y,28

!GR.CIRCLE test1, x,y,28

IF me=0 THEN rat=rb1/rb2

!? me, INT(rb1), INT(rb2), INT(1000*rat), INT(1000*rb1/rb2)

me=me+1

IF ABS(rat- rb1/rb2) >0.05 THEN

 TIME year$, month$, day$, hrs$, min$, sec$

 datefile$ = year$ + month$ + day$ + hrs$ + min$ + sec$ + ".png"

 FILE.RENAME "image.png", datefile$

 TTS.INIT

 TTS.SPEAK "гости у ворот проверь видео внимание гости у калитки"

 TTS.STOP

 TEXT.OPEN a, FN2, "gosti_U_kalitki_time.txt"

 TEXT.WRITELN FN2, datefile$

 TEXT.CLOSE FN2

ENDIF

GR.RENDER

PAUSE 1900

GR.BITMAP.DELETE test

GR.CLOSE

IF me <4 THEN GOTO camGuard

me=0

much=much+1

IF much <mu THEN GOTO camGuard

END

Мой комментарий: 

Несколько раз замечал, что при съёмке совершенно чёрного кадра происходит сбой работы моих программ, написанных в basic! 

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

Мой комментарий: ложные срабатывания из-за появления мухи на стекле окна перед объективом камеры смартфона. Польза: доказывает, что система работает. 

Мухи ползают по стеклу перед камерой и создавали много сообщений о гостях у калитки. Пришлось перед стеклом разместить липучки для ловли мух. 

Мой комментарий: В момент съемки кадра раздаётся тихий щелчок, который слышит камера "ребёнка" и передаёт на камеру "родителя". Он слышен там. Подтверждение работоспособности всей системы даже без появления гостя у калитки. Тихий звук щелчка на камере "родителя" напоминает тот, который производили механические часы ходики.