Spisu treści:

Measurino: dowód koncepcji koła pomiarowego: 9 kroków
Measurino: dowód koncepcji koła pomiarowego: 9 kroków

Wideo: Measurino: dowód koncepcji koła pomiarowego: 9 kroków

Wideo: Measurino: dowód koncepcji koła pomiarowego: 9 kroków
Wideo: Wolfgang Smith: Poza niedualizmem [Część 1] 2024, Lipiec
Anonim
Measurino: dowód koncepcji koła pomiarowego
Measurino: dowód koncepcji koła pomiarowego

Measurino po prostu zlicza liczbę obrotów koła, a przebyta odległość jest wprost proporcjonalna do promienia samego koła. Jest to podstawowa zasada licznika kilometrów i rozpocząłem ten projekt głównie po to, aby zbadać, jak utrzymać obwód (obsługiwany przez mikrokontroler Arduino), kompatybilny z kilkoma zakresami odległości, od milimetrów do kilometrów, oraz aby ocenić możliwe problemy lub ulepszenia.

Krok 1: Części i komponenty

  • Arduino Nano wer.3
  • Wyświetlacz OLED 128×64 (SSD1306)
  • Przyrostowy fotoelektryczny enkoder obrotowy (400P/R)
  • Koło gumowe do modeli samolotów (śr.51mm)
  • 2 przyciski
  • Bateria 9V

Krok 2: Koder

Koder
Koder
Koder
Koder

W tym projekcie przetestowałem kilka tanich enkoderów obrotowych, ale natychmiast je odrzuciłem z powodu problemów z precyzją/czułością. Poszedłem więc do przyrostowego fotoelektrycznego enkodera obrotowego firmy DFRobot - 400P/R SKU: SEN0230. Jest to przemysłowy inkrementalny fotoelektryczny enkoder obrotowy z materiałem aluminiowym, metalową osłoną i wałem ze stali nierdzewnej. Generuje dwufazowy ortogonalny sygnał impulsowy AB poprzez obrót tarczy siatkowej i transoptora. 400 impulsów/rundę dla każdej fazy i 1600 impulsów/rundę dla dwufazowego 4-krotnego wyjścia. Ten enkoder obrotowy obsługuje maks. prędkość 5000 obr./min. Może być używany do pomiaru prędkości, kąta, prędkości kątowej i innych pomiarów danych.

Fotoelektryczny enkoder obrotowy ma wyjście typu otwarty kolektor NPN, więc należy użyć rezystorów pullup lub włączyć wewnętrzne podciąganie Arduino. Wykorzystuje układ regulatora napięcia 750L05, który ma wejście zasilania o szerokim zakresie DC4.8V-24V.

Krok 3: Wrażliwość

Wrażliwość
Wrażliwość

Ten Optoelektryczny Enkoder Obrotowy ma naprawdę dużą czułość, co czyni go idealnym do zastosowań związanych ze sterowaniem i pozycjonowaniem wału. Ale dla mojego celu było to zbyt rozsądne. Z kołem 51 mm, ten enkoder ma czułość 0,4 mm, co oznacza, że jeśli Twoja ręka drży minimalnie, zostaną one nagrane. Więc obniżyłem czułość, dodając histerezę w procedurze przerwania:

nieważne przerwanie ()

{ znak ja; i = odczyt cyfrowy(B_FAZA); jeśli (i == 1) liczba +=1; w przeciwnym razie liczba -=1; if (abs(liczba) >= histereza) { flaga_A = flaga_A+liczba; liczba = 0; } }

Ta sztuczka wystarczyła, aby zapewnić dobrą stabilność środka.

Krok 4: Pomiar

Wybierz jednostkę miary (dziesiętną lub brytyjską), a następnie po prostu umieść koło tak, aby jego punkt styku znajdował się na początku pomiaru, naciśnij przycisk Reset i obracaj go do końca. Od lewej do prawej miara zwiększa się i sumuje, od prawej do lewej zmniejsza się i odejmuje. Możesz także mierzyć zakrzywione przedmioty (kształt Twojego samochodu, poręcz spiralnych schodów, długość ramienia od barku do nadgarstka przy zgiętym łokciu itp.).

Pełny obrót koła o średnicy=D zmierzy długość D*π. W moim przypadku, z kołem 51 mm, jest to 16,02 cm, a każdy tik ma 0,4 mm (patrz paragraf Czułość).

Krok 5: Montaż

PoC został wykonany na płytce prototypowej, aby zademonstrować obwody. Każdy element został dołączony do płytki, a enkoder obrotowy jest podłączony do 2x2 biegunowego bloku zacisków śrubowych. Bateria jest standardową baterią 9V, a całkowity pobór mocy obwodu wynosi około 60mA.

Krok 6: Kod

Do wyświetlania użyłem U8g2lib, który jest bardzo elastyczny i wydajny dla tego rodzaju wyświetlaczy OLED, umożliwiając szeroki wybór czcionek i dobre funkcje pozycjonowania. Nie zmarnowałem zbyt wiele czasu na zapełnianie wyświetlacza informacjami, bo to był tylko Poc.

Do odczytu enkodera używam przerwań generowanych przez jedną z 2 faz: za każdym razem, gdy wałek enkodera się porusza, generuje przerwanie do Arduino powiązanego ze wzrostem impulsu.

attachInterrupt(digitalPinToInterrupt(A_PHASE), przerwanie, WZNOSZENIE);

Wyświetlacz automatycznie przełącza się z milimetrów, na metry, na kilometry i (jeśli wybrany przyciskiem) z cali, na jardy, na mile, podczas gdy przycisk RST zeruje pomiar.

Krok 7: Schematy

Schematy
Schematy

Krok 8: Od PoC do produkcji

Dlaczego jest to dowód koncepcji? Ze względu na wiele ulepszeń, które można/należy wykonać przed zbudowaniem w pełni funkcjonującego sprzętu. Zobaczmy wszystkie możliwe ulepszenia w szczegółach:

  • Koło. Czułość/precyzja Measurino zależy od koła. Mniejsze koło może zapewnić większą precyzję pomiaru małych długości (od milimetrów do centymetrów). Dużo większe koło z wysięgnikiem pozwoli chodzić po drodze i mierzyć kilometry. W przypadku małych kółek należy wziąć pod uwagę materiał: kółko z pełnej gumy może się nieznacznie odkształcić i wpłynąć na precyzję, więc w takim przypadku sugeruję kółko aluminiowo-stalowe z cienką taśmą, aby uniknąć poślizgów. Z trywialną edycją oprogramowania (wybierz odpowiednią średnicę koła za pomocą przełącznika), możesz rozważyć wymienne koła, aby dostosować się do dowolnej miary, używając złącza 4-pinowego (tj. portu USB).
  • Oprogramowanie. Dodając kolejny przycisk, oprogramowanie może również zająć się pomiarem obszarów prostokątów lub amplitudy kątów. Radzę też dodać przycisk "Hold", aby zamrozić pomiar na końcu, unikając przypadkowego poruszenia kołem przed odczytaniem wartości na wyświetlaczu.
  • Wymień koło na szpulę. Przy krótkich pomiarach (do kilku metrów) koło można było zastąpić sprężynowaną szpulą zawierającą nitkę lub taśmę. W ten sposób wystarczy pociągnąć nić (wprawiając w ruch wałek enkodera), zmierzyć i obserwować na wyświetlaczu.
  • Dodaj wyświetlanie stanu baterii. Pin referencyjny Arduino 3,3 V (dokładność w granicach 1%) może być użyty jako podstawa konwertera ADC. Tak więc, wykonując konwersję analogowo-cyfrową na pinie 3,3 V (podłączając go do A1), a następnie porównując ten odczyt z odczytem z czujnika, możemy ekstrapolować rzeczywisty odczyt, bez względu na to, jaki jest VIN (o ile jest powyżej 3,4V). Roboczy przykład można znaleźć w tym innym moim projekcie.

Krok 9: Galeria obrazów

Zalecana: