alladyn21 Napisano Styczeń 22, 2016 Udostępnij Napisano Styczeń 22, 2016 Witam Panowie Jakiś czas temu napisałem prosty program do zarządzania domowym ogródkiem i to działa Ale po jakimś czasie jest to dla mnie za mało (nie działa tak jak wg mnie powinno) tzn nie jest łatwe w obsłudze Ponieważ cały program jest napisany w oparciu o alarmy zegara rtc (każda zmiana jaką chce przeprowadzić musi być robiona w kodzie) na dłuższą metę jest to dość żmudne Chciał bym użyć do tego UART ale zwykłe sample nie rozwiązują mojego problemu mam pare zmiennych i są one cyframi (godzinami) i np chce zmienić alarm z godziny 11 na godzine 9 i drugi alarm z godziny 21 na 22 jak zrobić to za pomocą uart? __________ Komentarz dodany przez: Treker Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 22, 2016 Udostępnij Styczeń 22, 2016 W programie musisz przewidzieć jakąś interakcję z użytkownikiem/operatorem. W zależności od swoich upodobań taki rodzaj współpracy wybierasz. To może być wyświetlacz LCD i proste przyciski, mogą być jakieś gałki do pokręcania, enkodery BCD lub nawet UART - ale on sam niewiele daje, bo tylko kanał przesyłania informacji. Po drugiej stronie musi być coś, co te dane łyka i wysyła własne, np. "dorosły" komputer z klawiaturą, ekranem i programem emulacji terminala szeregowego. Jednak to chyba niezbyt dobry pomysł, by zatrudniać PC lub notebooka do komunikacji z prostym sterowniczkiem. Pomyśl raczej o rozwiązaniach z lokalnym wyświetlaczem i klawiszkami. UART miałby sens gdybyś te kable musiał ciągnąć prze dwa piętra do swojego pokoju lub gdybyś gadał ze sterownikiem zdalnie przez jakiś moduł radiowy. Jeżeli możesz do swojego komputerka podejść i coś wyklikać, UART nie jest Ci potrzebny. A jeśli już byś chciał koniecznie w ten sposób to zrobić, po prostu używasz bibliotek do wysyłania i odbierania ciągów znaków - bo to przesyła UART. Np. wysyłasz tekst: "Podaj godzinę podlewania" po czym dostajesz w sterowniku to co wstukałeś na klawiaturze, np. "15:20". Analizujesz kolejne znaki: 1,5,:,2,0, i zamieniasz je na liczby 15 i 20, które zapamiętujesz w swoich ustawieniach jako godziny i minuty. Jeśli ktoś odpisał "Odwal się" to w odebranym ciągu znaków nie znajdujesz cyfr więc wypisujesz "Co jest grane? Nic nie rozumiem. Spróbuj jeszcze raz." itd. To z grubsza tyle. Link do komentarza Share on other sites More sharing options...
alladyn21 Styczeń 22, 2016 Autor tematu Udostępnij Styczeń 22, 2016 arduino będzie podłączone w niedługim czasie do malinki z malinką będę się komunikował juz w dowolny sposób ale ona sama będzie zarządzać arduino przez uart nie do konca rozumiem to co opisałeś 😋 jak byś to napisał w małym samplu kodem był bym wdzięczny 🙂 bo resztę sobie juz opracuje zakładając if (dh.hour >= godzinaWlaczenia && dh.hour <= godzinaWylaczenia) { <wykonaj pętle> } to jak podać mu godzinewlaczenia i godzinewylaczenia? Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 22, 2016 Udostępnij Styczeń 22, 2016 Tu masz opis biblioteki serial - to ona odpowiada za komunikację Arduino przez UART: https://www.arduino.cc/en/Reference/Serial "Nie do końca rozumiem" dlaczego tam jeszcze nie zajrzałeś - przecież te strony to podstawa dla piszących kod dla tego komputerka. Masz do tego dostęp nawet w swoim IDE. EDIT: "bo resztę sobie juz opracuje" - i tu się mylisz. Wyobraź sobie, że zbudowałeś samochód: podwozie, układ kierowniczy, hamulcowy, silnik, skrzynia automat, podgrzewana kierownica, pedały, fotele, bagażnik, lakier metalic i nawet klima - no wszystko czego można zapragnąć. Ale zapomniałeś zrobić drzwi. Czy możesz to zrobić metodą prostego "opracowania"? Nie. Będziesz musiał pruć diaxą świeżutką karoserię, wspawać zawiasy, zamki, zrobić zupełnie inne burty, nowe słupki, szyby, progi itd. W takiej sytuacji jesteś. Moim zdaniem będziesz musiał przemyśleć i przebudować całą strukturę kodu, bo komunikacja ze światem to czasem 80% programu. Ale lepiej późno niż później. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. 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
alladyn21 Styczeń 22, 2016 Autor tematu Udostępnij Styczeń 22, 2016 dzięki za pomoc nie potrzebuję filozofii tylko fachowej pomocy 🙂 poszukam gdzie indziej Link do komentarza Share on other sites More sharing options...
Chumanista Styczeń 22, 2016 Udostępnij Styczeń 22, 2016 alladyn21, Seriously? Oczekujesz że ktoś napisze za Ciebie kod tylko po to żebyś za 3 dni wrócił bo "Niczego nie dotykałem i nie działa!"? marek1707 jest najbardziej "fachową" osobą jaką spotkałem na jakimkolwiek forum. I niesamowicie cierpliwą. Treker, widzisz jak się kończy dział Arduino? 90% postów wewnątrz i pytania typu "Niczego nie próbowałem i nic nie działa!!!11!". //wiem, wiem. Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 22, 2016 Udostępnij Styczeń 22, 2016 Nie jest tak źle. Kolega nie oczekiwał, że ktoś za niego napisze kod bo jak sam wspomniał "resztę już sobie opracuje". Faktycznie mógł się poczuć spuszczony na drzewo, bo zamiast jednej-dwóch linijek kodu dostał link do całej strony tekstu i jeszcze jakieś sprawy z samochodami. Musiałby przez cały manual przebrnąć by na końcu znaleźć przykład (akurat pierwszy z brzegu) pokazujący jak wczytać liczbę int przysłaną znakami przez port szeregowy. Fakt, czytanie nie jest najprostszą rzeczą więc nie możemy oczekiwać aż takich wysiłków od początkujących. Zamiast "filozofować" jak jakiś potłuczony trzeba było od razu napisać: int x = Serial.parseInt(); i mógłby wciągać tyle zmiennych ile mu dusza zapragnie. Inna sprawa, że pewnie nic by mu z tego nie przyszło, bo wstawienie w obecnie pracującym kodzie linijek wciąż wczytujących zmienne rozwaliłoby całą strukturę, ale to już jest wnioskowanie bardzo odległe od np. wycinania drzwi. Nie chcę by Kolega alladyn21 opuścił nasze Forum jako zignorowany fachowiec, któremu naprawdę brakuje tylko słowa a napisze cały poemat. Jeżeli mimo urazy jeszcze tutaj zajrzy, proponuję restart naszych stosunków i chwilę zastanowienia. Może moglibyśmy polecić jakąś książkę o programowaniu, żeby w zaciszu domowym zrozumiał, że programy nie kończą się na jednej prostej pętli i te co bardziej zagmatwane trzeba projektować wcześniej? Nieee, przecież trzeba by tyle przeczytać... No to może chociaż numer strony? Pliiz. Link do komentarza Share on other sites More sharing options...
alladyn21 Styczeń 24, 2016 Autor tematu Udostępnij Styczeń 24, 2016 Marek dzieki za odpowiedz 🙂 jedno zdanie dalo mi tyle ze napisalem caly projekt od nowa i juz wszystko dziala tak jak bym tego chcial 🙂 bede jednak zmuszony zalozyc inny temat bo o ile samo programowanie arduino z lekkimi podpowiedziami gdzie szukac i czego dalo rade tak z reszta sobie nie poradzę 🙂 Mianowicie chce podpiac arduino pod nowo zakupione raspberry zeby reszte projektu napisac na nim ale Juz na samym poczatku mam problemy 🙁 Raspberry mialo by odbierac i wysylać inforamcje po szeregowym monitorze a inforamcje ktore odbiera logowac w pliku txt ( data godzina temperatura i wilgotnosc) pozniej serwer na malince i ladny wykres na www jesli tylko nakierujecie mnie co mam przeczytac zeby to zrobic to sobie poradze 🙂 sorka za takie nazwanie ale internet teraz pelen niemilych ludzi, a fora sa od pomagania 😃 Ps program ma blisko 1k linijek kodu wiec nie jestem jakims noobem co nic nie dotykal i nie dziala 🙂 po prostu nie wiem nieraz jak odszukac pomocy bo nie wiem jak zadac pytanie 😋 Link do komentarza Share on other sites More sharing options...
Elvis Styczeń 24, 2016 Udostępnij Styczeń 24, 2016 Raspberry działa na bazie linuxa, więc zawsze możesz najpierw napisać program na PC, a później przekompilować na malinkę. Do wyboru masz dwie opcje: możesz wykorzystać UART wbudowany w RPi albo podłączyć przez USB konwerter USB-serial. Co ciekawe ta druga opcja jest dużo łatiwiejsza, właściwie wygląda identycznie jak w przypadku PC. Po podłączeniu konwertera powinno pojawić się urządzenie /dev/ttyUSB0, przez które możesz się komunikować - wszystko znajdzie google. Natomiast wbudowany UART to nieco trudniejsza sprawa. Po pierwsze na nim pojawiają się komunikaty systemowe podczas uruchamiania linuxa - można to wyłączyć, znowu google pomoże. Następny problem jest taki, że UART jest wykorzystywany do logowania użytkownika. Trzeba więc zmienić konfigurację i wyłączyć konsolę podłączoną do UART-a. Oczywiście wcześniej warto zadbać o inną metodę łączenia z Malinką (np. przez ssh). To też jest opisane w sieci - google znajdzie wszystko. Na początek jednak polecałbym konwerter USB-serial - to duuużo łatwiejsza opcja. Ps 1k kodu to chyba żaden dowód na nie-bycie noobem. Wybacz, ale to po pierwsze bardzo mało, a po drugie nie bądźmy marksistami, nie zawsze ilosć przechodzi w jakość... Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
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ę »