Indholdsfortegnelse:

Elektrisk cykel (EBike) instrumentbræt og batteri Monitor: 12 trin (med billeder)
Elektrisk cykel (EBike) instrumentbræt og batteri Monitor: 12 trin (med billeder)

Video: Elektrisk cykel (EBike) instrumentbræt og batteri Monitor: 12 trin (med billeder)

Video: Elektrisk cykel (EBike) instrumentbræt og batteri Monitor: 12 trin (med billeder)
Video: Garmin Fenix 7 Pro Solar Test 2024, Juli
Anonim
Elektrisk cykel (EBike) instrumentbræt og batteri skærm
Elektrisk cykel (EBike) instrumentbræt og batteri skærm

Dette projekt er et Arduino -kredsløb, der overvåger batterispænding og strøm med et ACS 712 -modul. Målingerne kommunikeres over Bluetooth med et HC-05-modul til en Android-enhed. Grundlæggende omkobler du den negative forbindelse mellem din controller og batteri for at gå igennem ACS712 -modulet.

Android -appen viser batteristatus samt nuværende hastighed og tilbagelagte afstand fra Android GPS

Android’en kan monteres på cyklen i en vejrbestandig taske. Arduino -kredsløbet er permanent monteret i en vejrbestandig boks på cyklen nær batteriet.

Android- og Arduino -koden er tilgængelig på github. (https://github.com/edj2001/BikeDashArduino og

github.com/edj2001/BikeDashAndroid. Du skal også bruge bibliotekerne https://github.com/edj2001/AndroidBluetoothLibrar… og

Der findes kommercielle versioner af lignende produkter, hvis dette er mere, end du måske kan håndtere. Du kan nemt finde dem ved at google "bluetooth 36v watt meter". Hvis du ser på nogle af billederne, ser du en Arduino Pro Mini, en DC-DC strømforsyning og et HC-05 (eller -06) modul på bagsiden.

Hvis du nogensinde spekulerer på, hvor meget batteri du har tilbage, eller hvor meget længere du kan gå på batteri, eller hvis du skal pedalere eller reducere gashåndtaget for at nå dertil, skal du bruge dette.

En anden potentiel fordel er, at du kan beslutte at fjerne cykelcomputeren fra dit styr og frigøre noget plads, selvom din telefon nu vil blive monteret på din cykel i stedet.

Som altid leveres disse oplysninger som de er uden nogen form for garanti, udtrykkelig eller underforstået. Du er ansvarlig for alt, hvad du gør med disse oplysninger. Jeg er ikke ansvarlig eller ansvarlig for nogen som helst skade. Se ansvarsfraskrivelsesafsnittet i servicevilkårene.

Trin 1: Instruktérbare opdateringer

PeterB476 viste mig, at jeg havde forsømt at inkludere et trin for at initialisere Arduino EPROM, så jeg har tilføjet det til den instruerbare.

Jeg har også tilføjet 2 nye versioner af appen til et senere trin. De er ikke blevet grundigt testet, men du kan prøve dem.

Trin 2: Installer Android App

Det nytter ikke noget at fortsætte med resten af dette projekt, hvis Android -appen ikke fungerer på din enhed. Udgivelserne fra github har android apk vedhæftet. Apk -filen er også vedhæftet her. Sørg for, at i det mindste GPS -delen af appen fungerer, og du kan prøve at oprette forbindelse til en bluetooth -enhed.

Hvis du vil bygge appen selv, foreslår jeg, at du starter med et "release" -punkt, fordi det sandsynligvis fungerede på et tidspunkt, hvorimod den seneste "master" -gren kan have opdateringer, der ikke er blevet testet.

Kopiér apk -filen til din enhed. Du bliver nødt til at tillade "Ukendte kilder" i sikkerhedsindstillingerne på din enhed, da APK'en ikke kom fra Google Play. Tryk derefter blot på apk -filen på din enhed for at installere den.

Appen kræver naturligvis bluetooth -tilladelser til at kommunikere med Arduino og GPS -tilladelser til at bestemme din hastighed og tilbagelagte afstand.

Tryk på knappen "fjernbetjening" for at prøve at oprette forbindelse til en bluetooth -enhed. Tryk på "reset" for at nulstille den tilbagelagte afstand til 0. Hold batteriet Ah brugt felt for at nulstille det, når du har ladet dit batteri op. Den brugte Ah -værdi gemmes, hvis du slukker og tænder batteriet uden at oplade det.

Trin 3: Saml dele

Saml dele
Saml dele
Saml dele
Saml dele
Saml dele
Saml dele

Bemærk, at disse dele er til et 36V batteri. Hvis du har et 48V batteri, skal du ændre 10K modstanden til 11K eller 12 K, og du skal bruge en anden DC-DC converter.

1 Vejrbestandigt kabinet. Jeg brugte en 4x4x2 tommer PVC elektrisk boks.

1 stykke af din yndlings Stripboard eller Protoboard

1 Arduino Pro Mini, 5V 16 MHZ. Du kan også nemt bygge en bareboard -arduino, da du ikke har brug for en spændingsregulator eller usb -grænseflade. Alt du behøver er ATMEGA328P, en 16MHZ krystal og et par kondensatorer. Du kan også bruge en Arduino Nano, hvis du har plads i dit kabinet. Nano er større end de to første valg, men har den indbyggede USB -grænseflade, hvis du ikke har en seriel konverter.

1 ACS712 -modul, der matcher det aktuelle batteriområde. Jeg brugte et 20A modul til mit 8A batteri.

1 HC-05 bluetooth-modul. Jeg kan godt lide ZS-040 sorten, den 6-benede slags med trykknappen. Det vil blive mærket ZS-040 på bagsiden.

1 50V til 5V DC-DC strømforsyning, hvis din cykel har et 36V batteri, hvilket vil være omkring 42V fuldt opladet. Hvis du har et 48V batteri, er det 56 eller 57V fuldt opladet, så du kan få brug for en anden strømforsyning. Lad os vide, hvad du bruger, hvis du finder noget til 60V. Nogle mennesker siger, at de fleste usb -vægvorter virker på 48VDC (og højere), men jeg har ikke prøvet det.

1/4W modstande: 1 x 2K, 1 x 10K, 2 x 1K (øg 10K, hvis dit batteri er mere end 36V).

In-line sikringsholder og 2A sikring.

lige og ret vinkel Header Strips

5,08 mm klemmer, 2 x 2

16AWG strandet ledning til sammenkobling af modulerne.

22AWG solid ledning til arduino -kredsløbet

Terminal Block Strip til batteri og cykelforbindelser

Loddekolbe

loddetin

En måde at montere din Android -enhed på din cykel.

For at programmere Arduino og HC-05 modulet skal du også bruge en 3.3V usb til ttl seriel konverter (eller i det mindste en isp programmer) og Arduino ide fra https://www.arduino.cc/en/Main/Software. Dette projekt blev udført med version 1.6.13, forskellige versioner fungerer muligvis uden ændringer.

Trin 4: Initialiser Arduino EPROM

Jeg forsømte at inkludere dette trin i den originale instruerbare. Det område af EPROM, der bruges af skitsen, skal initialiseres, for at skitsen fungerer korrekt. Skitsen kunne skrives for at gøre det automatisk, men på dette tidspunkt gør den det ikke.

Hvis du ikke arbejder med arduino -kildekoden, kan du downloade den hex -fil, der er knyttet til dette trin, til din arduino for at initialisere EPROM.

Hvis du arbejder med arduino kildekoden, er der to linjer i afsnittet setup (), der ser sådan ud:

// initialiser EEPROM første gang programmet kører.

// updateEPROM ();

Hvis du fjerner kommentaren fra den anden linje, så den ser sådan ud:

// initialiser EEPROM første gang programmet kører.

updateEPROM ();

Download skitsen til arduinoen og lad den køre. EPROM'en vil blive initialiseret. Anbefal derefter linjen til det næste trin.

EPROM bruges til at huske, hvor meget af batteriet der er brugt, så du kan køre på din cykel, stoppe og slukke for batteriet, og når du tænder det igen, starter det fra det sted, du slap.

Trin 5: Konfigurer Arduino

Download Arduino -koden (hex -fil vedhæftet) til Pro Mini ved hjælp af enten Arduino IDE eller avrdude alene. Normalt ville du bruge usb til seriel konverter til dette, men du kunne også bruge en isp programmør.

Igen, hvis du vil kompilere det selv, skal du starte med en "release". Den seneste "master" -gren kan have uprøvede ændringer.

Hvis du ændrede 10K -modstanden til noget højere, skal du også ændre batterispændingskonstanten i skitsen. Skift 11.0 i linjen "dobbelt VBmultiplier = 11.0;" at matche hvad du installerede.

Trin 6: Konfigurer HC-05-modul

Konfigurer HC-05-modul
Konfigurer HC-05-modul
Konfigurer HC-05-modul
Konfigurer HC-05-modul

Du skal konfigurere baudhastigheden på HC-05-modulet. Det er også rart at give det et navn, som du let kan genkende senere (som "BIKE").

Du bruger også usb til ttl seriel konverter modul til dette. Hvis du ikke har en seriel konverter, kan du skrive en skitse til en arduino for at konfigurere den, eller hvis jeg har 2 HC-05 moduler, kan du koble dem sammen og bruge den ene til at programmere den anden (måske).

Der er en fremragende opskrivning om dette modul på

Du skal konfigurere baudhastigheden til 4800 for at matche Arduino -skitsen og ændre navnet til "BIKE" eller noget, du vil genkende.

Når modulet er konfigureret, kan du parre det med din Android -enhed i dine bluetooth -indstillinger.

Trin 7: Saml kredsløb

Jeg har vedhæftet en scanning af mit håndtegnede ledningsdiagram til reference, hvis nogen er ambitiøse nok til at tegne det pænt igen, så lad mig det vide:)

Lav følgende forbindelser:

(+) Cykelbatteri til den ene side af sikringen og cykelkontrolleren.

Anden side af sikringen til DC -omformer (+) IN -terminal og 10K modstand til batterispændingsindgang på Arduino.

(-) Cykelbatteri til (-) IN på omformer og en ACS712-strømterminal.

På dette tidspunkt skal du sørge for, at du har 5V fra din DC -omformer, når du tænder batteriet, hvis du ikke allerede har gjort det.

Sluk batteriet igen, og afslut tilslutningerne:

(+) OUT fra konverter Arduino 5V, HC05 VCC, ACS712 VCC.

(-) OUT fra konverter til Arduino GND, HC05 GND, ACS712 GND, Arduino pin A2.

HC05 TXD til Arduino pin 7

HC05 RXD fra bluetooth -modstandsdeler.

Arduino pin 8 til bluetooth resistor divider.

ACS712 OUT til Arduino pin A3

Batterispændingsdeler til Arduino pin A1

(-) fra Bike Controller til anden strømterminal på ACS712.

Den ekstra nulstillingsknap er ikke rigtig påkrævet, det kan bare være praktisk, når du vil downloade til arduinoen, efter at den er installeret på din cykel. Du kan muligvis nå nulstillingsknappen på arduinoen, eller du kan nulstille den fra det serielle interface, hvis din pro mini understøtter det.

Dobbelttjek dine forbindelser.

Trin 8: Foreløbig verifikation

På dette tidspunkt kan du tænde kredsløbet og kontrollere, at du får aflæsninger i Android -appen.

Du skal kunne slutte bluetooth til cyklen og se batterispænding og forhåbentlig tæt på nul batteristrøm. Hvis du kan dreje cyklen op og se den aktuelle læsning ændre sig, så fungerer alt.

Appen antager, at positiv strøm tømmer batteriet, så hvis aflæsningen viser en negativ strøm, når du drejer cyklen op, skal du bare skifte de to nuværende ledninger på ACS712 -modulet.

Hvis du ikke kan se nogen aflæsninger i appen, kan du se på lysene på bluetooth -modulet for at sikre, at det er tilsluttet og transmitterer data. Du kan installere en bluetooth terminal -app på din enhed for at se de data, der sendes fra kredsløbet. Du bør se omkring 10 linjer i sekundet af aktuelle aflæsninger, og en linje et sekund af batterispænding og mængde batteri, der bruges. Hvis du ikke kan se noget, skal du kontrollere konfigurationen af HC05 -modulet og forbindelserne mellem arduinoen, modstandsdeleren og HC05 TXD -terminalen igen.

Endelig skal du køre cyklen længe nok til at have en værdi, der ikke er nul, vises i displayet til det batteri, der bruges. Tryk derefter længe på dette nummer, indtil skålen viser, at brugen er blevet nulstillet. Tallet skal vende tilbage til nul. Hvis det ikke gør det efter at have prøvet et par gange, skal du kontrollere forbindelserne fra HC05 RXD -terminalen til Arduino igen.

Trin 9: Endelig samling

Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling
Endelig forsamling

Installer al monteringshardware og monter arduino -kredsløbet på din cykel. Monter din Android -enhed i en taske eller en anden holder, og du er klar til at gå!

Billederne viser batteristikket på min cykel og tasken til min Android -enhed.

Du kan se det lille bord til batterispændingsdelerforbindelserne og ACS712 monteret, så jeg kunne nå terminalblokskruerne efter montering af alt. HC-05 bluetooth-modulet er tilbage i højre hjørne.

Den hvide klemrække har alle batteri- og cykelkontrollerforbindelser til kredsløbet.

Hvis jeg skulle gøre det igen, ville jeg helt sikkert kombinere batterispændingsdeleren og ACS712 på det samme stykke datterbræt. Jeg kan også prøve at montere bluetooth -modulet på et datterbræt under arduinoen.

Trin 10: Fremtidige trin

Android -appen kunne bruge meget arbejde. Jeg vil gerne tilføje nogle farveændringer baseret på områder for målingerne. Jeg vil også gerne tilføje indikation af, at en måling ikke opdateres i appen. Du kan også tilføje nogle grafiske målere. Selv et godt ikon ville være en stor forbedring.

Den bedste funktion ville være et "estimat for at tømme", der ville fortælle dig den afstand, du kunne tilbagelægge på dit resterende batteri, og om det er mere end afstanden til din destination. Da jeg normalt kører enten til arbejde eller hjem, er min tanke at have GPS "waypoints" gemt i appen, der har den resterende afstand til hjemmet, og hvor meget batteri der i gennemsnit bruges på det waypoint. Du kan sikkert også gøre noget med en dataforbindelse, men jeg har normalt ikke en.

Jeg vil gerne flytte væk fra bluetooth -biblioteket i denne app til en mere udviklet, der f.eks. Har automatisk genopkobling.

Hvis du bygger dette, kan du overveje at tilføje et hardware lavpasfilter på den målte strøm og måle det separat for at bruge det til den samlede beregning, der bruges. Ved lave belastninger, mindre end 4A eller deromkring, varierer målingen meget, +/- 1A. Jeg er ikke sikker på, om det bare er et måleproblem eller strømmen ændrer sig så meget, som hjulet roterer. Under alle omstændigheder kan en separat måling af gennemsnitsstrøm over et sekund eller to hjælpe med nøjagtighed. Du kan bare prøve strømmen hurtigere og gøre det i software, men jeg ved ikke, hvor hurtigt du skal prøve. Jeg gætter på at sætte et oscilloskop på signalet kan hjælpe med at finde ud af, hvor hurtigt det skal prøves.

Du kan tilføje ting som et pitotrør for at måle vindhastighed (der er allerede en instruerbar til det).

Du kan tilføje gasregulering med lukket sløjfe fra arduinoen.

Hvis du altid har ønsket en USB -strømkilde på din cykel, kan du let køre et kabel fra 5V DC -konverteren til arduinoen, hvor du end har brug for USB -strømforbindelsen.

Trin 11: Spørgsmål og kommentarer

Hvis du har generelle spørgsmål om nogen af elementerne her, er du bedst at bare google det i stedet for at stille spørgsmål her. Ingen af emnerne er kritiske, du kan næsten helt sikkert erstatte noget andet og få jobbet udført.

Bed mig ikke om at sende dig koden, det er alt på github. Få det derfra. Du behøver ikke engang en github -konto.

Spørg mig ikke, hvordan du gør noget i Android Studio eller på Arduino. Det ved jeg nok ikke. Igen, bare google det.

Spørg mig virkelig ikke om nogen Apple -produkter, jeg har ingen anelse.

Hvis appen ikke fungerer på din enhed, er jeg ked af det. Men jeg ved nok ikke, hvordan jeg løser det, så det gør det. Det fungerer på min telefon, det er alt, hvad jeg har brug for.

Selvom forslag til forbedringer er velkomne, vil jeg nok aldrig implementere dem, jeg har andre ting at gå videre til. Jeg vil sandsynligvis aldrig engang implementere mine egne forslag. Dit bedste bud er at gaffel koden på github og tilføje ting selv. Hvis du gør det, bedes du venligst give folk besked her, så de kan bruge din kode i stedet for min.

Hvis du allerede selv har bygget en bedre version, kan du sende en reference til den her, så andre ved det. Jeg vil ikke blive fornærmet. Jeg vil med glæde tage din version og begynde at bruge den.

Trin 12: Appopdatering til test

Disse er opdaterede versioner af appen.

Tallene er meget større. Der er et nyt ikon. Der er ingen "tilslut" -knap længere. Brug indstillingen "tilslut - sikker" i menuen øverst til højre.

Denne version bør også fungere tilbage til Android version 2.3 honningkager. Det fungerer på min lg P500 Optimus One.

Versionen "app-settings-debug.apk" har en indstillingsmenu, der gør det muligt at indstille batteriets kapacitet, så den procentvise resterende beregning er korrekt. Det er ikke blevet testet fuldstændigt.

Anbefalede: