dinsdag 21 oktober 2014

Muziek in een doosje

Ik wil muziek maken! Het is te zeggen, zoals met mijn Mp3 potje wil ik muziek of spraak die vooraf is opgenomen, opnieuw afspelen ergens in een bos.

Maar ik heb dat potje al, dus waarom iets veranderen dat werkt? Omdat het niet zo goed werkt, en omdat alles beter kan. De batterij laat het te snel afweten en de grootte van het potje irriteert me. Ook het feit dat er een SD kaartje in zit, zit me niet lekker. Kleine SD-kaartjes van 128Mb vind ik hier nergens meer en de Chinese versies zijn onbetrouwbaar.

Ander en beter, dacht ik dus. Maar het alternatief onder het motto: "wat je zelf doet, doe je beter", is in dit geval een behoorlijke uitdaging. Om te beginnen ga ik dus geen MP3 module meer gebruiken zoals vroeger. Zo'n module is voorgeprogrammeerd om muziek te spelen die op een SD kaartje staat. Het enige dat mijn potje doet is met een aparte microcontroller de module besturen als er een magneet in de buurt komt.

Nu moet het dus anders. Ik ga zelf een module maken die geheugen heeft om de muziek op te slaan en een D/A convertor om de digitale signalen hoorbaar te maken door MP3 oortjes. Omdat dat allemaal nieuw is voor mij, was dit de eerste stap. Een Chinees verkocht 20 D/A covertors voor een dollar en dat boeide me. Ik ging er vandaag mee aan de slag en weet nu waarom ie die prijs hanteerde.



Uiteraard gaat het zo niet in een potje, we zijn slechts in de experimenteerfase. Links zie je een mini Arduino en rechts de beruchte Chinees (PCF8591). Het is een chip met 4 A/D convertors en één D/A convertor. Hij heeft dus te veel pinnen en is nog te groot voor wat ik echt nodig heb. Maar dat is nu even het minste van mijn zorgen.

De chip doet de D/A coversie serieel, dat wil zeggen dat de Arduino links muziek data zal doorgeven door twee draadjes. Daar zit dus meteen de belangrijkste reden om deze chip niet te gebruiken. De seriële interface kan 100kbps versturen, wat op zich best veel is. Maar als ik 8 bits nodig heb per sample (het blijken er 9 te zijn), kan ik dus 11000 bytes per seconde versturen. Dat is behoorlijk weinig als je weet dat een CD speler er 44100 verstuurt. Ik zal dus geluiden met een frequentie boven 5500 Hz niet kunnen afspelen en dat is een probleem. Nu sta ik niet te springen om CD kwaliteit in een bos te brengen, maar enkel spraak onder de 5500 Hz klinkt al niet mooi meer. De 's' klanken worden 'sj' klanken en het verschil tussen een 't' en de 'p' zal vervagen.

Toch moest ik even proberen wat ie kon. Geef toe, dit is een mooie zaagtand die de Arduino heeft verzonnen. Hij is samengesteld uit 512 waarden van 0 tot 255 en weer terug naar 0. De vorm is goed, maar je hoort niks. Dat komt omdat alles zo traag gaat dat ie maar 5 Hz is. Je hoort dus niks. Nu is dat geen punt, want ik moet voor één vorm nooit 512 waarden gebruiken, een CD speler kan dat ook niet.


Ik kan 50 waarden proberen zoals hier, maar er loopt iets mis. De chip heeft een soort datamodus (die heb ik nodig) om enkel data te versturen over de bus. Je stuurt enkele bytes om te zeggen dat ie in die modus moet werken, en alles wat je dan stuurt, moet ie als data beschouwen.

En dat doet ie dus niet! Je ziet dat de vorm kleine hoekjes heeft, zo zouden er dus 50 moeten komen. Maar in de helft geeft ie het op, en daardoor is de golf plots onderbroken. Ik kan dus maximaal een 20 of 30-tal bytes sturen in deze modus, en dan zou ik weer twee bytes moeten sturen om opnieuw te starten. Maar dan zijn er dus kleine hiaten elke 20 of 30 samples. En dat zal je zeker horen als een constante ruis. Het alternatief is die modus niet gebruiken (zoals de eerste foto), maar dan beperk ik het aantal samples tot 3000 à 4000 per seconde, en dat is waardeloos. Spraak van 1.5 à 2 kHz kan je echt niet maken, een goed oor kan tot 15 kHz horen.

Soit, ik kan er dus niks mee doen en een volgende lading chips is onderweg. Ze zijn veel kleiner en de seriële bus is een SPI bus. Die is niet beperkt in snelheid tenzij de snelheid van de Arduino me parten speelt. Maar daar gaan we even niet vanuit.

Oh ja, ze zijn ook veel veel duurder, die andere chips. In plaats van twintig voor één dollar heb ik er maar twee voor één dollar.

Duur hè ;-)

maandag 13 oktober 2014

Ik ben niet belangrijk

Het was een moeilijke stap om te zetten. Maar omdat het uiteindelijke doel, en wellicht is dat in elk mensenleven zo, een zo goed en zo gelukkig mogelijk leven werd, moest ik hem zetten.

Dat gebeurt niet snel en ik kan het enkel nadien beschrijven. Dat lukt pas op het moment dat je merkt dat er iets is veranderd in je manier van denken. Tegelijkertijd blijft het duidelijk dat oude gewoonten en denkpatronen soms hardnekkig zijn, dus ook in dit geval noem ik dit een work in progress. Waar het echt om gaat, is net wat de titel zegt. Het besef dat je zelf niet belangrijk bent, moet lang sudderen vooraleer je zoiets echt kunt toegeven. In ons boekje met twaalf stappen noemt men dat nederigheid en vandaag is dat woord in ons halfrond iets vies.

Maar als je verder terugdenkt in de tijd of naar andere culturen kijkt, dan is het vaak een hoeksteen van geluk. Je hoeft niet meteen aan een Boeddhistische monnik te denken: ook de godsdienst waar ik groot mee werd, had het in hun boekje staan. Het boekje was dikker en er stond naar mijn mening enorm veel onzin in, maar net zoals dat met andere normen en waarden is gebeurd, is dit er eentje dat ik in ere heb hersteld.

Het begon toen ik verplicht werd om toe te geven dat ik machteloos stond tegenover alcohol. Dat klinkt zwaar maar het wil enkel zeggen dat ik nooit één of twee pinten kon drinken. Het was alles of niks. Een fles of een bak die half leeg was, verdroeg ik niet. Een avond beëindigen om één uur 's nachts omdat het goed geweest was, kon ik niet. Het was thuisblijven of de keet sluiten. En indien nodig, als het sluitingsuur me niet aanstond, zocht ik andere keten die mijn timing wel respecteerden. Zoiets noemen wij dan "nederig toegeven dat je machteloos staat tegenover alcohol". Er komen details als God en een Hogere Macht aan te pas, maar een atheïst kan die moeilijk meenemen.

Later werd gevraagd om dit principe uit te breiden. Maar ik was al nuchter en vroeg me af waarom ik me daar in godsnaam mee zou bezighouden. Toch is dat eenvoudig: als je nuchter wilt blijven, moet je eerst gelukkig worden en dan is dit een vereiste waar je niet omheen kan.

En dat vraagt tijd, want het gaat in tegen alle principes die je werden aangeleerd door familie, omgeving en school. Ik leerde dat ik een sterke eigen mening moest hebben. Ik moest ervoor uitkomen en duidelijk zeggen waar ik voor sta. Ik moest ook anderen overtuigen dat ik gelijk had, want een gezonde discussie verheldert de geest. Ik werd aangeleerd om van me af te bijten en me niet te laten doen in de grote boze wereld.

Aan de AA tafel was er een andere cultuur en dat was eerst moeilijk. Het ligt vast in regels die je moet volgen, en voor een alcoholist is zoiets zwaar. Plots moest ik zwijgen als anderen praten. Hoewel ik vaak wou tussenkomen, vaak zelfs gewoon om te zeggen dat ik iets begrijp of herken, volgens de nieuwe regels moest ik zwijgen. Daar was een goede reden voor: in plaats van praten, moest ik nu luisteren. Je mening voor jezelf houden tot je het woord krijgt, is niet makkelijk. Maar het kan dus en eens je het in het echte leven ook toepast, verandert er plots erg veel.

Het is niet nodig om je te verdedigen, want ik weet zelf wel waar ik voor sta. Mensen die me kennen, weten dat ook. Het is dus niet langer nuttig om te discussiëren en mijn gelijk te halen. Nederigheid mag dan een vies woord zijn, als je het toepast, word je leven veel rustiger. Er valt een hoop ballast van je schouders als je niet langer in de verdediging hoeft te gaan. Het wil niet zeggen dat je over je heen laat walsen, maar op het juiste moment zwijgen is een kunst die ik moest aanleren.

Ik moest denken aan dit dr Phil-ism. "Never mis a good chance to shut up", het zegt het allemaal. De hele kern van de zaak in één zin, daar is ie goed in. "Do you want to be right, or do you want to be happy" is er nog zo één.

"Ik ben niet belangrijk". Zo begon de tafelgenoot zijn betoog. Hij komt net zo lang aan deze tafel als ik. Hij heeft de kunst om enkele pagina's van het moeilijk plan, zijn "nieuwe film", uit te drukken in één korte zin. Als je nieuw bent, klinkt het vreemd. Als je al even hier komt, is zoiets heel logisch.

zaterdag 11 oktober 2014

Geocache waypoint verklikker

Het moet niet altijd moeilijk zijn qua elektronica, soms is het idee op zich zo simpel en toch heel erg origineel.


Dit is dan ook niet mijn idee, maar het idee van een andere CO (cache owner) voor wie ik een hele tijd geleden al eens een waypoint had gemaakt. Tot vandaag lag dit ding nergens ten velde, hij had er gewoon twee 'in stock' zoals dat heet.


Het grijze doosje met de rode knop is een variantje op mijn geocache MP3 potje, maar dan in een meer eenvoudige behuizing en zonder magnetische activering.

Maar het idee werd dus uitgebreid: stel dat je graag zou hebben dat dit waypoint coördinaten uitspreekt (waar het dus voor bedoeld is) en dat je zelf als CO graag wilt weten wanneer iemand op de knop heeft gedrukt om ze te horen.

Voorwaarde is natuurlijk dat het alleen maar lukt als je binnen het bereik van de drukknop van deze deurbel woont, dat spreekt voor zich. Maar in dit geval is dat ook zo.

Het enige wat dus moest gebeuren, is dat mijn waypoint als iemand op de rode knop drukt niet alleen de muziek gaat afspelen door de oortjes, maar ook dat op de achtergrond de deurbel wordt geactiveerd. Uiteraard moet dat gebeuren zonder dat je de drukknop van de deurbel ziet zitten. Maar zoals je ziet op de foto's is de elektronica die in de drukknop zit enorm compact en kan die makkelijk mee in het grijze doosje dat het geluid gaat produceren.

Uiteraard is het niet voldoende dat het erin past, het moet ook activeren als je op de rode knop drukt, en ik wil de batterij van de deurbel omzeilen. Er zit een kleine 3V knoopcel in en het zou een beetje dom zijn om twee batterijen te gebruiken in één toestel. Mijn waypoint werkt op 3.7V, dus dat bleek geen probleem te zijn.

Het tweede punt is natuurlijk de drukknop. Je kan niet zomaar de elektronica die ik heb gemaakt en de elektronica van de drukknop van de deurbel aan één rode drukknop vastsolderen en hopen dat alles werkt. Ik weet immers niet wat die knop in de deurbel juist doet, en ik zou makkelijk een kortsluiting kunnen maken, of de bel zou misschien helemaal niks doen. In 't slechtste geval zou ie ook geen muziek meer maken. Ik had er dus al op gerekend dat ik een extra uitgang moest voorzien aan mijn elektronica die de drukknop van de bel zou bedienen. Ik zou de software moeten aanpassen zodat samen met het afspelen van de muziek ook meteen de bel zou activeren via een ander pinnetje van de microcontroller.



Toch bleek dat allemaal niet nodig. Dit is de drukknop van de bel, en al snel was duidelijk dat het iets heel simpel is. De gele plastic kon ik gewoon wegsnijden en het middelste contact moet enkel verbonden worden met de drie andere die daar rond liggen. Het toeval wil dat die verbonden zijn met de negatieve kant van de batterij, net zoals dat met mijn drukknop het geval is. Zo toevallig is dat niet trouwens, het is niet omdat dit stukje elektronica industriëel is en dat van mij handwerk, dat we niet dezelfde basisprincipes gebruiken. Eén daarvan is dat ik elke drukknop activeer met een GND signaal dat via een pull-up weerstand aan de +3.7 Volt hangt. Hier was dat dus niet anders.

Vandaar de hele simpele oplossing. Geen software update nodig, geen extra uitgang van de microcontroller. Met drie draadjes van de deurbel naar mijn printplaatje (twee voor de batterij en één voor de drukknop), is het probleem opgelost.


De drukknop zorgt ervoor dat zowel in mijn elektronica als in die van de deurbel een signaal laag wordt, waardoor ze allebei hun ding doen.

En dat is: muziek maken, zowel binnen als buiten :)

vrijdag 26 september 2014

A new job !

Meestal komt zoiets helemaal onverwachts en ook dit keer was het niet anders. Na twee jaar van de ziekteverzekering te leven tussen twee rugoperaties werd het tijd om opnieuw de arbeidsmarkt op te zoeken.

Alleen zijn mijn nieuwe voorwaarden voor een job door mijn situatie zo lastig dat het in de praktijk nagenoeg niet mogelijk was om een match te vinden bij eender welke werkgever. Dagvullend mag de activiteit niet meer zijn en voorlopig kan het ook niet. Acht uur op een bureaustoel zitten is vanaf nu verboden en als je altijd een bureaujob deed, is dat een moeilijke eis.

Er kwam bij dat in het circuit waar ik in terecht was gekomen voor ik ziek werd zoiets nooit bestaat. Freelance opdrachten van enkele maanden moesten altijd ter plaatse bij een klant uitgevoerd worden. Als ik dat opnieuw zou doen, moet ik een plan bedenken om sommige dagen een uur of zes langs te gaan bij de klant en sommige dagen, als het even wat minder gaat, maar drie uur. Zoiets kan natuurlijk helemaal niet, dus enkel thuiswerk kwam nog in aanmerking.

Toen kwam er een berichtje via LinkedIn. Een bedrijf zoekt een Delphiprogrammeur met veel ervaring. Dat op zich is al een groot probleem, want de programmeertaal is helemaal uit de mode. Een bijkomend probleem was dat het bedrijf geen kantoor heeft, alle medewerkers werken thuis. Het gaat ook niet om kortlopende opdrachten, maar ondersteuning van bestaande software voor een hele lange termijn, lees: meerdere jaren. Er zijn erg veel klanten die de software gebruiken, dus mettertijd moet de nieuwe programmeur ook onderhoud kunnen bieden bij klanten vanop afstand.

Dat moet dus lukken dat ik helemaal voldoe aan deze voorwaarden. Een bijkomende troef is dat de zaakvoerder een oude bekende is die op de hoogte is van wat ik met een computer kan. En blijkbaar is dat wel wat, want het werkte in mijn voordeel.


Binnenkort zal ik dus in deze nieuwe Delphi XE3 om te beginnen nieuwe software gaan schrijven die aansluit bij wat al bestaat.

De oude software moet ook up-to-date gebracht worden naar deze Delphi, en ook zo'n omschakeling deed ik al enkele keren in mijn carrière.




Vanavond is het contract getekend en de ontwikkelomgeving staat nu op mijn PC. Heel binnenkort ga ik aan de slag. Spannend !

woensdag 24 september 2014

Mp3 in de sloot

Het vorige onderhoud van mijn Rondje Vlaanderen geocache in Zwijndrecht was een beetje vreemd. Er kwam een melding dat het potje dat geluid maakt voor de tweede keer in enkele weken tijd verdwenen was, en dat moest ik uiteraard meteen nakijken.

Gelukkig bleek het niet zo te zijn, het nieuwe ontwerp was gelukkig intact en het lag zelfs helemaal open en bloot omdat seizoenen veranderen en netels plots minder woekerden.

Net door diezelfde reden, alles in de buurt van de afgezaagde boomstam ligt er nu nogal kaal bij, viel mijn oog op een wit potje dat in de beek lag. Er staat weinig water in de beek, maar net genoeg om het toch kliedernat te maken. Het was zowaar het vorige potje dat ik dus echt gestolen waande. Ik had toen nog een half uur de hele omgeving tevergeefs afgezocht en zelfs andere stammen gaan checken, na een tijd twijfel je aan alles. Nu blijkt dus dat het echt gewoon in de beek gevallen was.

Vandaag heb ik het opnieuw 'een onderhoud' gegeven zoals dat dan heet. Dit is het zwakke punt van het ontwerp: de lijm geeft het op en het schroefje dat de connector vastmaakt was losgekomen toen ik het potje opende. Ik kon dus ook niet testen of het ding nog werkt, want zo kan je er nooit een hoofdtelefoon inpluggen.


Ik heb alles wat los kan dan losgewrikt (ik wil het hergebruiken, maar zonder lijm dit keer) en dan kwam het printje tevoorschijn. In tegenstelling tot het potje zelf, ziet dit er nog perfect uit! De laag plasticspray zorgde ervoor dat de koper niet is aangetast door vocht (het potje was toch klammig binnen).


Ook de voorkant is perfect in orde. Ik heb de batterij erin geplaatst en ook met plasticspray behandeld en dat voelde ik nu. De batterij zit zelfs vastgeklemd in de houder. Ze is trouwens nog bijna helemaal vol en alles blijkt nog perfect te werken. Alleen spreekt ie nog een noordcoördinaat uit die in Nederland ligt, maar dat wist ik inmiddels en dat is rechtgezet.

Dus met wat extra revetten om alles te monteren en een update van de software en de spraak op het SD-kaartje, kan dit weer perfect werken. Vanaf nu heb ik er dus twee in reserve :)

dinsdag 23 september 2014

Veel 7-segmentjes

Ik moet toegeven, ik heb me even laten gaan in het soldeerkamertje. Dat komt eigenlijk vooral omdat je nu eenmaal niet één klein printplaatje kan maken, in dit geval staan er 9 op één vel.



Er waren er al een paar in gebruik van de twee vellen, en als ik de 'afval' verwijder (helaas heeft meestal elk vel wel één of meer mislukte ontwerpjes), hield ik er dus twaalf over.



Niet dat ik ze zelf allemaal in gebruik ga nemen, een aantal zijn bedoeld voor een andere geocacher. En de rest hou ik als reserve nu ik merk dat zo'n potje in de natuur niet altijd met zachte hand wordt behandeld.

Nu had ik een mooi plan om de 7-segmentpotjes die niet voor mezelf bedoeld zijn programmeerbaar te maken. Die van mij zijn dat ook, maar er is een groot verschil tussen de originele software in het geheugen branden en enkel de coördinaten aanpassen aan de plek waar de potjes moeten liggen. Ik kan dat combineren in één beweging, maar als ik de potjes overhandig is dat niet meer zo. De geocacher zou de ontwikkelomgeving moeten installeren en heel wat know-how moeten hebben over compileren en uploaden en zo.

Met deze programmer lukt dat dus allemaal. Het is niet meer dan een extra klein printje met één chip en een toetsenbordje, maar het geeft genoeg flexibiliteit om coördinaten vast te programmeren per potje. Er is één grote 'helaas'! Het werkt niet. Het is te zeggen, alles werkt perfect zolang ik beide printplaatjes (zowel de programmer als het 7-segment potje) aan de 5V voeding van een USB verbinding heb hangen, vanaf het moment dat alles op de 3V batterij van het 7-segment potje zelf hangt, geeft ie geen kik meer.

Dat is heel vreemd, want beide chips zijn voorzien om vanaf 2,8V perfect te functioneren. Ik weet inmiddels dat 2,3V ook al genoeg is, wat mij dan nog meer de wenkbrauwen doet fronsen. Er is immers buiten de spanning geen enkel verschil tussen de twee opstellingen.

En dat is heel vervelend, want ik weet dus niet hoe dit verder moet. Ik wou alles veel makkelijker maken, maar dat zo lukt dus niet. Een extra voeding of een USB verbinding enkel om ze te programmeren zouden een optie zijn die misschien kan werken, maar het originele idee om alles eenvoudig te maken verliest dan wat van zijn pluimen.

Hoe zeggen ze dat? Back to the drawingboard...

maandag 22 september 2014

Lowcarb of no-carb?

Ik had al even een plan dat ook geregeld in de praktijk werd omgezet. De bedoeling is om, net zoals ik dat zeven jaar voltijds heb volgehouden in mijn Atkinsdieet, minder koolhydraten te eten. Dat was dit keer vooral ingegeven door mijn afkeur van broodmaaltijden die te erg aanwezig waren in mijn dagmenu.

Het ontbijt vraagt er nog steeds om en dat wil ik dan ook zo houden. Maar rond of na de middag kwam heel vaak het idee dat die bruine boterham nu eventjes niet hoeft en ook andere koolhydraatbronnen lokten me niet naar de tafel. Het resultaat was dan vaak een maaltijd overslaan zodat ik als vieruurtje aan een zak chips of pak koeken begon.

Uiteraard kan dat beter, en dit keer was de motivatie dus niet ingegeven door het gewichtsverlies dat ik zou kunnen bereiken (iets wat trouwens nog wel nodig is hoor, de harde cijfers van mijn laatste jaaronderzoek bevestigden een tikkeltje overgewicht).

Soit, ondertussen is er een nieuw extra plan. Omdat nu blijkt dat ik die middagmaaltijden toch wel heel erg goed onder controle heb diabetesgewijs, het omgekeerde zou vreemd zijn omdat ik immers mijn bloedsuiker niet doe stijgen tijdens de periode na de ontbijtpiek tot het avondmaal, hebben we in overleg besloten om het avondmaal vanaf nu minstens één keer per week ook zonder koolhydraten te serveren.



Het moet gezegd dat de Pure Keuken van Pascal Naessens hier voor iets tussenzit. Heerlijke gerechten die akelig bekend in de oren klinken van deze ex-Atkinser zijn nu voorzien van mooie foto's in een heel trendy new way of life. Voor mij wil het alleen zeggen dat ik hetzelfde doe als toen ik het nog gewoon Atkins noemde, maar nu maak ik er dan ook maar een mooie foto van.

Ondertussen is dit heerlijke zalmgerecht een klassieker en neen, er hoort echt geen pasta, rijst of aardappel bij. Geloof me, als je hier een paar happen van eet, denk je daar niet meer aan.

Het was een beetje jammer dat mijn sensor net voor de maaltijd besliste dat vier weken dit keer lang genoeg was om me in te lichten over mijn suikerwaarden. Ik heb dus geen data van na de maaltijd buiten de klassieke vingerprikjes zoals vroeger. Ik heb er dan wel drie genomen om toch ietwat te kunnen opvolgen hoe dat nu zit na zo'n maaltijd. Voor alle duidelijkheid: ik heb helemaal geen insuline gegeven voor deze maaltijd. Normaal doe ik dat nog wel, zelfs al is het koolhyraatarm, maar dit keer kon ik echt geen bronnen vinden in de ingrediëntenlijst die enig effect zouden hebben op de metingen. De tomaatjes zouden nog iets kunnen doen, maar ze zijn niet zo groot en ik besliste om ze best te negeren.

Het resultaat bewijst in de eerste plaats dat mijn basaal in de avonduren akelig goed geregeld is:
- voor de maaltijd : 89 mg/dl
- 2u na de maaltijd : 94 mg/dl
- voor het slapengaan: 90 mg/dl

Niet slecht zou ik denken !