Innehållsförteckning:
- Steg 1: Delar och komponenter
- Steg 2: Kodaren
- Steg 3: Känslighet
- Steg 4: Mätning
- Steg 5: Montering
- Steg 6: Kod
- Steg 7: Scheman
- Steg 8: Från PoC till produktion
- Steg 9: Bildgalleri
Video: Measurino: a Measuring Wheel Proof of Concept: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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
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:
Monty - the Maker Faire Measuring Monster: 6 steg (med bilder)
Monty - the Maker Faire Measuring Monster: Vi älskar att gå på Maker Faires, men 2020 har bestämt något annat. Så istället bygger vi ett lämpligt substitut som heter Monty, som kommer att fånga atmosfären och dela den med alla
Arduino Alarm - Cat Proof: 6 steg
Arduino Alarm - Cat Proof: Katter kan vara bra. De kan vara så otroligt mysiga, luddiga och roliga. Men när de börjar på ett projekt kan de vara otroligt svåra att avskräcka. Vilket bättre sätt att avskräcka en katt än ett rörelsekänsligt ljus och ljud? På den här lektionen får du lära dig
Kid-proof Makey-Makey Box: 3 steg
Kid-proof Makey-Makey Box: Denna instruerbara var inspirerad av Cory Jeacockes YouTube-video. Förra cyber-måndagen hämtade jag en Makey Makey (MM) från Sparkfun för under 25 dollar. Om du inte känner till det är det en underbart enkel enhet som låter dig vrida nästan en
Omni Wheel Robot Gripper Mechanism (Concept): 7 steg
Omni Wheel Robot Gripper Mechanism (Concept): Detta är Omni Wheel Robot Gripper och syftar till att förbättra robotens gripmekanism genom användning av hjul (som matchar temat för denna tävling) och som ett bevis på konceptet genom Solidworks -modellen. Men jag har inte resurser och
Manta Drive: Proof-of-concept för ett ROV-framdrivningssystem: 8 steg (med bilder)
Manta Drive: Proof-of-concept för ett ROV-framdrivningssystem: Varje nedsänkbart fordon har svagheter. Allt som genomborrar skrovet (dörr, kabel) är en potentiell läcka, och om något måste både genomborra skrovet och röra sig samtidigt multipliceras risken för läckage. Denna instruerbara beskrivning