Vervangen van een glaslat

In de categorie ‘hoe maak je een halve instructable’, deze set foto’s die laten zien hoe je eenvoudig een glaslat verwijdert. De bedoeling was om van de volgende stappen (plakken isolatieband, vasttimmeren, kitten) ook een foto te maken maar helaas liet de accu van de iPhone dat niet meer toe. Nou, half is ook mooi.

Ontbrekende foto’s:

  • Plak isolatieband achterop de glaslat op 3 mm van de bovenkant van de glaslat
  • Spijker de glaslat op zijn plaats
  • Breng beglazingskit aan
  • Spuit het hele gebied onder een 2/3-1/3 water-afwasmiddelmix
  • Gebruik een spatel om de kit strak af te schrapen
  • Laat de kit tenminste 24 uur drogen
  • Maak de lat en omgeving schoon met lauwwarm water
  • Laat het geheel drogen
  • Schuur de glaslat licht op met korrel 320
  • Maak het geheel stofvrij met een borstel
  • Maak het geheel schoon met terpentine
  • Lak de glaslat af

Het is onvoorstelbaar hoeveel losse handelingen het vervangen van een glaslat behelst. Ik heb er nog een paar te doen dus ik verwacht de resterende foto’s nog wel eens te maken.

 

Internet-of-Things voor ingenieurs

‘Internet of Things’ is de nieuwe hype voor de consument. Technisch gezien bestaat een IoT oplossing uit een kleine microcontroller met een eigen (wifi) internetverbinding. De microcontroller kan sensoren inlezen en elektrische apparaten aansturen. De internetverbinding maakt het mogelijk deze aansturing vanaf een willekeurige plek op de wereld uit te voeren. IoT maakt fantastische toepassingen mogelijk, zoals het op afstand bedienen van de thermostaat, het delen van weergegevens of het maken van eenvoudige ‘als dit dan dat‘ recepten.

Hieronder heb ik een lijst samengesteld van componenten die een eenvoudige IoT oplossing mogelijk maken.

Solution Dimensions Power OS Programming Price
Arduino met WiFi Shield 53x69mm 50mA Arduino Wiring €100
Arduino Yún 53x73mm 50mA Linux Wiring €30
ATtiny met ESP8266 53x69mm 2mA Arduino Wiring
Electric Imp 24x32mm Squirrel €30
Intel Edison 25x36mm 40-150mA Linux Wiring,
Python, C
€45
Raspberry Pi 86x56mm 0,2-0,5A Linux Pyton, C €50
Particle Photon 20x37mm 40-150mA Arduino Wiring €18
SparkFun
ESP8266 Thing
27x58mm Modem €15

Meer informatie

NetAtmo internet weerstation

NetAtmo is een jong bedrijf dat sinds twee jaar moderne, internetontsloten atmosferische meetapparaten levert en nu al claimt ‘het grootste netwerk aan persoonlijke weerstations ter wereld’ te bezitten.

Weeramateurs maken de meetgegevens van hun weerstations van oudsher beschikbaar via Weather Underground, een commerciële internetdienst die alle aangeboden meetgegevens opslaat en op verschillende manieren toegankelijk maakt. Weather Underground krijgt data van tientallen merken en types ‘persoonlijke weerstations’. Sinds kort levert NetAtmo weergegevens aan Weather Underground aan. Mijn schatting is, dat ongeveer de helft (41/80) van de 100.000 persoonlijke weerstations een NetAtmo betreft. Hoewel het NetAtmo weerstation uit de doos geen regenmeter en windmeter levert, voorziet het wel in informatie over luchtvervuiling en geluidsniveau’s.

NetAtmo kit

Het NetAtmo weerstation bestaat uit twee aluminium behuizingen: een basisstation en een buitenmodule. Het basisstation maakt verbinding met de NetAtmo cloudservices via wifi en meet ondermeer temperatuur, geluidsdruk en luchtverontreiniging. De buitenmodule meet temperatuur en luchtvochtigheid en werkt op twee AAA batterijen.

De informatie van het weerstation is op verschillende manieren te gebruiken. Ten eerste is er een iPhone en iPad app.

IMG_0174

De app waarschuwt de gebruiker bij bijzondere gebeurtenissen, zoals een te hoge CO2 waarde. Andere waarschuwingen kunnen door de gebruiker worden ingesteld.

IMG_0175

Alle gegevens van het weerstation worden iedere paar minuten aan de NetAtmo servers op het internet aangeboden. Je kunt daarom je eigen gegevens op iedere plek ter wereld raadplegen. Maar als je dat aangeeft, kunnen enkele gegevens zoals buitentemperatuur ook met de wereld worden gedeeld. Met een kaartweergave is mooi te zien hoeveel mensen met een NetAtmo hun weergegevens delen.

IMG_0176

Een klik op een weerstation geeft lokale weerinformatie. De weersverwachting is op de lokale omstandigheden afgestemd, zodat deze over het algemeen een betrouwbare weerbeeld geeft.

IMG_0173

Wereldwijd is de dekking van het NetAtmo weerstation indrukwekkend. Het precieze aantal weerstations is niet bekend, maar moet al gauw in de tienduizenden lopen en zou wel eens in de buurt van de 50.000 kunnen liggen.

IMG_0177

De web-app levert een goed overzicht van de meetgegevens op. Alle gegevens kunnen overigens als XLS worden gedownload.

IMG_0178

De NetAtmo servers zijn toegankelijk via de app op de iPhone en iPad, via de web-app en de kaartweergave, maar daar stopt het niet mee. Er is een set API’s voor publieke data (alle gedeelde gegevens) en private data (de gegevens van iemands eigen weerstations). En NetAtmo loopt voorop in het koppelen van gegevens. Zo wordt alle publieke data aan Weather Underground aangeleverd, maar ook is er een koppeling met IFTTT.

IFTTT recipes

 

Backup maken van Raspberry Pi SD kaart op een Mac

Wie verscheidene uren heeft geïnvesteerd in het downloaden en configureren van software op een Raspberry Pi komt aardig thuis van de koude kermis als op een zekere dag het (micro) SD kaartje ermee stopt. “Had ik maar een backup gemaakt”, denk je dan. Pas.

Het maken van een backup en het uitvoeren van een restore is met het ‘disk duplicator’ command line tooltje dd op een Mac een peuleschil. In ongeveer 5 minuten is een volledige 16 GB SD kaart veiliggesteld. Gebruik hiervoor de volgende stappen:

  • Plaats de (micro) SD kaart in de Mac
  • Open de terminal
  • Bepaal het devicenummer van de (micro) SD kaart, door een lijst opslagapparaten op te vragen met diskutil list. In de voorbeelden hieronder is het devicenummer aangegeven met n
  • Maak een backup met sudo dd if=/dev/rdiskn of=/pad/naar/backup.img bs=1m. Door het gebruik van sudo wordt om het wachtwoord van de beheerder van de Mac gevraagd
  • Het maken van een backup duurt, afhankelijk van de grootte van het SD kaartje, tussen de 100 en 400 seconden

Het uitvoeren van een restore gaat met dd op dezelfde manier, maar kost wat meer tijd om uit te voeren, zo tussen de 10 en 20 minuten. Om de melding ‘resource busy’ te voorkomen is het overigens nodig om van tevoren een unmountDisk uit te voeren:

  • diskutil list en bepaal het devicenummer van de (micro) SD kaart
  • diskutil unmountDisk /dev/diskn
  • sudo dd if=/pad/naar/backup.img of=/dev/rdiskn bs=1m

Een schijfkopie neemt zoveel ruimte in als de lege grootte van de SD kaart. Met gzip is daar wel wat vanaf te snoepen:

  • Backup: sudo dd if=/dev/rdiskn bs=1m | gzip > /pad/naar/backup.img
  • Restore: gzip -dc /pad/naar/backup.gz | sudo dd of=/dev/rdiskn bs=1m

Raspbian installatie op Raspberry Pi

Een nieuwe Raspberry Pi komt soms met een voorgeïnstalleerd besturingssysteem. Maar ook dan is het af en toe handig om opnieuw met een schone installatie te beginnen. Ik doorloop hiervoor de volgende stappen:

  • Formatteer een betrouwbare microSD kaart met behulp van het tooltje van SD Association op een Mac of Windows PC (microSD kaartjes worden vaak met een SD kaart adapter geleverd die in de meeste Macs en PC’s past)
  • Download de meest recente versie van NOOBS naar de Mac of Windows PC
  • Kopieer alle gedownloade en uitgepakte bestanden naar de root van het geformatteerde microSD kaartje
  • Plaats de microSD kaart nu in de Raspberry Pi en sluit dan de stroom aan, plus een (HDMI) monitor en een (USB) toetsenbord
  • Het microSD kaartje wordt nu geherformatteerd en het besturingssysteem NOOBS wordt uitgepakt. Dit neemt een minuutje in beslag. Na herstart volgt een keuzemenu
  • Kies in het menu voor het installeren van Raspbian. De installatie neemt ongeveer 10 minuten in beslag. Tijdens deze installatie is het mogelijk om een geschikte toetsenbordindeling te kiezen, zoals US
  • Voer enkele wijzigingen in raspi-config door: laat Raspbian in de command line modus opstarten, wijzig de datum- en tijdlocatie naar Europa/Amsterdam, zet ssh toegang aan, zet de camera aan (indien er een Raspberry Pi camera gebruikt wordt)
  • Herstart en stel vast dat de Raspberry Pi nu opstart in de command line modus. Soms lijkt de herstart niet goed te gaan, maak dan de USB kabel los en sluit deze na een paar seconden weer aan voor een koude herstart
  • Wijzig de instellingen voor wifi internettoegang

Na de installatie voer ik vaak enkele van de volgende aanpassingen door, afhankelijk van het gebruik van de Raspberry Pi:

  • Voer een update van de installatiebestanden uit met sudo apt-get update
  • Installeer de updates met sudo apt-get upgrade
  • Installeer ftp met sudo apt-get install ftp
  • Installeer ImageMagick’s convert met sudo apt-get install imagemagick
  • Zet de LED van de camera uit, door in /boot/config.txt de regel disable_camera_led=1 op te nemen
  • Maak een script om foto’s met de camera te nemen en deze op een server op te slaan, of foto’s met een USB webcam te maken

Het hele installatieproces duurt ongeveer een uur, inclusief de upgrades en updates.

Configureer wifi op een Raspberry Pi

Hoewel een Raspberry Pi vanaf de fabriek is voorzien van een bedrade 100 megabit netwerkaansluiting zullen veel toepassingen gebaat zijn bij draadloos internet. Er zijn verschillende kleine wifi modules op de markt waarmee de Raspberry Pi kan worden uitgebreid. De Edimax wifiplug is hiervan een voorbeeld.

Mijn /etc/network/interfaces configuratiebestand bevat de volgende instellingen:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Het /etc/wpa_supplicant/wpa_supplicant.conf configuratiebestand bevat de definities van de draadloze netwerken waarmee verbonden moet kunnen worden:

cltr_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="netwerk1"
    psk="wachtwoord"
}

netwerk={
    ssid="open netwerk"
    key_mgmt=NONE
}

Na het herstarten wordt nu verbinding gemaakt met één van de opgegeven netwerken. Dit is een mooie gelegenheid om de installatie bij te werken, door eerst alle nieuwe beschikbare pakket op te halen:

sudo apt-get update

en daarna de nieuwe versies te installeren met:

sudo apt-get upgrade

Nieuwe films voor een filmavond

Grootste kanshebbers:

  1. Ex Machina (R-rated thriller, kunstmatige intelligentie, 91% fresh, 87% like)
  2. Interstellar (Matthew McConaughey & Anne Hathaway, time & space, 72% fresh, 86% like)
  3. Gravity (Sandra Bullock, 97% fresh, 80% like)

Lijst van interessante films:

  • Big Hero 6 (robotica en superhelden, 89% fresh, 91% like)
  • Ex Machina (R-rated thriller, kunstmatige intelligentie, 91% fresh, 87% like)
  • Gravity (Sandra Bullock & George Cloony, space & drama, 97% fresh, 80% like)
  • Inception (Leonardo Dicaprio, droomreizen, 86% fresh, 91% like)
  • Interstellar (Matthew McConaughey & Anne Hathaway, time & space, 72% fresh, 86% like)
  • Jupiter Ascending (Mila Kunis, superras, ‘chosen one’, 25% fresh, 43% like)
  • Jurassic World (Chris Pratt, dinosauriërs, fresh 73%)
  • The Matrix (droomwereld, blockbuster, 87% fresh, 85% like)
  • Oblivion (Tom Cruise & Morgan Freeman, space & adventure, 54% fresh, 61% like)
  • Project Almanac (tijdreizen, tieners, 35% fresh, 47% like)
  • Project T, Tomorrowland (George Cloony, Hugh Laurie, alternatieve universa, 50% fresh 50%, 57% like)

SJ4000 foto’s bewerken en verzenden met Raspberry Pi

IMG_4681

Hoewel de cameramodule van de Rapsberry Pi prima foto’s maakt, is de beeldhoek van ongeveer 55 graden aan de krappe kant en laten de lichtgevoeligheid en resolutie wat te wensen over. Als je in het bezit bent van een (kloon) GoPro dan verwacht je betere beelden. Een SJ4000 bijvoorbeeld heeft een beeldhoek van ongeveer 170 graden en een resolutie van 4032×3024. Daarmee kun je aanzienlijk meer beeld tonen, hetgeen handig is in een beperkte ruimte zoals een woonkamer.

Mijn doel is om de SJ4000 te gebruiken in plaats van de Raspberry Pi cameramodule. Aan de softwarekant gebruikte ik op de Rapsberry Pi raspistill om de cameramodule te bedienen, voor een USB camera kun je hiervoor fswebcam gebruiken. Deze installeer je met sudo apt-get install fswebcam

Om de SJ4000 als USB webcam te gebruiken, volstaat het om bij het aansluiten aan de Raspberry Pi (met een USB kabel) op de SJ4000 de optie Use as PC Camera te kiezen. Als de boel gelijk lijkt te ontsporen (de rode LED van de Rapsberry Pi gaat knipperen, de camera gaat gelijk weer uit of doet rare dingen) dan is de voeding van de Raspberry Pi onvoldoende. De Raspberry Pi en SJ4000 nemen in dat geval gezamenlijk teveel stroom op.

Om te controleren of de opzet werkt, volstaat de instructie fswebcam -i 0 -r 1296x960 -d /dev/video0 afbeelding.jpg

De parameter -r laat de gewenste resolutie instellen. In het geval van de SJ4000 is dat 4032×3024 (12M),  3648×2736 (10M),  3264×2448 (8M) en 1296×960 (1.3M). Na enkele seconden is er een nieuwe afbeelding bewaard, genaamd afbeelding.jpg:

sj4000pic

De balk onder de afbeelding wordt door fswebcam toegevoegd, maar kan ook uit.

Foto’s maken met Raspberry Pi en uploaden via FTP

IMG_4102

Mijn Raspberry Pi B+ is uitgerust met een cameramodule, een Edimax WiFi dongle en een MC-RP002-CLR doorzichtige behuizing met uitsparing voor de camera. Met wat software moet het mogelijk zijn om periodiek een foto te maken en deze te uploaden naar een website. “Moet niet ingewikkeld zijn,” dacht ik nog. Zoekend op het internet kwam ik diverse oplossingen tegen, maar uiteindelijk heb ik mijn eigen koers gevaren met de volgende stappen:

  • Foto maken met raspistill
  • Optie foto bewerken met ImageMagick‘s convert
  • Uploaden naar een website met ftp
  • Periodiek herhalen met cron

Vergeet niet de cameramodule aan te zetten in het raspi-config menu. Het programma raspistill maakt een foto met de cameramodule en bewaart deze foto als een JPG. Er zijn verschillende instellingen mogelijk, hieronder enkele belangrijke:

  • Resolutie, met parameter -md, van 640×480 (mode 6) tot 2592×1944 (mode 2) en 1920×1080 (mode 1)
  • JPG kwaliteit, met parameter -q, van 0 (lage kwaliteit en klein bestand) tot 100 (hoge kwaliteit en groot bestand)
  • EXIF informatie instellen, met parameter -x, zoals GPS metadata: -x GPS.GPSLatitude=53/1,9/1,0/1 -x GPS.GPSLongitude=4/1,51/1,34/1 voor N 53° 9′ 0″ en E 4° 51′ 34″. Overigens vereist de GPS-notatie enige bewerking
  • Naam van het uitvoerbestand, met parameter -o. Handig is hierbij om bestandsnamen te nummeren of uit datum-tijd te laten bestaan, met filename=$(date -u +"%Y%m%d%H%M%S").jpg

Met een basis ftp client is het eenvoudig genoeg om een bestand te uploaden naar een website, vooringenomen dat deze over een FTP-server beschikt. Het is nog wel bewerkelijk om de commando’s binnenin de ftp client in hetzelfde script op te nemen als de andere commando’s. Het geheim zit in het omleiden van de console input: ftp << EOF.

Voor een webpagina is het handig om een afbeelding met een vaste naam te hebben. De gemaakte foto wordt daarom altijd naar ‘latest.jpg’ gekopieerd, die daarmee overschreven wordt. Ik heb geen manier gevonden om via het ftp-protocol een bestandsnaam te kopiëren, anders dan de upload twee keer te doen. Da’s wel jammer, want de foto’s zijn aardig groot.

Script capload.sh:

filename=$(date -u +"%Y%m%d%H%M%S").jpg
host=ftp.myserver.nl
user=myusername
pass=mypassword
 
#Capture image
raspistill -o /tmp/$filename -md 2 -q 40
#Optional, include GPS coordinates
#raspistill -o /tmp/$filename -md 2 -q 40 -x GPS.GPSLatitude=53/1,9/1,0/1 -x GPS.GPSLongitude=4/1,51/1,34/1
#Transfer image
ftp -ivn $host << EOF user $user $pass
#Optional, uncomment when connecting succeeds, but uploading is not
#passive
put /tmp/$filename $filename
put /tmp/$filename latest.jpg
bye
EOF
#Remove transfered image file
#This is optional, as /tmp gets cleaned up after each reboot
rm /tmp/$filename

Ik gebruik de volgende cron job (crontab -e) om iedere vijftien minuten een foto te uploaden:

# Run the capload ('Capture Image and Upload') script every fifteen minutes
00 * * * * /home/pi/capload.sh
15 * * * * /home/pi/capload.sh
30 * * * * /home/pi/capload.sh
45 * * * * /home/pi/capload.sh

Hieronder een voorbeeld van een geuploade afbeelding:
Latest from Pi webcam

De Fermi Paradox

Afgelopen week kwam in de auto het onderwerp ‘buitenaardsen’ bij de kinderen op. En waar die dan wonen, op Mars ofzo. En dat er nog wel meer planeten moesten zijn bij andere sterren. Als ouder herinnerde ik me de Fermi paradox enigszins, die bekend staat als de vraag van Enrico Fermi, “waar is iedereen?”. Een goed excuus om de details nog een keer boven te halen van één van de grootste vraagstukken waar de wetenschap mee worstelt: “Is er intelligent leven op andere planeten?”

Het heelal is groot. Naar alle waarschijnlijkheid, volgens natuurkundige wetten die we nog niet begrijpen, oneindig groot. Het heelal bevat een eindig, maar nog steeds onvoorstelbaar groot aantal melkwegen. Eén van die melkwegen is de onze. Iedere melkwegstel bevat een eindig, maar echt onvoorstelbaar groot aantal zonnestelsels: een ster met nul of meerdere planeten die eromheen cirkelen. In onze eigen melkweg bevinden zich tussen de 100 en 400 miljard sterren. Er zijn naar schatting 250 miljard melkwegen in het gehele heelal. En dat maakt dat er tussen de 1022 en 1024 sterren bestaan. In vergelijking, dat zijn 10.000 sterren voor iedere korrel strandzand op aarde.

Niet alle sterren zijn van het type ‘zon’ en niet alle zonnen hebben een ‘aarde-achtige’ planeet om zich heen cirkelen. De meest conservatieve tellingen stellen dat 1% van de sterren een min-of-meer bewoonbare planeet heeft en dat maakt dat er naar schatting 100 ‘aarde-achtige’ planeten bestaan voor iedere korrel zand op aarde. Dat zijn heel veel mogelijke plaatsen waar intelligent leven kan ontstaan, heel veel planeten waar een intelligente beschaving op zou kunnen (hebben) bestaan.

Op hoeveel planeten van het type ‘aarde’ kan intelligent leven bestaan? De schattingen lopen hier weer uiteen, maar gegeven een voldoende lange tijdspanne, zou er op 1 op de 100 ‘aarde-achtige’ planeten intelligent leven kunnen zijn. Als we dan naar onze eigen melkweg kijken dan verwachten we alleen hier al 100.000 planeten met intelligente beschavingen. 100.000.

Er zijn verschillende organisaties die actief en intensief zoeken naar signalen van beschavingen op andere planeten. SETI is de bekendste. En de gezelligste, als we de Nederlandse tak mogen geloven. Als we gelijk hebben met 100.000 beschavingen en een fractie hiervan zendt (net als wij) signalen uit om contact te leggen met andere beschavingen dan zou je verwachten dat er al contact is geweest. Maar dat is niet zo. We hebben geen enkel signaal van buiten opgevangen. Geen hik.

Onze aarde is 4,54 miljard jaar oud. We zijn een planeet met een gemiddelde leeftijd. Dat betekent dat er ook veel oudere planeten zijn. De beschaving van een planeet van 6 miljard jaar oud zou wel eens 1,5 miljard jaar vóór kunnen lopen op de beschaving van de aarde. Je zou verwachten dat die beschaving in 1,5 miljard jaar het probleem van goedkoop ruimtereizen heeft opgelost en de hele melkweg bezocht en bevolkt heeft. We zouden in elk geval sporen van hun bezoek aan de aarde gevonden moeten hebben. Maar dat hebben we niet. Dit vormt de kern van de Fermi-paradox: er zijn genoeg planeten waar leven op heeft kunnen ontstaan en veel planeten hebben tijd genoeg gehad om intelligente beschavingen voort te brengen die hele melkwegen bevolkt moeten kunnen hebben. Waar is iedereen?

De Fermi-paradox heeft geen oplossing of antwoord, maar voldoende speculatie en gissingen, die in twee kampen vallen:

  • Er zijn geen sporen en signalen gevonden van buitenaardse beschavingen, omdat er geen buitenaardse beschavingen zijn
  • Er zijn buitenaardse beschavingen, maar er zijn logische verklaringen voor waarom we niets van hen hebben gehoord

Econoom Robin Hanson heeft in 1996 een artikel geschreven getiteld The Great Filter – Are We Almost Past It?, dat nog steeds het centrale werk in het eerste kamp vormt. Samengevat stelt het, dat het ontstaan van een beschaving samenhangt met een aantal onwaarschijnlijke gebeurtenissen (filtersdie maken dat er ofwel op heel weinig planeten leven kan ontstaan, of dat een beschaving na een bepaalde tijd niet meer kan overleven. Bijvoorbeeld omdat de vaardigheid om grootschalig ruimtereizen te maken meestal naijlt op overbevolking en klimaatveranderingen: de planeet is ‘op’ voordat de bewoners ervan kunnen ‘ontsnappen’. Maar Hanson is slechts één van de velen met een theorie.

Eén van mijn favoriete SF-auteurs, Alastair Reynolds, gebruikt de Fermi Paradox en het filter vaak als thema in zijn boeken. En ook hij is niet de enige.

Het tweede kamp speculeert over verschillende verklaringen, die uiteenlopen van dat de overheid contacten in een doofpot stopt, tot ‘we zijn nog niet voldoende ontwikkeld om contact te leggen’ en we worden in de gaten gehouden maar met rust gelaten.

Overigens is er nog een derde kamp, die stelt dat de wetenschap er bewust een potje van maakt en dat de aarde gewoon zo oud is als in de Bijbel wordt gesteld, namelijk 8.000 jaar.