Default Green Orange
Marcus Follrud
Wish I had a slogan
RSS
  • Home Page Home
  • Cruel Chipmunk Productions
  • Om
  • Projects

Archive for augusti, 2009

Enkelt övervakningssystem och linux

Linux, Open source, Programmering 0 Comment »

För längesen satt jag och labbade lite grann med AXIS Nätverkskameror och hur man kan spela in automatiskt med dem.

Jag försökte använda mig av bash och andra linux/gnu-kommando som jag bara kunde för att få systemet uppe och rulla.

Hur fungerar det?
Lösningen är väldigt enkel. Som första program ligger där ett script som väntar på ett tcp-meddelande som kommer in på port 31337 (nördigt va) och som därefter startar en nedladdning av en motion jpeg-ström som hålls vid liv i 5 sekunder per trigger som kommer från kameran. Det vill säga, får man samma larm under en pågående nedladdning av strömmen så läggs fem nya sekunder på innan man stänger strömmen.

Hur ställer jag in det?
Event Server SetupEvent setupBörja med att gå in i din kamera och skapa ett Motion Detection fönster. Därefter går du in till Event Servers och skapar din TCP-server med dina anslutningsinställningar. Glöm inte att porten skall vara 31337. När servern har satts upp, skapar du ett event som triggar på det motion detection-fönster som du skapat. Lägger till att det skall gå till tcp-servern du skapat och att det ska trigga ungefär 30 gånger per minut som eventet är igång. Detta gör att så länge något rör sig så hålls strömmen vid liv.

Som du säkert ser så är meddelandet en MAC-adress som är specific för varje enhet. Du måste givetvis inte döpa dina filer efter MAC-adressen men jag gjorde det för enkelhetens skull. Se bara till att du inte använder mellanrum i namnet.

Nästa steg är att installera filerna som är skapade på en lämplig plats. Låt säga att vi skapar det under en egen användare som vi döper till ”security”. Vi lägger filerna i hemmappen, packar upp och skapar mappar.
/home/security:$ tar xvf supersimpleNVR.tar.gz
/home/security:$ cd supersimpleNVR/
/home/security:$ mkdir settings && mkdir captures && mkdir captures/tmp && captures/processed_captures && tmp

Det du ska göra nu är att gå in i settings mappen och skapa en fil som heter precis det meddelandet som du angett i ditt event i kameran och med filändelsen .sh. I mitt fall blir det 00408C630000.sh

I denna skall innehålla:

  1. #!/bin/sh
  2. user=root
  3. pass=pass
  4. fps=5
  5. ip=192.168.1.15
  6. port=80

Ändra allting så att det passar med dina inställningar och behov. Glöm inte att filen måste finnas i mappen som heter settings.

Mappen captures innehåller alla dina inspelningar och mappen captures/tmp används för att extrahera bilddata i sparade strömmar.

Vad ska jag med mappen captures/tmp till?
Mjpg kan ställa till det när det gäller lagring. Därför finns scriptet ”creatempeg” som skapar mpeg4-filer av nedladdningarna. Detta script använder ett C#-program som klipper ur bilderna ur strömmen och skapar jpg-filer utav dem.

Vanliga tmp då?
Den gör inget speciellt mer än sparar tidsstämplar för att veta när en ström startades.

Vad behöver jag för program?
Du behöver bara standardprogram för att kunna spela in.

Du behöver:

  1. Netcat
  2. Curl
  3. Mono
  4. mencoder

Begränsningar för närvarande!
För närvarande kommer filmer som konverteras till mpeg4 alltid gå skapa filer med 5fps, oavsett vad du laddat ner i. Fixa detta själv genom att sätta den fps du önskar.

Hur startar jag det?
Du startar det lättast genom att starta filen nc med screen:
/home/security/reallysimpleNVR/:$ screen sh nc
/home/security/reallysimpleNVR/:$ [ CTRL + A + D ]

Ladda ner källkoden här: reallysimpleNVR.tar

Har inte testat det på länge, och det kan hända att den måste modifieras något. Speciellt c#-koden. Använd på egen risk :)

Ha en bra kväll
/marcus


augusti 31st, 2009  
Tags: axis, bash, c#, curl, gpl, Linux, mencoder, mono, nvr



Vattna blommorna – Del 11 – Ett misslyckande…

Privat 0 Comment »

Så..

Hur har det gått för mig med mitt projekt. Allt verkade ju så enkelt att få igenom. Det har visat sig inte vara så enkelt.

Mina elkunskaper är riktigt dåliga :( . Det är lite generande men så är det.

Inget vill som jag

För den ovetande är transistorn den svarta grejen..

Jag satte igång och kopplade, drog sladdar, lödade och så vidare. Och det hela kändes som om det skulle gå direkt. Men jag fick inte igång det. Och jag har fortfarande inte fått igång det. Jag kollade upp lite med min gode kollega Anders, om vad som skulle kunna vara fel och kom fram till att spänningen som gick till reläet skulle också gå ut där det kom ifrån. Hem och testa, fungerade inte. Nej då hade jag satt transistorn bak-och-fram.. Typiskt. Fram med löddkolven och försök få upp den, jag lyckas på något sätt att få av ett av benen till transistorn och kjell har inte fler exemplar i skåne, verkar det som.

Jag låter för närvarande mina känslor svalna lite gällande detta projektet. Jag ger inte riktigt upp än men behöver en rejäl paus på ett par veckor :) .

Just nu pausar jag lite med C# och skapandet av Interface, för skojs skull :)


augusti 31st, 2009  
Tags: blommor, inkompetens, relä



Vattna blommorna – del 10

Open source, Programmering 2 Comments »

Nu händer det grejer.

Mitt program för min pic känns komplett. Har suttit och debuggat kod nu ikväll och kommit fram till att den lösningen jag postade nu senast inte var den bästa, för att vara helt ärlig.

Bland annat så verkar inte !RA# fungera riktigt i kompilatorn av någon anledning. Koden beter sig konstigt när detta händer. Eller har jag bara programmerat kasst?

Efter lite kodändringar fungerade det!

Koden ser ut såhär nu:

#include <pic16f690.h>

typedef unsigned int word;

word at 0x2007 __CONFIG = (_INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF & _BOR_OFF & _PWRTE_ON & _MCLRE_OFF & _IESO_OFF & _FCMEN_OFF);
void delay_ms(long ms)
{
    long i;

    while (ms--)
        for (i=0; i<=50; i++) //50 iterations is _basically_ 1 ms.
			;
}
unsigned int pumpint=0; //just an int for loops..
unsigned int totalpumpms = 0; //A counter for how many ms the pump has been running
unsigned static int maxpumpms = 100000; //Change this if you are using a slower/faster pump.
void main () {
  TRISC = 0x00;	/* PORTC, All outputs */
  TRISA = 0x1f; /* RA1-RA4 input, RA>4 output */
  while(1)
  {
    pumpint = 0;
    //Start pumping water, if RA3 isn't activated.
    if(RA3 || totalpumpms >= maxpumpms)
    {
		//Do nothing..
		delay_ms(1);
    }
    else
    {

      while(pumpint < 5000) //Max pumptime is 5 secs.
      {
        if(RA3) //If(ra3) is used since while(ra3) doesn't seem to work as good with sdcc compiler.
        {
          break;
        }
	else if (totalpumpms >= maxpumpms)
	{
		break;
	}
        PORTC=0x0f;
        //As an extra marker, never pump for more than 5 secs.
        delay_ms(1);
		totalpumpms++; //Add to the total pumpmscounter.
        pumpint++; //just for this loop.
      }
	  pumpint = 0;
    }
    //Pumping done. Wait 15 minutes
    PORTC=0x00; //Close all outputs

    //Reset button must work within this time. Don't sleep for a whole 15 mins, but keep polling.
    while(pumpint <= 90000) //15 min == 900000ms. We're polling each 100ms.
    {
      if(RA4) //RA4 is the reset switch
      {
		totalpumpms = 0;
		break;
		//at this point, we have resetted the counter, and let the water start pumping again.
      }
      pumpint++;
      delay_ms(100);
    }
  }
}

För närvarande använder jag Windows 7 (ja, jag vet, det är inte omtyckt, men faktum är att win börjar konkurrera med kde och linux..) och mitt debuggingprogram blev ”Real Pic Simulator” som utförde sitt arbete mycket väl! Programmet är dock inte gratis, men en 30-dagars testversion gick att ladda ner. Och mer tid behöver jag nog inte :-) .

Som open source entusiast skulle jag kört gpsim som är det naturliga och självklara valet om man tycker om öppen mjukvara men jag tyckte inte att jag hade lust med att mecka conf-filer och tillägg för att få just min pic att stödjas. RPS fick funka ikväll, vilket det gjorde!

Nu kan jag lugnt slappna av resten av kvällen och njuta av mitt arbete :) .

Imorgon blir det att kolla nya möbler och liknande, då vår flytt har ändrats från 1:a November till 1:a Oktober/Mitten på September.

Ha en god afton. Själv Njuter jag med lite jamaicansk öl. Det är ju inne med Jamaica nu :)
/Marcus


augusti 21st, 2009  
Tags: 16f690, blommor, gpsim, pic, pic16f690, real pic simulator, sdcc, vat, vattna blommor



Vattna blommorna – Del 9

Open source, Programmering 0 Comment »

Efter arbetet idag blev det en snabb sväng inom biltema för att köpa en tio-liters hink med lock samt lite slang som kan transportera vatten. Jag passade även på att köpa mig en annan pump på biltema, den som nämnts i ett utav de första inläggen gällande mitt blomsterprojekt.

Alltså:

  • 362772 – Lock till 10L hink 9,90kr
  • 362770 – 10L hink 14,90kr
  • 15331 – Vattenslang 10Mx9mm 36,90
  • 25980 – Pentry-pump 79,90

Totalt: 142,40kr

Efter det bar det hem och testa hur fort jag tömde mina tio liter och resultatet blev prick 100 sekunder att pumpa vattnet till den nivå att den nästan torrkörts.

Detta ger mig lite modifikation i mitt program som ska ligga i PIC:en

#include <pic16f690.h>

typedef unsigned int word;

word at 0x2007 __CONFIG = (_INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF & _BOR_OFF & _PWRTE_ON & _MCLRE_OFF & _IESO_OFF & _FCMEN_OFF);
void delay_ms(long ms)
{
    long i;

    while (ms--)
        for (i=0; i<=50; i++) //50 iterations is _basically_ 1 ms.
			;
}
unsigned int pumpint=0; //just an int for loops..
unsigned int totalpumpms = 0; //A counter for how many ms the pump has been running
unsigned static int maxpumpms = 100000; //Change this if you are using a slower/faster pump.
void main () {
  TRISC = 0x00;	/* PORTC, All outputs */
  TRISA4 = TRUE; /* RA4 input */
  while(1)
  {
    //Start pumping water, if RA3 isn't activated.
    //Wait for the breaking SW1
    if(RA3 == false && totalpumpms < maxpumpms)
    {
      while(1)
      {
        if(RA3) //If(ra3) i used since while(ra3) doesn't seem to work as good with sdcc compiler.
        {
          break;
        }
        PORTC=0x0f;
        //As an extra marker, never pump for more than 5 secs.
        delay_ms(1);
		totalpumpms++; //Add to the total pumpmscounter.
        if(pumpint >= 5000) //Loop until 5000ms == 5secs is reached.
        {
          pumpint = 0;
          break;
        }
        pumpint++;
      }
    }
    //Pumping done. Wait 15 minutes
    PORTC=0x00; //Close all outputs
    //Reset button must work within this time. Don't sleep for a whole 15 mins, but keep polling.
    while(pumpint <= 90000) //15 min == 900000ms. We're polling each 10ms.
    {
      if(RA2) //RA2 is the reset switch
      {
		totalpumpms = 0;
        pumpint = 0;
      }
      pumpint++;
      delay_ms(10)
    }
  }
}

Jag har inte verifierat koden än, men jag tror det skall fungera :) . Skall testa det imorgon, och i helgen ska jag göra mitt bästa för att bygga ihop den helt!
Jag vill ju ha den klar innan flytten, som förvisso inte är förräns i November, men jag vill gå vidare till mina andra små projekt.

Förresten, har ni någon bra bok ni kan rekommendera om embedded c-programmering. Vad man bör tänka på i minnesvägar och sådär? Jag hade uppskattat lite tips på denna fråga :) .

Mvh
Marcus


augusti 20th, 2009  
Tags: biltema, blommor, c#, embedded, hink, Programmering, pump, sdcc, vatten



Vattna blommorna – Del 8

Open source, Privat 0 Comment »

Igårkväll gav jag mig lite grann på att testa vattenpumpen. Jag hittade för ett tag sedan en ac-adapter som gav ut precis den spänning och ström som behövdes för att pumpen skulle starta. Och givetvis startade den! Det kallar jag kvalitet från biltema när det är som bäst!

Nästa steg är att sätta på en trädgårdsslang och se hur snabbt den pumpar ut 10 liter vatten, så jag kan mäta hur många gånger sekunder man kan pumpa vatten innan de tio literna är slut.

Mycket mer blev det inte gjort faktiskt. Gårdagen spenderades tillmestadels hos mina föräldrar, där vi grävde upp ett 25 år gammalt träd som tog lite för mycket sol. Och efter det spenderade vi lite tid hos svärmor =). Alltid trevligt!

Idag har jag heller inte gjort något, då jag och min käraste har firat 1½ år tillsammans! Livet är underbart!

God natt!

Marcus


augusti 17th, 2009  
Tags: biltema, blommor, familj, halvårsdag, svärmor, träd, trädgårdsslang, vattenpump



Ännu en inaktiv helg.

Privat 0 Comment »

Jag som lovade migsjälv att blogga varje dag.

Det blev inte riktigt som jag hade tänkt.

Jag har förvisso inte haft något att skriva om, så jag antar att det inte spelar någon roll. Hellre kvalitet än kvantitet?

Imorgon börjar en ny vecka, och jag skall bekanta mig lite med C# och .NET. Det är inte helt främmande men känns mer som en bekant än en vän :-) .

Min priolista är densamma, få igång den där blomstervattnaren och gå vidare till despotify och python (Qt). Eventuellt kan där bli ett mellankodknep med PyQt (har fått värsta nojan för det) och Bonjour/Avahi för att hitta nätverksenheter lokalt.

Hur ser din priolista ut?

Trevlig kväll.


augusti 16th, 2009  
Tags: c#, inaktivitet, python, qt



Publish to WordPress plasmoid v0.02

Linux, Open source, Programmering 0 Comment »

Igårkväll satt jag och skissade lite på hur framtida versioner av wordpress-plasmoiden skulle kunna se ut.

Jag använde mig utav QT Designer för att göra själva moc-upen och det blev såhär:

Wordpress Plasmoid

Wordpress Plasmoid

Plasmoiden blir lite större, men känns mer komplett, med möjligheterna att:

  • Lägga till taggar
  • Markera flera kategorier
  • Editera i redan skapade bloggposter
  • Förhandsvisa material

Jag tror det kan bli riktigt bra!
Funderar även på hur mycket jobb det skulle vara att lägga in bilder med drag-n-dropfunktionalitet. WordPress libbet som är integrerat stöder det, men det är nog lite jobb att ställa in storlek med en extra dialogruta. Vi får helt enkelt se.


augusti 11th, 2009  
Tags: designer, kde, plasma, plasmoid, python, qt, wordpress



Statistik och fulkod

Privat, Programmering 0 Comment »
Facebook Updater

Facebook Status Updater

Jag har installerat ”Statpress SEOLution” som är en plugin will WordPress som ger en möjligheter att se vilka besökare som varit på ens blogg samt hur de hittat hit, och vad de eventuellt sökt efter på Google.

Idag såg jag att någon bland annat sökt på ”marcus follrud blog” och ”bondgårdsspel” och då hittat hit.

Vad som va ännu roligare var att jag gjorde en whois på ip-adressen som hade sökt på just mitt namn och hittat hit kom från min förra arbetsgivare!
Helt oväntat, men ändå roligt.

Det visade sig vara min gamla kollega som letade efter ett gammalt program som jag gjort. Inget mindre än ”Facebook Status Updater”, mitt program för att uppdatera facebook varje gång en RSS-kanal hade uppdaterats med inlägg.

Tänkte att jag kunde publicera programmet här på bloggen, för skojs skull!

Det är skrivet i .NET C# (Windows) och har sina barnsjukdomar. Bland annat krashar programmet när antingen facebook eller rss-flödet inte svarar. Ska fixa det så fort jag får tid och det borde gå ganska fort att fixa till. Lite svårt att testa bara!

Ladda ner körbar fil här
Källkoden här

OBS! Det är riktigt dåligt gjort. Det var mitt första C#-projekt någonsin :)


augusti 10th, 2009  
Tags: facebook, fsu, google, rss, sökord



Snart flyttar vi!

Privat 1 Comment »

Idag kom besked från Akelius!

Jag och Andjelka ska få ta över trean två våningar ner i samma trappa!

Vi ser redan fram emot det och kan knappt bärga oss, innan vi får börja bära ner våra grejer.

Nu är det all rolig planering som gäller. Hur ska vi möblera rummen? Vilka Tapeter? Vilka nya möbler?
Extra roligt är att både jag och Angie har helt skilda meningar gällande utseende.

Jag vill gärna ha mitt ljust och fint. Lite som Apple. Medans Angie hellre vill ha mörkt och bohemiskt med kuddar överallt och vatten från ganges.
Medans jag inte gillar att bo i en jordkällare som är helt dunkel gillar inte Angie att bo i ett laboratorie, haha =)
Oavsett kommer det hela bli riktigt bra i slutändan!

Detta är utan tvekan dagens glädjenyhet!
<3


augusti 10th, 2009  
Tags: lägenhetsbyte



Bilbo blogger

Linux, Open source 0 Comment »
Bilbo på persiska

Bilbo på Persiska

Tänkte bara att jag kunde tipsa om denna fantastiska bloggapplikation till KDE :-)

Programmet heter Bilbo blogger och är skrivet för KDE version 4.x och är ett utmärkt ersättningsval för min WordPress Plasmoid :-)

De flesta bloggar stöds och man kan enkelt lägga in den man har genom att enbart skriva in adressen till den, därefter listar bilbo själv ut vilken bloggtyp det är och konfigurerar efter det.

Användargränssnittet är väldigt smidigt och det fungerar väldigt bra. Jag har inget att klaga på när det gäller denna applikation. Den är perfekt när Firefox inte vill svara lika snabbt som du hinner skriva på tangentbordet (vilket händer ovanligt mycket på min netbook, tyvärr).

Skulle jag sätta betyg just nu får den 5/5. Jag hittar inget som är dåligt!

  • Bilbos hemsida: http://bilbo.gnufolks.org
  • Twitter: @bilboblogger

Nedladdning:

  • Källkodspaket
  • Binärpaket:
    • ArchLinux
    • Debian (Lenny)
    • Kubuntu (Jaunty/Intrepid)
    • OpenSuSE

augusti 10th, 2009  
Tags: bilbo, bilbo blogger, bloggprogram, kde



Previous Entries
  • Kategorier

    • Linux
    • monotouch
    • Open source
    • Planet
    • Privat
    • Programmering
    • Spel
  • Arkiv

    • januari 2012
    • september 2011
    • augusti 2011
    • januari 2010
    • december 2009
    • november 2009
    • oktober 2009
    • september 2009
    • augusti 2009
    • juli 2009
  • Etiketter

    2.6.30 16f690 Andjelka ANSI C apparmor apple axis biltema blommor c# curl debian despotify django drupal inaktivitet iphone kde Linux linux mint liseberg mono monotouch novell Open source php pic pic16f690 plasma plasmoid Programmering pump pykde pyqt python qt sdcc sommarstuga spotify spytify vatten vattna blommor virtualbox wordpress youtube
Copyright © 2012 Marcus Follrud
XHTML CSS Logga in