trapsensor toevoegen

een klein probleempje waar ik mee worstel.

ik heb een zelfbouw ligfiets ebike met een brushed DC motor in het achterwiel (makkelijker te vinden en bouwen).
deze rijd op 20" wielen en dat maakt het moeilijker om bv een gewone hubmotor te gebruiken aangezien de snelheid serieus terugvalt dan.

ik gebruik hiervoor een 250W 36V motor met interne tandwielen komende van een chinese riksha.
als controller gebruikte ik diverse YK31C controllers (350W 36V, 800W 36V en 500W 48V), nu rijd ik rond met een 350W 36V controller op 2 RC batterijen van hobbyking (2x 18.5V 3Ah in serie).

nu is er wettelijk een probleem:
destijds is iemand gepakt met zo een fiets die te snel ging. is daarvoor wel vrijgesproken maar toch een boete gekregen voor 1 detail.
https://images0.persgroep.net/rcs/0KgYaBwbG6b7u_JFQfu1rWxCs3M/diocontent/103670791/_crop/0/0/1580/1095/_fitwidth/763?appId=2dc96dd3f167e919913d808324cbfeb2&quality=0.8

voor wie het wil nalezen, ander skip je maar tot onderaan voor mijn vraag
bron: http://www.fietser.be/diensten/wetgeving

Gent, 29 januari 2016

Volgens PV voorlopig nummer H.V.86LI417337/15 van 17 september 2015 is het betrokken voertuig
onderworpen aan:
- een aansprakelijkheidsverzekering inzake motorrijtuigen
- de verplichting tot inschrijving en nummerplaat volgens KB 20.07.2001
- technische eisen motorfiets KB 10.10.1974
In de conclusies (PV, pagina 8) die resulteren uit de bijkomende vaststellingen wordt het voertuig
gecategoriseerd als motorfiets op basis van:
- zijn snelheid
- zijn aandrijfmodi
- zijn batterij
Echter, de bovenstaande eigenschappen vormen geen wettelijke basis voor het categoriseren van
het voertuig. De wettelijke basis voor een dergelijke categorisering is Verordening 168/2013 van 15
januari betreffende de goedkeuring van en het markttoezicht op twee- of driewielige voertuigen en
vierwielers: zie http://www.wegcode.be/pdf/eu/CELEX_32013R0168_NL_TXT.pdf.
Artikel 2.2.k van deze Verordening stipuleert: “Deze Verordening is niet van toepassing op voertuigen
uitgerust met een bestuurderszitplaats waarvan de hoogte van een R-punt ≤ 540 mm voor de
categorieën L1e, L3e en L4e of ≤ 400 mm voor de categorieën L2e, L5e, L6e en L7e.”
De hoogte van het R-punt van dit voertuig is minder dan ≤ 540 mm, bijgevolg is de Verordening niet
van toepassing op dit voertuig en kan het niet worden gecategoriseerd als bromfiets of als
motorfiets.
Artikel 2.2.h. van deze Verordening stipuleert de uitsluiting van: “Deze Verordening is niet van
toepassing op fietsen met trapondersteuning, voorzien van een elektrische hulpmotor met een
nominaal continu vermogen van ten hoogste 250 W waarvan de aandrijfkracht wordt onderbroken
wanneer de bestuurder ophoudt met trappen en anders geleidelijk vermindert en ten slotte wordt
onderbroken voordat het voertuig een snelheid van 25 km/h bereikt;”
Bovenvermelde voertuigen zijn in België als fietsen gecategoriseerd. Niettemin kan het betrokken
voertuig evenmin in deze categorie worden ondergebracht omdat het niet voldoet aan de
uitsluitingsvoorwaarden van de Verordening. Bovendien zijn de bovenvermelde fietsen met
trapondersteuning het voorwerp van twee Europese technische normen NBN-EN 14764 en NBN-EN
15196. Echter deze normen gelden enkel voor voertuigen met een zadelhoogte vanaf 635 mm.

DE VRAAG NU:
bovenstaande is dus veroordeelt omdat de fiets zelfstandig kon rijden door aan de gashendel te draaien (gashendel.... gas... electrisch... nogal absurde benaming).

...Ben immers veroordeeld omdat ik via een gashendel de fiets autonoom zonder trappen kon laten rijden ...

mijn controller werkt OOK met zo een gashendel, en ik ben dus ook pakbaar.

nu wil ik het legaal krijgen maar het volgende probleem stelt zich:
ik heb nog GEEN universele ebike fietscontrollers gezien die een brushed motor kunnen aansturen. alles wat ik vind is voor BLDC motoren.

dit wil ik dus maar waarbij de motor slechts 2 draden heeft (zwart rood)
https://ae01.alicdn.com/kf/HTB1NLmAIrGYBuNjy0Foq6AiBFXab/Electric-Bike-Controller-24V-48V-250W-36V-48V-350W-Brushless-E-bike-Controller-with-LCD-Display.jpg_640x640.jpg.

ik heb een YK31C controller. zijn er mensen die WEET hebben van zulke display's die ik op mijn controller zou kunnen aansluiten ipv de gashendel?
schema:

https://www.solidrop.net/photo-3/yk31c-brush-electric-scooter-controller-24v500w-with-24v-twist-throttle-grip-set-led-battery-display-kit.jpg

de gashendel is 3draads en werkt als potentio meter. de 3 kabels zijn +5V - DATA - GROUND.
zou ik zo een zeldstandig fiets lcd controller vinden die via een 5V signaal de controller aanstuur, is het ideaal.
zelf als het pwm zou zijn, zou ik met een RC netwerk de boel werkende krijgen.

mijn 2de optie zou zijn om alles zelf te gaan schrijven met een arduino.
cadans sensor eraan om te zien dat je trapt, snelheidssensor eraan om de snelheid van de fiets te zien, display en knoppen eraan om de ondersteuning te regelen (eventueel mijn huidige gashendel op de arduino zetten als aansturing. maar dan enkel als de fietser reeds trapt. probleem is dus de veiligheid. als die arduino vastloop in de 'full throttle kan mijn motor vlot 600-700W produceren bij volle accu. die hou je niet direct meer tegen. en vind het absurd om het wiel opnieuw uit te vinden

ik hou van werken ..., ik kan er uren naar kijken

Kan je niet een arduino programmatje schrijven wat het gas signaal onderbreekt als je 2s lang niet getrapt hebt? Prototypen op een arduino, uiteindelijk in een "tiny45" flashen o.i.d. .

Zo blijf je weg van de hoge stromen en hoge spanningen, en als je zelfbouw spul op de verkeerde manier faalt hou je nog altijd controle met de gashendel.

Omdat het een analoog signaal is wat geschakeld moet worden, moet je een pass-gate maken. twee IOs omdat je zelfs op een tiny45 zat ios hebt die de gates van een P- en N-fet sturen. Bijvoorbeeld SI2300 en SI2365. Die kunnen (realistisch) richting de 1A aan stroom aan, terwijl een mA al veel zal zijn in deze toepassing. Beetje overkill maar voor de centen die ze kosten niet de moeite waard om een kleinere mosfet te kiezen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

dat was het alternatief.
arduino programma die de potmeter spanning gewoon op een uitgang geeft richting controller als men trapt.
trapbeweging kan gewoon met een reed contactje van een snelheidssensor van een fiets (heb ik een paar van liggen).
cadans van 60 is elke sec 1 puls. dus elke 2sec moet er minimum een reset komen via het reed contact, zoniet ondersteuning eraf.
weekendprojectje voor komende dagen (en tussendoor de volvo op lpg fixen)

als 2de kan ik dan de snelheidsdetectie laten doen zodat die stopt op een ingestelde snelheid (nu loopt die zo hard als de accu spanning kan leveren. bij 42V vlot richting 36-37km/h, bij 35V spanning maar een goeie 29km/h meer). bv 28km/h en de gashendel geeft 5V af, dat de arduino langzaam zakt met de stuurspanning tot de 28km/h blijft staan..

dan is het ook peanuts om met de arduino op een klein scherm weer tegeven wat je snelheid is en de ingestelde snelheid, cadansmeting.

eventueel een killswitch op de accu zelf zetten. loop het fout, accu eraf

maar t kan evengoed zijn dat er ergens displays bestaan van een fiets, die een 0-5V geven naar de motorcontroller. veel BDLC hebben de volledige controller in het wiel zitten, en die probeer ik te vinden nu.

een 3de oplossing zou zijn om een BDLC controller MET display te nemen, en die 3fases gelijk te richten en op mijn wiel te zetten. maar ik heb geen idee hoe die controllers precies werken. doen ze enkel frequentieregeling op de BDLC motoren, of zit er ook iets van PWM in om het vermogen te beperken?

4de oplossing is de achterwielmotor eruit, en een bafang vooraan monteren met display (400€). in het beste geval moet de fiets nog 4maand rijden voor ik van job verander

ik hou van werken ..., ik kan er uren naar kijken

Op 14 november 2019 11:05:50 schreef fcapri:
als 2de kan ik dan de snelheidsdetectie laten doen zodat die stopt op een ingestelde snelheid (nu loopt die zo hard als de accu spanning kan leveren. bij 42V vlot richting 36-37km/h, bij 35V spanning maar een goeie 29km/h meer). bv 28km/h en de gashendel geeft 5V af, dat de arduino langzaam zakt met de stuurspanning tot de 28km/h blijft staan..

De wet die je aanhaalt zegt ook dat het geleidelijk moet. Verder heb ik begrepen dat je bij 25km/u moet stoppen met assistentie, maar daar mag 10% afwijking in zitten. Als je de snelheid dus nauwkeurig meet kom je ongeschonden door de keuring als je 27.5 gebruikt....

Mijn voorstel is om van 25km/u tot 27.5km/u de gashendel te schalen afhankelijk van de positie in dat snelheidsbereik. Dus 20% van de gashendel stand doorgeven bij 27km/u en 80% bij 25.5km/u.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Ja, gewone fietsen. Die ligfietsen zitten lager dan 54cm en vallen er volledig uit. Daarom is die kerel van de foto ook vrijgesproken terwijl die wel 85kmh haalt.

Maar het rijden via gashendel ZONDER trappen is niet toegelaten. Pas ik dat aan en rijd mijn fiets 35, kunnen ze niks maken. Enkel moet ik dan een verzekering nemen

[Bericht gewijzigd door fcapri op 14 november 2019 14:04:40 (34%)]

ik hou van werken ..., ik kan er uren naar kijken

ik heb dus een arduino geprogrammeerd die
1) kijkt of er getrapt wordt door een reed contact in te lezen (via interrupt)
2) kijkt hoeveel er aan de gashendel gedraaid wordt.
3 de uitgang uitstuurt als er getrapt wordt, met de ingelezen waarde van de gashendel.

optioneel zit er nu bij
ik kan 40-60-80 of 100% kiezen van de gashendel.

voorbeeld, we trappen met cadans 40, de gashendel geeft 750 als digitale waarde (ongeveer 3/4de open dus want max van de AD converter is 1023).
we sturen de waarde 191 naar de motor (maximum aan de uitgang met PWM is 255, 75% daarvan is 191).
de motor rijd met een vermogen van rond de 200W (afhankelijk van bergop of bergaf).

zou ik het vermogen naar 40% brengen op het display, dan krijgt die motor in dezelfde omstandigheden maar een sturing van 75 en dat is HEEL weinig. kleine 50-60W dat die zal ondersteunen.

dit deel werkt.

als men NIET trapt, kan je bij volgas toch nog voorruit gaan met een 50W (stapvoets rijden), dit als backup als mijn versnelling te hoog staat en ik bv niet weggeraak uit een put.

en hier zit het probleem:
als de fiets in de lucht hangt, kan ik volgas geven en heb ik beperkt vermogen. als ik dan aan de trappers duw, krijg ik wel ondersteuning. stop ik met trappen, werkt ook alles.

ECHTER, als ik dit in praktijk doe, gebeurt er iets raars.
ik trap niet, draai volgas en rijd aan 2km/h, en ineens zie ik op mijn display een cadans van 289, ondersteuning komt aan (arduino ziet namelijk een cadans) en dan gaat mijn motor voluit.
ik vermoed dus storing vanuit de motor omdat die belast serieuze pieken veroorzaakt.

de arduino loskoppelen van de motorspanning en voeden via een powerbank resulteert in hetzelfde probleem.
de arduino krijgt via het schema in de openingspost een goeie 4,5V, dit via een 7815 en 7805 in de controller. daar hangt nog een diode mee in serie zodat er geen vreemde spanning IN de motorcontroller kunnen komen.

wat kan ik aan de storing doen, of iemand een idee waar het vandaan komt. het reedcontact brengt de arduino pin naar massa, en de pin hangt met de interne pullup van arduino aan VCC

ik hou van werken ..., ik kan er uren naar kijken

Gebruik een externe 1k weerstand als pullup. Als dat nog onvoldoende helpt, een 100nF condensator over de pin (i.e. net als de weerstand dicht bij de arduino).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

10K had ik al extern als pullup gesoldeerd, dus heb snel een 100nF parallel op de pin gezet (naar ground dus), en jaja, t probleem is weg. moet ik dat ook nog wel doen op mijn snelheidsinput voor de toekomst

[Bericht gewijzigd door fcapri op 24 november 2019 13:48:31 (10%)]

ik hou van werken ..., ik kan er uren naar kijken

Als jij honderd keer per sec de analoge waarde sampled en dat doorstuurt naar de ESC, dan is er een mechanisch laagdoorlaatfilter wat een veel lager -3dB heeft dan een condensatortje op de ingang. Toch is het niet zo'n slecht idee. Je krijgt minder ruis en "rare metingen" wat als je b.v. tzt wilt loggen fijn kan zijn.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

100keer per seconde...

per keer de waarde varieert van de digitale ingang, wordt er een interrupt opgeroepen die de huidige millis() waarde en de vorige vergelijkt en daaruit de cadans berekent (60 000 / tijd tussen 2 pulsen geeft aan hoeveel keer je per minuut ronddraait).

veel sneller dan 140keer per minuut kan ik niet trappen hoor. dat is iets meer dan 2keer per seconde

ik hou van werken ..., ik kan er uren naar kijken

Oh, je doet 1 conversie voor iedere activatie van de trap-sensor?

Ik denk dat ik een conversie zou "klaar zetten" bij de trap-sensor interrupt, en dan bijvoorbeeld op de PWM frequentie de analoge ingang inlezen.

Hmmm. Als je dan een 10% te veel meting doet, dan kan dat een seconde lang een hogere of lagere waarde krijgen. Dat zou je dan wel merken ondanks de mechanische filtering....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

ik doe geen conversie, ik lees geen analoge ingang in.
ik lees gewoon de puls in die van het reed contact komt als het magneetje passeert. het is geen PAS sensor

a) 1 puls op nu
b) 1 puls 800ms later
c) 1 puls op 770ms erna
d) 1 puls op 750ms

dan komt er op het scherm
a) CAD=0
b) CAD=75
c) CAD=78
d) CAD=80

zou ik eens een waarde verliezen, dan zakt de cadans 1 keer naar 35 ofzo en krijg je erna weer 70. heeft geen invloed op de ondersteuning, en ik ben ook niet continue naar dat display aan het kijken om te weten hoe snel ik rondtrap.

de snelheidsmeting zal iets sneller gebeuren, daar zal ik 3-4 omwentelingen nemen, de waarde daar uit berekenen en een gemiddelde nemen.
eventueel kan ik 6metingen doen, de hoogste en laagste eruit en een gemiddelde van de 4 andere.

ik hou van werken ..., ik kan er uren naar kijken

Je meet toch ook de stand van de gashendel met een ADC en op basis wat algorithmes stel je dan de PWM in die met een analoog filter weer doorgaat naar de motorcontroller? Of begrijp ik het verkeerd?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

aja, daar wel.

code:

void readThrottle(){
  val = analogRead(throttlePin);  // read the input pin
  Serial.print(val);
}

void choosePower(){
  motorOut = map(val, 260, 800, 0, 200);    
          //if throttle between 10 and 100%, motorpower = throttle
  if (val <= 270) {
    motorOut = 0;          //removing interference
  }
  if (motorOut > 255) {    //limit going over 1023 output (1025 => 2)
    motorOut = 255;
  }
  
}

void powerEngine(int power){
    Pout = power * powerlevel / 100;     
          //  255*50/100   255*50% ondersteuning
    analogWrite(motorPin, Pout); 
}

de loop zelf loopt er heel snel door, zonder enige delay in de code.
enkel het refreshen van het scherm gaat elke seconde eens

//DO THIS EVERY SECOND: -clear screen and refresh data
if (millis() - lastloop > 1000) {
lastloop = millis();
lcd.clear();
.....

Dat er eens een waarde afwijkt, dat merk je niet eens.
alles onder de digitale waarde 270 gooi ik weg, aangezien de throttle maar werkt tussen 1-4V.
dus moet ik maar digitiaal van 270 tot 900 gaan, want de arduino krijgt maar 4,4V

de output gaat dan van 50 (1V) tot 200 (4V) en dat doe ik via die map

het verschil in output tussen 100 en 110 merk je niet, dat zou een klein schokje zijn van de motor, maar door de massa van de ligfiets, voel je daar niks van.

ik hou van werken ..., ik kan er uren naar kijken