1

Тема: Крутая программа

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

Поделиться

2 (25.11.2010 18:23:40 отредактировано vertyogo)

Re: Крутая программа

Поставьте alarm и караульте, а вообще что, оставляете где попало?
smile

Сайт vertyogo

Поделиться

3

Re: Крутая программа

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

Поделиться

4

Re: Крутая программа

У меня таким образом и увели телефон. Я думаю что эта крутая программа меня бы не спасла sad

Nokia 9300 -> Nokia E90 -> Nokia N900

Сайт doktorsmirnov

Поделиться

5

Re: Крутая программа

мораль в том что нефиг спешить )

не было забот - купил n900

Поделиться

6

Re: Крутая программа

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

Поделиться

7

Re: Крутая программа

Зачем нужны ноги, если костыли стоят так дёшево?

На форуме появляюсь редко, но N900 пользоваться не перестал, если вдруг что-то нужно пишите в jabber или eMail
Jabber: mrclon@jabnet.org

Поделиться

8

Re: Крутая программа

doktorsmirnov пишет:

Я думаю что эта крутая программа меня бы не спасла

Если риск большой, то можно сделать отправку фото по мейлу или ммс, или хоть на фтп сервер свой заливать. Но конечно это надо совсем уж риск большой, чтобы такое в фоне запускать.

alchgoto, такую программу несложно сделать. Можно даже написать скрипт, который это будет делать.
Получить данные с акселерометра можно так:

cat /sys/class/i2c-adapter/i2c-3/3-001d/coord | cut -d' ' -f3`

Получить фотку с фронтальной камеры - вот так:

gst-launch v4l2camsrc device=/dev/video1 num-buffers=1 ! dspjpegenc ! filesink location=photo.jpg

Я на коленке написал вот такой скриптик. Сохраняете его в какой-файл, например photo_alarm.sh, присваиваете ему права на исполнение (chmod +x photo_alarm.sh), устанавливаете пакет gstreamer-tools и можно запускать из терминала.
Он сначала ждёт, пока вы положите телефон на стол(вверх экраном или вниз - неважно), а затем как только его кто-то поднимает - ждет 2 секунды и делает подряд 3 снимка с интервалом в секунду в папку "Изображения"(/home/user/MyDocs/.images/) - каждая фотка будет называться front_alarm_ГГММДД_ЧЧММСС.jpg (где ГГ, ДД и тп - год, день и тп, короче дата и время, имя у каждой фотки уникальное). После этого ждет пока телефон снова положат и тогда уже снова ждет следующее поднятие.

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

Код там в принципе понятен должен быть, меняйте по своему усмотрению smile

#!/bin/sh

[ -f /usr/bin/gst-launch ] || \
{ echo "This script requires gstreamer-tools package. Run 'apt-get install gstreamer-tools' as root"; exit 1; }

IMAGES_DIR=/home/user/MyDocs/.images/

# Make shot from front camera
# Change to /dev/video0 to get photo from back camera
# Photos will be named by date
take_photo()
{
        gst-launch v4l2camsrc device=/dev/video1 num-buffers=1 ! dspjpegenc ! filesink location=$IMAGES_DIR/front_alarm_`date +%Y%m%d_%H%M%S`.jpg
}

# Read accelerometer data and extract Z-coordinate 
get_zcoord()
{
        ZCOORD=`cat /sys/class/i2c-adapter/i2c-3/3-001d/coord | cut -d' ' -f3`;
        ZVAL=`expr $ZCOORD / 18`;
}

# Check if phone is lies on the table
# Both upside and downside variants
is_lying()
{
        IS_LYING="0"
        get_zcoord
        VAL_DOWN=`expr $ZVAL + 56`
        VAL_UP=`expr $ZVAL - 56`
        [[ "$VAL_DOWN" -ge "0" -a "$VAL_DOWN" -le "3" -o \
           "$VAL_UP" -ge "0" -a "$VAL_UP" -le "3" ]] && \
                IS_LYING="1"
}

wait_for_lie()
{
        echo "Waiting for the phone to be put down... "
        while [ "$IS_LYING" -eq "0" ]; do
                is_lying
                sleep 1
        done
}

# Initially we should start only after phone will be put down
wait_for_lie

echo "Ok, phone is on the table. Start watching..."

while true; do
        is_lying
        [[ "$IS_LYING" -eq "1" ]] && { sleep 1; continue; }

        # Got alarm
        echo "Alarm! Waiting 2 secs and taking 3 photos into /home/user/MyDocs/.images/"
        sleep 2
        for i in `seq 1 3`; do
                take_photo
                sleep 1
        done

        wait_for_lie
        sleep 2 # just to make accelerometer happy after putting down

        echo "Waiting for the next alarm..."
done

exit 0
---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

Сайт divan

Поделиться

9

Re: Крутая программа

Можно и послеугонку I am here из репов поставить..
Только от аларма эфекту больше - не признаются кто, но другим не дадут. А вообще, с таким забывчивым подчиненным /но исполительным smile/ "шеф", долго кашу варить не станет.

Сайт vertyogo

Поделиться

10

Re: Крутая программа

я бы в скрипте убрал
while true; do
и в конце
sleep 2 # just to make accelerometer happy after putting down

        echo "Waiting for the next alarm..."
done

и запускал бы его через cron... меньше энергии пожрет однако (все эхо также стереть стоит)

We all know Linux is great … it does infinite loops in 5 seconds.The only limiting factor of the Linux operating system is its user.

Поделиться