
Inleiding
Ik ben de afgelopen tijd ontzettend aan het knoeien geweest met fietsverlichting. Klassieke verlichting voldeed niet, dus toen ik verlichting moest toevoegen aan mijn twee ligfietsen begon ik al met LEDs (met voorschakelweerstand), die aan een 7805 hingen, welke op zich weer aan een grote accu hing. Je raadt het al, dit was heftig inefficient en ik kreeg ook te weinig batterijtijd uit mijn licht. De eerste extra feature die er dus op werd gebouwd was een dimlicht (grotere voorschakelweerstand).Toen besloot ik dat ik meer licht nodig had. Ik werkte tot dan toe met 30lm 1W LEDs, en die geven op zich genoeg licht om gezien te wórden, maar niet om zelf te zien. Ik maakte de upgrade naar een 4W voorlicht maar dat ging never nooit niet met voorschakelweerstand werken. Met een Attiny13V microcontroller en wat knutselwerk heb ik toen een buck-converter in elkaar gezet die dat licht voedt.
Dit is echter niet genoeg. Ik kan met mijn huidige systeem mijn licht maar op twee standen zetten: superhoog en superlaag. Bovendien moet ik het zelf aan- en uitzetten, en heb ik geen indicatie van de batterijtijd. Er loopt verder een grote kabelbende over mijn fietsen, ook erg onwenselijk. Als laatste is 4W (~200lm) nog steeds niet genoeg licht, ik wil MEER!!!
Verder heb ik al meermalen ge-experimenteerd met een zelfbouw-fietscomputer. Touchscreens, hardwired stroommeters, thermometers, accelerometers en natuurlijk standaard fietscomputerfuncties zijn allemaal de revue gepasseerd. Echter, het bleef altijd een beetje bij simpele experimenten want zodra ik de functies wilde integreren op mijn fiets moest ik weer een dikke kabel leggen en rekening houden met alle verschillende spanningen die nodig waren op verschillende plekken. Het werd een zootje.
De Eisen
Het is duidelijk dat ik meerdere verschillende soorten apparaten op mijn fiets wil zetten. De eerste, belangrijkste en bovendien wettelijk verplichte functie die dat moet gaan verrichten is verlichting. Vandaar de naam van dit topic. Echter, later wordt dit met allerlei andere apparaten uitgebreid.Verschillende apparaten op de fiets moeten onafhankelijke modules zijn, elk met hun eigen batterij en welke communicatie er ook moet gebeuren: deze moet draadloos. Dat geeft ons een mooi beginpunt om tot een ontwerp te komen.
Gezien batterijen gebruikt worden willen we hier maximale batterijtijd uit halen. Voor de verlichting betekent dit een buck/boost/buckboost-converter om stroom te leveren aan de LED-lampen. Draadloze communicatie is ook een beruchte energieslurper, dus dat moet ook zo zuinig mogelijk. Het geheel moet op één 18650-formaat Li-ion accu kunnen lopen (of evt. meerdere in parallel, niet serie ivm balancing-problemen). De zwaarste lamp die ik erop wil kunnen zetten is een 10W LED.
Gezien de complexiteit van elke node moet er een microcontroller op (die dan gelijk als PWM controller en communicatiehub kan dienen). Hier zijn de eisen ook redelijk restrictief: enkel platforms waar ik ervaring mee heb, en dan een zo goedkoop mogelijke versie. Ik heb ervaring met Atmel AVRs, NXP LPC-serie MCUs (ARM7/9 en Cortex), TI TMS320 en uiteraard 8051.
Samengevat:
- Draadloos netwerk
- Op zichzelf staande apparaten die aan een netwerk kunnen worden toegevoegd
- Eerste prioriteit: licht
- schakelende voeding, 10W
- low-power draadloos protocol
- AVR, LPC, TMS320 of 8051 microcontroller
Het Plan
In dit hoofdstukje komen concrete ideeën te staan voor de opbouw van een node in het bike area network. Ik zit te denken aan:- Draadloze communicatie: ANT, dmv een Nordic Semiconductor nRF24AP1
- Buck-boostconverter:
Vi 3.3-4.25V
Vo 3-12V
Po: 10W bij elke situatie
- microcontroller: NXP LPC1311
- kleine 3.3V LDO voor de micro en wireless
- Temperatuursensor op de LEDs en elektronica (ntc/ptc)
- Stroommeting (mogelijk met INA213 versterker)
- true off-schakelaar (iets dat het stroomverbruik helemaal tot 0 laat gaan zodra de accu helemaal leeg is)
Bicycle Area Network
Eén licht maakt deel uit van een lokaal netwerk waarop zich op zijn minst één licht en een controller bevindt. Die controller kan zoiets simpels als een knop zijn (met microcontroller+wireless+batterij om de rest te instrueren aan te gaan) of zelfs helemaal passief - een lichtsensor en bewegingssensor. Maar elk mogelijk apparaat kan natuurlijk deel uitmaken van een BAN, denk bijvoorbeeld ook aan programmeerbare LED-strips in de wielen of een PDA/telefoonadapter.Bottlenecks in het ontwerp
Dit gaat niet zomaar goed. Er zijn drie punten die dit een heel moeilijk project maken:- Schakelende voedinkjes dichtbij een wireless interface, dit gaat hoopjes noise opleveren. Ik heb inmiddels wel wat ervaring met EMI-shielding en knap converterontwerp maar het blijft een heikel punt.
- Het risico dat de batterij leeg loopt doordat de elektronica nodeloos aanstaat
- Succesvolle, voldoende veilige implementatie van het BAN.
Wat het eerste punt betreft: dit is gewoon een situatie van de high-powerdelen zo goed mogelijk isoleren en ontkoppelen van het microcontroller- en RF-gedeelte. Dit zorgt er waarschijnlijk voor dat aan de voorkant van het licht alle power elektronica komt te zitten, en erachter, met een ground plane ertussen, alle microelektronica. Of zoiets.
Power savings zijn op zich niet zo moeilijk te implementeren, het moet alleen gedaan worden. Het licht staat bijvoorbeeld standaard op 1W aan (vrij fel). Wanneer een flinke beam nodig is druk je een knop in die ervoor zorgt dat de lamp op 10W wordt geregeld, maar dit valt automatisch (na 10s ofzo) weer terug naar 1W. Wanneer de batterij op 20% staat - ik noem maar wat - wordt de lamp steeds meer teruggeregeld tot hij op 50mW zit en de batterij definitief leeg is. Ondertussen stuurt hij eens in de zoveel tijd eens een pakketje richting de controller met 'hoi, ik ben bijna leeg, help mij!'. Zodra de batterij echt definitief leeg is schakelt hij zichzelf onherroepelijk uit.
Ondertussen moet de controller er ook voor zorgen dat het licht uit wordt gezet wanneer het niet nodig is. Een LDR en bewegingssensor bekijken continu of er licht moet worden gemaakt. Zolang dat niet nodig is gaan zowel controller als alle lichten in sleep-modus, waarbij ze elke seconde (bijvoorbeeld) wakker worden om te kijken of iemand wat zegt, na een tijdje elke vijf seconde en uiteindelijk elke 30 seconden. Uiteraard komt hier ook een hardware interrupt op waardoor je met een knop de hardware aan kunt forceren. Met Zigbee of Bluetooth kan op die manier een licht maandenlang meegaan op de batterij.
Als laatste het bike area network... Dat is wat lastiger. Nordic semiconductor heeft veruit het grootste deel van dit spul voor zijn rekening genomen door de ANT stack in een chip in te bouwen. Je hoeft dan alleen nog een paar kleine configuraties uit te voeren en je kunt redelijk snel aan de slag. Hetzelfde geldt voor veel bluetooth-adapters maar... bluetooth is een stuk minder zuinig en kan bovendien enkel point-to-point communiceren, niet in een netwerk. ZigBee is hier ook een mogelijkheid, maar die heeft volgens mij meer software nodig. Dat kan problemen veroorzaken met het beperkte RAM in goedkope microcontrollers.
Ohja, en dan nog veiligheid. Atmel Zigbee-modules hebben ingebouwde encryptie en negotiation wat het heel aardig maakt. Toch zal hier nog wat verder over moeten worden nagedacht.
Maar nu...
Dit is allemaal slechts een concept. In mijn eentje is dit ook niet haalbaar, dus roep ik graag de hulp van anderen in. Wie vindt dit een leuk idee, wil meedenken en mee-ontwikkelen? Ik werk het liefst met de gratis en open-source programma's TinyCAD en FreePCB, en simuleer doorgaans in Matlab (simulink).[ Voor 30% gewijzigd door mux op 23-04-2010 23:06 . Reden: TS wat uitgebreid ]