Skocz do zawartości

ethanak

Użytkownicy
  • Zawartość

    1270
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    50

Wszystko napisane przez ethanak

  1. Zależy jaki to dom. Do prywatnego to pewnie nie, ale domy bywają nie tylko prywatne Żeby nie było że OT - ciekawe, kiedy kolega wątkotwórca poda tyle informacji, żeby można było coś sensownego doradzić...
  2. Samochód to akurat bardzo wredne środowisko dla Arduino - mnóstwo zakłóceń, zawsze jest szansa że coś tam polezie po zasilaniu i procek zrobi coś nieprzewidywalnego (np. wyłączy watchdoga). Takie pilnowanie samego siebie przypomina mi historię pewnego barona, co sam się za włosy z bagna wyciągnął... Fajnie, że zakładasz bezbłędność kodu (ja na przykład bałbym się takich założeń) ale przewidziałbym możliwość resetu. Mam takie jedno ustrojstwo sterujące światłem w pokoju, w ciągu 5 lat zwiesiło się dwa razy przy większej burzy - co prawda żeby zrobić reset muszę sięgnąć dość daleko i w mało wygodne miejsce, ale nie muszę wyłączać bezpieczników w domu ani włazić na drabinę żeby wdusić reset... a mój dom nie jedzie setką po autostradzie. Dlaczego mówię że program jest źle napisany? Bo stwierdziłeś na początku, że masz gotowy kod (który nie przewidywał żadnych zacięć i watchdogów) a teraz na siłę chcesz dorobić coś, czego nie miałeś w założeniach.. A zmiana założeń (w tym przypadku uwzględnienie zacięć i watchdogów) to zmiana kodu. Tak przy okazji - delay to funkcja która się akurat rzadko zacina, i nieposiadanie delayów nie oznacza bezbłędności programu.
  3. Podaj możliwą przyczynę "zacięcia się" arduino - od tego zależy rozwiązanie. Coś mi się wydaje, że ten program nie jest specjalnie dobrze napisany i akurat teraz jest ten moment, kiedy cały kod wywalasz do kosza i piszesz go od nowa - tym razem uwzględniając już od początku watchdogi, sleepy i inne tego typu firdymałki... no ale to Twój kod i to Ty decydujesz.
  4. No to teraz dwa pytania: Dlaczego chcesz użyć metody timing i nie dociera do Ciebie, że to prywatna metoda i nie jest dostępna w aplikacji? Skąd wziąłeś informacje o tym, że istnieje jakaś metoda "convert"? A przecież jak wół wyświetla się informacja, że: error: 'unsigned int Ultrasonic::timing()' is private error: 'class Ultrasonic' has no member named 'convert' Czego w tych dwóch zdaniach nie rozumiesz?
  5. I tylko tyle? Masz tam na dole takie fajne czarne okieneczko, w tej chwili jest ściśnięte do minimum, chwyć myszkę i je rozciągnij, popatrz czy coś na czerwono przypadkiem nie pisze. Poza tym przed kompilacją otwórz preferencje i zaznacz wyświetlanie wszystkich błędów kompilatora. Jak to zrobisz, skompiluj jeszcze raz, jeśli coś się wyświetliło to skopiuj i wklej na forum (nie rób screenshota tylko wklej jako tekst, najlepiej poprzez funkcję "wstaw kod"). Dopiero wtedy ktoś będzie mógł Ci pomóc. @Treker jesteś tam może? Nie można by jakoś przykleić takiej informacji do działu "programowanie" (o zamieszczaniu błędów z Arduino IDE)? Bo ja już chyba piąty raz tłumaczę jak to się robi...
  6. A możesz uprzejmie podać jakie polecenie wydajesz czy trzeba zgadywać? Jak coś takiego wyskakuje to znaczy, że w podanej lokalizacji nie ma pliku blink.sh, i to właśnie jest nie tak.
  7. @SOYER Z całym szacunkiem, ale... Według Doroszewskiego: Czyli pojedynczy szczegół, pojedynczy fakt, a nie cały długi i nudny artykuł o programistach i sztucznej inteligencji w jakimś "Fakcie online" czy innym Onecie przeznaczony dla gospodyń domowych i polityków (nie obrażając owych gospodyń umieszczeniem ich w takim towarzystwie). Być może dla Ciebie ciekawostką jest, że oficerowie cyberwywiadu w Izraelu są obznajomieni z komputerami...
  8. @deshipu Działa!!! Zamieniłem po prostu _delay_us(T2_TWI) na nopy, wyświetlanie dostało kopa - nie mierzyłem dokładnie ale funkcja zajmująca ok. 75 msec teraz zajmuje 22 - czyli kop dość potężny! Jeszcze raz dzięki!
  9. Dzięki!!! Przestudiuję to sobie, ale już się domyślam o co chodzi. W TinyWire T2_TWI i T4 TWI są zdeklarowane na sztywno (odpowiednio 5 i 4 µs) - spróbuję się tym pobawić. Co ciekawsze - mam jakąś (nie-adafruitową) bibliotekę USI_TWI gdzie widziałem fast mode... tyle że nie chciało mi to ruszyć nawet bez fast, dlatego zastosowałem wersję adafruita. Będę musiał zerknąć co jej dolega...
  10. A kto powiedział że chcę używać gotowych bibliotek? Ani do jednej, ani do drugiej gry nie pasują... Co do wyświetlacza - mam już obsługę (poszedłem po najmniejszej lini oporu, czyi okroiłem adafruitowe TinyWireM do rzeczy niezbędnych i przerobiłem na C, samą obsługę SH1106 też ściągnąłem z jakiejś arduinowej biblioteki), do tego co potrzebuję absolutnie wystarczy. Co do trudności w programowaniu... zauważyłeś kiedy i na jaką maszynkę pisałem gry? A od tej pory chyba nawet trochę się poduczyłem Tak przy okazji - nie wiesz przypadkiem, czy jest jakaś możliwość żeby z ATtiny85 wydusić więcej niż 100 kbit? Wyświetlacz spokojnie działa na 400, poszukiwania w sieci doprowadziły mnie do tego że jest to możliwe, ale nikt nie wie jak a jeden co podobno wie to nie chce powiedzieć
  11. Robiłem odświeżanie ekranu w wersji na Arduino i wyświetlacz Nokii - tyle że tam i tak musiałem ograniczyć się do 10 FPS ze względu na bezwładność wyświetlacza. Tutaj odświeżenie całości nawet gdybym miał odpowiednią ilość pamięci trwałoby zbyt długo (Nokia to jednak SPI a nie I2C). Zresztą dopóki nie zrobię przynajmniej jednego stolika z klientami (niech sobie po prostu łażą i wołają nieobecnego barmana) nie ma co teoretyzować, może się okazać że mogę odświeżyć cały obraz stołu (teoretycznie pamięci powinno wystarczyć), chodzi raczej o to aby nie było widać jak biedny mikrokontrolerek usilnie rysuje piksele
  12. Wersja Kazika oficjalna z możliwością zagrania online (publikowana pod tytułem "Zamek" lub "Kazik i Tatarzy", nie wiem skąd im się tam wziął "atak tatarów"): http://plus4world.powweb.com/software/Zamek Wersja na Arduino i wyświetlacz od Nokii: https://majsterkowo.pl/kazik-czyli-prosta-platforma-do-prostych-gier-na-arduino/ Zresztą tych przygód Kazika było więcej (z grywalnych "Kazik poluje na duchy"), ale "Zamek" jest chyba najlepszy. A "Tapper" na C16 wygląda słabo bo to niedokończona wersja.
  13. OLED 128 x 64 (0.96 cala). Ikonki postaram się zrobić - w razie czego mam kumpla który specjalizuje się w tego typu rzeczach i jak się z dobrym piwem uśmiechnę to może mi coś fajnego machnie No nie - na rysowanie wszystkiego w RAM-ie to mi tego ramu nie wystarczy. Czyli mniej więcej rysowanie ikonek tam gdzie coś się zmieniło. Na szczęście nie muszę pamiętać całego obrazu, w przypadku stołu wystarczą pozycje i numerki obrazków klientów (dwie fazy ruchu, klient trzyma kufel, klient pije piwo) i pozycje kufli + pusty pełny. Nie wiem tylko, czy mi się oprócz rysowania coś jeszcze w attiny zmieści No i autorski silnik (o ile to można nazwać silnikiem - rysowanie bitmap z wyrównaniem w pionie do 8). To w ogóle nie powinno ujrzeć światła dziennego - niestety były to czasy absolutnej dziczy i wystarczyło, że gdzieś człowiek położył kasetę z grą to zaraz była przegrana w 100 egzemplarzach Poza tym owszem, mniej więcej (tzn. więcej mniej jak więcej)
  14. Myślałem o uproszczonej (z wiadomych przyczyn) wersji Tappera - ewentualnie (jeśli nie wyjdzie) odtworzeniu mojego Kazika (ale to już staje się nudne) Jeśli będzie jakiś efekt to się pochwalę. W sumie zrobiłem inaczej - najpierw myślałem o jakimś oporniku połączonym szeregowo z diodą (pewnie by to zadziałało, bo ograniczyłoby prąd ładowania kondensatora, a najdłuższa przerwa jaka się może zdarzyć to ok. milisekundy) ale poszedłem za poradą wywalenia całego tego kondensatorowo-diodowego wynalazku i podłączyłem joystick bezpośrednio do pinu. Procedura odczytu wygląda teraz mniej więcej tak: for (;;) { while (!(PINB & _BV(PB1))); b=readADC(2); c=readADC(3); if (PINB & _BV(PB1)) break; } gdzie readADC to typowa funkcja odczytu. A wiem, znam to - robiłem ostatnio takie jeździdełko (nie skończyłem bo chińskie podwozie nadaje się do wszystkiego tylko nie do jeżdżenia) , cztery zderzaki i przycisk podłączone do jednego pinu ADC w Pro Mini, rezystory wzięte po prostu z szuflady bez żadnego dobierania. Gdybym chciał coś takiego zrobić sytuacja byłaby jeszcze prostsza, bo mógłbym skorzystać z faktu że nie wszystkie kombinacje klawiszy są dopuszczalne (nie da się wcisnąć jednocześnie lewo-prawo na czymś joystickopodobnym). W sumie nawet nie musiałbym się bawić w ADC0, dwa piny wystarczyłyby za całą klawiaturę. Chciałem jednak wykorzystać leżący sobie w szufladzie joystick, bo jest mały, płaski, sprawdził się już w jednej konstrukcji i drugi egzemplarz jest mi w tej chwili do niczego niepotrzebny. No to chylę czoła Niestety, mam wyświetlacz podłączony po i2c więc specjalnie nie zaszaleję - ale ani Tapper, ani Kazik nie wymagają jakichś wysokich FPS-ów Dzięki za informacje!
  15. Cześć! Bawię się ostatnio w projektowanie małej gry na ATtiny85 (coś mnie ugryzło i nie chce puścić dopóki czegoś nie zrobię). Projekt przeznaczony do szuflady, najprawdopodobniej skończy swój żywot na płytce stykowej - mimo to chciałbym wiedzieć czy to co robię jest w miarę przynajmniej poprawne. Od razu na wstępie: układ działa bez problemu, program poprawnie odczytuje pozycję joysticka, pobór prądu w stanie uśpienia 8 µa razem z wyświetlaczem (po odłączeniu wyświetlacza miernik pokazuje 0,2 µa, co prawda to ostatnia cyfra na najmniejszym zakresie mojego wspaniałego miernika ale chyba tyle powinno być przy 3 V). Program działa w ten sposób, że jeśli nie jest generowany dźwięk, na pinie PB1 jest jedynka. Założenie jest takie, że generowanie dźwięku i odczyt pozycji joysticka są niezależne. Na schemacie pominąłem podłączenie wyświetlacza (do PB0/PB2) i klawisza fire (do ADC0, jeszcze nie wiem czy będzie jeden klawisz czy dwa). Pytanie: czy sposób zasilania joysticka jest prawidłowy, czy czegoś zapomniałem? Joystick to po prostu dwa potencjometry, niestety po podłączeniu bezpośrednio do Vcc pobór prądu to 0.6mA, czyli trochę za dużo jak na ustrojstwo bez wyłącznika zasilane z bateryjki 2032... a zależy mi na jak najmniejszej ilości elementów (być może jakąś obudowę zaprojektuję i fajnie by było to wszystko w środku zmieścić).
  16. Dokumentacja serwera: https://httpd.apache.org/docs/2.4/howto/cgi.html Od strony pythona warto zajrzeć choćby tu: https://www.tutorialspoint.com/python/python_cgi_programming.htm To na początek powinno dać jako-takie pojęcie jak to się robi. Wbrew pozorom nie jest to takie skomplikowane - jak już się załapie zasadę to potem się dziwisz co ludzie w tym widzą trudnego
  17. Do czego to podłączasz? Wbrew pozorom to dość ważne...
  18. Z tego wynikałoby, że w przypadku zwiększenia liczby pasów (czyli podłączeniu równolegle rezystora/rezystorów) oporność uległaby zwiększeniu... <span class="ironia">Może faktycznie lepiej zabierać głos w tematach, o których ma się przynajmniej blade pojęcie...</span> Ja wyszedłem z założenia, że ograniczenie prędkości odpowiada rezystywności, a długość odcinka odpowiada "długości" (ech... jak to nazwać?) rezystora. Co zrobiłem źle? Jak jest dobrze? Jeśli dodasz "w jednostce czasu" to będziemy mieli piękny odpowiednik, prawda? Co do napięcia nie będę się kłócić, ale zaproponuj coś lepszego. Tu małe uściślenie: podoba mi się porównanie obwodu elektrycznego do autostrady czy siatki ulic - wielu osobom (właśnie początkującym) może pomóc zrozumieć podstawy, więc jeśli ktoś (Elvis?) zaproponuje jakąś ciekawą analogię byłoby pewnie miło...
  19. Jeśli chcesz zastosować analogię do autostrady, to (analogia dość daleka, ale obrazowa): napięcie to ilość samochodów na danym odcinku autostrady (z objazdami i równoległymi trasami włącznie) natężenie to ilość samochodów przejeżdżających przez odcinek w jednostce czasu opór to ograniczenie prędkości na danym odcinku pomnożony przez jego długość Może być? Ktoś zaproponuje lepszą analogię do napięcia (moja mi się nie podoba)?
  20. masz pin reset i zwierasz z gnd. jest jeszcze jedna możliwość, że chińczyk nie wgrał bootloadera. jeśli masz programator lub choćby jakieś uno czy pro mini spŕóbuj wgrać bootloader. spotkałem się z takim przypadkiem (co prawda w pro mini a nie pro micro, ale wszystko możliwe...)
  21. ostatni test - po podłączeniu zrób po jakichś 10 sekundach reset, powtórz to z tym że zrób dwa razy reset w odstępie sekundy. jeśli nie będzie reakcji windowsa to raczej procek nie żyje.
  22. tx i rx nie mają nic do komputera podłączonego przez usb. ten komputer to rozumiem na windowsie jest? to w chwili podłączenia do usb powinien się rozedrzeć o sterowniki do wykrytego nowego urządzenia. jeśli tego nie robi to masz chyba problem...
×
×
  • Utwórz nowe...