Skocz do zawartości

Jak połączyć kilka programów sterujących robotem w jeden wspólny z wyborem trybu?


MarJanPol

Pomocna odpowiedź

Jakoś nie zauważyłem, żeby Marek pisał o łatwym i przyjemnym użyciu gotowej biblioteki.

Ale może dajmy autorowi wątku się wypowiedzieć, bo to forum coraz bardziej zamienia się w kółko filozoficzne.

Link do komentarza
Share on other sites

Pisząc taki program nie możesz blokować procesora, więc każda z funkcji powinna możliwie szybko wykonywać swoje działanie i wracać do pętli głównej. Podobny sposób pisania programów znajdziesz tutaj: https://forbot.pl/blog/kurs-arduino-ii-wielozadaniowosc-opoznienia-z-millis-id18418

Jeśli tryb zostanie zmieniony, to program "zauważy" to dopiero po powrocie z aktualnej funkcji - stąd konieczność szybkiego powrotu.

Natomiast problem kompatybilności bibliotek to zupełnie inny temat - więc nie ma pewności że połączenie trzech działających programów w jeden nadal będzie działać.

Elvis, bardzo dziękuję. Takiej właśnie pomocy oczekiwałem. Mnie też wydawało się (jeszcze zanim napisałem posta), że tak to mniej więcej powinno wyglądać, ale chciałem zasięgnąć rady, żeby niepotrzebnie nie zabrnąć w ślepy zaułek. Poza tym nie byłem pewien czy nie można jakoś wykorzystać przerwań do tego celu. Problemu kompatybilności bibliotek w tym przypadku nie ma.

C.D.N....

[ Dodano: 21-02-2018, 14:22 ]

MarJanPol: Napisałem Ci przecież na początku, że to nie są proste sprawy
A może to Ty je niepotrzebnie komplikujesz? Wiedz zatem Drogi Przyjacielu, że nawet o trudnych sprawach można mówić prosto, no ale to wymaga trochę więcej dobrej woli...
a teraz, gdy dotarło to wreszcie do Ciebie - jesteś zdziwiony i oburzony.

A skąd to wiesz jaki ja jestem? Znowu zaskoczę Cię zatem - nie jestem ani zdziwiony ani oburzony 🙂

I tego nie rozumiem.

Nie rozumiesz bo sam dopowiadasz sobie to co chciałbyś, żeby było rzeczywistością mimo tego że nią nie jest.

Nie rozumiem takich oczekiwań (nie tylko Twoich, coraz więcej tu takich osób).

O widzisz, bardzo ładnie że sam to napisałeś. A teraz sam sobie odpowiedz na pytanie o czym to świadczy, że "coraz tu więcej takich osób". Skoro nie rozumiesz to pomogę Ci - osoby takie jak ja oczekują wchodząc na forum dla początkujących, że ktoś na pytanie Co to znaczy "void loop ()" powie im "to jest główna pętla programu, która cyklicznie wykonuje zapisane w niej polecenia. Dowiesz się wielu takich podstawowych rzeczy wchodząc np. na forum Forbota a jeszcze więcej czytając Arduino reference guide tu i tu." Wystarczy tyle - prosto, na temat i bez tego poniżającego zadęcia, które kapie tu z postów niektórych "Fachowców".

Uwierz mi, że poza byciem dobrym fachowcem, dużo ważniejsze jest być po prostu dobrym człowiekiem...

C.D.N...

[ Dodano: 21-02-2018, 14:36 ]

Naprawdę liczysz, że ktoś specjalnie dla Ciebie zrobi wykład o pisaniu zaawansowanych programów?

- nie nie liczę na to. Czy znalazłeś w którejś z moich wypowiedzi takie oczekiwanie? Jeśli tak, to wskaż proszę.

Pewnie nie masz 12 lat więc choćby z racji wieku znasz się już na czymś dobrze, prawda? Niech to będą np. instalacje elektryczne w budynkach. I teraz przychodzi do Ciebie człowiek, który jest ratownikiem TOPR. Fantastyczne zajęcie, pełne poświęceń, człowiek legenda o ogromnej wiedzy i doświadczeniu, szacun i w ogóle i mówi tak: "Zrobiłem kiedyś kilka latarek LED więc wiem jak wyglądają kable. Chciałbym zrobić instalację elektryczną w nowym, 100-pokojowym hotelu mojego brata w Zakopanem. Czy mógłbyś mi to wytłumaczyć?". A Tobie opada szczęka, bo nie wiesz czy śmiać się czy płakać. Musiałbyś zacząć od tłumaczenia energetyki od postaw, o stacjach SN/NN, o zabezpieczeniach, o przekrojach, o całej masie obowiązujących przepisów, norm i dobrych zwyczajów, o zasadach wykonawstwa, doboru firm, itd itp. Acha, i miałbyś robić to korespondencyjnie... A przecież to wszystko gdzieś jest opisane i skodyfikowane i nie da się tego łyknąć za jednym razem. To przychodzi z latami pracy i zdobywanego doświadczenia. Czy zacząłbyś pisać dla niego książkę "Jak zostać elektrykiem w 256 prostych krokach bez wychodzenia z domu?". Raczej nie, prawda? A gdybyś jeszcze spotkał się zarzutem zadzierania nosa i niechęci do pomocy? Co byś o gościu pomyślał? Odpowiedz szczerze.

Odpowiadam szczerze. Odradzałbym mu to i wyjaśniłbym dlaczego. Chyba, że powiedziałby, że ma na to 3 lata czasu i chce to robić dla zabawy i żeby się nauczyć czegoś nowego. Wtedy poradziłbym mu jaką książkę kupić na początek i co zrobić, żeby się przekonać czy na pewno to jest dobry pomysł. Twój przykład jest jednak zupełnie nie trafiony bo tacy jak ja nie próbują bawić się arduino, żeby sterować centralą wentylacyjną w szpitalu tylko dla prostej P R Z Y J E M N O Ś C I, którą to koledzy nastawieni tak jak Ty skutecznie tłumią w zarodku.

Czy już dostrzegasz tę przepaść?

A czy Ty dostrzegasz tę przepaść pomiędzy tym co ja Tobie piszę powyżej i tym jak Ty na to reagujesz?

C.D.N...

[ Dodano: 21-02-2018, 14:43 ]

Moja rada jest taka: pisz dużo małych rzeczy, wnikaj w procesory i powoli przestaniesz być "początkującym opornikolubem".

Ale ja właśnie chcę być początkującym opornikolubem! Nie chcę odbierać Tobie zajęcia 🙂 Nie zamierzam stawać się ekspertem od sterowników Siemensa ani pisać nowego systemu operacyjnego konkurującego z Windowsem.

Nie wiń innych za to, że czegoś nie rozumiesz, bo tak naprawdę świat ma gdzieś to, ze czegoś nie wiesz.

A czy gdzieś kogoś obwiniłem? Napisałem Ci po prostu, żebyś wysilił się na trochę uważności i dobrej woli i miał świadomość, że jeśli chcesz doradzać na forum dla początkujących, to czyń to w sposób adekwatny. Albo nie odpisuj w ogóle, żeby nie zrazić osoby mniej asertywnej ode mnie. Znajdą się osoby, które rozumieją to co tu piszę (świadczą o tym chociażby posty Elvisa).

C.D.N...

[ Dodano: 21-02-2018, 14:50 ]

Angielskojęzyczne fora także.

No właśnie odwołałem się do anglojęzycznych forów bo zauważam przepaść pomiędzy tym jak postrzegają swoją misję "pomagacze" tam i tu - w naszym ciężko doświadczonym kraju...

Pomyśl, że to raczej Twoje postrzeganie świata jest takie, że gdzieś znajdujesz artykuły/wypowiedzi zrozumiałe a gdzieś może mniej albo gorzej szukasz. I to wcale nie znaczy, że tam jest lepiej a tu masz samo zadęcie. To tylko Twój wybór i ogląd rzeczy, które do Ciebie dotarły. Nie czytając tych skomplikowanych, których nie pojmujesz masz wrażenie, że nie istnieją.

O widzę, że posiadasz drugi fakultet z psychologii 🙂

Zrób eksperyment i zadaj podobne pytanie, o sposób połączenia wielu bliżej niesprecyzowanych programów w jedną całość, na najlepszym i najbardziej pomocnym Twoim zdaniem innym forum i sam się przekonaj czy dostaniesz instrukcję krok po kroku "Jak stać się dobrym i doświadczonym programistą embedded w dwa dni". Sam chętnie to przeczytam.

Podobnych eksperymentów zrobiłem już parę. Ostatni parę dni temu, gdy szukałem przyczyny niedziałających kółek po dodaniu serva - znajdziesz rezultat w jednym z moich poprzednich postów.

A poza tym wszystkim: wg Ciebie jestem bufonem i zadzieram tu nosa, nie ostrzegam i nie umiem tłumaczyć a wolę napisać coś niezrozumiałego, bo to fajnie brzmi.

Wiesz, życie nauczyło mnie pewnej ważnej umiejętności. Nie oceniam ludzi tylko zachowania. Nie uważam, żebyś był bufonem, ale rzeczywiście jeśli chcesz pomagać to czyń to mądrze.

CDN

Link do komentarza
Share on other sites

Ale żeś się rozpisał...

Odniosę się tylko do jednego stwierdzenia - że mianowicie silniczki ci przestały działać po podłączeniu serwa i poczyniłeś jakieś tam ekskre^H^H^Hperymenty (przy czym sugestię niekompatybilności bibliotek skrzętnie pominąłeś). I uznałeś za stosowne pouczenie pospólstwa na forbocie że w mądrości swojej znalazłeś rozwiązanie problemu...

...które to rozwiązane dobrze jest znane wszystkim, którzy potrafili przeczytać jedną stronę dokumentacji zanim zabrali się za programowanie.

Nie oceniam - sam się oceń.

Link do komentarza
Share on other sites

Poczekajmy, może znajdzie się ktoś kto da Ci satysfakcjonujący przepis na to połączenie kodów. W końcu niech eksperyment rozstrzygnie. Nie muszę akurat Twojego wątku zaśmiecać wątpliwymi poradami, z pewnością jest wielu chętnych, przekonaj się.

No ale Ty dalej nie rozumiesz. Ja wcalę nie oczekuję "satysfakcjonującego przepisu". Oczekuję "spróbuj może tego" albo "ja bym spróbował w ten sposób, ale uważaj na to"

Elvis: Nie łudź człowieka jednym switchem. Przecież wiesz, że to nie rozwiązuje sprawy, pochyl się i pomóż mu naprawdę.

Na prawdę uważasz, że Elvis celowo wprowadza mnie w błąd czy tak ci się tylko wyrwało bez zastanowienia? Może powinieneś najpierw czytać to co wysyłasz w świat? Spodziewam się, że wycofałbyś wtedy co niektóre wpisy... Elvis już mi pomóg dokładnie tak, jak tego oczekiwałem - czyli ktoś, kto się zna lepiej na rzeczy niż ja zasugerował rozwiązanie, które może zadziałać. MOŻE ALE NIE MUSI - MAM TEGO ŚWIADOMOŚĆ. Sprawdzę i zobaczę. Jak nie będzie działać to zapewne wrócę - no chyba, że mnie koledzy moderatorzy zablokujecie za wyrażanie niepopularnych opinii 🙂 A być może jeszcze dopytam Ciebie, Elvisa lub Deshipu o coś jak uporam się z odpowiedziami do Was wszystkich... 🙂

ELVIS NAPISAŁ: marek1707, przeczytaj na spokojnie pierwszy post w tym wątku. Autor nie pytał o jednoczesne wykonywanie trzech funkcji, ale o możliwość przełączania i wyboru jednej. Jeśli sterujemy przez telefon to samochodzik nie wykrywa przeszkód itd.

Dlatego dałem podpowiedź jak prostym switchem wybierać aktualnie używaną funkcję. Jeśli biblioteki się pogryzą to oczywiście program nie zadziała, ale wtedy będzie kolejny wątek albo chociaż kolejny post.

Mogę się mylić, ale ja tak zrozumiałem pytanie autora wątku. A jakie będzie następne - zobaczymy, może faktycznie będzie chciał zbudować skomplikowny program, a może zwykły switch wystarczy.

Potwierdzam. Nie chodzi o równoczesne wykonywanie kilku procesów ale wybór jednego z trzech trybów pracy samochodu: albo sterowanie komórką, albo wykrywanie linii, albo unikanie przeszkód. Jedyne czego się obawiam to to, że jak samochód będzie zajęty obrabianiem danych z odległościomierza i przetwarzaniem tego na ruch kół to nie będzie "miał czasu" na nasłuchiwanie sygnału z pilota IR

marek1707 NAPISAŁ: MarJanPol jest przekonany, że Arduino jest zawsze proste i próbuję go wyprowadzić z błędu.

A skąd Przyjacielu wiesz, że jestem do tego przekonany? Znów - sugeruję bardziej krytyczną ocenę tego co w pierwszym momencie podsuwa Ci Twój umysł bo możesz się mylić.

Trzy proste rzeczy (np. prowadzenie samochodu, jedzenie i gadanie przez komórkę) robione jedna po drugiej są łatwe, ale z jakiegoś powodu za trzy te same czynności robione jednocześnie można trafić do więzienia. Nie radzimy sobie z tym. Jeśli chce wejść w trudne (dla obecnego niego) tematy, to będą one trudne i nie ma tu prostych rozwiązań. Niezależnie od tego co MarJanpol o tym myśli. Moje ostrzeżenia wziął za niechęć do pomocy - to nie jest fajne.

Znowu powtarzam - JA NIE CHCĘ JEDNOCZEŚNIE. NIGDZIE TEGO NIE NAPISAŁEM. WRĘCZ ODWROTNIE - NAPISAŁEM, ŻE : "chciałbym te 3 programy ubrać w jeden wspólny program z wyborem jednego z trzech trybów za pomocą pilota IR. Czyli np.: wciskam na pilocie 1 - uruchamia się program 1, 2-2, 3-3" - Czy to nie jest jednoznaczne?

DESHIPU NAPISAŁ: Ja i tak chce zobaczyć w jaki sposób napiszesz te funkcje tak krótkie, żeby między nimi jeszcze zdążyć odebrać i zdekodować sygnał IR. Bądźmy szczerzy, podałeś rozwiązanie, które nie zadziała (a przynajmniej nie samo z siebie) i liczysz na to, że pytający i tak nic z tym nie zrobi i nigdy się o tym nie przekona. Co oczywiście zazwyczaj jest dobrym założeniem, bo jakby chciał coś zrobić, to już by dawno poszukał informacji o podanych tu pojęciach, a nie narzekał, że nic nie rozumie. Ale mimo wszystko brzydki trik.

Witaj Deshipu! Miło Cię słyszeć przy tej dyskusji bo moje słowa nt. fachowego zadęcia i poniżającego odpowiadania dotyczyły także Ciebie (przypuszczam, że domyślisz się co mam na myśli). A wracając do meritum: tak, obawiam się tego samego o czym napisałeś, więc jeśli wiesz jak sobie z tym poradzić, to chętnie skorzystam z Twojej rady.

Szkoda, że Ty też tak łatwo oceniasz intencje ludzi zarzucając Elvisowi, że liczy na brak mojej reakcji i zarzucając mnie, że mam sam gdzieś to o co proszę. Uff, człowieku, nie będę zgadywał co Ci dolega, ale może jakiś wypoczynek od ekranu by Ci trochę pomógł...

A może kończyłeś tę samą szkołę psychologii co marek1707 ? W Y L U Z U J i zdąbądź się na trochę więcej zaufania do ludzi 🙂 :)

C.D.N.

[ Dodano: 21-02-2018, 16:27 ]

Jakoś nie zauważyłem, żeby Marek pisał o łatwym i przyjemnym użyciu gotowej biblioteki.

Ale może dajmy autorowi wątku się wypowiedzieć, bo to forum coraz bardziej zamienia się w kółko filozoficzne.

Nie pisałem o bibliotekach. Ale nie przewiduję problemów z bibliotekami. Jak się pojawią to zapewne zapytam na tym forum 🙂

[ Dodano: 21-02-2018, 16:41 ]

Ale żeś się rozpisał...

Odniosę się tylko do jednego stwierdzenia - że mianowicie silniczki ci przestały działać po podłączeniu serwa i poczyniłeś jakieś tam ekskre^H^H^Hperymenty (przy czym sugestię niekompatybilności bibliotek skrzętnie pominąłeś). I uznałeś za stosowne pouczenie pospólstwa na forbocie że w mądrości swojej znalazłeś rozwiązanie problemu...

...które to rozwiązane dobrze jest znane wszystkim, którzy potrafili przeczytać jedną stronę dokumentacji zanim zabrali się za programowanie.

Nie oceniam - sam się oceń.

No i po co ten sarkazm kolego? Ciebie też nie przytulała mama jak byłeś małym chłopcem? 🙂

Szkoda, że nazywasz innych pospulstwem - rozumiem, że Ty też należysz do kasty lepsiejszych...

Dlaczego manipulujesz i wkładasz mi w usta coś czego nie napisałem? Napisałem - to: "Już znam przyczynę mojego problemu! Dzielę się tu, bo może komuś też się przyda:

https://forum.arduino.cc/index.php?topic=530504.0 " - widzisz w tym coś złego, że zamykam wątek informacją jaki był problem, żeby ktoś z tego mógł skorzystać??? Przecież nie piszę, że ja sam to wymyśliłem tylko odsyłam do linka, z którego widać, że ktoś inny to zrobił.

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

No to Elvis, tylko w Tobie nadzieja, ratuj honor Forum. Ty jeden o ile wiem nie kończyłeś psychologii i umiesz rozdawać darmowe porady/zabawki tak, by dzieciak przez chwilę miał jakieś zajęcie. W Twoich rękach los biednych, wciąż osobnych programów. Zrób to.

BTW: Nareszcie mamy kogoś kto wie jak to wszystko powinno wyglądać: tak jak jemu się podoba. Tyle lat pracy na darmo, a tu taka światłość... Cieszymy się, prawda?

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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.