Home > Technologie > Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

0
Advertisement

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Diese instructable zeigt Ihnen, wie man einen Laser tripwire konstruieren, die twitter und greifen kann ein Bild von einer Webcam, sowie führen Sie alle Befehle, die Sie in einem bash-Skript setzen können.
Diese instructable ist eigentlich ganz einfach und eignet sich sogar als Anfänger-Arduino-Projekt. Es erfordert ein GNU / Linux (oder möglicherweise Mac) Betriebssystem mit dem arduino IDE und Processing IDE ordnungsgemäß funktioniert. Dieses Projekt könnte auch in Windows implementiert werden , wenn Sie eine komplexere erstellt Verarbeitungsanwendung.

Hardware-Anforderungen
Arduino Karten
Laser-Zeiger / Stift
Lichtabhängiger Widerstand
100Kohm Widerstand

Optional:
Webcam
Brotscheibe

Softwareanforderungen
Arduino IDE
Verarbeitung von IDE
Linux OS (Ich bin mit Arch Linux für dieses Projekt)
curl
Webcam (Teil von xawtv)

Andere Sachen:
Spiegel
Löt- und Lötkolben
Draht
Heißklebepistole
Bügelsäge / Messer
Stroh oder Kugelschreiber

Schritt 1: Anschließen des LDR

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Ich brauchte den LDR und den Laser in einer Position, wo sie nicht bewegen würde, so dass ich meine LDR und Widerstand direkt an den Arduino ohne ein Steckbrett angeschlossen, aber Sie können es tun, aber Sie mögen, unten sind die Fotos für das Löten und Biegen Sie in Form I auch ein einfaches Diagramm.

Ich schneide das Ende eines Kugelschreibers, so dass ich es über den LDR rutschen könnte, um zu verhindern, dass Umgebungslicht die Lesung beeinflusst, könnten Sie auch ein Stroh verwenden.

Schritt 2: Anschließen des Laserpointers

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Sie finden diese wirklich billig in einigen Einzelhandelsgeschäften, ich weiß, dass meine war unter $ 3.

Schrauben Sie das Ende ab und nehmen Sie die Batterien heraus.

Benutzen Sie eine Bügelsäge oder scharfes gezacktes Messer, um 1 bis 1/2 Zoll des Laser-Zeigers abzuschneiden, damit Sie auf den Frühling zurückgreifen können. Sie müssen möglicherweise nicht, dies zu tun, je nachdem, welche Art von Laser-Pointer Sie gefunden haben.

Verbinden und Löten eines Drahtes auf die Feder (ich gebogen Mine out, um es einfacher) dann rauh ein kleiner Teil der außerhalb des Laserpointer mit einem Messer / Sandpapier / Zangen ect, so dass Sie es an das äußere Gehäuse verlöten können. Dann Band die Taste, die den Laser aktiviert.

Auf meinem Laser-Pointer die Feder ist + und das Gehäuse ist - Ihr könnte umgekehrt werden. Der beste Weg, um zu überprüfen, ist zu beachten, welche Position die Batterien gehen in, die Münze Zellen haben + markiert auf einer Seite, wenn diese Seite berührt die Feder dann die Feder ist +.

Schließen Sie Ihr + Kabel (Gehäuse) an den digitalen Pin 13 an Ihrem arduino und Sie - wire (Feder) an GND an.

Nun laden Sie die arduino Skizze und stellen Sie sicher, dass Sie immer Lesungen aus der LDR und dass der Laser auf ist.

Um dies zu erreichen, müssen Sie diese Zeile auskommentieren:
//Serial.println(ldrVal);

Und kommentieren Sie diese:
Serial.print ( "1");

Wenn alles gut ist, können Sie Ihre Laser und LDR in einer festen Position positionieren, bounce den Laser an den LDR mit einem Spiegel, um zu sehen, dass seine Registrierung. Wenn der Laser erkannt wird, sollte er eine "1" drucken. Möglicherweise müssen Sie die Schwellwerte abhängig von Ihrem LDR anpassen.

Schritt 3: Alles vorhanden

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Jetzt müssen Sie sicherstellen, dass Ihr LDR und Laser werden nicht zu bewegen, während Sie den Rest der Software testen.

Ich verwendete eine Heißklebepistole und verwendete eine kleine Menge Heißkleber auf jedem Rand meines Arduino Brettes, um es zu einem Plastikkassettenkasten zu sichern, (ein Stück Holz und einige Schrauben wäre ideal, aber ich hatte keine) Heißleim sollte einfach entfernt werden und wenn es nicht an einem unwichtigen Ort ist.

Dann klebte ich meinen Laserpointer auf das platte Kassettenfach und legte es gegen die digitalen Header des arduino. Der LDR bewegt sich nicht, also musste ich mir keine Sorgen machen. Ihr Setup kann variieren, aber Sie erhalten die Idee.

Sie werden dann wollen sicherstellen, dass die ganze Sache nicht bewegen wird, benutzte ich Klebrigkeit Tack auf der Unterseite des Kassettenkoffers und legte ein Glas der Änderung auf dem USB-Kabel, so dass es sich nicht bewegen, während der Prüfung.

Sie werden auch wollen, um Ihren Spiegel an etwas zu befestigen, ist es an Ihnen, diese eine Figur, die ich verwendet klebrige Tack zu haften, um den Spiegel auf eine alte und schwere Kodak Brownie-Kamera und legen Sie es auf einem Stuhl mit ein paar Bücher auf der Oberseite während Alles auszuprobieren. Später habe ich gerade den Spiegel auf mein Kamerastativ montiert.

Schritt 4: Verarbeitung

Twittering Laser Tripwire mit Webcam-Capture

Laden Sie die Verarbeitung Skizze und lassen Sie diese Zeile kommentiert:
//open("/home/your_usename/twitter.trip ");

Achten Sie darauf, dass Ihr Laser auf den LDR gerichtet ist und führen Sie die Skizze. Der Bildschirmbereich sollte grün sein, und wenn Sie den Laser blockieren, sollte er rot sein, und nach 10 Sekunden sollte er wieder grün werden.

Der 10-Sekunden-Hold ist, um sicherzustellen, dass Sie nicht dieselbe Nachricht mehrmals twittern, können Sie diesen Wert ändern, indem Sie die Variable "int threshold = 10000" ändern.

Nun, da alles funktioniert, ist es Zeit, um Ihre Skripte in Kraft

Setzen twitter.trip in:
/ Home / your_username /

Ändern Sie diese in Ihren Twitter-Nutzernamen und Ihr Passwort
User = "name"
Pass = "Passwort"

Öffnen Sie ein Terminal und geben Sie Folgendes ein:
Chmod a + x /home/your_username/twitter.trip

Dann führen Sie es aus
./twitter.trip

Gehen Sie zu Ihrem Twitter-Seite und Sie sollten sehen, "Laser gestolpert ..." als Ihr letzter Tweet.

Jetzt Zeit, um die Webcam arbeiten, können Sie diesen Schritt überspringen, wenn Sie nicht wollen, eine Webcam verwenden oder wenn Sie wissen, wie man einen Rahmen von einer Webcam in linux via Skript zu greifen.

Zuerst möchten Sie sicherstellen, dass das Programm namens "webcam" installiert ist, es ist ein Teil von xawtv.

Arch Linux: pacman -S xawtv
Fedora: yum install xawtv
Debian / Ubuntu: apt-get install xawtv

Dann konfigurieren .webcamrc aber Sie brauchen, Mine ist unten.
Der beste Teil über Webcam ist, dass es ftp-Unterstützung, so dass das Bild kann auf einen Webserver hochgeladen werden, wenn Sie don; t wollen FTP-Kommentar, dass Teil aus.

.webcamrc in / home / your_username /

[greifen]
Gerät = / dev / video0
Text = "% Y-% m-% d% H:% M:% S"
#infofile = Dateiname
Fg_red = 0
Fg_green = 0
Fg_blue = 0
Fg_red = 255
Fg_green = 255
Fg_blue = 255
Breite = 320
Höhe = 240
Verzögerung = 0
Warten = 0
Input = pac207
#norm = pal
Drehen = 0
Oben = 0
Links = 0
Unten = -1
Rechts = -1
Qualität = 75
Trigger = 0
Einmal = 1
Archive = /home/action-owl/webcam/%Y-%m-%d--%H:%M:%S.jpg

[Ftp]
Host = ftp.yourwebsite.com
User = Benutzername
Pass = Passwort
Dir = public_html / img / webcam
File = webcam.jpg
Tmp = uploading.jpg
Passiv = 1
Debug = 1
Auto = 0
Lokal = 0
Ssh = 0

Schritt 5: Verwenden von open () in der Verarbeitung

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Twittering Laser Tripwire mit Webcam-Capture

Die "open ()" -Funktion funktioniert ein wenig anders, je nach Ihrer Umgebung, so müssen Sie möglicherweise herausfinden, was für Sie arbeitet, sollte die Methode unten funktionieren.

Uncomment:
//open("/home/your_username/twitter.trip ");

Wenn Sie Nautilus oder Thunar Dateimanager (XFCE und Gnome) verwenden:
Navigieren Sie zu twitter.trip und klicken Sie mit der rechten Maustaste darauf.
Wählen Sie "Öffnen mit anderer Anwendung"
Wählen Sie "Benutzerdefinierten Befehl verwenden"
Und geben Sie in "bash"

Die Verarbeitung soll dazu führen, dass ausführbare Dateien an die zu startende Shell gesendet werden, aber nach dem Versuch vieler Methoden war dies der einzige, der funktionierte. Aus diesem Grund hat die Skizze eine Extension.

Schritt 6: Jetzt laufen lassen.

Jetzt sollte alles fertig sein!

Führen Sie die Verarbeitungsskizze aus und überprüfen Sie den Speicherort Ihres Twitter- und Webcam-Archivs für das Ergebnis.

Etwas ist mit den Datei-Downloads.
Also hier ist der Code, wieder.

# ------------------------
# twitter.trip
# ------------------------
#! / Bin / bash
User = "Benutzername"
Pass = "Passwort"
Trip = $ (Datum + '% A% b% d,% l:% M% p')
Stat = "Laser ausgelöst:" $ trip
Url = http: //twitter.com/statuses/update.xml
Ergebnis = `curl -u $ user: $ pass -d status =" $ stat "$ url`
#save webcam pic
Webcam
Datum + '% A% b% d,% l:% M% p'> / home / Benutzername / someplace

// ------------------------
// Verarbeitungscode
// ------------------------
Import processing.serial. *;
Serial myPort;
Char inBuffer;
Int warten, jetzt, timeout = 10000;
Boolean hold = false;

Void setup () {
Größe (200.200);
Println (Serial.list ());
MyPort = new Serial (dies, Serial.list () [0], 9600);
Füllen (# 36ff00);
aufrechtzuerhalten.

Void draw () {

Während (myPort.available ()> 0)
{
InBuffer = myPort.readChar ();

Wenn (inBuffer == '1')
{
Wenn (! Hold)
{
Füllen (# ff0000);
Println ( "Ausgelöst");
Öffnen ( "/ home / username / someplace / twitter.trip");
Wait = millis ();
Hold = true;
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Jetzt = millis ();

If (jetzt> (wait + timeout))
{
Hold = false;
Füllen (# 36ff00);
aufrechtzuerhalten.

Rect (0,0200,200);
aufrechtzuerhalten.

// ------------------------
// arduino-Code
// ------------------------

Int ledPin = 13;
Int analogPin = 0;
Int ldrVal = 0;
Int Schwelle = 500;

Void setup ()
{
Serial.begin (9600);
PinMode (ledPin, OUTPUT);
DigitalWrite (ledPin, HIGH);
aufrechtzuerhalten.

Void Schleife ()
{
LdrVal = analogRead (analogPin);

Wenn (ldrVal> Schwelle)
{
Serial.print ( "1");
Verzögerung (200);
aufrechtzuerhalten.

aufrechtzuerhalten.

Related Reading