Inhoudsopgave:

Measurino: een meetwiel Proof of Concept: 9 stappen
Measurino: een meetwiel Proof of Concept: 9 stappen

Video: Measurino: een meetwiel Proof of Concept: 9 stappen

Video: Measurino: een meetwiel Proof of Concept: 9 stappen
Video: Symposium sponsored by JAFRON 2024, November
Anonim
Measurino: een meetwiel Proof of Concept
Measurino: een meetwiel Proof of Concept

Measurino telt eenvoudig het aantal omwentelingen van een wiel en de afgelegde afstand is recht evenredig met de straal van het wiel zelf. Dit is het basisprincipe van een kilometerteller en ik ben dit project voornamelijk begonnen om te bestuderen hoe het circuit (behandeld door een Arduino-microcontroller), compatibel te houden met verschillende afstanden, van millimeters tot kilometers, en om mogelijke problemen of verbeteringen te evalueren.

Stap 1: Onderdelen en componenten

  • Arduino Nano rev.3
  • 128×64 OLED-display (SSD1306)
  • Incrementele foto-elektrische roterende encoder (400P/R)
  • Rubber wiel voor modelvliegtuigen (51mm dia)
  • 2 drukknoppen
  • 9v batterij

Stap 2: De encoder

De encoder
De encoder
De encoder
De encoder

Voor dit project heb ik verschillende goedkope roterende encoders getest, maar ik heb ze onmiddellijk weggegooid vanwege problemen met de precisie / gevoeligheid. Dus ging ik naar de incrementele foto-elektrische roterende encoder van DFRobot - 400P/R SKU: SEN0230. Dit is een industriële incrementele foto-elektrische roterende encoder met aluminium materiaal, metalen omhulsel en roestvrijstalen as. Het genereert AB tweefasig orthogonaal pulssignaal door de rotatie van de roosterschijf en optocoupler. 400 pulsen/ronde voor elke fase, en 1600 pulsen/ronde voor tweefasige 4-voudige uitvoer. Deze roterende encoder ondersteunt max. 5000 r/min snelheid. En het kan worden gebruikt voor snelheid, hoek, hoeksnelheid en andere gegevensmeting.

De foto-elektrische roterende encoder heeft een NPN open collector-uitgang, dus je moet pullup-weerstanden gebruiken of de pull-up van de interne Arduino inschakelen. Het gebruikt 750L05 spanningsregelaarchip, die een DC4.8V-24V breed ingangsvermogen heeft.

Stap 3: Gevoeligheid

Gevoeligheid
Gevoeligheid

Deze opto-elektrische roterende encoder heeft echt een grote gevoeligheid, wat hem perfect maakt voor asbesturings- en positioneringstoepassingen. Maar voor mijn doel was het te verstandig. Met een wiel van 51 mm heeft deze encoder een gevoeligheid van 0,4 mm, wat betekent dat als je hand minimale trillingen heeft, deze worden opgenomen. Dus ik heb de gevoeligheid verlaagd door een hysterese toe te voegen aan de interrupt-routine:

ongeldige interrupt()

{ teken ik; ik = digitaal lezen (B_PHASE); als (i ==1) tel +=1; anders tellen -=1; if (abs(count) >= hysteresis) { flag_A = flag_A+count; aantal = 0; } }

Deze truc was voldoende om een goede stabiliteit aan de maat te geven.

Stap 4: Meting

Selecteer uw maateenheid (decimaal of imperiaal) en plaats vervolgens het wiel met zijn contactpunt op het begin van uw maat, druk op de reset-drukknop en houd deze tot het einde rond. Van links naar rechts neemt de maat toe en somt op, voor rechts naar links neemt hij af en af. U kunt ook gebogen objecten meten (de vorm van uw auto, de leuning van een wenteltrap, de lengte van uw arm van schouder tot pols met gebogen elleboog, enz.).

Een volledige omwenteling van een wiel met diameter=D zal een lengte van D*π meten. In mijn geval, met een 51 mm wiel, is dit 16,02 cm en elk vinkje meet 0,4 mm (zie paragraaf Gevoeligheid).

Stap 5: Montage

De PoC is gemaakt op een breadboard om het circuit te demonstreren. Elk onderdeel is op het bord bevestigd en de roterende encoder is verbonden met een 2x2-polig schroefklemmenblok. De batterij is een 9v standaard batterij en het totale stroomverbruik van het circuit is ongeveer 60mA.

Stap 6: Coderen

Voor de weergave heb ik de U8g2lib gebruikt die zeer flexibel en krachtig is voor dit soort OLED-schermen, waardoor een ruime keuze aan lettertypen en goede positioneringsfuncties mogelijk is. Ik heb niet te veel tijd verspild aan het vullen van het display met informatie, aangezien dit slechts een Poc was.

Om de encoder te lezen, gebruik ik interrupts die worden gegenereerd door een van de 2 fasen: elke keer dat de encoderas beweegt, genereert deze een interrupt voor Arduino die is gekoppeld aan het stijgen van de impuls.

attachInterrupt(digitalPinToInterrupt(A_PHASE), interrupt, RISING);

Het display schakelt automatisch over van millimeters, naar meters, naar kilometers en (indien geselecteerd met de drukknop) van inches, naar yards, naar mijlen, terwijl de RST-drukknop de maat terugzet naar nul.

Stap 7: Schema's

Schema's
Schema's

Stap 8: Van PoC naar Productie

Waarom is dit een proof of concept? Vanwege de vele verbeteringen die kunnen/moeten worden gedaan voordat een volledig functionerende apparatuur wordt gebouwd. Laten we alle mogelijke verbeteringen in detail bekijken:

  • Wiel. De gevoeligheid/precisie van Measurino is afhankelijk van het wiel. Een kleiner wiel zou je een betere precisie kunnen geven bij het meten van kleine lengtes (in de orde van millimeters tot centimeters). Een veel groter wiel met een uitschuifbare giek maakt het mogelijk om op de weg te lopen en kilometers te meten. Voor kleine wielen moet rekening worden gehouden met het materiaal: een volledig rubberen wiel kan enigszins vervormen en de precisie beïnvloeden, dus in dat geval raad ik een aluminium/stalen wiel aan met slechts een dunne tape om slippen te voorkomen. Met een triviale software-edit (selecteer de juiste wieldiameter met een schakelaar), zou je verwisselbare wielen kunnen overwegen om aan elke maat aan te passen, door een 4-pins connector te gebruiken (d.w.z.: usb-poort).
  • Software. Door nog een drukknop toe te voegen, kan de software ook zorgen voor het meten van gebieden van rechthoeken of hoeken. Ik adviseer ook om een "Hold"-drukknop toe te voegen om de maat aan het einde te bevriezen, om te voorkomen dat u per ongeluk het wiel beweegt voordat de waarde op het display wordt afgelezen.
  • Vervang het wiel door een spoel. Voor korte maatregelen (binnen enkele meters) kan het wiel worden vervangen door een verende spoel met draad of tape. Op deze manier hoeft u alleen maar aan de draad te trekken (waardoor de encoderas draait), uw maat nemen en op het display kijken.
  • Weergave van batterijstatus toevoegen. De 3.3v Arduino-referentiepin (nauwkeurig binnen 1%) kan worden gebruikt als basis voor de ADC-converter. Dus door een analoog naar digitaal conversie uit te voeren op de 3,3V-pin (door deze aan te sluiten op A1) en deze meting vervolgens te vergelijken met de meting van de sensor, kunnen we een levensechte meting extrapoleren, ongeacht wat VIN is (zolang het boven de 3,4 V is). Een werkend voorbeeld is te vinden in dit andere project van mij.

Stap 9: Afbeeldingengalerij

Aanbevolen: