Arduino Polska Forum

Pełna wersja: Sposób realizacji funkcji do projektu
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam! Nie wiem czy założyłem temat w dobrym dziale, także w razie czego proszę o przeniesienie.
Realizuje projekt automatycznego ramienia robota. Konstrukcja już jest, sterowanie padem od konsoli też już jest. Zostało mi niewiele czasu, a chciałbym zrobić jeszcze zapamiętywanie ruchów, aby można by było je potem odtworzyć.
Mniej więcej mój zamysł wygląda tak
Zapis:
- uruchamiam "nagrywanie"
- wykonując ruchy za pomocą pada, zapisują się one na karcie microsd (w każdym cyklu sprawdza czy pozycja któregokolwiek serwa się zmieniła, jeśli serwa pozostają w tej samej pozycji, zaczyna liczyć czas. Jeśli ten czas wynosi więcej niż... powiedzmy 100ms to bierze go pod uwagę i zapisuje pod koniec kroku)
- zakańczam nagrywanie
Jeden krok - jedna linia w pliku na karcie microsd. Format by wyglądał w ten sposób:

Kod:
@x1.x2.x3.x4.x5.x6.czas

gdzie x1 do x6 to pozycje serwomechanizmów (0-180), a czas [ms] to wiadomo (znak @ ma pomagać zidentyfikować krok przy odczytywaniu)
Odczyt:
- uruchamiam "odtwarzanie"
- wczytuje plik z krokami
- tutaj zabawa na stringach, żeby przypisać do odpowiednich zmiennych wartości x1-x6 i czas
- po odczytaniu danych ustawia pozycje serw i jeśli czas>0 to opóźnienie z pomocą funkcji millis
- czytanie kolejnych kroków do końca

I tutaj pojawia się pytanie. Czy przychodzi komuś z Was na myśl szybszy i prostszy sposób na wykonanie tego? Lub czy ta koncepcja jest poprawna? To co wyżej napisałem jest intuicyjne. Inny pomysł nie przyszedł mi do głowy, bo nie znam zbyt wielu funkcji w tym języku programowania. Jestem lekko zmieszany i nie wiem czy brnąć dalej w tą stronę czy zmienić kierunek, dlatego proszę o rady. Pozdrawiam Big Grin
Jeśli temat się jeszcze nie przedawnił:
Czy sekwencja ruchów jest zawsze tej samej długości? Mam na myśli, czy istnieją sytuacje, kiedy np. sekwencja ma pozycje: x1,x2,x3,x4, a innym razem x1,x2,x3,x4,x5,x6.

Jeśli sekwencja jest zawsze tej samej długości, możesz spróbować zapisać wszystko w tablicy dwuwymiarowej (wtedy odpadnie Ci wyciąganie informacji ze stringa), a jeśli mają być różne, to chyba tylko wskaźniki. Postaram się niedługo przygotować trochę informacji na ten temat.