Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Okablowanie płytki i akcelerometru
- Krok 2: Program Flash do Arduino Nano
- Krok 3: Zainstaluj środowisko Java Runtime Environment, aby uruchomić aplikację kliencką na komputerze PC
- Krok 4: Zainstaluj aplikację kliencką, aby odczytywać współrzędne z Arduino i śledzić statystyki
- Krok 5: Kalibracja akcelerometru
- Krok 6: Dodatkowa analiza
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Chciałbym zaproponować Ci prosty, ale naprawdę przydatny projekt arduino do śledzenia zdarzeń czasowych poprzez przerzucenie jakiegoś inteligentnego gadżetu kostkowego. Przerzuć go na stronę „Praca” > „Ucz się” > „Zadania” > „Odpoczynek”, aby zliczyć czas spędzony na tej czynności. Kostka czasu zbudowana jest w oparciu o akcelerometr Arduino Nano i ADXL345 umieszczony w odpowiedniej wielkości pudełku, na którym można narysować symbole lub nazwy czynności. Na koniec dnia możesz sprawdzić statystyki. Mam nadzieję, że zmotywuje mnie to do „uczenia się” więcej.
Na rynku istnieje wiele podobnych produktów, takich jak TimeFlip.io, Timeular.com, ZEI. Możesz także wypróbować fajny projekt DIY od Adafruit https://learn.adafruit.com/time-tracking-cube. Proponuję jednak znacznie uprościć sprawę. Aby śledzić dane o czasie, nie potrzebujesz połączenia internetowego Wi-Fi ani Bluetooth z usługami w chmurze. Time Cube jest zasilany i podłączony do komputera kablem USB. Na komputerze musisz uruchomić moją aplikację java, która nasłuchuje wiadomości szeregowych z arduino i wyświetla całkowity czas spędzony.
Wszystkie wymagane źródła programu i kilka niezbyt szczegółowych instrukcji można znaleźć na moim projekcie GitHub:
Kieszonkowe dzieci
1. Arduino Micro lub Nano w ten sposób:
2. Akcelerometr ADXL345:
3. Pudełko kartonowe / plastikowe kostki
4. Kabel USB
Krok 1: Okablowanie płytki i akcelerometru
Czujnik ADXL345 to 3-osiowy akcelerometr, który może mierzyć siły przyspieszenia, a gdy jest statyczny, można również odczytać jego orientację. Trzeba okablować płytkę Arduino Nano lub Micro i akcelerometr ADXL345 jak na obrazku.
Nie będę szczegółowo wyjaśniał, jak działa akcelerometr ADXL345. Wszystkie wymagane informacje znalazłem w bardzo fajnym artykule o połączeniu akcelerometrów z arduino i programowaniu:
Krok 2: Program Flash do Arduino Nano
W tym kroku musimy wgrać program ze studia Arduino na płytkę arduino. Arduino nano będzie w stanie odczytać współrzędne XYZ z akcelerometru i wysłać je do portu szeregowego w pewnego rodzaju pakietach danych, takich jak
Możesz pobrać wszystkie wymagane źródła ze strony mojego projektu GitHub (jako pojedynczy plik archiwum):
1. Rozpakuj pobrane archiwum zip do jakiegoś folderu, takiego jak c:\program\tcube i otwórz plik tcube\arduino\tcub\tcub.ino w Arduino studio.
2. Podłącz płytkę arduino do komputera za pomocą kabla USB.
3. Z Narzędzia->Płytka: wybierz "Arduino Nano" (lub inną płytkę, której zamierzasz użyć).
4. Jeśli używasz chińskich klonów arduino, powinieneś wybrać z Tools->Processor->ATmega328P (Old Loader)
5. Wybierz podłączony port z Narzędzia->Port ->COM3 (w moim przypadku)
6. Prześlij program do arduino
7. Od tego momentu natychmiast wysyła pakiety danych do portu szeregowego USB.
8. Aby sprawdzić, czy wszystko działa poprawnie, możesz otworzyć „Serial Monitor” w Arduino Studio. Powinieneś zobaczyć pakiety, które generowały każdą sekundę jak …… (co oznacza rzeczywiste współrzędne akcelerometru).
Krok 3: Zainstaluj środowisko Java Runtime Environment, aby uruchomić aplikację kliencką na komputerze PC
Zanim przejdziemy dalej, musisz się upewnić, że masz zainstalowane na swoim komputerze środowisko Java Runtime Environment (JRE).
Stworzona przeze mnie aplikacja kliencka do odbierania wiadomości z Arduino i statystyk agregujących jest napisana w języku programowania Java. A JRE jest wymagane do uruchamiania aplikacji Java. Powinieneś mieć zainstalowane co najmniej JRE8. Proponuję pobrać wersję x64 dla systemu Windows. Pobierz go ze strony Oracle
Krok 4: Zainstaluj aplikację kliencką, aby odczytywać współrzędne z Arduino i śledzić statystyki
Teraz nadszedł czas na przygotowanie i uruchomienie aplikacji klienckiej na komputerze, która połączy się z portem USB, aby nasłuchiwać i śledzić statystyki czasu.
Jeśli znasz Javę, możesz pobrać i skompilować źródła aplikacji Java Time Cube z mojego projektu GitHub. Jednak w pełnym archiwum projektu, które już pobrałeś, jest już skompilowane i gotowe do użycia archiwum aplikacji tcube.zip, które musisz rozpakować do jakiegoś folderu (może to być c:\programs\tcube)
Po uruchomieniu pliku run.bat powinna uruchomić się aplikacja, która od razu spróbuje nawiązać połączenie z jakimś aktywnym portem COM używanym przez płytkę Arduino (Arduino podłączone do USB jest automatycznie rozpoznawane przez Windows jako jakiś wirtualny port COM).
Jeśli wszystko jest poprawnie skonfigurowane, powinieneś natychmiast zobaczyć liczniki czasu działające zgodnie z jakąś aktywnością. Odwracając kostkę, powinieneś być w stanie śledzić różne działania. Okno aplikacji pokazuje dziennik zdarzeń i możesz zobaczyć ewentualne błędy połączenia, które mogą wystąpić.
Krok 5: Kalibracja akcelerometru
Może się zdarzyć, że powinieneś skalibrować swoją kostkę czasu, ponieważ twój akcelerometr nie jest zorientowany dokładnie tak, jak mój. Po prostu otwórz plik app.properties i edytuj zakresy współrzędnych każdej strony kostki zgodnie z rzeczywistymi współrzędnymi, które zobaczysz w oknie dziennika aplikacji dla każdej strony kostki.
Możesz też poeksperymentować z orientacją i znaleźć pozycję akcelerometru dokładnie taką jak moja.
Krok 6: Dodatkowa analiza
Moja aplikacja java jest dość prosta i pokazuje tylko czas spędzony na każdej czynności w ciągu dnia. Jeśli chcesz mieć więcej analiz, możesz użyć Microsoft Excel do dodatkowej analizy.
Aplikacja generuje plik time-log.csv w formacie CSV, który zawiera wszystkie zdarzenia wysyłane z arduino. Ponieważ zdarzenia są generowane co sekundę, możesz przeprowadzić szczegółową analizę dnia w MS Excel, aby zbudować ładne wykresy, wykresy i dodatkowe analizy.
W folderze, który pobrałeś z mojego projektu GitHub, możesz znaleźć plik excel log_analytics.xlsx, który buduje wykres kołowy przy użyciu danych z pliku time-log.csv. Musisz zaktualizować wykres ręcznie, naciskając przycisk „Odśwież wszystko” w programie Excel.