Skocz do zawartości

(Nie)elektroniczny multimetr DIY z Arduino Pro Mini


Komentator

Pomocna odpowiedź

(Nie)elektroniczny multimetr DIY z Arduino Pro Mini

Uniwersalny miernik to niezbędne wyposażenie każdego elektronika. Pomiar prądu czy oporu to nieodzowne czynności podczas majsterkowania. Nikt nie powiedział, że miernik uniwersalny musi mieć funkcje przydatne tylko dla elektroników. Oto ciekawy przyrząd DIY, który potrafi zbadać zupełnie inne wielkości fizyczne.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

  • Lubię! 1
Link do komentarza
Share on other sites

Na pierwszy rzut oka można by pomyśleć, że to nowy model trumny ;D  Design mi jakoś nie odpowiada - nie ten rozmiar :D

Link do komentarza
Share on other sites

Witam wszystkich, Wykonałem projekt, naprawdę super. Mam tylko problem z kątomierzem i licznikiem obrotów - kątomierz mimo iż leży nieruchomo,  to po woli kąt się zwiększa, to samo z licznikiem obrotów - po woli licznik się zwiększa

Co może być przyczyna takiego zachowania? MPU uszkodzony?

Edytowano przez dawidd
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Nie, a ma to znaczenie? Chodzi o to żeby leżąc na płaskiej powierzchni pokazywał x=0 i y=0 ?

Sorry za być może trywialne pytanie, ale nie jestem w tym specem 🙂

Edytowano przez dawidd
  • Lubię! 1
Link do komentarza
Share on other sites

18 minut temu, dawidd napisał:

Nie, a ma to znaczenie?

Jak widać ma 🙂 Każdy przyrząd pomiarowy pokazuje wynik z jakimś błędem, a kalibracja jest po to aby ten błąd skorygować.

19 minut temu, dawidd napisał:

żeby leżąc na płaskiej powierzchni pokazywał x=0 i y=0 ?

To akurat akcelerometr, ale również o to. No i oczywiście o to, aby żyroskop nie "płynął" jeśli jest nieruchomy.

  • Lubię! 1
Link do komentarza
Share on other sites

W opisie jest jak skalibrować osie x i y - i to udało mi się zrobić i jest  lepiej. A jak skalibrować żyroskop?

Co to znaczy "No i oczywiście o to, aby żyroskop nie "płynął" jeśli jest nieruchomy."?

Bede wdzięczny za wszelkie sugestie

 

Edytowano przez dawidd
Link do komentarza
Share on other sites

ustawiłem osie x i y tak, ze teraz gdy przyrząd leży na płaskiej powierzchni to X wskazuje 0,05 i Y podobnie - obie te wartosci pływają +- 0,05. Jednak kątomierz dalej nie działa prawidłowo mimo iż leży nieruchomo jego wartość się zwiększa tak ja na filmiku, trochę wolniej ale po ok 2 min z 0 st pokazał 2 st itd. Co jeszcze można zrobić żeby to poprawić?

Link do komentarza
Share on other sites

Trzeba by było trochę przerobić kod - w kodzie jest automatyczna kalibracja żyroskopu, trzeba by było zmienić ją na ręczną i ustawić dokładniej. Masz możliwość podłączenia konwertera USB w czasie pracy urządzenia? Bo trzeba:

  • uruchomić automatyczną kalibrację
  • przeczytać, jakie wartości zostały ustawione
  • zmienić w programie automatyczną na ręczną i wpisać dokładne wartości (przynajmniej dla osi Z) dla tego konkretnego egzemplarza MPU6050.

Mogę spróbować machnąć kawałek kodu, ale bez podłączenia monitora serial w czasie pracy urządzenia to nic nie da.

Na szybko możesz spróbować jeszcze jednego: po włączeniu odczekać jakieś 30 sekund, wyłączyć i włączyć urządzenie. Oczywiście wszystko bez poruszania urządzenia! Czasem pomaga...

Link do komentarza
Share on other sites

nie bardzo wiem czy to o to chodzi:

========================================
Calculating gyro offsets
DO NOT MOVE MPU6050...
Done!
X : -6.33
Y : -1.39
Z : -0.85
Program will start after 3 seconds
========================================

Link do komentarza
Share on other sites

Mniej więcej o to.

Tyle, że teraz w programie zamiast linijki:

  mpu6050.calcGyroOffsets(true);

(ostatnia w funkcji setup())

musisz wpisać:

mpu6050.setGyroOffset(-6.33, -1.39, -0.85);

przy czym ostatnie -0.85 to właśnie wartość kalibracji Z, musisz ją zmienić i tak dobrać, aby zmniejszyć dryft żyroskopu do jakiejś akceptowalnej wartości Nie powiem na jaką, bo dla kadego egzemplarza żyroskopu ta wartość będzie inna.

 

Link do komentarza
Share on other sites

zmieniłem i niestety przy probie kompilacji podświetla mi ta zmieniona  linijkę i mam błąd:

Arduino:1.8.7 (Windows 10), Płytka:"Arduino Nano, ATmega328P (Old Bootloader)"

C:\Users\Fujitsu\Desktop\akcelerometr\final_code\final_code.ino: In function 'void setup()':

final_code:45:11: error: 'class MPU6050' has no member named 'setGyroOffset'

   mpu6050.setGyroOffset(-6.33, -1.39, -0.85);

           ^

exit status 1
'class MPU6050' has no member named 'setGyroOffset'

Ten raport powinien zawierać więcej informacji jeśli w 
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"

 

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.