30 december 2015

Arduino project 14: achterlicht eindelijk klaar

Het heeft even geduurd voordat ik weer wat nieuws te melden had over mijn fietsproject. Het aan de praat krijgen van mijn achterlicht had toch nog flink wat voeten in de aarde. Dit kwam door brak programmeer werk, denkfouten in de pin layout van de stekker die in het schakelkastje gaat, en een vervelend loszittend contactje. Je kent het wel; denk je de fout in een ontwerp gevonden te hebben, maar helaas, weer terug naar de tekentafel. Totdat je dagen later stom toevallig ergens anders een loszittend draadje tegen komt, en de hele santekraam ineens als een zonnetje draait. Maar ondertussen heb je wel op zes andere plekken gezocht, en dan uit pure frustratie de hele zooi maar even voor een paar dagen in een hoek van de kluskamer gedeponeerd.

Onderkant van het achterlicht

Maar eerst bij het begin. Na het printen van het achterlicht konden de Ebay-lampekapjes erin. Deze pasten aanvankelijk niet perfect. Dit ligt niet aan mijn printer, maar aan Sketchup. Dit programma is eigenlijk gemaakt voor architectuur werk en heeft een minimale resolutie van een millimeter. Voor huis- tuin en keuken werk is dit natuurlijk voldoende, maar op een gegeven moment loop je tegen problemen aan, zeker als je onderdelen in elkaar moet passen. Om deze reden ben ik inmiddels overgestapt op een ander CAD programma: Solidworks. Dit is een heel duur professioneel 3D ontwerp programma, waarvan er op m'n werk gelukkig nog een licentie over was.

De Ebay lampjes in de 3D print gelijmd


Eerst moesten de lampekapjes in het achterlicht. Na flink wat schuren en schaven lukte dit uiteindelijk. Daarna kwamen de ringleds. Deze plakte ik op een 3D-geprint plastic houder, waarna het geheel de lamp in ging.

Nadat ik de programmeerfoutjes uit de Arduino had gehaald, werkte het geheel eindelijk naar behoren:


26 november 2015

Arduino project 13: 3D printen van het achterlicht (deel 2)

3D printen met een zelfgebouwde printer is een kwestie van (veel) vallen en opstaan. Zo ook bij mij. Om kort te gaan: het printen van het nieuwe achterlicht ging niet van een leien dakje. Ik was van plan op de lamp te gaan printen in ABS. Dat is wat weer-bestendiger dan PLA. Ik had bij Ridix in Rotterdam een mooi kleurtje uitgezocht. Na flink wat aanpassingen aan de temperatuur van de printkop en het bed heb ik een testprint van het achterlicht gemaakt, in de schaal van 1:2. Dat ging nog best goed


Het opschalen ging echter niet zo geweldig. Na twee uur printen begon het hele werkstuk los te komen van het bed. Dit is iets waar ABS om berucht is. Eigenlijk is mijn ontwerp te groot voor ABS, en zeker voor mijn printer.

 
ABS ging dus even niet lukken, dan maar weer terug naar PLA. Kleurtje bestellen en weer aan de gang. De printtijd was ruim 10 uur, dus dit moest ik in een weekend doen. Terwijl ik aan de zondagse koffie zat, stond de printer boven op zolder te horren. Toen tegen de avond de print voor 95% af was ging het mis. Om de een of andere reden ging er iets mis met het transport van de printkop, met als gevolg dat de bovenste laag verschoven was.


Dus moest ik de printer weer onder handen nemen. Door her en der wat aan het mechaniek te smeren en de printsnelheid wat te verlagen hoopte ik de printer te overreden nu wel een mooie print te produceren. En jawel, het volgende weekend was het raak (drie keer is dus nog steeds scheepsrecht). Na ruim 14 uur printen kon ik de lamp heel voorzichtig van het platform peuteren:


Het verwijderen van het support materiaal was nog wel even een klus, maar met schroevendraaier en mes kwam uiteindelijk alles los. Nu komt de volgende stap: het monteren van de Ebay kapjes en de ringleds.



Mijn printer kan prima overweg met kleine klusjes. Maar is deze meer dan 10 uur aan de gang, dan kan het mis gaan. Daarom heb ik afgelopen zomer de grote stap genomen om aan een Kickstarter project mee te doen. De firma E3D in Engeland had een printer op stapel staan die zowel goedkoop en groot is. De levering staat nog steeds op schema, en ik hoop met de kerstdagen lekker aan het klussen te zijn aan de nieuwe printer. Maar eerst nog even klussen aan mijn Velomobiel, en als het in het weekend eens een keer mooi weer wordt, weer een stukje fietsen.

15 november 2015

Arduino project 12: 3D printen van het achterlicht (deel 1)

Bij het vervangen van de 'boordcomputer' heb ik ook tegelijk maar de andere elektrische onderdelen van mijn fiets aangepakt. Al sinds ik ermee rond rijd, prijkt op de achtersteven van mijn fiets een (eveneens) zelfgebouwd achterlicht. Destijds (alweer tien jaar geleden) deed ik dat met epoxy hars. Anno 2015 doen wij dat met de 3D printtechniek (gelieve voorgaande zin te lezen met de stem van Chriet Titulaer in het achterhoofd).

Mijn nieuwe achterlicht zal gaan bestaan uit drie lampen; twee voor de richting-aanwijzers en één voor het hoofdlicht. Op ebay heb ik al de diverse onderdelen bij elkaar gesprokkeld:
Een en ander kwam (uiteraard) uit China, dus het duurde even voordat alles binnen was. De grootste lens is van glas en heeft een doorsnede van 51mm. Dat wordt dan het hoofdlicht, van dat andere kappie ernaast heb ik een zakkie vol, ik kon ze kopen per tien, voor 2 euro of zo. De ringleds erboven zet ik hier dan achter en dat alles gaat in de te printen lichtkap. Met ouderwets potlood en papier (sorry Chriet) en een gewone analoge schuifmaat, maak ik een schets:


En daarna dan aan de gang met Sketchup. Dit is niet makkelijk. Althans voor mij dan, want ik ben een redelijke newbie op cad/cam gebied. Daar komt nog bij dat het ontwerp wel 'schoon' moet zijn, anders verslikt de 3D printer zich in de lamp, met onvoorspelbare resultaten tot gevolg. 

Maar na veel vallen en opstaan, en na heel veel uren klooien en opnieuw beginnen, heb ik iets ontworpen dat door de printer geslikt gaat worden. Ik check dat van tevoren met het programma Netfabb Basic, een gratis programma dat .stl bestanden kan scannen op fouten. Daarvoor moet ik eerst een module downloaden en installeren voor Sketchup, waarmee ik .stl bestanden kan converteren naar .stl. Ik heb dan nu dus een ontwerp, en daarna volgt het printen (om met Chriet te spreken: wocht vervolgt ;-)

01 november 2015

Terug van vakantie

De afgelopen maand zijn we op vakantie geweest.Naar Laos en Thailand. Volop genoten van de lekkere temperaturen, de mooie landschappen, en vooral het eten. Eenmaal thuis moesten we even aan de temperaturen wennen, maar omdat Nederland op dit moment geniet van een prachtige herfst was de klimatologische schok niet zo heel groot. Gisteren even wezen fietsen. Nederland lag er op z'n mooist bij op deze morgen:


Ruwweg heb ik de route Gorinchem - Vianen - Rotterdam - Gorinchem gereden. Dit is normaal gesproken zo'n honderd kilometer, maar omdat ik onderweg in de nodige wegwerkzaamheden reed, kwamen er nog ongeveer 20 kilometers bij. Toen ik thuis kwam merkte ik dat mijn (fiets) conditie na een maand niet fietsen toch wel wat achteruit was gegaan.


Nu ik weer terug ben kan ik weer verder gaan aan mijn Arduino / 3D print project. De diverse onderdelen liggen her en der verspreid in het huis en op m'n bureau, en dit moet nog allemaal in m'n fiets. In de komende donkere wintermaanden zal ik nog het een en ander moeten ontwerpen en printen. Beugels, lampen, houders en kastjes; ze liggen allemaal nog her en der in m'n hoofd, en moeten allemaal nog uit de printer komen.


Maar eerst nog even genieten van de herfst. Voor mij toch het mooiste seizoen van het jaar.






21 september 2015

Arduino project 11: Griep !

In de 'planning'van mijn Arduino had ik het niet ingecalculeerd. Maar ik had kunnen weten dat het er aan zat te komen, want daar kan je bij mij de klok (redelijk) op gelijk zetten. Griep. Door snot, koorts en algemene hangerigheid van geest en lichaam is de voortgang in het Arduino project de laatste weken wat tot stilstand gekomen. Althans, de sneltreinvaart die er in het begin in zat, is nu tot het niveau 'oude paardenkar' gereduceerd. Is er dan helemaal niets geknutseld de laatste weken ? Jawel ! Ik steek van wal:

De 3D prints voor de behuizing van de elektronische schakeling zijn af, dus kan het Grote Inbouwen beginnen. Nu is een gemiddelde Velomobiel 'zomers vrij droog, maar dat kan in de rest van het jaar nog wel eens omslaan, zeker als het regent en de berijder al zwetend onder de schuimkap de elementen trotseert. Dan kan het klimaat in de fiets al snel oplopen tot niveau 'klamme sauna'. Om de electronica tegen deze zwetende elementen te beschermen, impregneer ik de compnenten eerst met een laag 'plastic - componenten - vitaal - spray'. Eerst natuurlijk alle contacten afplakken, anders werkt zometeen de hele zooi niet meer.



Buiten in de tuin worden alle componenten uitgestald en van een fijn laagje plastic voorzien. De Arduino hierboven ziet er drijfnat uit, maar het is allemaal plastic wat er glimt. Het bordje wordt hierdoor weliswaar niet water bestendig, maar in ieder geval wél condens bestendig.

Als na een paar minuten het spul is opgedroogd kan het grote monteren beginnen. Alle schakelaars, connectoren, voedingen, draaiknoppen en draadjes moeten samen met de Arduino en het scherm in een kastje van 18 x 13 x 6 cm gepropt worden.


Het display is ongeveer 10° gedraaid, waardoor het voor de bestuurder wat makkelijker afleesbaar is


Aan de onderkant twee USB connectoren, voor het opladen van smartphone en/of andere apparaten. Daarnaast de USB connector voor de Arduino, waarmee ik deze makkelijk kan herprogrammeren zonder dat de hele kast open moet. Daarboven de zwarte keuze-schakelaar voor de twee accu's


In de kast zit de Arduino, met alle verbindingen via stekkertjes. Alles trillingsvast, zodat de zooi na 100 kilometer rammelen niet uit elkaar dondert.


Hierboven een onderaanzicht van de kast. Ik heb de kabels nog niet netjes weg gewerkt of samen gebonden, want ik heb nog niet alle verbindingen doorgemeten.

Op mijn huidige schakeldoos zitten mooie connectoren van Binder. Daarvan heb ik er twee over, die ik gebruik voor de accu's. De rest gaat via ouderwetse RS232 connectoren. 


Zo'n stekker oogt minder fraai dan m'n huidige 19 pins Binder connector, maar ik kan deze niet overzetten van mijn huidige schakelkast, omdat ik dan de komende tijd zonder licht op de fiets zit. Dan maar even zo dus. Ik beschouw dit elektro-kastje vooralsnog als een tijdelijke testversie. Waarschijnlijk print ik volgend jaar een nieuw kastje, met wat mooier afgeronde hoeken. En dan is er ook weer plaats voor de mooiere connectoren.

De komende tijd moet er in ieder geval weer flink geprint worden, om alle lampen een mooie behuizing te geven. Wordt vervolgt dus.....

05 september 2015

Arduino project 10: 3D printen

Het wordt stilaan een beetje tijd om al mijn knutselwerk een plekje in de Quest te geven. Nu heb ik boven op zolder een apparaat staan dat hiervoor bij uitstek geschikt is: een 3D printer. Deze heb ik vorige zomer in een gekke bui zelf gebouwd. Ook weer via losse onderdelen die ik grotendeels op Ebay gekocht heb. Het was een testproject om te kijken of ik wat ga doen met zo'n printer, of dat het apparaat na twee weken staat te verstoffen in een vochtig hoekje.

De 3D printer dus. Voor de geïnteresseerden: het is een Prusa I3, en hij heeft mij ongeveer 400 euro gekost. Ik kan er ABS, PLA en nog een paar andere soorten kunststof mee printen, maar omdat PLA verreweg het makkelijkst print, ga ik deze gebruiken voor mijn project. Maar eerst moet er gemeten worden. Ik koop in een hobbyzaak een kilo KinderKnutselKlei en figuurzaag de twee belangrijkste onderdelen van het Arduino project: de Arduino zelf en het LCD scherm. Deze onderdelen prak ik samen met de klei op de kast van het rechter bovenwiel, en ik boetseer net zolang totdat ik een fraai resultaat heb. Ik moet hierbij opletten op de maximale printgrootte van mijn printer: ongeveer 18,5 bij 19 centimeter.
Het boetseerwerk in mijn fiets
Daarna komt het moeilijkere werk: het omzetten van mijn analoge klei-prestatie in een digitaal exemplaar. Hiervoor gebruik ik al een tijdje Google Sketchup. Met als voornamelijke redenen dat het gebruikersvriendelijk en gratis is. Na ettelijke uren schuur- en schaafwerk komt er iets uit dat theoretisch in mijn fiets zou moeten passen, en ook nog al mijn electroniek moet kunnen behuizen.


Het 3D model bestaat uit zes afzonderlijk te printen onderdelen, die ik met M3 schroefjes aan elkaar ga zetten. Dit maakt het soldeerwerk makkelijker, en bekort de printtijd per onderdeel aanzienlijk. Dit laatste telt voor mij het zwaarst, omdat mijn printer weliswaar prima werkt, maar nog niet alle kinderziektes zijn eruit. Het zou dus zomaar eens kunnen dat er na acht uur printen een storing optreedt, en ik naast een hoop PLA ook een hoop tijd kwijt ben. Dat is vervelend, en dus print ik de kast maar in zes delen uit. Hieronder even een kort filmpje in (semi) 3D.


En als de printer aan het werk is ziet dat er ongeveer zo uit (let niet op de herrie: er rammelt nog ergens iets aan mijn printer, nog steeds niet gevonden :-(



Hierboven print de printer de achterkant van het schakelkastje, waar de Aduino tegenaan geschroefd wordt. De gaatjes zitten er al in geprint, evenals de afstands-busjes. Lekker makkelijk ;-)
Ik heb nu een aantal wandjes afgedrukt, als alles af is kan het grote passen en meten beginnen. Wordt vervolgt.

(PS: voor wie meer wil weten over mijn printer: 3d.robbroek.nl. De Nederlandse versie is nog niet volledig, de Engelse wel (bijna))

31 augustus 2015

Arduino project 9: Miniaturisering

Er wordt nog steeds volop gewerkt aan het Aruino project. Maar er wordt door mij zo af en toe, als het weer het toelaat, ook nog gefietst. Een rondje Rotterdam - Vianen, de geheel vernieuwde Biesbos, Zaltbommel. En verder natuurlijk werken aan de Quest besturing.

De WS2812 ledstrips zijn mooi, maar ze hebben een nadeel; ze zijn erg gevoelig voor het verkeerd aansluiten van de draadjes. Als je vergeet je de massa door te verbinden naar de Arduino, dan kan je al met een dooie ledstrip te maken hebben. Dat is met één strip niet zo erg; de strips zijn met een schaar gewoon in te korten. Je knipt gewoon de eerste led eraf en soldeert de draadjes weer vast op de 'nieuwe' led. Maar met een ledring lukt dat niet. En daarvan heb ik er al twee om zeep geholpen. Dus weer naar Ebay om nieuwe te bestellen, en weer wachten.



Dat ik die fouten maak ligt niet zozeer bij mij, maar bij de draden chaos die ik de afgelopen weken gecreëerd heb (oké, dat ligt dus ook aan mij). En door al die draden raak ik zo langzamerhand het overzicht kwijt, en dan is een fout snel gemaakt. Tijd voor een grote opruim actie dus. Eerder had ik al een bordje besteld dat ik bovenop de Arduino zou gaan plaatsen, en daar ga ik nu eens lekker gebruik van maken.



Eén voor één sluit ik de stekkers aan die ik de afgelopen weken (ook weer) besteld heb. Dat is een heel gepriegel, temeer omdat ik het werk doe met een nogal grove Gamma soldeerbout die voor dit werk eigenlijk helemaal niet geschikt is. Dus besteed ik de munten die ik voor mijn verjaardag heb gekregen aan een nieuwe soldeerbout, eentje waar ik wat beter mee uit de voeten kan, en ook meer voor de dag mee kan komen.




De printplaat is nu voor 90% af, ik heb er met een klein labelprintertje wat stickers op geplakt, zodat later tenminste weet waar ik al die stekkers op kwijt moet. Nu komt het andere priegelwerk: alles inbouwen in de nieuwe 'schakelkast' voor in de Quest (wordt vervolgt dus).

09 augustus 2015

Arduino project 8: nieuwe dimbare LED-koplampen

Al zes jaar rijd ik rond met twee B&M Cyo Sport koplampen. Deze voldoen eigenlijk nog prima, maar ik ben van plan om twee ringleds rondom mijn koplampen te monteren en deze als verlichting, c.q. knipperlicht te gebruiken. En daar zijn mijn Cyo's net te groot voor. Op Ebay vind ik flink wat fiets koplampen. Na wat zoekwerk vind ik twee geschikte kandidaten. Een lampje met een diameter van 42 mm waar de ringleds mooi omheen gaan. Ze krijgen een 5V voeding van een USB stekkertje, dat past dus mooi bij de rest van mijn 5V apparatuur (de ledstrips en de sensoren rond de Arduino). De lampen kosten $9,50 per stuk, dus daar kan ik mij geen buil aan vallen.



Na een aantal weken komen de lampjes aan. Ze zien er netjes uit, maar al gelijk dient zich een probleem aan: er zit een drukknopje aan de achterkant van de lampjes. 1x drukken is knipperen, 2x drukken is half licht, 3x drukken is vol licht. Dat is handig als zo'n lampje op het stuur van je fiets gemonteerd is, maar bij mij zitten ze voorin de neus van de Quest. Dan kan ik ze natuurlijk met m'n grote teen bedienen, maar dat is niet echt praktisch, zeker niet in de winter.

Ander 'nadeel' is dat de lampjes nogal fel branden, zeg maar gerust op de stand 'kleine supernova'. Dat is mooi op een onverlichte polderweg, maar niet in de bebouwde kom. De alom gebruikelijke smoes dat 'ik zo slecht zichtbaar ben' gaat dan natuurlijk niet meer op, maar om nou oogverblindend door de stad te gaan rijden is ook een beetje teveel van het goede. Ik moet die dingen dus zien te dimmen naar een sociaal meer aanvaardbaar niveau. De lampjes zijn elk voorzien van een CREE XM-L T6 led. Deze kunnen 700 tot 3000 mA verstouwen, als ik de lampjes doormeet, blijkt dat de mijne bij 700mA al net zoveel licht geven als een gemiddelde PC-Hoofdstraat trekker. Ik ga op Ebay op zoek naar geschikte voedingen, en vind na enig zoekwerk het volgende:




De voedingen zijn klein (26 bij 15 mm) en leveren 700mA, bij een ingangs-voeding van 2 tot 28V. Verder zijn ze nog voorzien van een PWM aansluiting, waardoor ik ze kan dimmen met de Arduino. Ze kosten maar $2,50 per stuk.

 


Wanneer de voedingen binnen zijn kan ik beginnen met slopen. Dat gaat gelukkig vrij makkelijk.


De led zit op een stevig metalen huis, samen met de schakeling die het lampje van de juiste voeding moet voorzien. Het metalen huis fungeert ook als koeling, want de led wordt behoorlijk warm als deze een tijd aan staat.



Hier het drukknopje waar ik in mijn geval dus geen moer aan heb. Eruit met dat ding.


De oude voeding gaat er tussenuit, en ik sluit de draadjes direct aan op de CREE led. De nieuwe voedingen plaats ik ergens boven het rechter wiel, vlak bij het nog te bouwen nieuwe bediening paneel.



Nu moeten de beide voedingen aangesloten worden op de nieuwe koplampjes. Ter beveiliging tegen stroompieken zet ik een condensator over de voeding, en gaat er een weerstand van 470ohm in het PWM signaal dat van de Arduino komt. Dit alles soldeer ik op een PCB bordje (ook weer van Ebay). Door middel van een schakelaartje dat straks op het 'dashboard' komt kan ik het PWM signaal onderbreken, zodat ik een soort van grootlicht / dimlicht schakelaar heb. Een en ander ziet er als volgt uit:


Nu is nog het wachten op de diverse voedingen voor de ledstrips. Als deze binnen zijn kan ik langzaamaan gaan beginnen met het in elkaar zetten van de hele zooi en het een en ander in mijn fiets gaan inbouwen.

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):