30 juli 2015

Arduino project 7: wachten en problemen met ledstrips

In de voortgang van het Arduino project zit een beetje de klad, de laatste week. Dit heeft een aantal oorzaken: de gestage stroom van Ebay-pakjes uit China stopte plotseling op raadselachtige wijze. Mogelijk kwam dit door de acties van de pakketbezorgers van PostNL, of door acties elders in de wereld. Sinds begin deze week is de stroom weer op gang gekomen, dus kan ik weer aan het werk.

De tweede kink in de kabel waren de vreemde problemen die ik had met de ledstrips. Ik gebruik hiervoor de library van Fastled (versie 3.0.3). Het vreemde aan het probleem was dat wanneer ik meer dan vier ledstrips tegelijkertijd aanstuurde, deze niet meer uit wilden gaan, maar allemaal groen bleven branden. Nadat ik dagenlang heb zitten klooien aan de Arduino code en de draadjes van de aansturing, had ik het probleem nog steeds niet gevonden. Ik stond op het punt om de spreekwoordelijke pijp aan de even spreekwoordelijke Maarten te geven, toen ik dacht aan het forum van Fastled. Nadat ik mijn probleem daar gedumpt had, kreeg ik binnen vijf minuten antwoord van de beheerder. De oplossing zou zijn om een nieuwere versie van de library te downloaden, die zich nog ergens in bèta versie op de website moest bevinden. En voilà ! Het probleem was verholpen !

De derde kink werd wederom veroorzaakt door de ledstrips, en was eigenlijk mijn eigen stomme fout. De kleur van de leds veranderde wanneer er meer stroken brandden. Wit lukte niet meer; dit werd geel/oranje. En oranje werd rood. Hier ook weer een tijd naar de oorzaak lopen zoeken. De oorzaak lag in de voeding van de leds. Ik had een 10A step down voeding van 12 naar 5V aangesloten. Nu geven mijn accu's normaal gesproken ongeveer 11.7V, maar als deze wat leger raken, dan zakt dit naar ca 10.5 V. De step down voeding kon daar niet goed mee overweg, waardoor de leds minder spanning kregen. Een WS2812 ledje in een ledstrip bestaat uit drie hele kleine leds met de kleuren blauw, groen en rood. Blauwe en groene leds geven er bij lagere spanning eerder de brui aan dan rode leds, vandaar de kleurverschuiving naar rood die ik waarnam. Dit had ik natuurlijk veel eerder kunnen bedenken, soms is de oorzaak van een probleem zo simpel dat je er gewoon overheen kijkt.

Deze voeding is dus (voor mij) waardeloos. Ik heb andere voedingen voor de ledstrips nodig. Tien Ampère step down voedingen zijn nogal groot en lomp, dus heb ik op Ebay een aantal kleinere converters besteld, die ik wat makkelijker kwijt kan. Dus dat wordt weer even wachten op Tante Pos. Wordt vervolgt.

In: 4.5-23V, uit: 1-17V. 1.8A

In: 4-30V, uit: 1.3-36V. 5A

In: 4.5-28V, uit: 1.3-17V. 2A





18 juli 2015

Arduino project 6: Temperatuur en Amperes

Om wat meer inzicht te krijgen in de hoeveelheid stroom die ik verstook als ik alle toeters en bellen op de fiets aan heb staan, ga ik een stroommeter inbouwen. Hiervoor zijn voor de Arduino een aantal kleine modules te koop. Voor de Arduino kwam ik uit op de ACS712. Deze zijn te koop in verschillende smaken; van 5A, 20A en 30A. Ik ga er even vanuit dat 20A voor mij genoeg moet zijn. En op Ebay kost deze $1.82, dus daar ga ik mij geen buil aan vallen. Een ACS712 werkt volgens het principe dat er een millivolt signaal wordt uitgestuurd bij oplopende stroomsterkte. Op de datasheet van de chip lees ik dat bij het 20A exemplaar dat ik gekocht heb, 100mV per ampère wordt gegeven. Door die millivolts nu aan een analoge poort van de Arduino aan te sluiten kan ik eenvoudig berekenen hoeveel ampère ik verbruik.

De ampère module moet als volgt op de Arduino aangesloten worden:


De module heeft aan 5V genoeg. Aan de linkerkant komen de draadjes voor de ampère meting binnen (één in, één uit). De blauwe draad is het mV/data signaal. In de Arduino moet ik hiermee aan de gang, zodat ik de verbruikte ampères mooi op het LCD scherm kan laten zien. Na wat programmeer werk ziet dat er dan als volgt uit:


De spanning wordt berekend door de spanningsdeler die ik eerder gebouwd heb. Dit ziet er allemaal nog een beetje spartaans uit, maar het gaat mij nu even om het idee. Nu verder met het volgende hoofdstuk, de temperatuurmeter.


De temperatuurmeter die ik inbouw is van het type db18b20. Dit is eigenlijk geen 'klassieke' elektronische temperatuur meter maar een kleine IC. De IC communiceert met één pin met de Arduino. Ik had er nog een paar van overgehouden van mijn aquarium project. Er zitten drie pinnetjes aan: twee voor de 5 volt voeding, en een voor de data communicatie. Dit datapinnetje heeft een eigen uniek adres, waardoor het mogelijk is op (in principe) tientallen temperatuurmeters via een draadje met de Arduino te laten communiceren. Dit is natuurlijk leuk, maar in een velomobiel niet zo nuttig. Aan de buitentemperatuur heb ik genoeg. Ik zou natuurlijk twee van die dingen aan de trommelremmen kunnen hangen om te kijken hoe warm die dingen worden. Maar dat is alleen interessant als je in de bergen woont, lijkt mij. Dus houd ik het maar op een voelertje. Deze wordt als volgt aangesloten:


Verder moet ik achterhalen wat het 'adres' van de db18b20 is, anders kan ik niet met 'm babbelen. Hiervoor had ik op internet een programmatje opgeduikeld. Nu is het een kwestie van adres in m'n C++ code zetten, de temperatuur uitlezen en een fijn plekje op m'n display geven.

Het enige nadeel aan een db18b20 temperatuur voeler is de uitlees snelheid. Dit duurt ongeveer een halve seconde. Nu lijkt dit niets, maar het programma wordt er een stuk trager door. En daar komt ook nog bij dat de richting aanwijzers erg onregelmatig beginnen te knipperen. Daarom heb ik de zooi zó geprogrammeerd dat de temperatuur één keer in de tien seconden wordt uitgelezen, en verder wordt er niet uitgelezen als de richting aanwijzer aanstaat.


Hier nog even een plaatje. Inderdaad, het was warm die dag :-)

13 juli 2015

Arduino project 5. Snelheids meting en cadans meting

Omdat het eigenlijk vrij simpel is om gelijk met de ledstrips ook andere dingen door de Arduino uit te laten voeren, heb ik besloten ook maar een snelheids meter en cadansmeter in mijn project in te bouwen. Nu had ik de keuze uit twee typen sensoren: een reed contact of een Hall sensor. Reed contacten zijn hele kleine glazen buisjes met daarin twee metalen staafjes. Wanneer deze staafjes door een magneetveld gaan zullen de staafjes contact met elkaar maken. Reed contacten kunnen echter makkelijk beschadigen. De tweede keus is een Hall sensor. Hierin zit een stukje elektronica ook weer reageert op een magneetveld. Er zijn nogal wat verschillende soorten Hall sensoren te vinden, en het is dus even oppassen met bestellen. Uiteindelijk kom ik via-via uit op een Hall sensor van het type A3144. Op Ebay kosten ze $1.19 per 10 stuks. Na enkele weken wachten komt het kleine zakje met nog kleinere sensoren binnen en kan ik aan de slag.




Een A3144 hall sensor heeft een voeding nodig van 5 Volt, en er moet een weerstandje op aangesloten worden zoals hierboven.


Bovenstaand het schema zoals ik de sensoren op mijn Arduino heb aangesloten.


Plaatje van een Hall sensor, met alle drie de pootjes netjes gesoldeerd en gekrompen. Dit is een priegel werkje, omdat zo'n sensor erg klein is. Net zoals de rotary encoder maken Hall sensoren weer gebruik van interrupts. Dit houdt in dat dat programma dat draait op de Arduino onderbroken wordt als er een interrupt signaal binnenkomt (in dit geval dus van een Hall sensor). Aan de hand van het tijdsverschil tussen de interrupts en de straal van het wiel kan dan de snelheid berekend worden.

Dit houdt dus ook weer in dat ik twee poortjes op de Arduino moet toewijzen die deze functie hebben (niet alle poorten kan je gebruiken voor interrupts).  Nu heeft een Arduino Mega 2560 er zes, dus ik kan nog even vooruit. Op het LCD scherm maak ik een aparte pagina waarin ik de straal van het wiel kan instellen, met behulp van de rotary encoder.

Terwijl ik aan het programmeren ben, bedenk ik mij dat het erg lastig is om de straal van een Quest-wiel goed te meten zonder het wiel los te moeten halen. Makkelijker is het om de omtrek te meten: een plakbandje op het wiel, een plakbandje op de grond, fiets vooruit- cq achteruit rollen en meten. Na wat kleine aanpassingen aan het programma weet ik het zo te regelen dat ik tegelijkertijd zowel de straal als de omtrek van het wiel kan veranderen.

Hieronder een filmpje met het instel scherm en de beide sensoren in aktie (buiten beeld weliswaar, maar dat mag de pret niet drukken):






07 juli 2015

Arduino Project 4. De accumeter

Mijn fiets heb ik tien jaar geleden uitgerust met twee LiPo accu's, destijds gekocht bij Batteryspace in Amerika. Ze hebben een capaciteit van 5500 mAh en 6850mAh. Ze zijn alletwee standaard voorzien met elektronica om overbelading te voorkomen, en schakelen netjes uit wanneer de spanning onder een bepaalde waarde komt. Deze accu's voldoen na tien jaar eigenlijk uitstekend en ik heb dan ook geen reden om ze te vervangen. Dus het nog prima vonkende duo krijgt gewoon een plaatje in m'n nieuwe project.

Wanneer een LiPo accu vol geladen is, heeft deze een spanning van 12.5 V, de accu schakelt zichzelf uit bij 10.6 V. De bedoeling is dat ik de lading van de accu middels een status bar op het LCD scherm laat zien.

schema spanningsdeler
Een Arduino is standaard voorzien van een aantal analoge poorten, die ik kan gebruiken om de spanning op een accu te meten. Het maximale voltage dat een Arduino op zo'n poort kan hebben is echter 5 V,  dus zal ik iets moeten doen om de spanning op een accu om te zetten naar een waarde waar de Arduino wat aan heeft. Zoiets kan met een spanningsdeler. Zo'n spanningsdeler bestaat uit twee weerstanden die, wanneer juist gekozen, de spanning verlagen van zeg maar 12 V (V-in) naar pak 'em beet 5 V (V-out). De Arduino kan aan de hand van de waarde van de gebruikte weerstanden uitrekenen wat dan de werkelijke spanning op de accu's is. Dit gebeurt dan volgens onderstaande formule. Nu zijn er op internet een aantal sites die je eenvoudig de waarden van de beide weerstanden (R1 en R2) laat berekenen. Hier is de link waarmee ik het gedaan heb.



Aan de hand van bovenstaande formule kwam ik uit op een waarde voor R1 van 100 kΩ , en R2 wordt 47 kΩ. Het schema voor het aansluiten van de accu's op de Arduino ziet er nu als volgt uit.



Nu moet ik de Arduino zo programmeren dat met bovenstaande formule het juiste voltage berekend wordt. Daarna moet het beladings-percentage berekend worden, en moet er een grafiek van beide accu's op het LCD scherm komen. Na wat puzzelwerk met de library van de aansturing van het scherm (U8glib) kom ik tot iets dat wel presentabel is...


Het 128x64 scherm


De twee balken representeren de twee accu's, en de pijl daartussen geeft aan welke van de twee accu's in gebruik is. Dit kan ik door middel van een schakelaartje omzetten. Ik zit er stiekem nog aan te denken om de Arduino zelf te laten omschakelen naar een andere accu wanneer de spanning naar een te laag niveau daalt. Maar misschien komt dit later nog. Voorlopig doe ik het even zo. Eerst maar even door naar het volgende hoofdstuk van het project: de hall sensoren voor de snelheidsmeter en de cadansmeting.

Nog even wat toelichting op het scherm hierboven: rechtsboven dus de snelheid, daaronder de cadansmeting en de temperatuur (jawel, het was warm). Die lege vakjes daaronder worden straks gevuld door de icoontjes voor de richting aanwijzer, de zijlichten en de hoofdverlichting,

05 juli 2015

Arduino Project 3. De ledstrips op de Quest

De ledstrips waarmee ik de zijkant van mijn Velomobiel wil gaan versieren moeten van kleur kunnen wisselen. Deze zijn rood aan de achterkant en wit aan de voorkant. Verder moeten ze oranje kunnen knipperen als ik ze als richting aanwijzer gebruik. Na een niet zo lange zoektocht op internet bleek dat de leds die luisteren naar het typenummer WS2812B hiervoor het best geschikt zijn. Deze zijn van het laatste type, en ik ga van de redelijk simpele theorie uit dat nieuw beter is. Vandaar dus.

RGB ledstrips zijn te verkrijgen in drie verschillende uitvoeringen: 30, 60 of 144 leds per meter. Voor de veiligheid koop ik de uitvoering van 144 leds per meter, dan heb ik altijd voldoende licht. Op Ebay vind ik een aanbieder die strookjes van 5 cm levert. Dit is handig voor de eerste testopstelling, en ik koop er vier strookjes van.


Voor de besturing van de strips maak ik gebruik van de library van FastLed. Ik was eerst begonnen met de library van Adafruit, maar deze was nodeloos ingewikkeld en de documentatie was bij lange na niet zo uitgebreid als die van FastLed. De library van FastLed heeft een nadeel; niet alle poorten op een Arduino Mega zijn te gebruiken.

Voor het aansluiten van van een ledstrip zijn drie pinnetjes nodig, twee voor de 5V voeding en één voor de dataverbinding met de Arduino. Op internet lees ik tegenstrijdige berichten over het gebruik van weerstanden en condensatoren, maar al vrij snel merk ik dat deze nodig zijn, omdat ik de eerste chip op de ledstrip opblaas door deze componenten achterwege te laten. Dus, even voor de goede orde: de 1000µF condensator en de 470Ω weerstand is toch echt nodig. Deze moeten dan als volgt worden aangesloten, waarbij de condensator (hier niet bijgetekend) over de +5V en de gnd- polen geplaatst moet worden.


Ik word hierbij goed op weg geholpen door een mooie Netherlands-talige website, te vinden in bijgaande link. De zijlichten worden, rekening houdend met de voor de Mega beschikbare pinnetjes, in mijn project als volgt aangesloten:


Dit ziet er dan in de werkelijkheid als volgt uit:


En dan nu aangesloten op de Arduino, met de rotary encoder en de achterkant van het lcd scherm op de achtergrond.


Nu volgt nog het programmeerwerk voor de knipper- en zijlicht functie van de ledstroken, maar daar is het (eigenlijk) nog te warm voor.... ;-)

01 juli 2015

Arduino Project 2. De Rotary Encoder

Om zo meteen de snelheid te kunnen meten, moet de straal van het voorwiel bekend zijn. Nu kan ik dit  handmatig in de Arduino code invoeren wanneer ik van banden maat wissel, maar het is natuurlijk makkelijker om dit via het paneeltje te doen. En daarvoor heb ik een zogenaamde Rotary Encoder besteld.


Rotrary encoder - $ 1.29

Wanneer er aan een Rotary Encoder gedraaid wordt, worden er pulsjes afgegeven waarmee vervolgens weer 'iets' gedaan kan worden. Je voelt klikjes als je aan zo'n encoder draait. Verder kan bovenstaande encoder ook nog een signaal geven als er op gedrukt wordt. Ik heb mijn encoder als volgt aan de Arduino aangesloten:


De Rotary Encoder op de Arduino Mega

Normaal gesproken wordt een Arduino code stap voor stap uitgevoerd. Nu gaan die stappen vrij snel, maar als het programma een hoop te doen heeft, is dat toch merkbaar. Zo duurt het uitlezen van een DS18B20 temperatuur sensor al gauw een seconde. En als je toevallig dan net aan de draaiknop van de encoder zit te friemelen merkt de software daar niets van.

Nu is een Arduino standaard uitgerust met een paar speciale interrupt poorten. Wanneer deze poorten geactiveerd zijn worden deze gemonitored, en als er iets verandert aan de status van de poort, kan  het programma onderbroken worden om een bepaalde actie uit te voeren, en dat is in mijn geval het veranderen van de wiel straal.

Een Arduino Mega heeft 6 interrupts, genummerd van 0 tot 5. Ik sluit mijn encoder aan op interrupt 0 en 1 (respectievelijk pin 2 en 3). Poort 4 wordt gebruikt voor het indrukken van de encoder knop. 

Nu moet de hele zooi ook nog geprogrammeerd worden. In bijgaande link vond ik de juiste instructies, die ik na wat aanpassingen geschikt maakte voor mijn programma. Nu moet ik dit nog op een zinnige manier op het scherm tonen, maar dat komt later.

Een andere uitdaging die ik had was het opslaan van de wijzigingen. Als een Arduino wordt uit gezet, verliest deze al zijn variabelen. Nu is er gelukkig een kleine geheugen ruimte gereserveerd om wat variabelen op te kunnen opslaan. Via weer een andere link vond ik ook een instructie voor deze uitdaging. De data wordt opgeslagen in het EEPROM geheugen zodra er wat verandert wordt, en wordt weer uitgelezen als ik de Arduino opstart. Op deze manier kan ik de veranderde wielmaten  opslaan als ik die verandert heb.


29 juni 2015

Begin van Arduino project 1. het LCD scherm


Post !
De bestellingen die ik de afgelopen weken bij Ebay gedaan heb, beginnen nu langzaam binnen te komen, getuige de foto hier links.

Toegegeven, het ging toch niet zo snel als het plaatje doet lijken, maar toch met voldoende vaart om met het project te kunnen beginnen. De belangrijkste componenten waren er, dus ik kon aan de slag met het prototype. Om te voorkomen dat het een onoverzichtelijke dradenboel wordt gebruik ik een aantal breadbordjes voor de verschillende voltages en flans ik van triplex een frontje in elkaar waarop ik het LCD scherm kan schroeven. Ik boor de gaatjes voor de schakelaars die ik denk te gaan gebruiken (vooruit, ik boor er wat meer voor 'je ken niet weten'). De twee schakelaars voor het licht en de hoofdschakelaar zijn ook al binnen, dus die krijgen ook een mooi plekje. De Arduino komt tussen de breadbordjes, nu nog de voeding aansluiten en ik kan aan de gang.



Om het  LCD scherm te kunnen aansturen is een library nodig. Nu had ik al een aantal van die libraries 'in het vooruit' gedownload, maar geen van allen blijken ze te werken. Als ik op onderzoek uitga blijken deze libraries stuk voor stuk hopeloos verouderd. Ik breng een lange avond door met het zoeken en testen van de juiste software, en kom uiteindelijk op de library van U8glib uit.

Deze heeft alles wat ik wil hebben: goede documentatie, goede uitleg en hij ondersteunt de SPT interface van het LCD scherm zonder problemen.

Op een standaard 128 x 64 scherm zitten flink veel aansluitingen, die ook vrijwel allemaal gebruikt worden. Dit ziet er dan als volgt uit (schrik niet)

Dit vind ik onacceptabel, omdat ik dan zelfs op een Arduino Mega niet veel aansluitingen overhoud om lekker mee te rotzooien. Gelukkig kan dat anders. Ik heb een scherm gekocht met achterop een SPT module die maar drie draden nodig heeft om met de buitenwereld te babbelen.

Het aan de praat krijgen van het scherm geeft wel enige problemen, en dat komt voornamelijk omdat de documentatie geheel ontbreekt, en ik dus niet kan vinden waar ik die drie draadjes in moet douwen. Ook internet geeft mij niet veel soelaas, totdat ik ergens in een obscuur hoekje van de digitale wereld de juiste aansluitingen vind.



Ik sluit de boel volgens onderstaand schema aan, en waarachtig, het werkt.
1. 5V
2. GND
3. SCK - doe ik op pin 13 van de Arduino
4. CS - pin 15
5. SID - pin 14

Het schema ziet er ook een stuk eenvoudiger uit. De SPT module staat hier niet tussen, die moet je er maar even bij denken.



Achterop het scherm zitten een naast schakelaar voor de communicatie keuze, een schakelaar voor het licht en een potmetertje voor het contrast. De voeding voor het scherm moet persé van de Arduino komen, en niet van een externe 5V bron, omdat het contrast dan nooit lekker in te stellen is. Nu de eerste stap gezet is, kan ik verder met de volgende. De Rotary Encoder.


26 juni 2015

Bestel lijst Arduino project

Op Ebay heb ik inmiddels een 40-tal bestellingen uitstaan, waarvan al een deel begint binnen te druppelen. Ik ben van plan om mijn huidige schakelkast te gaan vervangen. Het ding is groot en zwaar, en dondert regelmatig van de wielkast. Niet erg handig dus. Met de Arduino ben ik van plan om naast het aansturen van de RGB leds ook nog de rest te bedienen, en daarmee bedoel ik de richting aanwijzers, de accu's en de voor- en achter verlichting. De hoofd ingrediënten even opgesomd:


1. Om een en ander zo compact mogelijk te houden skip ik een hoop indicatie ledjes op het bedieningpaneel, en wil ik de status van de accu's en dergelijke op een display tonen. Mijn oog is gevallen op een LCD display met een resolutie van 126x64 pixels. Normaal gesproken heb je een flink aantal pinnetjes nodig om zo'n display aan de Arduino aan te sluiten, maar met een SPI interface heb je (naast de 5V voeding) maar drie pinnetjes nodig. Verder heb ik voor een groen verlicht display gekozen, omdat ik tijdens mijn aquarium project heb gemerkt dat de gangbare blauwe displays minder goed afleesbaar zijn.









2. Omdat ik begin met een test opstelling die een beetje makkelijk op m'n bureau moet kunnen staan heb ik vier kleine ledstrips besteld die makkelijk in een breadbordje passen. Zo beperk ik de rommel en dradenbende die ongetwijfeld gaat ontstaan. Ze zijn van het type WS2812B, en hebben naast de standaard 5V aansluiting een draadje nodig voor het aansturen van de kleuren en de helderheid.


3. De led strips en nog een aantal andere sensoren, toeters en bellen moeten allemaal gevoed worden. Ik heb een DC-DC omvormer van 5V en 5A gevonden die de hele zwik moet gaan voeden. Het ding is lekker klein (46x32x18mm) en heeft een efficientie van 90%, dus zal niet snel warm worden.





4. Naast de kleine ledstrips komen de grote. Ook weer van type WS2812B. Deze zijn te verkrijgen in stroken van 30, 60 of 144 leds per meter. Ik heb gekozen voor de laatste. Voor overdag moet dit genoeg zijn, en ik kan bij het rijden in het donker ervoor kiezen om de leds te dimmen of er een aantal uit te doen. Bij het bestellen van de leds moest ik nog even opletten; deze kosten ongeveer 32 dollar per meter, en dan kan je bij import uit China ineens invoerrechten, belasting en nog een aantal dingen gaan betalen. Enkele leveranciers leverden de strips gelukkig ook per halve meter, en dan blijf je nog net onder de kritieke grens.



5. Het hart wordt natuurlijk gevormd door de Arduino. De taal waarmee dit dingetje geprogrammeerd wordt is C++, waarmee ik tijdens het bouwen van mijn aquarium kennis gemaakt heb. Arduinos zijn leverbaar in verschillende soorten. Hele kleine met maar een paar aansluitingen, tot de wat grotere, met flink veel meer aansluitingen. Ik heb gekozen voor de Arduino Mega 2560. Deze heeft 16 analoge en 54 digitale in/uitgangen. Deze heb ik nodig voor onder andere het scherm, de ledstrips, de schakelaars, het uitlezen van de accu's en de rotary encoder (waarover later meer).



6. Om de componenten straks makkelijk aan te kunnen sluiten heb ik dit bordje gekocht. Deze komt zo meteen bovenop de Arduino en hierop komen de weerstanden en stekkers. Ik maak geen gebruik van schroefverbindingen, want ik weet uit ervaring dat die in een Velomobiel snel los kunnen trillen





7. Voor de snelheidsmeter en cadans meter had ik natuurlijk gebruik kunnen maken van mechanische reed switches (die heb ik nog ergens liggen), maar deze hall switches waren zo goedkoop dat ik wel het risico durfde te nemen om er een zakje van te kopen. Voldoen ze niet, dan ga ik gewoon over op reed switches, hoewel die wel een stuk breekbaarder zijn dan deze exemplaren.




8. Een buzzer. Om de richting aanwijzers te horen (ik wil deze nog wel eens per ongeluk aan zetten), bouw ik een buzzer in mijn project. Dit ding kost maar 99 dollarcent, inclusief verzendkosten (vanuit China). Hoe ze het doen begrijp ik niet.
9. De rotary encoder. Dit fraaie stukje techniek is ook niet duur, dus vooruit maar. Om zo meteen de wieldiameter makkelijk in te stellen (i.v.m. de in te bouwen snelheidsmeter), heb ik een rotary encoder nodig. Dit dingetje telt pulsjes als het wordt rond gedraaid, en er zit een drukknop op.
10. Naast allerlei stekkertjes, draden en verbindingen bouw ik ook nog twee (of vier) USB connectoren in. Handig om de telefoon mee op te laden als deze weer eens bijna leeg is, of de MP3 speler.

11. Rond de twee koplampen die mijn fiets rijk is monteer ik twee ringleds. Deze zijn ook van het type WS2812B. Overdag kan ik bij somber weer deze leds als zicht licht gaan voeren, terwijl ze tegelijkertijd ook als knipperlicht gebruikt kunnen worden (met wat programmeer werk uiteraard).





 12. Er kunnen van het budget nog twee kekke schakelaars af, die ik ga gebruiken voor het inschakelen van de bediening, en de voorlichten.

23 juni 2015

Arduino in Velomobiel

De Arduino Mega 2560
Zoals ik de vorige keer al schreef, ben ik van plan om mijn fiets te gaan uitrusten met ledstrips. Deels om in het verkeer meer op te vallen, en deels 'voor de leuk'. Nu wil ik hiervoor RGB ledstrips gaan gebruiken; leds die van kleur kunnen veranderen dus. De reden hiervoor is dat ik ze ook als knipperlichten wil gaan gebruiken. Dit houdt vervolgens ook in dat ik die RGB leds op een of andere manier moet gaan besturen, en dit kan (onder andere) heel goed met een Arduino bordje.

Met deze veelzijdige kleine computertjes heb ik al eerder kennis gemaakt, toen ik in een wilde bui besloot mijn oude aquarium te gaan vervangen, en de besturing van het nieuwe aquarium over te laten aan zo'n zelfde Arduino computertje. Dit is na veel vijfen en zessen gelukt, en de glazen bak draait inmiddels al anderhalf jaar naar volle tevredenheid.

En dan is nu mijn Quest aan de beurt om toe te treden tot het digitale tijdperk. En als je dan toch bezig bent met het 'automatiseren' van je Velomobiel, waarom douw je er dan niet wat andere dingen bij ? Ineens is er van alles mogelijk. Een lcd scherm ? Check. Cadans- en snelheidsmeter ? Check. Temperatuur en voltmeter voor de accu's ? Dubbelcheck. Nadat ik een boodschappen lijstje had samen gesteld ben ik maar eens gezellig internationaal gaan shoppen.

Om de (verzend) kosten te drukken bestel ik dit soort zaken altijd op Ebay. Dat klinkt raar, maar als je kleine elektronica onderdelen uit China laat komen, betaal je meestal nul verzendkosten. Wat daar tegenover staat is wachttijd; je moet rekening houden met 2 tot 4 weken levertijd, en soms nog langer. Maar dat maakt mij nog even niet uit, ik heb immers geen haast.

Afgelopen week de eerste bestellingen de deur uit gedaan, en de eerste enveloppen druppelen nu langzaam binnen.

16 juni 2015

Over blinde paarden en scherpziende amazones

Sommige gebeurtenissen willen wel eens lange schaduwen werpen. Ongeveer een jaar geleden maakte ik op een fietstocht het volgende mee; het was hoogzomer, een graad op 25 en stralend weer. Het was zaterdag, rond een uur of 2 in de middag, en dus druk op straat. Deze dag had ik het plan opgevat om weer eens een rondje Rotterdam te gaan doen; via Gorinchem naar Rotterdam, en dan langs de Lek naar Vianen, om daar weer naar Gorinchem af te buigen. Een route van ca 110 km.

Ik op pad richting Rotterdam. Ter hoogte van Oostendam, ik heb het even moeten opzoeken, vindt gebeurtenis één plaats. Ik maak een bocht en rijd de ventweg naast de Rotterdamseweg op. Bijna een halve kilometer verderop zie ik een ruiter op paard op de ventweg lopen, en bijna tegelijkertijd zien ze mij. En dat vind ik knap op die afstand. Ik nader het duo en zie dat het paard wat onrustig begint te worden, dus ik minder wat vaart.

Eenmaal bij de amazone aangekomen beginnen we een vriendelijk gesprek. Het blijkt dat het edele dier al eerder geschrokken was van een Velomobiel, en dat zij het prettig vond dat ik m'n snelheid had aangepast. Het paard kijkt mij met grote schrikogen aan (of voornamelijk m'n fiets), maar gaandeweg het gesprek ontdooit haar houding, en laat het dier haar hoofd zakken, om de fiets met nieuwsgierige blikken op te nemen. Wij zetten ons gesprek voort en na 10 minuten gaan wij ieder ons weegs.

Ik rijd weer verder, de van Brienenoord brug over. Over het fietspad langs de Schaardijk rijd ik nu naar het oosten. Dit fietspad wordt op gezette tijden gekruist door een autoweg, automobilisten moeten daar de fietsers voorrang verlenen. Van links komt een auto met een rustig gangetje richting het fietspad rijden. Ik rijd wat harder, want ik heb hier een lekker windje in de rug, en bovendien is het fietspad breed en leeg. Het gras is gemaaid, het zicht is goed, dus ik verwacht dat de bestuurder mij wel aan ziet komen. Ik maak oogcontact (tenminste, dat denk ik), denk 'dat zit wel snor'. Maar zo snor zat het niet. Terwijl we elkaar naderen begin ik te twijfelen, sommige mensen houden er een vreemde rijstijl op na en remmen altijd op het laatste moment. Ik stop met trappen en houd de bestuurder nog steeds in het oog. Hij lijkt nog steeds mijn kant op te kijken, dus ik rem nog niet.

Als we elkaar vijf meter genaderd zijn zie ik zijn bijrijder iets tegen hem zeggen trapt hij abrupt op de rem, ternauwernood een botsing voorkomend. Ik ben kwaad en verbaast. Hoe blind kan je zijn ? Ik fiets in een fucking knalrode fiets, van fucking 2 meter fucking 85, in een fucking groen grasveld, en je ziet me niet ?!?! Ik ben niet eens gestopt om verhaal te halen, tegen zoveel stupiditeit kan je niet op. Ik gok dat als ik mijn Quest had uitgerust met twee pimpelpaarse opblaaspoppen, hij mij nog niet gezien had. Youtube staat vol met dat soort gasten.

Terwijl ik al mopperend verder rijd ontpopt zich het idee om wat aan zijverlichting te doen, zodat ik in dit soort gevallen een kans van 5% heb dat ik wel gezien word (ik maak mij geen illusies ;-). Iets met knipperende lichten. Zodat het beter opvalt. Hoewel, ik kan mij een gesprek met oom agent herinneren van een decennium geleden. Ik werd aangehouden in mijn open ligger omdat mijn ledlampje knipperde. Dat mag niet. Als reden voerde hij op dat dat niet genoeg op viel. Dat een standaard zwaailicht van een standaard politiewagen ook knippert, heb ik maar even niet gezegd. Ik weet dat je met zo'n man nooit de discussie aan moet gaan, anders slingert hij je op de bon. Een agent moet handhaven en de wet naleven. En verkeerswetgeving is niet altijd even logisch, zeker niet met verlichting. Dus ik heb netjes ja-en-amen gezegd en ik kon weer verder.

Maar nu ga ik dus iets aan verlichting doen. Iets waar ik de komende weken of maanden mee bezig zal zijn. Ondertussen overweeg ik de aanschaf van twee flinke opblaaspoppen. Met wat duct-tape en vindingrijkheid moet dit wel te doen zijn. Dit heeft echter wel een aantal nadelen:
  • De fiets past niet meer tussen de fietspaaltjes.
  • De luchtweerstand zal naar verwachting wel wat ongunstig uitpakken ;-)
  • Ik heb een grotere kans opgepakt te worden wegens verstoring van de openbare orde, helemaal aangezien een groot deel van mijn actieradius in de Bible Belt ligt.

Wordt vervolgt......