• Stars
    star
    1
  • Language
    Perl
  • Created almost 7 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

RPi based surv cam that autoposts on twitter

Projekt baserat pÄ Raspberry Pi

Picam live!

picam kan ses live pÄ http://twitter.com/wantarray.

PiCAM

Jag har valt att inhandla en kameramodul till min Pi och bygga in den i chassit.

Redan frÄn början hade jag en tanke om att det vore hÀftigt att bygga en twitter-uppkopplad ultraportabel kamerarobot. Jag var inte sÀker pÄ om jag skulle komma hela vÀgen, men det har jag gjort.

Komponenter som anvÀnds för detta bygge:

Raspberry Pi 3
Pi camera module v2
Perl
Shell script
Imagemagick

Jag har anvÀnt Perl till sÄ mycket som möjligt. Denna html-sida Àr skriven i markup-sprÄket pod (Plain Old Documentation) och genererad till html med hjÀlp av pod2html.

$ pod2html --no-index --header -css doc/default.css picam_twitter.pl > picam_twitter.pod

DÀrför ber jag dig att inte lÀsa den rÄa html-filen, den ser ut som skrÀp.

CSS-filen har jag skrivit för hand.

Steg för steg-instruktioner för att sÀtta upp picam och hjÀlpscriptet pisnap som tar sjÀlva bilderna:

Börja med att installera cpanminus. Det Àr inget krav, men det Àr sÄ mycket bÀttre Àn cpan. BinÀren cpan(m) anvÀnds för att installera perlmoduler, eller bibliotek. frÄn Comprehensive Perl Archive Network. NÀr vi ÀndÄ hÄller pÄ sÄ kan vi installera Imagemagick som anvÀnds för att justera storleken pÄ tagen bild sÄ att vi inte överskrider twitters max-storlek.

# apt-get install cpanminus imagemagick

NÀr installationen Àr klar skall vi konfiguera sÄ att bibliotek kan installeras av en vanlig anvÀndare, i dennes hemkatalog. Detta Àr inte heller nÄgot krav, men kan vara bra om man inte har tillgÄng till root eller om man inte vill installera saker system-wide.

Öppna din shellrc med valfri editor:

$ vim ~./zshrc

LÀgg till följande rader (förslagsvis lÀngst ned i filen):

PERL5LIB="$HOME/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="$HOME/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"$HOME/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=$HOME/perl5"; export PERL_MM_OPT;

Spara, och re-sourca filen (eller starta ett nytt skal).

Se till att katalogen dÀr modulerna skall installeras existerar:

$ mkdir -p ~/perl5/lib

Nu kan vi installera de bibliotek som picam beror pÄ. Notera att det dÄ skall göras som din vanliga anvÀndare!

$ cpanm Net::Twitter

NÀr installationen Àr klar sÄ kommer ~/perl5/lib/perl5/Net/Twitter vara populerad.

För att kunna posta pÄ twitter sÄ behövs ett antal API-nycklar. Dessa nycklar fÄr man tillgÄng till genom att ansöka om utvecklarstatus, och det tar bara nÄgon minut. För att vÄrt program sedan skall kunna ta del av dessa nycklar sÄ behöver de (exempelvis) exporteras i din shellrc.

AlltsÄ:

export TWITTER_ACCESS_SECRET='<secret>'
export TWITTER_CONSUMER_SECRET='<secret>'
export TWITTER_ACCESS_TOKEN='<token>'
export TWITTER_CONSUMER_KEY='<key>'

Spara och re-sourca shellrc.

pisnap tar en bild med hjÀlp av raspistill. Eftersom utrymmet pÄ Pi Àr begrÀnsat har jag valt att skicka filen till min server i sambons garderob. Den lokala filen tas sedan bort. HÀr kommer du att behöva editera:

USER='scp1'
HOST='laleh'
    SAVE_DIR_REMOTE='_picam'

Alternativt kommentera ut de ssh-specifika raderna.

------------------

Nu Àr mjukvarusidan av konfigurationen (nÀstan) klar. Jag har tagit för givet att du redan har installerat kameramodulen i din Pi, och det enda som dÄ behöver göras Àr att faktiskt tala om för vÄr Pi att vi vill anvÀnda den.

Kör, som root:

# raspi-config

Under Interfacing options, vÀlj Enable Raspberry Pi Camera. Spara och avsluta. Det som nu sker Àr bland annat att raspistill installeras, den binÀr pisnap anvÀnder för att ta sjÀlva bilderna.

Funktionalitet

HjÀlpscript

Jag har skrivit ett antal hjÀlpskript som arbetar tillsammans med picam.

bin/pi_status

pi_status Àr ett shellscript som levererar data för picam att anvÀnda som statusuppdatering pÄ twitter om ingen egen status har specificerats med flaggan -t till picam. I nulÀget Àr det min Pi:s uptime och aktuell timtemperatur i Karlstad som genereras.

pisnap

pi_snap gör flera intressanta saker, i en evig loop. Ett kort tas med kameran med hjÀlp av raspistill. Denna bild skickas till min privata server, och en kopia av det senaste tagna fotot kopieras till filen latest.jpg. Originalfilen tas bort frÄn Pi, sÄ att det alltid enbart kommer att finnas en bildfil lokalt (den senast tagna).

Kopian justeras i storlek för uppladdning pÄ twitter, med hjÀlp av convert frÄn imagemagick.

pisnap har en sleep-interval pÄ 1730 sekunder. Detta för att sjÀlva picam har en sleep-interval pÄ 1800 sekunder - för att vara sÀker pÄ att pisnap hinner med alla uppgifter, Àven under tung belastning, innan picam sÀtter igÄng sin nÀsta loop. Annars finns det en liten risk att det Àr den nÀst senaste tagna bilden som kommer att laddas upp pÄ twitter.

picam

Picam kan ta emot ett antal flaggor.

-t,  --tweet      tweeta senast tagna bild med önskad status som argument
-d,  --daemonize  kör picam som en daemon, dvs i bakgrunden
-h,  --help       visa hjÀlpen och avsluta
-v,  --version    visa version och avsluta

Picam twittrar live pÄ http://twitter.com/wantarray.

KÀllkoden för picam och samtliga filer i detta projekt Äterfinns pÄ https://github.com/trapd00r/picam

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 3:

Non-ASCII character seen before =encoding in 'pÄ'. Assuming UTF-8

More Repositories

1

LS_COLORS

A collection of LS_COLORS definitions; needs your contribution!
Shell
1,987
star
2

ls--

ls on steroids
Perl
496
star
3

vidir

edit directory in $EDITOR (better than vim . with netrw)
Perl
173
star
4

zsh-syntax-highlighting-filetypes

zsh syntax highlighting with dircolors in realtime
Shell
147
star
5

configs

My ~/etc - configs, dotfiles
Vim Script
115
star
6

utils

Small useful utilities for everyday work
Perl
74
star
7

neverland-vim-theme

256 colors CLI and GUI. It doesn't suck.
Vim Script
66
star
8

win95-winxp_icons

default icons from win{95,98,2000,xp}
48
star
9

colorcoke

Change the extended (non-ANSI) color set. Generate tints and shades that can be applied in any range.
Shell
45
star
10

vimpoint

Damian Conway's presentation system, written in viml
39
star
11

vim-syntax-vidir-ls

dircolors in your vidir session
Vim Script
36
star
12

File-LsColor

Colorize input filenames just like ls(1) does
Perl
34
star
13

pimpd2

Perl Interface for the Music Player Daemon 2 | http://search.cpan.org/dist/App-Pimpd/
Perl
34
star
14

screenfo

Screenshot info tool
Perl
31
star
15

clipbored

Daemon that continuously collects all selections in Xorg's clipboard buffers and saves them in a plaintext file for later retrieval. Can be used with dmenu.
Perl
30
star
16

rmshit

Keep $HOME or other dir clean from unwanted tempfiles, configs and other crap you'll never use that's autocreated upon execution of bad behaving applications
Perl
26
star
17

ttycolor

Quickly switch colorscheme in the Linux Console / TTY
Perl
24
star
18

xkcd

View XKCD comics in your console
Perl
20
star
19

Term-ExtendedColor

Color screen output using extended escape sequences
Perl
17
star
20

pickyfont

Change your console/terminal font on the fly
Perl
17
star
21

Documentation

Docs and notes for Vim, Zsh, Git, Terminal emulators, Perl ... that I've either written or collected over time
Vim Script
17
star
22

vimcat

cat files in style with vim
Shell
14
star
23

hr

<hr> for your terminal; define a thematic change in content
Perl
13
star
24

pnfo

Vim NFO Viewer
Perl
12
star
25

id3shit

Less sucky commandline-based ID3-editor.
Perl
12
star
26

rmcd

Run mplayer as a daemon and control it remotely
Perl
10
star
27

Term-ExtendedColor-Xresources

Query and set various X resources
Perl
7
star
28

irc.vim

syntax file for irc logs
Vim Script
7
star
29

vim-after-syntax-vim

after/syntax/vim.vim
Vim Script
6
star
30

vim-extendedcolors

Highlight extended color name strings with their color (vim)
Vim Script
6
star
31

time-spent-in-vim

Vim wrapper collecting statistics of the usage; time spent per project/file
Perl
6
star
32

rxvt-unicode

urxvt fork with support for defining colors > 16 using X resources
C
5
star
33

colortest-256-ng

prints table of available colors or colorize arbitary input for terminals supporting 256 colors
Perl
5
star
34

vim-highlight-default-highlight-groups

Highlight all the default highlighting groups in Vim by matching the group's literal name and placing it in its group (colorscheme preview)
Vim Script
5
star
35

dzen-scripts

Various scripts for dzen2
Perl
4
star
36

re.pl

Read, Eval, Print, Loop with tabcompletion
Perl
4
star
37

n900

scripts controlling the n900
Shell
4
star
38

x11colors.vim

Highlight X11 color name strings with appropriate colors (vim, gvim)
Vim Script
4
star
39

RPD

Radio Playing Daemon - Daemon that plays radio streams, using Mplayer as the backend.
Perl
4
star
40

fileutils-color

basic file management utils with color
Perl
4
star
41

vim-after-syntax-perl

after/syntax/perl.vim
Vim Script
4
star
42

rgbterm

Show RGB values of defined terminal colors
Perl
4
star
43

vim-xclipboard

Yank text from Vim to the X clipboard transparently
Perl
4
star
44

uberpaint

fork of uberpaint, a Deluxe Paint clone, patched for building on linux
C
3
star
45

pimpd

Perl Interface for the Music Player Daemon
Perl
3
star
46

currentline.vim

A Vim plugin that highlights the current line; like a marker pen
Vim Script
3
star
47

cgrep

grep with colors without the grep
Perl
3
star
48

accesstail

like tail -f, but prettier, for your access.log
Perl
3
star
49

sdorfehs-config

configuration and scripts for the sdorfehs window manager
Perl
3
star
50

vim-syntax-todo

Simple syntax file for TODO lists
Vim Script
3
star
51

sexpac

Makes the Archlinux package manager 'pacman' sexy. Well, at least her output.
Perl
3
star
52

vim

wim
C
2
star
53

ratpoison_hacks

hacks and utilities relevant for (c|r)atpoison
Perl
2
star
54

trapd00r.se

My personal site
Python
2
star
55

firefox-remote

Control Mozilla Firefox remotely
Perl
2
star
56

programmers_qwerty

Make characters often used in programming, Vim and the shell more accessible
Perl
2
star
57

themes

Random themes for applications / pages
CSS
2
star
58

matrix

C
2
star
59

beet2mpd

beets advanced queries -> mpd
Perl
2
star
60

apt-cache-search-color

·
Perl
2
star
61

makedist

make perl distribution making automatic
Perl
2
star
62

vim-syntax-ratpoison

An updated version of ratpoison.vim
Vim Script
2
star
63

pamixer

curses interface for pulseaudio, personal fork
Python
2
star
64

vim-formatprg

A collection of useful formatprg's for Vim
2
star
65

Term-ExtendedColor-TTY

Functions for changing and querying the TTY for various resources, such as colors
Perl
2
star
66

vimpager-perlmod

Use VIM as a PAGER. Custom syntax file for perldoc.
Vim Script
2
star
67

github-clone-all

clone all GITHUB_USER repos and gists in one go
Shell
2
star
68

pentadactyl-neverland

Neverland colorscheme for Pentadactyl
2
star
69

vim-syntax-github-recent

Vim syntax file for the Github (dashboard|recent) feed
Vim Script
2
star
70

windows

Shell
1
star
71

perl-test-suite

My tests, the base suite for all projects
Perl
1
star
72

SeTTY

Set terminal properties in XTerm compatible terminals
Perl
1
star
73

String-Utils

Perl
1
star
74

dontbeahero

Don't worry, someone else will save the planet
Perl
1
star
75

App-sync_cpantesters

Sync CPAN testers failure reports to local directories
Perl
1
star
76

with

Execute Perl code on files matching pattern
Perl
1
star
77

urxvt-change-bg-on-focus-event

change bg color on focus lost/gained
Perl
1
star
78

cc256

C
1
star
79

abs

Archlinux ABS Git
C
1
star
80

File-Media-Sort

Perl Module that sorts a list of incoming names as music/musicvideos/tv-episodes etc
Perl
1
star
81

Term-hr

Perl module that lets you define a thematic change in content of a terminal session
Perl
1
star
82

rel

rel uses Flexget::Parse, Flexget::PatternMatch and Media::Sort to show and sort new media in log/dir by genre/type etc
1
star
83

zcompdef

zsh completion definitions
1
star
84

Mplayer-NowPlaying

Query a running mplayer process for metadata and other information
Perl
1
star
85

Daemon-Mplayer

Library that helps you run mplayer daemonized
Perl
1
star
86

99-Problems

99 Prolog problems in Perl
Perl
1
star
87

Acme-CPANAuthors-Swedish

We are swedish CPAN authors
Perl
1
star
88

Acme-DependOnEverything

depend on everything
Perl
1
star
89

configs-n950

configs and random hacks for the nokia n950
Shell
1
star
90

mpdcp

copy track or album from an mpd server to destination
Perl
1
star
91

perlinpython3

how to access the power of perl inside your python3 code
Python
1
star
92

cv

my cv
CSS
1
star
93

Yoghurt

Yoghurt is a fork of Yaourt for personal use only
Shell
1
star
94

vim-after-syntax-zsh

Vim Script
1
star
95

git-today

what did I accomplish today?
Perl
1
star
96

mpdmon-daemon

Monitor MPD and execute arbitary commands on song change
Perl
1
star
97

xterm2html

xterm colors visual representation in html
Perl
1
star
98

vim-how-many-times-do-i-write-a-day

how many times do you :w a day?
Perl
1
star
99

Mock-Person-SV

Generate random sets of Swedish names
Perl
1
star
100

github-neverland

Dark Github theme for the Firefox/Chrome extension Stylish
1
star