Innehållsförteckning:

Measurino: a Measuring Wheel Proof of Concept: 9 steg
Measurino: a Measuring Wheel Proof of Concept: 9 steg

Video: Measurino: a Measuring Wheel Proof of Concept: 9 steg

Video: Measurino: a Measuring Wheel Proof of Concept: 9 steg
Video: 9 Biblical Events That Actually Happened - Confirmed by Science 2024, November
Anonim
Measurino: ett mäthjulsprov för koncept
Measurino: ett mäthjulsprov för koncept

Measurino räknar helt enkelt antalet hjul som roteras och avståndet är direkt proportionellt mot själva hjulets radie. Detta är grundprincipen för en vägmätare och jag har påbörjat detta projekt främst för att studera hur man håller kretsen (hanterad av en Arduino mikrokontroller), kompatibel med flera avstånd, från millimeter till kilometer, och för att utvärdera eventuella problem eller förbättringar.

Steg 1: Delar och komponenter

  • Arduino Nano rev.3
  • 128 × 64 OLED diplay (SSD1306)
  • Inkrementell fotoelektrisk roterande kodare (400P/R)
  • Gummihjul för modellflygplan (51 mm dia)
  • 2 tryckknappar
  • 9v batteri

Steg 2: Kodaren

Kodaren
Kodaren
Kodaren
Kodaren

För detta projekt har jag testat flera billiga roterande kodare, men jag kastade dem omedelbart på grund av precision/känslighetsproblem. Så jag gick till DFRobot's Incremental Photoelectric Rotary Encoder - 400P/R SKU: SEN0230. Detta är en industriell inkrementell fotoelektrisk roterande kodare med aluminiummaterial, metallskal och axel i rostfritt stål. Den genererar AB tvåfas ortogonal pulssignal genom rotation av gallerskivan och optokopplaren. 400 pulser/runda för varje fas och 1600 pulser/runda för tvåfas 4 gånger utgång. Denna roterande pulsgivare stöder max 5000 varv/min varvtal. Och den kan användas för hastighet, vinkel, vinkelhastighet och andra datamätningar.

Den fotoelektriska roterande givaren har en NPN-öppen kollektorutgång, så du måste använda pullup-motstånd eller aktivera den interna Arduinos uppdragning. Det använder 750L05 spänningsregulatorchip, som har en DC4.8V-24V bred ingångseffekt.

Steg 3: Känslighet

Känslighet
Känslighet

Denna optoelektriska roterande kodare har verkligen en stor känslighet, vilket gör den perfekt för axelstyrande och positioneringsapplikationer. Men för mitt syfte var det för mycket vettigt. Med ett 51 mm hjul har denna kodare en känslighet på 0,4 mm, vilket betyder att om du har minimala skakningar kommer de att spelas in. Så jag sänkte känsligheten genom att lägga till en hysteres i avbrottsrutinen:

tomrumsavbrott ()

{char i; i = digitalRead (B_PHASE); om (i == 1) räkna += 1; annat räknas -= 1; if (abs (count)> = hysteres) {flag_A = flag_A+count; count = 0; }}

Detta trick var tillräckligt för att ge en bra stabilitet till måttet.

Steg 4: Mätning

Välj din måttenhet (decimal eller imperial) och placera sedan bara hjulet med dess kontaktpunkt i början av din mätning, tryck på återställningsknappen och låt den rotera tills slutet. Från vänster till höger ökar och summerar måttet, för höger till vänster minskar och subtraherar. Du kan också mäta kurvobjekt (din bilform, ledstången i en spiraltrappa, armens längd från axeln till handleden med böjda armbågen, etc.).

En fullständig rotation av ett hjul med diameter = D mäter en längd av D*π. I mitt fall, med ett 51 mm hjul, är detta 16,02 cm och varje fästing mäter 0,4 mm (se avsnittet Känslighet).

Steg 5: Montering

PoC har gjorts på en brödbräda för att demonstrera kretsarna. Varje komponent har fästs på kortet och den roterande givaren är ansluten till ett 2x2 -poligt skruvplint. Batteriet är ett 9v standardbatteri och kretsens totala strömförbrukning är cirka 60mA.

Steg 6: Kod

För displayen använde jag U8g2lib som är mycket flexibel och kraftfull för denna typ av OLED -skärmar, vilket möjliggör ett brett urval av teckensnitt och bra positioneringsfunktioner. Jag slösade inte för mycket tid på att fylla upp displayen med information, eftersom det här bara var en Poc.

För att läsa av pulsgivaren använder jag avbrott som genereras av en av de två faserna: varje gång pulsgivaraxeln rör sig genererar den ett avbrott i Arduino som är knutet till impulsens uppgång.

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

Displayen växlar automatiskt från millimeter, till meter, till kilometer och (om den väljs från tryckknappen) från tum, till yards, till miles, medan RST -knappen återställer måttet till noll.

Steg 7: Scheman

Scheman
Scheman

Steg 8: Från PoC till produktion

Varför är detta ett bevis på koncept? På grund av många förbättringar som kan/bör göras innan man bygger en fullt fungerande utrustning. Låt oss se alla möjliga förbättringar i detaljer:

  • Hjul. Measurinos känslighet/precision beror på hjulet. Ett mindre hjul kan ge dig bättre precision när du mäter små längder (i storleksordningen millimeter till centimeter). Ett mycket större hjul med förlängningsbom gör det möjligt att gå på vägen och mäta kilometer. För små hjul måste materialet övervägas: ett fullgummihjul kan deformeras något och påverka precisionen, så i så fall kommer jag att föreslå ett aluminium/stålhjul med bara en tunn tejp för att undvika glidning. Med en trivial programvaroredigering (välj rätt hjuldiameter med en omkopplare) kan du överväga interchageable hjul för att anpassa sig till alla mått, med hjälp av en 4-polig kontakt (dvs usb-port).
  • Programvara. Genom att lägga till en annan tryckknapp kan programvaran också ta hand om att mäta områden med rektanglar eller vinkelamplituden. Jag rekommenderar också att du lägger till en "Håll" -knapp för att frysa måttet i slutet, utan att oavsiktligt flytta hjulet innan du läser värdet på displayen.
  • Byt ut hjulet mot en spole. För korta åtgärder (inom några meter) kan hjulet bytas ut mot en fjädrad spole som innehåller tråd eller tejp. På det här sättet behöver du bara dra i tråden (få givaraxeln att rotera), ta ditt mått och titta på displayen.
  • Lägg till visning av batteriläge. 3.3v Arduino -referensstiftet (exakt inom 1%) kan användas som bas för ADC -omvandlaren. Så genom att göra en analog till digital konvertering på 3,3V-stiftet (genom att ansluta den till A1) och sedan jämföra denna avläsning med avläsningen från sensorn kan vi extrapolera en verklighetstrogen avläsning, oavsett vad VIN är (så länge den är över 3,4V). Ett fungerande exempel kan hittas i detta andra projekt av mig.

Steg 9: Bildgalleri

Rekommenderad: