Överdrivet avancerad cykelbelysning (arduino+MCP23008)

Planering och tankar kring eventuella framtida projekt.
xarvox
Inlägg: 137
Blev medlem: 4 augusti 2005, 09:55:07
Ort: växjö

Överdrivet avancerad cykelbelysning (arduino+MCP23008)

Inlägg av xarvox »

Hej alla!
Jag börjar närma mig halvägs med uppgraderingen av mitt nuvarande ljus-system på cykeln.
Tanken är att det ska utökas från det nuvarande blinkers/ljus av/på till att innefatta 12v blinkers (för starkare dioder), bromsljus, ställa framlyktans läge (mode), positionsljus(fram&bak) av/på och även att kunna blända av.

Men jag är en glad amatör och vill gärna att någon tittar lite över axeln och agerar besserwisser när hen hittar några tokigheter eller "dåliga" lösningar.

Lite grovt om layuppen:
Cykeln är en 2-hjulig liggcykel med en lång styrstam och ett smalt styre som hamnar ungefär över höften på cyklisten, framhjulet bakom vevpartiet.
framlyktan är belägen vid vevpartiet, främre blinkers samt arduino (med tillhörande status-LEDs) på styret, bakdelen (blinkers/bak-, broms-ljus) hamnar inte fast monterat så att säga, utan det blir en snabbkoppling istället.
Den ombyggda baklyktan får agera breakout-box och bl.a innehåller en mcp23008 och några transistorer för de olika funktionerna.
Jag har då tänkt bygga 2 x baklyktor, den ena monteras på en minimal hållare som skruvas fast i ryggen på sitsen, den andra monteras "som vanligt" på pakethållaren.
Då kan jag snabbt växla om jag vill köra med/utan pakethållaren och ändå behålla "samma" ljus-rigg.

Så om man ser cykeln från sidan blir mitt kopplings-schema ett liggande Y ungefär, med baken, fronten och styret som varje ytterände och batteriet med dess huvudströmbrytare hamnar kring mitten, under sitsen.
Samma Y-förgrening får också en 2-trådig kabel för IC-kommunikation mellan chippen i fronten och baken med arduinon i styret.
Jag driver sedan respektive "region" lokalt med en step-down regulator i varje ände.
På så vis hoppas jag "endast" behöva dra 2 kablar på cykeln, en "12v" från huvudströmbrytaren som innehåller +12v och gemensam jord för regionerna(11,1v 3s lipo), samt en mindre kabel för 5v(3,3v) seriell I2C med 2 ledare..

Baken blir internt 3,3v (pga baklyktan (2xAA idag)) men både mina transistorer och IC-chip mår fint på 3v, frågan är bara om signal-hög från 3,3v blir tillräckligt hög över 2m kabel för att arduinon ska registrera hög på ingången..
Annars fixar jag det med en transistor som förstärkare.

Både fronten och styret blir 5v på varsin regulator.
Fronten drar lite mer kräm (feta LED-lampor) och i styret ska det kopplas in en usb-laddkontakt för mobilen.
Blinkers drivs officiellt på 10-15v (tänder på lägre) och kommer styras med varsin (höger/vänster) transistor, kopplad till huvudström samt arduino för front respektive mcp bak för den bakre blinkers-paret.

Just nu känner jag mig lite osäker på hur jag räknar på hur mycket allt kommer dra i ampere, så jag kan dosera batteriet därefter..
Jag har ännu inte börjat koppla ihop något mer än en förenklad utvecklings-krets med arduinon och den ena pin extendern (MCP23008), men våren är ju snart här, börjar bli dags att bli färdig med höst-projektet 2015..... :P


Jag har en del funderingar men just nu vill jag framförallt höra andras åsikter och synpunkter på projektet i helhet samt de detaljer jag listat.
Jag är så ambivalent och osäker på detaljerna att jag tvekar inför att sätta igång med den destruktiva avinstallationen av befintlig ljuscontroller och börja lödandet och installation av version 2..

Om någon kan förklara hur jag addresserar två separata MCP23008 på samma seriella bus i arduino-kod (helst med exempel, tex tända en led på MCP1 och MCP2) så vore jag evigt tacksam!
Jag använder idag Adafruit_MCP23008 biblioteket men jag hittar ingenstans på hur jag definierar något annat än default (alla adress-pinnarna jordade)
Men med tanke på det låga antal pinnar (7 totalt) projektet använder för diverse ljus-styrningar så kanske jag kan köra mina IC-chip på samma adress och skicka samma pin-status till alla?
MCP-chippen används endast som utgångar..

En separat utgång för släpkärra är också med i planeringen, men det kommer bli som en mindre uppgradering när allt annat funkar.
Jag tror det blir en separat pin extender i släpkärran och att jag kopplar in kärran på samma 4-poliga y-förgrening som beskrevs tidigare.
xarvox
Inlägg: 137
Blev medlem: 4 augusti 2005, 09:55:07
Ort: växjö

Re: Överdrivet avancerad cykelbelysning (arduino+MCP23008)

Inlägg av xarvox »

Jag var på väg att skapa en ny tråd tills jag kom ihåg den här gamla, det är ju samma projekt som "sist" så då får det får bli en uppdatering istället. :)

Det är lite grejor som har ändrats sedan förra inlägget, baklyktan blir fast monterad på sitsen tillsammans med blinkers och det blir en släpvagnskontakt också.

Elen är också helt omstrukturerad, finns bara 5V i det nya systemet.

Projektet är nu "snart klart", spikat fast följande specifikationer.

Kärnan är fortfarande en arduino nano, hela projektet drivs från en 5v usb powerbank (för mobiler).
Det blir en del lampor på cykeln (och kärran); framlykta, extraljus fram, baklykta, bromsljus, blinkers h/v, sidoljus h/v.

Kärnans kretskort kommer monteras innuti ramen (60mm rör), övriga in/utgångar distribueras på 3x kretskort (plus ett för släpvagnen) som vardera innehåller de nödvändiga komponenterna (motstånd osv) samt en BikeBus™ dvs det som står för kommunikationen mellan kärnan och breakout-korten.

BikeBus är mitt hittepå (PATENT PENDING!! ;) ) men det är en kontakt med fyra ledare, +5v, grnd, SDA och SCL, samt ett sätt för enheterna att prata. Wire-biblioteket står för mjukvaru-delen, så BikeBus känns rätt framtids-säkert.. :)

Breakout-korten kontrolleras av MCP23008 samt MCP23017 som är i/o pin-extenders med 8 och 16 in/utgångar (valbart i mjukvara).
Funktionerna regleras av transistorer som är anslutna till utgångar, headers för 2x4 (eller 2x5) DIN honor, där jag tänker löda fast kablaget direkt på kortet.

I korthet blir uppdelningen enl följande:
Främre kort (framlykta, extraljus),
styreskort (statusLED, knappsats, utgång för främre blinkers) samt
bakre kort (baklykta, bromsljus, utgång för bakre blinkers).
Huvudkortet kommer bara ha strömbrytare, arduino, ingång för batteri samt ingångar för broms-sensor (hallsensorer i bromshandtagets kropp, magnet fastsatt på rörlig del i bromshandtaget).
Dessutom behövs ett släpvagns-kort som har alla ovanstående utgångar, transistorer, motstånd samt positionsljus bak inbyggt på kortet.

Som användar-interface tänker jag ha 4 statusLED:s, om tänd: funktion ok/aktiv, monterat på styret tillsammans med 4 momentanknappar samt en on/off/on strömbrytare för blinkers.
Momentanknapparna kommer inte strikt styra specifika funktioner utan jag tänker använda mig av långa/korta knapptryckningar för att styra olika funktioner och/eller bläddra mellan funktioner, för att kunna styra fler än 4 saker med dessa knappar (utrymmesbrist).

Så för enkelhets skull så har vi framlykta, styres-enhet, släpvagns-kort samt baklykta, där varje grej är sammanlänkad av en 4trådig daisychain.


Så nog med presentationen, eller uppdateringen av densamme, låt mig berätta var jag är nu!

Jag har i praktiken en färdig sketch, några grejor kvar att kamma ut, men jag behöver ha resten "i ordning" först, så jag kan testa "live".
Jag har utrymmen och generell plan för installation färdig, saknar några komponenter, men vet vad jag behöver. :)
Jag har kretskorten nästan färdiga, jag behöver dubbelkolla dem, välja rätt komponenter (transistorer, motstånd osv) samt beställa fabrikstillverkade kort.
Jag har kvar att modifiera framlyktan (bygga om från 2x serie till 2st parallell, kopplade till varsin utgång) samt bygga om blinkers från seriell till parallell anslutning. (se separat tråd)

Så under tiden som jag väntar på fabriks-korten så tänker jag bygga om mina lampor samt montera fast hållare och kabelgenomföringar så att det är klart tills när korten kommer (ca 3 veckors leveranstid, kostnad ca 30 usd för 5x identiska kort (minimi-beställning) inkl frakt från kina).

Jag lyckades hitta en "fuling", jag måste ju beställa 5 likadana kort från kina, men om jag gör korten lite större så är priset ändå lika mycket.
Så jag har nu gjort några prototyp-kort som innehåller 5 små kort, som jag tänker såga ut själv, istället för att beställa 5 separata kort för 5x priset.

Men jag har aldrig gjort kretskort förut, hur sågar jag isär flera kort från en stor kretskorts-platta?
Kan jag slipa kanterna sedan? bandslip?
Hur brett isär bör de enskilda korten ligga på kort-plattan så jag kan få isär dem utan att förstöra nåt?
Hur nära/långt ifrån hål/kanter kan man/bör man ha kretskortsbanor och löd-hål?

Jag behöver också veta exakt vad för komponenter jag ska köpa (köper delarna till lamporna samtidigt) och det är inte alls självklart vilka prylar jag ska ha...
Motstånd, dioder osv kan jag själv lista ut, men när det gäller transistorer, FETs och dylikt så är det svårt för mig.. Mycket svårt....
Jag har bläddrat i en massa datablad och ser en massa grafer och siffror men de betyder inget för mig så jag kan inte jämföra om inte siffrorna o graferna heter exakt likadant. Och då blir jag ändå inte klokare, för oftast förstår jag inte om ett lägre eller högre värde är bättre.


Så om du har lust att hjälpa mig så är detta fråge-sektionen:

utgångarna kommer dra som mest 5V och 0,5A (MAX!), de flesta kommer vara ca 0,1A.
Jag kommer styra utgångarna med positiv signal, så NPN transistor(FET?) är vad jag letar efter, samt att den inte ska "läcka" så att avstängda dioder glöder lite svagt.

Jag siktar på ytmonterade komponenter, går ju att bocka ben på grejor för hålmontage, men jag tror jag vill ha smd för storlekens skull.
..hoppas bara jag kommer kunna löda så litet....

Jag vill alltså be om tips på en specifik transistor (helst på elfa.se) eller specifika namn/beteckningar som jag kan söka efter, jag förstår från en tidigare tråd att jag ska ha en "logik-nivå FET" och det ska inte vara "Darlington", men bortsett från det så är jag helt handfallen när det gäller de tusentals olika transistorerna....

Fortsättningsvis, om ni har tips på 4-stifts vattentäta kontakter (för inbyggnad och för kabelmontage) som inte är allt för utrymmeskrävande, men som ändå klarar 5V1A (för att ta i lite) så är jag evigt tacksam för konkreta förslag!
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Överdrivet avancerad cykelbelysning (arduino+MCP23008)

Inlägg av Lennart Aspenryd »

Kul, men jag kan inte se dina bilder på detta fordon eller grejorna!
xarvox
Inlägg: 137
Blev medlem: 4 augusti 2005, 09:55:07
Ort: växjö

Re: Överdrivet avancerad cykelbelysning (arduino+MCP23008)

Inlägg av xarvox »

En bild säger ju tusen ord....

Jag tänkte inte på bilder när jag skrev förra inlägget.. låt mig rätta till det misstaget.. :)


Såhär ser kretskorten ut JUST NU, kommer ändras en del, har glömt några grejor, tex strömbrytare och ingång för extra batteri i släpvagnskortet (ska funka separat för positionsbelysning, rött bakåt och vitt framåt. Främre lykta på släpvagnen ska bli kraftigt nog att funka på kvällen, även på vägar utan gatlampor eftersom "släpvagnen" i detta fallet är barn-cykelkärran som används för ca 95% av barnets transporter.
Släpvagnens framlykta kopplas i övrigt på "samma kanal" som helljuset framåt, dvs avstängt i vanliga fall.
Tight_multiboard.png
Som ni ser på bilden ovan så är det tänkt att göra alla kretskort på samma "bräda" och sen figursåga eller nåt för att få isär dem.
Hål osv kommer dock borras på fabrik.
Placering på brädan är enl nedan:
Överst till vänster; baklyktans kretskort
Överst till höger; Framlyktan
Sedan uppifrån och ner; Släpvagnskort, Styresenhet, Arduino/huvudkort


Sedan en montage-bild på gamla kretskort som ska ersättas med ovanstående, samt framlyktans kropp och linser.
Blå 8-formad är framlyktan, den långa, smala gröna grejen är baklyktan.
gamlaKretsKort.jpg
Framlyktan är en "dum" form för kretskort, men jag hoppas få in ett liggandes på tvären, i genom springan mellan övre och undre del i mitten på lampan. Jag har dock inte tagit hänsyn till det när jag lade ut nuvarande version av beställnings-kretskort på bilden tidigare i inlägget.
Dioder för framlyktan sitter redan på en aluminium-skiva och jag kommer kunna dela det kretskortets banor (vid krysset) och löda in mig på var lampa för sig med 3-4 ledare till mitt kort, tanken är att jag ska delvis maskera av den ena framlyktan (den med bredare ljuskona tack vare linsen) och ha den som halvljus.
Maskeringen är tänkt att ge en ljusbild liknande den på bilar, dvs ljus åt sidorna och framåt, men inte uppåt. Den andra dioden blir extraljus/helljus och får en lins med lång och smal ljuskon.

Nästa bild; baklyktans låda som kommer bli hus för baklykta (m.m) på både på cykeln och kärran(orna?).
baklyktsbox.jpg
Ingenting spännande, standard biltema baklykta (led) för 39:- om jag inte e ute o cyklar.. :)
De skruvspetsar som sticker fram igenom batteri-symbolerna följer inte med som standard, de är extratillbehör..
Så lådan skall kasseras och bytas mot en ny, har förlagt monterings-skruvarna och fick improvisera för att kunna torrmontera baklytan för bild... :x
Användbart utrymme innuti lådan är ungefär 90x30x12mm så det finns gott om plats för lite mer än bara baklykta.
Dessutom finns det redan strömbrytare som jag kan använda för belysningen på barnkärran när vi ska ut på vinter-kvällarna.
Så med utrymmet, förberedd strömbrytare osv i tanke så jag tror inte jag kan hitta en bättre apparat-låda! :)

Till sist; torrmonterad baksida av cykel-belysningen.
edit: jag ser nu att baklyktan är upp-och-ner, skruven (och hakan på baklyktan) ska vara neråt. :) /edit.
monterat.jpg
Ingenting inkopplat men det ger en fingervisning om hur det kommer se ut när allt är dolt och gömt.
Det kommer gå en eller två sladdar ner från ljus-rampen till ramen, jag kommer borra hål och montera genomförings-tätningar i den blåa, platta och glansiga ytan på bilden ovan, mitt mellan de översta benen på pakethållaren (som skruvas fast i ramen, precis bredvid denna yta).
Sedan kommer det en kabel upp till styret från ramen och där får jag lägga den utanpåliggande på styrstammen/styret, annars kommer alla kablar vara interna i ramen.
Batteripacket kommer få ett snabbfäste (för att enkelt riva av batteriet) och eventuellt hamna på baklyktans ljusramp, inklämd mellan sitsen och rampen ungefär, annars hamnar det bakom/under sitsen nånstans.

Framsidan har jag inte börjat med ännu, delvis för att jag inte bestämt mig för om jag ska ha likadana blinkers fram som bak, eller som jag ska ta kretskorten (och dioderna) och montera in dem bakom de vita reflexerna på framsidan av mina backspeglar.
Vad tycker kollektivet? separata pinnar med blinkers eller inbyggt i speglarna?

Det var alla bilder för stunden. :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
xarvox
Inlägg: 137
Blev medlem: 4 augusti 2005, 09:55:07
Ort: växjö

Re: Överdrivet avancerad cykelbelysning (arduino+MCP23008)

Inlägg av xarvox »

Nu är kretskorten beställda, 350:- för 5x uppsättningar, inkl frakt.
Minimum-beställningen var just 5 kopior, så nu har jag råd att misslyckas några gånger.. :)

I stora drag ger mig hårdvaran möjligheten att sprida ut min kabelhärva, så det endast är 4 ledare som går mellan kopplings-punkterna (framlykta, baklykta, styres-reglage, trailer-kort), sedan ansluts de olika funktionerna till dessa kopplings-punkter.
De olika funktionerna är ungefär allt man har på en motorcykel, hel/halvljus, blinkers, varningsblinkers, osv osv osv....

Och eftersom det inte blev så mycket dyrare med ett lite större kretskort, så fick jag plats med ännu ett till litet kretskort i hörnet på kretskorts-laminatet som ändå var ledigt.. tre veckor senare har jag 15 kretskort på mitt huvudkort, bara att såga itu korten när jag får hem dem.

Jag har kretskort för ytmonterade lysdioder, både för status-indikatorer för styret och för ungefär alla externa ljus man kan tänkas behöva..
Där finns yttre baklyktor (kombi-lykta) för cykeln och släpvagnen, framlykta med blinkers/sido-positionslampa för när släpvagnen används som barnvagn och i praktiken allt annat man kan tänkas behöva på ett fordon.

Jag lyckas hejda mig ibland, påminna mig om att "Keep It Simple, Stupid", KISS, men bevisligen har jag misslyckats rätt fundamentalt med detta projektet..

Men nu är det 8-40 arbetsdagars leveranstid, under tiden jobbar jag på med att i praktiken skriva om programmet från grunden, det blev helt enkelt lättare när det blir så mycket nya funktioner utspridda på flera mcp230x.

Så liten frågestund till er som orkat läsa hela vägen hit;
Har någon en susning om ifall jag kan ha en "optional" mcp230xx modul?
Lite lustig formulering, men jag menar specifikt trailer-kortet, det som styr släpvagnens belysning, som inte alltid kommer vara kopplad till cykeln.

Beträffande mjukvaran, behöver jag ta nån särskild hänsyn till att modulen ibland inte finns där för att tex svara på anrop osv?

Jag hade exempelvis velat slå av bakljus/bromsljus på cykeln för att istället använda motsvarande ljus på släpvagnen och därför har jag "ödslat" en i/o-kanal (kanal 0) på trailerkortet som blir ansluten direkt till jord för att kunna mäta om kortet (och därmed släpvagnen) är inkopplat.

Jag är också nyfiken om modulen är hot-plug-kompatibel eller om det krävs en reset eller en rentav en ren (och komplett inkopplad) uppstart för att få med trailer-kortet i systemet.

Det är ju inte alltid säkert att jag kommer ihåg att stänga av huvudströmbrytaren innan jag kopplar in kärran, men iomed att allt är 5V så känns inte risken så överhängande att jag bränner nåt om jag hot-pluggar in/ur släpvagnen, men jag är långt ifrån geni när det gäller elektronik..
Skriv svar