torsdag den 22. december 2011

Demografi med Nybolig

nybolig.dk kan man søge boliger og se dem på et kort. Man kan angive type og min/max pris.

Herunder ses nogle screenshots af resultaterne:



Villa/Rækkehus alle - december 2011



Villa/Rækkehus min. 10.000.000 DKK - december 2011



Villa/Rækkehus max. 200.000 DKK - december 2011



Sommerhus alle - december 2011



Sommerhus min. 5.000.000 DKK - december 2011



Sommerhus max. 400.000 DKK - december 2011



Landejendom alle DKK - december 2011



Landejendom min. 12.000.000 DKK - december 2011



Landejendom max. 600.000 DKK - december 2011



Grund alle - december 2011



Grund min. 2.000.000 DKK - december 2011



Grund max. 150.000 DKK - december 2011


torsdag den 27. oktober 2011

Få større kontrast fra billige dias-scannere med simpel HDR

Kontrasten i billige dias-scannere er desværre en del mindre, end kontrasten i de dias, der scannes. Dette giver enten hvide brændte plamager, eller meget mørke områder.

Her er et eksempel på et dias, der er scannet to gange, hhv. undereksponeret og overeksponeret:


Undereksponeret dias-scan.



Overeksponeret dias-scan.


På det første scan er alt i stuen helt mørkt, og det der er udenfor vinduet er eksponeret korrekt. På det andet scan bliver vinduet derimod til en hvid plamage.

Det lille fantastiske og gratis HDR (High Dynamic Range) program SNS-HDR Lite er vores redning. Man trækker blot billederne hen på exe-filen, så laver programmet et HDR billede. Programmet kan også bruges fra kommandolinien, hvor man bla. har mulighed for at vælge forskellige presets.

Her ses standard resultatet af HDR-sammensmeltningen af de to scans ovenfor:


HDR af dias-scans.


Her er alt fint eksponeret uden brændt hvidt eller helt mørke områder.

søndag den 23. oktober 2011

Rotary selector switch for Arduino using only one analog pin

Arduino is a great developer platform, but you quickly run out of pins, especially the digital ones. And you rarely use all 6 analog pins in an application. This selector switch uses only one analog pin.

The switch is a standard rotary selector switch with 12 positions:



In this example, I have build the switch with 8 x 1K/5% resistors and set the rotary selector switch to 8 positions. The easiest way to build it, is to solder the resistors directly onto the rotary selector switch.

Here is the diagram using 8 x 1K resistors as voltage divider:



Here is the necessary Arduino code for decoding the position:
int selectorPin;
int numOfSteps;
float divider;

void setup() 
{
  //pin for selector switch
  selectorPin = 0;

  //number of physical steps on the rotary switch
  numOfSteps = 8;
 
  //divider for decoding analog input
  divider = 1024.0 / numOfSteps; 
}

void loop() 
{
  //divide and round the input as float
  float selectorValueFloat = round(analogRead(selectorPin) / divider);
  
  //cast to integer for e.g. indexing arrays
  int selectorValue = selectorValueFloat;
}

Now we have an integer value for the position of the rotary selector switch. Hope you like it.



tirsdag den 4. oktober 2011

Elmåler overvågning med Arduino

På min elmåler sidder en lysdiode, der blinker hver gang, der er brugt 1 watt-time. Med en fotomodstand (LDR), et par transistorer og en Arduino kan man nemt aflæse disse pulser og omregne dem til aktuelt watt forbrug og lave statistik beregninger. I denne opstilling er Arduino koblet til et grafisk display til udskrift af tallene.

LDR modstanden bør sammenbygges med transistorerne, af hensyn til støj. Kredsløbet ser således ud:

LDR modstanden placeres helt tæt på lysdioden på elmåleren sammen med darlingtonkoblingen, og det hele tapes til, så der ikke slipper falsk lys ind. De 5 volt til kredsløbet og puls-signalet kan med fordel føres gennem en skærmet ledning til Arduino.
Her ses monteringen på elmålerens lysdiode:



Udgangen fra LDR-trinnet tilsluttes digital pin 2 eller 3 på Arduino. Afkodningen af pulsen i Arduino sker ved at koble et eksternt interrupt sammen med en funktion:

void setup() {
attachInterrupt(1, doCalc, FALLING);
}

Funktionen doCalc() bliver således kaldt hver gang lysdioden blinker. Her kan vi måle tiden fra det forrige blink og omregne det til watt:

void doCalc() {
timeNow = millis();
timeInterval = (timeNow - timeOld) / 1000.0;
timeOld = timeNow;
watt = 3600.00 / timeInterval;
}

For at undgå at måle prel (meget hurtige støj-pulser lige når dioden tænder og slukker) fra elektrisk støj, accepteres kun intervaller i koden over 100 millisekunder.

Er intervallet for kort, optælles en tæller med 1, og udlæses på displayet som antal fejl-pulser. Denne værdi skal jo selvsagt helst være 0, men er den på et par procent af samlet antal pulser (wattimer) er det til at leve med. I min opstilling ligger den på ca. 1%.

Til udlæsning på display beregnes desuden min, max, gennemsnit, samlet antal watttimer og målingens varighed. Her ses displayet efter at have kørt 1½ minut:



NB! Programmet kan max køre i 50 dage, herefter nulstilles timeren og tallene bliver forkerte.

Koden til Arduino og diagram til LDR-trin kan downloades her


Om mig

Jeg er født på Frederiksberg 1966 af min mor. Nu bor jeg bare på Vesterbro. Jeg bærer briller.