Skocz do zawartości

ethanak

Użytkownicy
  • Zawartość

    2180
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    90

Wszystko napisane przez ethanak

  1. Może to nie będzie post zgodny z PPF, pewnie za chwilę zniknie w czeluściach kosza... ale wątpię, czy kolega wątkotwórca ma jakiekolwiek szanse na znalezienie tu pomocy. Sorry, taki mamy klimat. @marek1707 minusa dostałeś za naruszenie RODO
  2. Pamiętaj o tym, że o ile komunikacja myszki odbywa się po bt (czy nawet kablu), o tyle same przesunięcia myszki odczytywane są poprzez detekcję światła odbitego od stołu, przy czym moc diody oświetlającej w myszce jest stosunkowo duża. Światło odbija się od podłoża, gdzieś tam świeci na boki... a odbiornik po prostu wykrywa jakiś modulowany sygnał którego co prawda nie rozumie (bo żadnej informacji tam nie ma), ale daje znać że coś odbiera. Przy czym filtry podczerwieni w odbiorniku przepuszczają częściowo czerwone światło diody. Proponuję jako ćwiczenie skonstruowanie nadajnika, i spróbowanie zastosowania w nim zamiast diody na podczerwień zwykłych diod led, a nawet czerwonej diody laserowej.
  3. Błagam, przetłumacz na jakiś poludzki język (polski na przykład) Tam jest jakaś przejściówka czy obudowa czy co (przecież tego dysku bezpośrednio w USB nie wtykasz bo nie bardzo jest jak). Chodzi o to, że zasilanie z portu USB nie zawsze wystarcza, a często takie przejściówki/obudowy mają jakieś gniazdko na zasilacz.
  4. Wiem. A w założeniach jest właśnie Arduino Pro Mini Co do wymiarów - wolałbym postawić w robocie np. ESP32 i połączyć to z domowym pecetem czy laptopem w charakterze serwera - mniej prądu by żarł, a i moc obliczeniowa ciut większa niż malinki... ale to temat na zupełnie inną konstrukcję.
  5. Troszkę mi się to wydaje nieprzemyślane do końca... Przykładowo - proponuje się "korzystanie z git-a" jako temat artykułu. Na pewno jest to ciekawe, pouczające i potrzebne... ale konia z rzędem temu, kto tam umieści osiem sensownych grafik!
  6. Masz na swoim dysku bibliotekę ESP8266HTTPClient i przykłady - wystarczą? I tak i nie. ESP8266 w trybie AP nie działa jako switch (tzn. nie przekazuje pakietów między podłączonymi urządzeniami) - czyli nie. Ale jeśli masz jeden czy kilka ESP komunikujące się wyłącznie z głównym (w tym przypadku przekaźnikiem) - to tak, powinien on pracować w trybie AP.
  7. Jeśli dwa programy będą chciały skorzystać z tych samych zasobów (np. adres IP/port) to po prostu wygra ten, który sobie ten zasób przydzieli, a pozostałe się nie uruchomią. W przypadku dostępu przez przeglądarkę rozwiązaniem jest przydzielenie różnych portów dla każdej usługi. Takim typowym przykładem może być OctoPrint, uruchamiający się na dzień dobry na porcie 5000 i dostęp uzyskujesz przez http://<adres>:5000 Niestety nie ma uniwersalnego sposobu, każdy program robi to po swojemu, ale z wyjątkiem jakichś bardzo paszczastych niedoróbek (których i tak nie opłaca się instalować) jest to możliwe. Dokumentacja każdego programu musi zawierać informację, w jaki sposób należy skonfigurować adres i port na którym nasłuchują.
  8. Dobrze kombinujesz. Zamiast operacji na stringach proponowałbym tylko bufor typu char[] i coś w stylu: int n=atoi(bufor+2); switch(bufor[0]){ case 'x': zmienna1 = n;
  9. Menu Narzędzia -> Port, wyświetlą się dostępne porty i stamtąd wybierz ten właściwy (nie, nie wiem który to port w Twoim komputerze).
  10. Piję to akurat trzecie piwo. Co do czytelności zamieszczanych kodów polecam przeanalizowanie sobie kodów zamieszczanych na różnych forach przez niewidomych - uwierz mi, że musiałem przepuścić kod yasra przez indent aby cokolwiek z niego zrozumieć i wrzucić dwulinijkową poprawkę.
  11. Istnieją programy do formatowania - clang-format dla C++ i indent dla C. Może warto się z nimi zapoznać choćby po to, aby ktoś od kogo oczekuje się pomocy nie tracił czasu na szukanie brakującego nawiasu?
  12. Przede wszystkim w preferencjach musisz włączyć pokazywanie wszystkich błędów i ostrzeżeń. Bez tego nie ma szans na znalezienie błędu. I nie przejmuj się tym, że nagle będzie tego dużo. Tak ma być.
  13. Oj, wiem, wiem - wiele razy na własnej skórze tego doświadczyłem. Problem w tym, że w tak prostym układzie czy kodzie po prostu nie ma miejsca na błąd... O tym że serwo jest zepsute pomyślałem od razu, dlatego je wymieniłem i okazało się, że drugie działa (a właściwie nie działa) tak samo. Ponieważ o takiej usterce nigdy nie słyszałem uznałem za mało prawdopodobne, aby dwa serwa pochodzące od różnych producentów były zepsute w ten sam nietypowy sposób. A rozwiązanie okazało się proste. Kluczowe okazało się tu Pro Mini. Ponieważ nie ma ono własnego konwertera, wymaga podłączenia zewnętrznego konwertera UART-USB. Mimo niepodłączania linii zasilania (urządzenie ma własne zasilanie), po podłączeniu konwertera na pinie Vcc występuje napięcie ok. 2.3V (nie mam pojęcia skąd się bierze, sprawdziłem na Arduino wyjętym z urządzenia, na wszelki wypadek na dwóch egzemplarzach). Prawdopodobnie to napięcie było wystarczające aby elektronika serwa zadziałała, ale za małe aby zadziałała prawidłowo... i po włączeniu pełnego zasilania dalej nie reagowała na impulsy na wejściu. Wyłączenie urządzenia w tej sytuacji nic nie dało - po wyłączeniu dalej istniało to szczątkowe napięcie. Wyjęcie wtyczki serwa w czasie pracy urządzenia (to ważne) powodowało pełny reset elektroniki serwa i po włączeniu podanie od razu pełnego zasilania (dlatego serwo działało). Ta sama operacja przy wyłączonym urządzeniu nic nie dała - serwo po włożeniu wtyczki dostawało znów te 2.3V i znów wariowało... Pozostaje pytanie, dlaczego drugie serwo zachowywało się prawidłowo. Nie chce mi się teraz rozbierać urządzenia ale wydaje mi się, że to właśnie serwo jest nietypowo odporne na takie hece z zasilaniem A teraz tak trochę złośliwie na temat kodów i schematów (nie jest to złośliwość wymierzona w konkretną osobę, sam też zawsze drę mordę o kody). W przyszłym tygodniu postaram się wrzucić tu opis tego urządzenia wraz ze schematem i kodem. Stawiam piwo pierwszemu który wskaże, jak na podstawie owego kodu i schematu można było określić powód błędnego działania serwa
  14. Wydawało mi się że wszystko jest jasne po pierwszym poście - po kiego grzyba schemat na którym są połączone serwa z arduino? Jest jakiś inny sposób niż ten który wszyscy stosują? Co ma do rzeczy kod jeśli piszę, że sygnały na serwie są prawidłowe? Są jakieś kody co powodują, że sygnał jest prawidłowy a serwo nie działa? Z chęcią się nauczę. Widzisz - w tym przypadku przetwornica jest częścią składową urządzenia. A jak się zapewne domyślasz, inne serwo podłączone do innego egzemplarza arduino z innym zasilaniem działa prawidłowo... tylko co to ma do mojego problemu? BTW chyba wiem jaki jest powód - sprawdzę jeszcze dokładniej ale jeśli to jest to co myślę, to nie ma to nic wspólnego ze schematem, kodem i przetwornicą
  15. Pokaż ten program. Coś w stylu: void setup() { pinMode(8, OUTPUT); digitalWrite(8, 1); } void loop() {} powinno zapalić tę diodę (o ile nie wtykłeś jej odwrotnie).
  16. Ale podświetlenie w edytorze nie do tego służy! Podświetlane są konkretne słowa zależnie od ich znaczenia, przykładowo: pinMode podświetlony jest na czerwono bo to funkcja wbudowana Arduino; OUTPUT podświetlony jest na zielono bo to wbudowana definicja; 8 nie jest podświetlone bo i po co W żadnym wypadku podświetlanie składni w edytorze Arduino nie ma nic wspólnego ze znaczeniem danej konstrukcji (w tym przypadku z przypisaniem funkcji do pinu).
  17. A w MT (chyba na początku lat 70-tych) był nawet artykuł o wyższości połączeń owijanych nad lutowanymi.
  18. Za chwilę coś mnie strzeli... Układ najprostszy z możliwych - Arduino Pro Mini, odbiornik IR, dioda laserowa i dwa serwa SG-90 (chińczyki). Zasilanie - 18650, ładowarka z zabezpieczeniem (mały moduł) i przetwornica step-up na MT3608. Wszystko ślicznie działa - z pilota mogę regulować poziom świecenia diody i merdać serwami. Do pewnego momentu... Po którymś z kolei włączeniu urządzenia (lub resecie) jedno z serw przestaje reagować. Napięcie zasilania jest (5.2V), przebieg na wejściu jest (sprawdzane sondą i programem PulseView), serwo jest luźne. Nie pomaga wyłączenie/włączenie urządzenia, reset, zabawy z attach/detach, serwo jest uparte. Dopiero wyjęcie w czasie pracy wtyczki (ściślej: odłączenie Vcc, sprawdzałem przepuszczając wszystko przez płytkę stykową aby wyeliminować możliwość jakiegoś zimnego lutu czy innego mechanicznego syfu na płytce) i ponowne włożenie sprawia, że serwo zaczyna reagować i zachowuje się jak trzeba. Zmieniałem pin w Arduino, bez skutku. Zmieniałem serwo na nowe, innego producenta - bez skutku. Bawiłem się różnymi kondensatorami przy przetwornicy - bez skutku. Co ciekawsze - zawsze jest to konkretne serwo (powiedzmy serwo numer dwa w urządzeniu), drugie działa prawidłowo. Gdzie szukać przyczyny?
  19. Pewnie wystarczy po prostu pomiar czasu trwania impulsu.
  20. Większość tego typu serwerów działa na zasadzie cyklicznego wywołania jakiejś funkcji typu handleClient() - jak jej nie będziesz wywoływać to i serwer działać nie będzie. Popatrz na przykłady.
  21. Ta funkcja będzie zwracać PREV o ile nie będzie wciśnięty żaden z klawiszy A, B lub C. Przeanalizuj sobie działanie tej funkcji i powiedz: Co i dlaczego będzie zwracać po naciśnięciu klawisza C? Co i dlaczego będzie zwracać po naciśnięciu klawisza D?
×
×
  • Utwórz nowe...