Hardeman Motorsport - motorsport parts and diff specialist

Arduino - wat kun je er mee?

Voor alle vragen, reparatieverslagen en upgrades
User avatar
BertjeConti
E21 Mad
Posts: 1774
Joined: Mon Nov 04, 2013 9:49 pm
My E21(s): E12 520-6
Location: nederland , Weert

Re: Arduino - wat kun je er mee?

Post by BertjeConti » Wed Nov 29, 2017 11:51 pm

Speciaal voor Jan:



eerst bedien ik de reset knop, stopwatch begint opnieuw, daarna alleen draaien aan de knop, dan wordt de intensity van de displays bijgesteld
dan een tagret time naar 0:00 instellen.


Image Megasquirted '77 E12 520-6

User avatar
BertjeConti
E21 Mad
Posts: 1774
Joined: Mon Nov 04, 2013 9:49 pm
My E21(s): E12 520-6
Location: nederland , Weert

Re: Arduino - wat kun je er mee?

Post by BertjeConti » Sat Jan 27, 2018 8:34 pm

4 gauges project

Zoals jullie wellicht al in mijn "Pastellblauer avonturen" hebben kunnen vernemen heb ik plannen de "megasquirt display" weg te moffelen en daarvoor in de plaats een aantal analoge metertjes te plaatsen. Zodat het dashboard er qua apparatuur weer wat meer periode correct uit gaat zien.
Ja en dan zeggen jullie natuurlijk, en die tripmaster dan? helemaal terecht, maar in die tijd waren 7 segment led displays al heel gewoon, dus geen probleem daar.

Achter de schermen moeten de "analoge" metertjes natuurlijk wel digitaal aangestuurd kunnen worden om op die manier zo exact mogelijk bepaalde waarden uit de megasquirt te kunnen weergeven. Met dit project was ik in gedachte al een hele tijd bezig, en een aantal essentiele onderdeeltjes lagen dan ook al geruime tijd onder een stoflaagje op de plank te wachten.

Het bewegen van de wijzertjes wil ik gaan doen met heel kleine stappen motortjes, en laat er nu precies voor dit doel ooit door een switsers bedrijf stappenmotortjes ontworpen zijn, de zogenaamde "Switec X27.xxx" motortjes. ze zijn plat en ongeveer zo groot als een knaak. De uitvoering waarvan ik er een aantal gekocht heb kunnen 315° draaien en doen 1/3° per stap.

Image

Je kunt zo'n motortje rechtstreeks vanuit een microcontroller aansturen, maar dat heeft wel wat nadelen:

1) je hebt per motor 4 uitgangen nodig
2) doordat de motor telkens 1 stap verzet wordt, en dat is dus 1/3°, krijg je best schokkende wijzer bewegingen. gaat het heel langzaam, bijvoorbeeld voor temperatuur, dan is dat prima. Maar ik wil er ook de AFR mee weergeven, en die schiet nogal eens van links naar rechts.

Er is slechts 1 site op het gehele www waar wat meer gedetailleerde informatie over het aansturen van deze stappenmotoren te vinden is, en daar heb ik dus een driver chip gevonden (de AX1201728SG) die speciaal voor deze stappenmotoren gemaakt wordt. maar die chip is heel moeilijk te vinden, net zoals de bijbehorende datasheet.
Na lang zoeken werd er plots een klein partijtje van die chips op ebay aangeboden, en dus was ik snel genoeg in het bezit van de juiste chip voor deze motortjes.
Het voordeel van deze chip is dat hij de motor in "microsteps" aan stuurt, dit betekend dat elke stap in 4 tussenstapjes verdeeld wordt, daarmee heb je dus 12 stappen per graad nodig, maar de beweging is wel veel vloeiender. Daarnaast bezit 1 chip 4 motordrivers.

Afgelopen winter heb ik het 4 gauges project maar eens opgestart, alle benodigde ingrediënten waren immers aanwezig.
Ik wilde de driver chip graag gaan aansturen met een ATTINY microcontroller, een ATINY is een vereenvoudigde variant van de microcontroller die op een arduino gebruikt wordt, de ATMEGA familie. zoals de naam al doet vermoeden is de ATTINY erg klein, en dat klopt, hij is vooral klein in het aantal aansluitingen en geheugen dat hij heeft, ze zijn er in 14 en 8 pootjes, hebben heel beperkt geheugen, maar wel een ingebouwde klok. dit betekend dus dat je geen enkel extern component nodig hebt om de ATTINY te laten runnen. Dit maakt een ontwerk wezenlijk eenvoudiger.
Een ATTINY heeft ook geen seriele poort waarmee hij met de arduino ontwikkel omgeving kan communiceren, programmeren van de chip lukt alleen met een programmer op de ISP aansluitingen. Arduino's programmeerde ik al met een programmer op hun ISP om zo het opstarten van de bootloader over te slaan, die ervaring was dus gelukkig al binnen.

Een prototype/ontwikkel omgeving was snel opgebouwd, maar het schrijven van de firmware voor de ATTINY, daar is menig avondje debuggen aan voorbij gegaan, dit was mijn ontwikkel omgeving:
Image

Links boven zie je een Arduino nano, waarmee ik de ATTINY aanstuur middels een I2C bus (2 draads bus systeem), op deze manier ga ik de wijzers straks aansturen vanuit de "verstopte" display unit.
Links onder zit de ATTINY met ISP aansluiting, daarnaast de AX1201728SG quad motor driver chip, en dan zitten er rechts nog een 2 tal X27-168 motortjes op het breadboard.
Met deze opzet zijn alle 14 pootjes van de ATTINY in gebruik.

De software voor de ATTINY heb ik helemaal van de grond af moeten schrijven omdat er op het gehele www niks te vinden was wat in de buurt kwam bij wat ik nodig had.

Uiteindelijk bleek de grootste uitdaging erin te zitten de stappenmotor op een goede manier te laten versnellen naar de maximale snelheid (600° per seconde) maar ook weer te laten vertragen naar 0 naarmate eidpositie in zicht komt. Als je de motor elke keer naar een eindpositie laat bewegen en pas een nieuwe positie mag opgeven als hij stil staat, dan krijg je in de praktijk heel rare bewegingen.
Daarom moest er een algoritme geschreven worden waarmee ik elk gewenst moment een nieuwe positie naar de ATTINY kan sturen en dat de ATTINY direct daarop op de juiste manier de motor gaat bijsturen.
bijvoorbeeld:
motor staat op positie 1°, je stuurt een opdracht om hem naar 300° graden te sturen, en even later geef je een opdracht om naar 100° te gaan terwijl de motor op 200° is en op volle snelheid onderweg is naar die 300°, je kunt dan niet abrupt de andere kant op, daarvoor is de motor niet krachtig genoeg.
Je moet dan eerst direct gaan afremmen to 0 en dat de richting omdraaien en versnellen naar 100°.

Dit betekend dat ik bij elke volgende stap die gemaakt moet worden het volledige algoritme moet runnen, en dat voor 4 motoren tegelijk. Dit bleek maar heel net te passen binnen de capacteit van de ATTINY, daarvoor moest ik wel alle zo gemakkelijke arduino opdrachten laten varen en direct in machinetaal de poorten en registers aan gaan sturen.
Uiteindelijk loopt de aansturing in een timer lus van 48uS waarbinnen alle berekeningen en aansturingen voor alle 4 de motoren telkens opnieuw gedaan moeten worden.

Nadat ik er redelijk vertrouwen in had dat het met de firmware wel allemaal zou lukken heb ik een board ontworpen waar 4 motoren, met driver chip en ATTINY op zitten.

Dus dan gaan we weer lekker printen, etsen verven en solderen:

Image

etsen bijna klaar:
Image

ook nu weer een dubbelzijdige print:
Image

alles erop:
Image

frontplaatje gemaakt:
Image

Image

testprogramma runnen om te zien of de wijzertjes lekker bewegen, daar is nog wel wat debug werk aan te pas gekomen, en nog niet helemaal naar wens:


Wijzertjes zijn niet te vinden tegen een redelijke prijs, heel gek eigenlijk.
dus heb ik 4 complete voltmeters voor weinig gekocht en daar alleen de wijzers uit gesloopt en de rest weggeflikkerd:

Image

Frontplaat ontwerpen in Visio, het enige goeie Microsoft programma dat er bestaat:
Image

en dan staat het project nu "on hold" te wachten op de plank:
Image

volgende stap is het bouwen van een geschikte behuizing voor bovenstaand.

wordt vervolgd......
Image Megasquirted '77 E12 520-6

baur21
E21 Fanatic
Posts: 223
Joined: Wed Apr 20, 2011 10:02 am
My E21(s): BMW 320 BAUR
BMW 320 BAUR
BMW 323i

Re: Arduino - wat kun je er mee?

Post by baur21 » Sat Jan 27, 2018 9:28 pm

Dat ziet er weer erg netjes en professioneel uit. Daar zitten weer heel wat late uurtjes in.
Elektronica en software en dat weer gecombineerd met mechanica is toch het mooiste wat er is.

User avatar
uwbuurman
E21 VIP
E21 VIP
Posts: 15566
Joined: Fri Jun 12, 2009 4:49 pm
My E21(s): 1978 type 1 323i 5speed dogleg Polaris
Location: Ljouwert

Re: Arduino - wat kun je er mee?

Post by uwbuurman » Sun Jan 28, 2018 6:58 am

Man,man, ma, wat een werk. Wat toch mooi alsje zou iets kunt. Respect!
It's the man next door!

1978 BMW 323i
1980 BMW 528i
1987 BMW 325iA cabriolet
2006 BMW 320d touring High Executive
2015 BMW 320dA touring xDrive High Executive ///Msport

User avatar
Jeroen
Site Admin
Posts: 25979
Joined: Tue Sep 14, 2004 12:23 pm
My E21(s): '81 323i Baur
Location: The Netherlands
Contact:

Re: Arduino - wat kun je er mee?

Post by Jeroen » Sun Jan 28, 2018 9:32 pm

:shock

:thumbsup
Regards/groeten, Jeroen

We want your contributions in our E21 Facebook Group! Join, like, post & share!

geerling
E21 VIP
E21 VIP
Posts: 233
Joined: Fri Sep 07, 2012 4:16 pm
My E21(s): BMW 320/6 '81 zypressengrun
Location: Ruinerwold Drenthe

Re: Arduino - wat kun je er mee?

Post by geerling » Sun Jan 28, 2018 9:47 pm

Heel knap werk, gaat mij boven de pet! :thumbsup

User avatar
Nick1984
E21 VIP
E21 VIP
Posts: 1553
Joined: Fri Aug 15, 2008 6:08 pm
Location: Kasterlee Belgium

Re: Arduino - wat kun je er mee?

Post by Nick1984 » Mon Jan 29, 2018 9:59 pm

De mijne ook :screwy :thumbsup
[img]https://i.imgur.com/NwLeGXT.jpg[/img]

User avatar
Jeroen
Site Admin
Posts: 25979
Joined: Tue Sep 14, 2004 12:23 pm
My E21(s): '81 323i Baur
Location: The Netherlands
Contact:

Re: Arduino - wat kun je er mee?

Post by Jeroen » Mon Jan 29, 2018 11:07 pm

petje af dan maar! :lol:
Regards/groeten, Jeroen

We want your contributions in our E21 Facebook Group! Join, like, post & share!

User avatar
Peter_P
Upcoming E21 fanatic
Posts: 149
Joined: Tue Apr 15, 2014 10:57 pm

Re: Arduino - wat kun je er mee?

Post by Peter_P » Sun Jun 10, 2018 9:13 am

Knap werk. :thumbsup
Ben benieuwd om dat erin te zien staan.

Post Reply