Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2435
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    171

Wszystko napisane przez Elvis

  1. @RFM Prosiłem żebyś dał spokój z pisaniem o "arduinowcach". To wcale nieeleganckie określenie. Nie napisałem również że Twoje projekty są "banalne" - napisałem że zbyt zaawansowane to nie są Bo tak uważam, że nic skomplikowanego nie reprezentują. Najlepiej chyba sam podsumowałeś to w opisie: "Przedstawiony tu projekt ma charakter edukacyjny." ... "Materiał ten po rozwinięciu jest doskonały jako praca końcowa dla absolwentów Wyższych Szkół Telekomunikacyjnych" Czyli jak słusznie napisałeś - po rozwinięciu byłby to poziom pracy inżynierskiej. Nie można chyba nazwać takiego projektu szczególnie zaawansowanym - ale i banalny też nie jest, ot praca jak to większość studentów ma do odwalenia. Ale nie chodzi o to żeby kogokolwiek oceniać, umniejszać, albo wyolbrzymiać jego dokonania. Więc proponuję przestać narzekać na Arduino oraz AVR - a zamiast tego zabrać się do roboty, albo najlepiej nauki. Bo kody które gdzieś się wcześniej pojawiły pokazują że jeszcze dużo zaległości do nadrobienia.
  2. Sam wklejasz linki do prostych projektów, więc nawet jeśli generalnie robisz coś zaawansowanego nie dałeś nam tego poznać.
  3. Ja jednak nie lubię określania osób używających Arduino jako arduinowców, jak dla mnie ma to dużo z generalizowania i piętnowania, szczególnie w kontekście wytykania niskich umiejętności itd. A pisanie że coś jest żałosne to tylko prywatna opinia - którą każdy może oczywiście mieć. Ale pamiętaj że inni mogą traktować twoje proste projekciki robione dla EP, czy EdW również jako żałosne. Może jednak lepiej unikać wyrażania takich negatywnych opinii?
  4. Chyba nie ma szans żeby dotarło, ale będę uparty i jeszcze raz spróbuję - Arduino jest przeznaczone dla osób które chcą się czegoś nauczyć. Co złego jest w powolnej obsłudze wyświetlacza - przecież to o wiele lepsze niż nic nie robić i nigdy wyświetlacza nie oprogramować. A jeszcze odnośnie klocków lego - Arduino to nie tylko UNO, tak samo jak LEGO ma inne klocki niż Duplo dla najmłodszych. Więc takie porównywanie stm32 z Arduino UNO nie ma zupełnie sensu i odnoszę wrażenie że służy wyłącznie podnoszeniu własnego ego przez wklejanie linków do ciągle tych samych projektów. A tak żeby pokazać że nawet z LEGO można coś ciekawego złożyć: https://www.motofakty.pl/artykul/bugatti-chiron-z-klockow-lego.html O zawodach robotów zbudowanych z LEGO nawet nie wspominając.
  5. Jeszcze raz, bo nie dotarło - Arduino nie jest rozwiązaniem na wszystkie problemy świata i nie nadaje się do każdego projektu. Tak jak pisałem, to elektroniczny odpowiednik klocków LEGO, pozwala na łatwe rozpoczęcie nauki elektroniki i programowania, tworzenie własnych urządzeń i dobrą zabawę. Nie wszystko z klocków LEGO można zbudować, ale i tak cuda jakie z nich ludzie robią są niesamowite. I tak samo jest z Arduino. Nie ma chyba zbyt wielu zaczynających przygodę z elektroniką, których największym marzeniem jest slave 1-wire w trybie jakimśtam. Ale gdyby jednak ktoś taki sie znalazł i co więcej planował zrealizować projekt za pomocą Arduino to moim zdaniem wystarczy użyć Arduino MKR Vidor 4000 (https://store.arduino.cc/mkr-vidor-4000) Płytka jest jak najbardziej oryginalnym Arduino, chociaż z modelem UNO nie ma wiele wspólnego. W każdym razie na pokładzie ma 3 układy/procesory: SAMD36 z rdzeniem Cortex-M0, ESP32 do komunikacji przez WiFi oraz układ FPGA (Cyclone 10 o ile dobrze pamiętam). Na rdzeń Cortex-M0 można pisać programy używając Arduino IDE, biblioteki są dostarczone i działają jak na UNO. Jest również możliwość wgrania do SAMD36 emulatora USB-Blastera, czyli JTAG-a dla FPGA i tworzenia własnych projektów na układzie programowalnym. W ten sposób można spokojnie zrobić slave 1-wire za pomocą Arduino Tylko ile osób coś takiego zrealizuje...
  6. @RFM a nie pomyślałeś nawet przez moment, że może po prostu nie jesteś targetem dla Arduino? Klocki LEGO nie są doskonałe, a pozwalają początkującym rozwijać wyobraźnie, budować własne konstrukcje i po prostu dobrze się bawić. Arduino to takie klocki dla osób zainteresowanych elektroniką - ale nie są dla każdego. Skoro dłubiesz programiki w asemblerze, to prawdopodobnie etap zabawy klockami masz już za sobą. Z drugiej strony umiejętność programowania to wcale nie poznawanie rejestrów i instrukcji asemblera - więc wbrew pozorom więcej można się nauczyć używając Arduino niż dłubiąc w asemblerze. W końcu jeśli ktoś planuje pisać jakiekolwiek większe programy niż proste sterowniki i tak będzie musiał opanować programowanie wysokopoziomowe. A asembler oczywiście warto znać, ale w dzisiejszych czasach zapotrzebowanie na jego użycie jest bardzo ograniczone.
  7. Wydaje mi się, że ta cała dyskusja zupełnie nie ma sensu, przecież nikt nikomu nie każe używać AVR. Jak ktoś chce to może, ma takie prawo, a jak nie chce - to nie, jego wybór. Chciałbym natomiast podkreślić że Arduino to znacznie więcej niż Arduino Uno i atmega328.
  8. A to bardzo przepraszam Po prostu byłem przeciwny pisaniu że coś jest "złe", albo "dobre" - bo wszystko zależy od kontekstu i zastosowania. Rozwiązanie, które świetnie sprawdza się w jednej sytuacji, może być zupełnie nieprzydatne w innej (i odwrotnie). Przykładowo Arduino zdobyło ogromną popularność dzięki prostocie użycia oraz łatwości nauki dla początkujących. Nie jest doskonałe, można wytykać mu mnóstwo wad, ale chyba nikt nie może zaprzeczyć, że dzięki niemu wiele osób rozpoczęło przygodę z elektroniką oraz informatyką, pozwoliło wielu konstruktorom-amatorom zrealizować ich plany i projekty. Więc moim zdaniem nie ma rzeczy idealnych - stm32 też idealne nie są, brak debuggera wcale nie uniemożliwia programowania. Natomiast pisanie o tak popularnym produkcie że nie nadaje się do niczego chyba najlepiej opisuje cytat: "Pomnij, że sąd laika - gdy mówi o dziele - O dziele mówi mało; o laiku: wiele."
  9. Ciekawe co znaczy że "Arduino jest złe"? Każdy się czasem zezłości, ale żeby płytki przeznaczone do nauki programowania się złościły na kogokolwiek to pierwsze słyszę. Chociaż z drugiej strony TensorFlow jest już na Andruino dostępny, więc może nie tylko wykazuje sztuczną inteligencję, ale i emocje potrafi okazywać. W sumie ciekawy temat, mam nadzieję że autor wątku wyjaśni co miał na myśli pisząc o złości wykazywanej przez Arduino. No i mam nadzieję, że ta złość nie wynika z ciągłego narzekania na ten poniekąd popularny produkt
  10. Czy ten kod nie jest przypadkiem napisany za pomocą bibliotek Arduino? Tak tylko pytam, bo podobno to zło wcielone, absolutnie nic nie warte i używane wyłącznie przez zupełnie początkujących amatorów.
  11. A ja się wtrącę, chociaż wcale nie po to żeby komukolwiek przyznawać lub ujmować rację. Chciałbym tylko wyjaśnić kilka spraw zanim osoby zaczynające przygodę z Raspberry Pi lub innymi komputerami jednopłytkowymi zupełnie się pogubią. Tematem tej dyskusji jest robienie tworzenie kopii zapasowej zawartości karty SD - a to można zrobić na wiele sposobów. Typowe obrazy kart mają rozszerzenie .img i zawierają dokładną kopię - sektor po sektorze całej karty. Taki obraz jest dość duży, ponieważ zawiera zarówno ważne dane, jak i ogromne ilości samych zer umieszczonych w nieużywanych obszarach pamięci. Jego zaletą jest prostota użycia - wystarczy włożyć kolejną kartę do czytnika i nagrać obraz. W ten sposób dostajemy dokładną kopię zawartości karty, niejako niezależnie od systemu (możemy tak skopiować zarówno obraz Raspbiana, Windowsa IoT, czy Androida), ale również niezależnie od platformy (tak samo przygotujemy i nagramy obraz np. dla Odroid-N2, czy STM32MP1). Wadą takiego rozwiązania jest wspomniana wielkość obrazu, która odpowiada wielkości karty. Co prawda taki obraz można bardzo skutecznie skompresować, ale "goły" plik będzie miał wielkość zbliżoną do pojemności pamięci, czyli powiedzmy 16GB, 32GB itd. Natomiast metoda zaproponowana przez kolegę @ethanak działa zupełnie inaczej - zamiast kopiować wszystko co jest na karcie i tworzyć dokładny obraz, kopiujemy tylko pliki. To znacznie bardziej przypomina postępowanie na standardowym komputerze, bo w końcu robiąc backup naszych super-fajnych projektów najczęściej kopiujemy tylko pliki, a nie cały obraz dysku, który zawiera terabajty zer, albo nieużywanych danych. Stosowanie takiej metody wymaga jednak nieco więcej wiedzy i bywa trudniejsze przy odzyskiwaniu obrazu. Warto natomiast zapamiętać, że w przypadku Raspberry Pi cały obraz systemu jest przechowywany w postaci plików - więc można zastosować obie metody. Każda ma wady i zalety, o których warto byłoby podyskutować, ale w znacznie spokojniejszej atmosferze. Są również dostępne platformy, gdzie nie wszystkie dane są zapisywane w postaci plików - i wówczas metoda zaproponowana przez kolegę @ethanak-a nie zadziała, albo raczej nie całkiem. Ale w przypadku Raspberry Pi, rsync jak najbardziej nadaje się do tworzenia kopii zapasowej karty - i za jego pomocą można skopiować tylko zmienione pliki, nie zachowując ogromnej ilości niepotrzebnych danych.
  12. @PrimeSoul przeklikałem cały przykład w najnowszym CubeMX 5.4.0 i wszystko działa poprawnie - chociaż używam aktualnie Atollica zamiast OpenSTM32. Wcześniej te same przykłady robiłem na CubeMX 5.3.0 używając OpenSTM32 i ten przykład działał bez problemu. Sprawdź, czy na pewno wybrałeś poprawnie wszystkie opcje odnośnie DMA, w szczególności kierunek: "Memory To Peripheral" Jak przystało na programistę mogę spokojnie napisać "u mnie działa"
  13. W tej chwili zupełnie nie pamiętam tego przykładu Ale wydawało mi się że wszystko działało poprawnie. Mogę później spróbować wykonać ten przykład na aktualnym CubeMX i dać znać czy u mnie działa
  14. Skoro za pomocą LED-a i multimetru widzisz, że pin jest poprawnie sterowany, to nie musisz nic w kodzie zmieniać - przecież działa poprawnie. O ile rozumiem problem jest albo z działaniem samego programu, albo sterownikiem silnika. Jeśli podłączysz diodę i uruchomisz program, to działa / miga poprawnie? Pytanie pomocnicze: z czego zasilasz silnik oraz bluepill?
  15. Pierwsze pytanie - czy używasz płytki Nucelo-103rb, czy czegoś innego? Chodzi mi głównie o to czy używane piny są wolne. Druga sprawa - próbowałeś testować diodą led lub multimetrem? Warto zacząć od czegoś prostego, upewnić się że sterowanie pinem działa i dopiero wtedy podłączyć silnik. I ostatnie pytanie - testowałem na Nucleo103rb kod sterujący PA15, inicjalizacja taka jak u Ciebie, tylko z dwoma linijkami o których pisałem wcześniej - mógłbyś sprawdzić czy taki program działa poprawnie? Jeszcze jedno pytanie - napisałeś: "wstawiając breakpointy i przeglądając ODR można zauważyć, że stan na pinie zmienia się," - jak rozumiem to znaczy że zmienia się wartość w rejestrze ODR, co w sumie jest oczywiste - ale czy testowałeś stan pinu?
  16. Może i faktycznie CubeMX, jakoś się zapatrzyłem na "Korzystając z kursu STM32 F1 HAL #4". W każdym razie PA15 został wybrany nieco niefortunnie. W datasheecie jest taka informacja: Jak widać domyślnie ten pin jest używany przez interfejs JTAG. Dlatego może nie działać jeśli go odpowiednio nie skonfigurujemy. Po pierwsze wybierając piny trzeba sprawdzić do czego są podłączone oraz w dokumentacji upewnić się, czy to na pewno zwykły pin, a nie jakiś "specjalny". W tym przypadku pewnie najłatwiej byłoby skorzystać z innego pinu i po sprawie. Natomiast jeśli bardzo chcemy używać PA15, a JTAG nie jest nam potrzebny, trzeba zmienić jego funkcję na GPIO: __HAL_RCC_AFIO_CLK_ENABLE(); __HAL_AFIO_REMAP_SWJ_NOJTAG(); Właśnie dlatego pytałem o kod konfigurujący pin - bo jeśli tego wywołania w nim nie ma, to PA15 ma prawo nie działać. Tzn. działa, ale jako JTDI i stan ODR nie ma najmniejszego znaczenia. Z tego co widzę CubeMX nie wyłącza JTAG-a, więc możliwe że to była przyczyna całego zamieszania.
  17. @Bornhartt Pokaż kod, którym konfigurujesz pin PA15.
  18. Z tego co pamiętam, reguły PPF na forum zabraniają takich osobistych przepychanek, przechwałek itd. Proponuję użyć google, skoro o [Imię i nazwisko usunięto], czyli RFM / es2 / InspektorzeGadget można wszystko wyszukać - zarówno doświadczenie zawodowe, wykształcenie, jaki i projekty, którymi się tutaj przechwala - to i o mnie można. Wystarczy tylko chcieć.No chyba że poznanie obsługi google to też rok ciężkiej pracy
  19. Tak jak wcześniej myślałem, ten temat wcale nie służy opisaniu akceleratora, czy jak ten sterownik wyświetlacza się nie nazywa, tylko przechwalaniu się i budowaniu własnego ego. Nie zamierzam się do tego przyłączać, bo to chyba niezgodne z nową polityką forum (PPF), chociaż czasem faktycznie ciężko się powstrzymać. A odpowiadając możliwie ogólnie, żeby nie być posądzonym o personalne wycieczki - tak pracowałem z różnymi mikroprocesorami i mikrokontrolerami, w tym opartymi o rdzenie ARM. Wiem jakie narzędzia się do tego używa i jak skomplikowane jest to zadanie. Więc jeszcze raz napiszę - przesiadka z atmegi na stm32 to nie jest skomplikowane zadanie. Zaletą stm32 jest bardzo rozbudowana rodzina układów, więc jak ktoś pozna małe i proste jak chociażby stm32f2, zawsze może zająć się trudniejszymi - jak chociażby wspomniany stm32h7, albo stm32mp1. Ale jeszcze raz podkreślam - to nic trudnego, a już na pewno poznanie tych układów nie upoważnia nikogo do przechwalania się, ani ubliżania osobom używającym Arduino.
  20. ARM nie ma peryferiów, bo to nazwa firmy. Nawet Cortex-M3 prawie peryferiów nie ma - raptem NVIC, SysTick, pewnie kilku teraz nie pamiętam. Cała reszta to dzieło firmy ST (czy tam STMicroelectronics), w zależności od wybranego układu modułów jest więcej lub mniej, ale nie demonizujmy - przez 3 lata to można się nauczyć własne moduły projektować. Moim zdaniem przesiadka z atmegi na stm32 to nic specjalnie trudnego. Wymaga trochę wysiłku, ale w żadnym wypadku to nie jest tytaniczne wyzwanie, a opanowanie peryferiów stm32 to wcale nie powód do dumy i chwały. Po prostu kolejny mikrokontroler, ani najtrudniejszy, ani najłatwiejszy do opanowania.
  21. W sumie to offtopic, ale jedna rzecz nie daje mi spokoju: Rok to 52 tygodnie, mnożąc przez 6 dni i 10h daje to 3120 godzin, czyli w przeliczeniu na typowy etat 160 godzin miesięcznie - 20 miesięcy. Przyjmując 16 godzin i 7 dni w tygodniu to już 5824 godziny, czyli 36 miesiące, a więc 3 lata pracy na pełny etat... I tak się zastanawiam, dlaczego opanowanie prostych ARM Cortex-M zajęło aż tak dużo czasu? Dla porównania studia inżynierskie to ok. 2000-2500 godzin, a znam niejednego studenta, który pisze całkiem sprawnie programy na STM32. To kwestia talentu, zdolności, czy całe to oszacowanie potrzebnego czasu to jedna wielka bajka?
  22. Dodatek w postaci modułu ISD nie jest zbędny, jest ważnym elementem projektu. Ten sam projekt można zrealizować na mnóstwo sposobów, jedne są lepsze, inne gorsze - ale które są jakie zależy od kryteriów oceniania. Czasem lepsze jest to co wymaga mniej elementów, ale innym razem to co jest np. bardziej bezawaryjne, albo łatwiejsze (szybsze) do implementacji. Nie można tak odgórnie zakładać, że coś jest złe bo mi się nie podoba, albo jest do niczego bo ja bym to inaczej zrobił. W sumie tak podchodząc do tematu można każdy projekt skrytykować, a chyba nie o to chodzi. Projekt kostki nie będzie produkowany seryjnie, powstał aby zrealizować pewną funkcjonalność i z tego co pisze autor - spełnia oczekiwania.
  23. A jest niby związek tego "akceleratora" z mówiącą kostką? Użytkownik @jerzyz opracował projekt, opisał jak go zrobił - i bardzo dobrze, miło widzieć że osoby przygotowują swoje projekty, maja z tego dużo zabawy i potrafią się nią podzielić z innymi.
  24. A tak z ciekawości zapytam - czemu właściwie służy ten temat?
  25. @muchac35 trochę się nie zrozumieliśmy - dla mnie GPIO oznacza General-purpose input/output (https://en.wikipedia.org/wiki/General-purpose_input/output), czyli po prostu pin mikroprocesora. Skoro podłączyłeś wiatraczek do linii zasilania 3.3V to zupełnie inna sprawa i większość moich uwag (poza zakłóceniami) jest nieaktualna.
×
×
  • Utwórz nowe...