Skocz do zawartości

Tablica liderów


Popularna zawartość

Pokazuje zawartość z najwyższą reputacją od 13.11.2019 we wszystkich miejscach

  1. 5 punktów
    Panie Skrzyński, to bardzo nieładnie czepiać się tego co robi ktoś inny, szczególnie jeśli wymienia się go z nazwiska. Rozumiem że ma pan ogromny żal i przemawia przez pana ogromna zawiść, że prace p. Kardasia, które nie tylko są przez wiele osób lubiane, ale jeszcze wspierane znacznymi kwotami. Jednak to forum nie jest miejscem na terapię i leczenie kompleksów - prosiłbym o unikanie takiej krytyki. Oczywiście można napisać że nie powinno się używać układów poza zakresami wskazanymi przez producenta, ale pamiętajmy, że zarówno konstrukcje pojawiające się na tym forum, kursy p. Kardasia, jak i artykuły w EP, czy EdW to wszystko amatorskie i hobbistyczne zastosowania.
  2. 4 punkty
    Hej, w tym wpisie chciałbym przedstawić moje postępy z budową generatora laboratoryjnego, nad którym ostatnio pracuję. Główne założenia: - cyfrowo przestrajana częstotliwość, aż do 25MHz, - cyfrowo regulowana amplituda, - komunikacja z komputerem przez protokół SCPI (standard komunikacji dla urządzeń pomiarowych), - dodatkowy 12 bitowy ADC i kilka wyjść procka wyprowadzonych na zewnątrz, by urządzenie było bardziej uniwersalne. - komunikacja z użytkownikiem poprzez wyświetlacz, wybór ustawień poprzez enkoder. Poniżej znajduje się schemat blokowy urządzenia (wykonany w LaTeXu). Poniżej znajduje się render aktualnego zarysu płytki, wciąż nie do końca wiem, jak rozmieścić gniazda, enkoder i wyświetlacz. Planuję, że na przodzie będzie enkoder, wyświetlacz i gniazdo USB, a z tyłu wyjścia GPIO, ADC i wyjście generatora. Część modeli 3D zrobiłem sam (BNC, zielone gniazdo, enkoder, malutkie gniazda RF) w OpenSCAD, później zostały one zaciągnięte do FreeCAD, który ma wsparcie dla tworzenia elementów dla KiCADa. To dość pogmatwane, ale pozwala tworzyć modele w języku programowania OpenSCAD. Na schemacie niżej widać generator DDS, wzorowałem się na nocie katalogowej, więc powinno być w miarę ok. Filtry widoczne na wyjściu na razie nie są obliczone. Na poniższym schemacie znajduje się wzmacniacz, nie jestem pewien, czy obwody Vin- i Vin+ są dobrze zaprojektowane. Reszty schematów nie wklejam, bo nie ma tam nic ciekawego, gdyby ktoś chciał zobaczyć, to wszytko znajduje się na GitHubie Części softowej na razie nie ma, ale napiszę ją w C, zaś sam parser SCPI najprawdopodobniej powstanie w języku Forth - spróbuję osadzić jego interpreter na procesorze. W planach mam też zrobienie obudowy 3D, takiej, która pozwalałaby na łatwy dostęp do tych malutkich gniazd radiowych widocznych w lewym górnym rogu renderingu, coś, jak klapka na baterie w pilocie. To też zaprojektuję w OpenSCAD. Zapraszam na GitHub projektu.
  3. 3 punkty
    Na szybko kilka pytań kontrolnych po rzucie oka na schematy: Jak chcesz z zegara 25MHz (albo jakiegoś innego, ale chyba większy być nie może w tym scalaku) metodą DDS uzyskać 25MHz na wyjściu, gdzie z definicji dostajesz połowę a i to zaśmieconą jak plaża w Sopocie? W jaki sposób chcesz utrzymać jakąkolwiek czystość spektralną sygnału stosując filtr przepuszczający zegar DDSa na wyjście? Innymi słowy na jaką częstotliwość odcięcia zaprojektowałeś ten filtr, bo mi z pobieżnych obliczeń wychodzi coś ok. 70-80MHz a powinien być max na kilka MHz i na tyle co najwyżej powinieneś liczyć na wyjściu jeśli urządzenie ma nie być zabawką do oglądania dziwnych przebiegów na oscyloskopie.. Wejścia wzmacniacza 8325 powinny być sprzężone zmiennoprądowo. Co prawda mają one podobny bias, ale moim zdaniem nie możesz na tym polegać i próbować zwierać je opornikiem, bo może to zaburzyć pracę wewnętrznych układów polaryzacji tych wejść. Acha, filtr masz zakończony impedancją 50R i tu znów na wejściu masz 50R co razem daje 25R. Tak miało być? Ogólnie filtr wygląda jak przerysowany w ciemno blok z czegoś innego. Np. po co jest zestaw C15/C16 skoro zaraz dalej masz C51? Do jakiej częstotliwości od dołu chcesz zejść? Bo to wyznacza sposób sprzężeń pojemnościowych a w typowo RF-owym środowisku 50R trudno schodzić do obszaru np. audio. Nie wiem z jakiego sufitu wziąłeś modele do swojej ślicznej wizualizacji, ale indukcyjności 150nH tak nie wyglądają. Może spróbuj poszukać ich w sklepie, bo jeśli nie wstawisz na PCB czegoś w obudowie 805 albo 603 to możesz się zdziwić ich parametrami RF. Poza tym nawet gdybyś robił filtr na 1MHz i z jakiegoś powodu użył jednak dużych cewek przewlekanych,, to takie ich fizyczne ułożenie spowoduje, że będą się rewelacyjnie sprzęgać i cały filtr możesz potłuc o kant d.. EDIT: OK, widzę zdanie: "Filtry widoczne na wyjściu na razie nie są obliczone." To może zrób to, bo to jeden z kluczowych elementów tego urządzenia.
  4. 2 punkty
    Witam. Na samym początku chciałbym powitać Administratora, Moderatora jak również wszystkich użytkowników forum forbot. Ja jestem Szymon i od niedawna zaciekawiło mnie coś tak niezwykłego czym jest Arduino. Będę stawiał swoje pierwsze kroki w tej tematyce. Mam już upatrzony zestaw, z którym rozpocznę swoją przygodę z robotyką - mam nadzieję, że wciągnie mnie na dłuższy czas. Pozdrawiam
  5. 2 punkty
    No na spokojnie, jak coś chętnie pomożemy. Analiza kodu bibliotek może być bardzo przydatna, pomijając rozwiązanie konkretnego problemu, ale zawsze można podpatrzeć sposób w jaki może podejść do niektórych problemów.
  6. 2 punkty
    Nie wiem w ogóle jaki jest sens podłączania klawitury matrycowej przez ekspander. Przecież procesor nie będzie robił nic innego jak tylko w kółko młócił I2C. @jare72Naprawdę nie odróżniasz pinów procesora i sposobów dostępu do nich od wyniesionych gdzieś przez wolną magistralę szeregową linii ekspandera? Dostajesz nowe piny na których możesz powiesić jakieś lampki, przekaźniki lub zwykłe przyciski, ale na litość, nie podłączaj tam klawiatury wymagającej ciągłego przeglądania To nie do tego służy i nawet jak to opanujesz to albo zeżre całą moc procesora albo będzie przyczyną innych kłopotów. Równoczesne multipleksowanie diod czy wyświetlacza i klawiatury podłączonej do lokalnych pinów procesora robisz trywialnie.
  7. 2 punkty
    Nie musisz testować wszystkich możliwych kolorów - potrzebujesz tak naprawdę 6 liczb, czyli minimalnej i maksymalnej wartości, która jest zwracana przez pulseIn() dla trzech kolorów w używanym przez Ciebie otoczeniu. Później możesz te wartości wstawić do map(). Musisz tylko doczytać jak działa ta funkcja: https://www.arduino.cc/reference/en/language/functions/math/map/ Wykonuje ona proste skalowanie, czyli: long map(long x, long in_min, long in_max, long out_min, long out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } Więc jeśli wartość x, czyli wejście jest poza zakresem in_min - in_max, to i wynik jest poza zakresem out_min i out_max. Będziesz musiał więc odczytany wynik ograniczyć jeśli wyszedł poza zakres, albo jeszcze lepiej - ograniczyć wartość danej wejściowej, czyli x.
  8. 2 punkty
    @startrek1p2p wyłącz na chwilę wywołania funkcji map(), będzie można wtedy zobaczyć jak wyglądają same odczyty z czujnika. Wygląda na to że, twój czujnik zwraca wartości z innego przedziału niż zakładasz - zacznij więc od sprawdzenia, jakie są to wartości i czy zmieniają się zgodnie z oczekiwaniami.
  9. 2 punkty
    Hej, przecież piny A4 i A5 to to samo co SCL/SDA, nie możesz ich używać razem z I2C!
  10. 2 punkty
    @FlyingDutch Ubuntu (konkretnie KDE Neon, niedawno przełączyłem się na Kubuntu 18.04, zainstalowałem ale jeszcze nie odpaliłem). Co do GPU to RX470, wymagana jest minimum seria RX4xx, na RX380 nie chciało mi działać bo ma zbyt niską wersję GCN.
  11. 2 punkty
    Ależ się wątek zrobił Wyraźnie brakuje nam wyzwań. @grg0 Masz oczywiście rację, wzmacniacz różnicowy na pierwszym schemacie włączony jest odwrotnie. @GieneqTy też masz rację, wzmacniacz różnicowy faktycznie jest często wykorzystywany do zdejmowania napięcia z rezystora pomiarowego, ale nie w takim prymitywnym wykonaniu. Taki układzik sklecony z oporniczków możezs zbudować gdy chcesz pozbyć się niewielkiego napięcia wspólnego z jakichś dwóch punktów o wystarczająco dużym napięciu różnicowym. Gdybym miał zdjąć 500mV z opornika zawieszonego na potencjale 1V to pewnie bym poszedł po takiej taniości, ale gdy masz ściagać miliwolty z szyny 12V to zaczyna być rzeczywoiście problem CMRR i nie można tego zaniedbać. Wzmacniacz w tej konfiguracji zrobiony z typowych oporników 5% może mieć CMRR nawet i 20-40dB (a oczekujemy 100dB?) więc jeśli masz zmierzyć 50mV na poziomie 12V to błąd wynikający z samej wysokości tej szyny może wynieść i 100mV czyli 200%. Słabo, prawda? To oczywiście liczenie na najgorszy przypadek, w praktyce tak źle pewnie nie będzie szczególnie gdy usiądziemy z dobrym omomierzem i podobieramy oporniki do 0.1%. A w scalakach to co innego. Płacisz kilka złotych i masz albo wzmacniacz pomiarowy z CMRR powyżej 100dB albo kupujesz specjalizowany układ do pomiarów pradu high-side. Ja jednak polecałbym tanie rozwiązanie zaproponowane przez RFM: opornik w linii low-side czyli "w masie". Wzmacniacz nie musi tu borykać się z dużym napięciem wspólnym - wystarczy zwykła konfiguracja nieodwracająca a akumulatorowi jest wszystko jedno w której linii ma opornik. Z drugiej strony to nie układ pomiarowy tylko prosty wyłącznik. Zakładając, że napięcie jest w miarę stałe (12-14V?) to nawet kiepski CMRR można skompensować zwyczajnie ustawiając pożądany próg odłączania przy pomocy amperomierza i potencjometru. @RFMChcąc utrzymać straty na oporniku na małym poziomie bez wzmacniacza się nie obejdzie - to jasne, i raczej układy z pomiarem tranzystorowym odpadają. Nawet ta dioda szeregowa Schottky podbijająca napięcie, przy 10A jest chyba słabym pomysłem. Przy 1A dostaniesz na niej pewnie z 0.7V a to już jest 7W. Moim zdaniem na 0R1 przy prądzie 10A wydzieli się raczej 10W niż 1W więc trzeba zejść jeszcze niżej z rezystancją i podciagnąć wzmocnienie. Komparator wyłącznie z histerezą bo to co pokazałes będzie bardzo chimeryczne. Ja bym przemyślał, czy nie trzeba dać jakiegoś porządnego filtrowania sygnału przed komparacją, bo te prostowniki do akumulatorów to jedno wielkie badziewie. Nie zdziwiłbym się, gdyby w tym były dwie gołe diody i transformator a to oznacza chwilowe wahania prądu od zera do 1.5(?) wartości skutecznej. I jeszcze pytanie do Autora: po co w ogóle chcesz odłączać ten akumulator? Przecież nie zaszkodzi mu chyba, że postoi trochę dłużej na prostowniku zapewniającym kontrolę napięcia końcowego. W sumie dobrze tu widać jak trudno zoptymalizować i podać komuś na tacy prosty układ co do którego nie ma żadnych założeń, ani co do budżetu, ani co do skomplikowania, dokładności czy choćby trudności wykonania czy zakupu elementów. Każdy z nas zrobiłby to inaczej i zapewne każdemu by działało. To też oznacza, że nie ma jednego dobrego rozwiązania a z kolei do każdego schematu można się przyczepić i coś w im poprawić. I to jest fajne
  12. 2 punkty
    GPU jest potrzebne gdy używa się naprawdę sporych zbiorów danych. Dla mniejszych problemów spokojnie wystarcza CPU, nigdy na GPU nie uczyłem modelu dłużej niż ~30 minut. Zwykle większym problemem jest ilość RAMu w GPU, którego nie ma z uczeniem na CPU. I tak 90% czasu zajmuje preprocesing danych. Na Radeonach tensorflow też działa: https://github.com/ROCmSoftwarePlatform/tensorflow-upstream/blob/develop-upstream/README.ROCm.md . Sam tak używam (w połączeniu z Kerasem). Bardzo proste tak Ale raczej idziemy w kierunku IoT które wysyłają dane na klastry
  13. 2 punkty
    Można mieć komercyjne produkty w pełni amatorskie - jako przykład weźmy chociażby zestawy AVT. Nie wszystko za co ktoś płaci jest profesjonalne - i odwrotnie, wiele produktów typu open-source, open-hardware itd jest darmowych, a często w wiele lepszej jakości niż niejeden płatny projekt. Na AVR można opracować w pełni profesjonalny projekt, a na ARM mieć zupełnie skopaną amatorszczyznę - więc nie ma sensu porównywać architektur i rozwiązań, podbudowywać własne ego dopiero co poznanym mikrokontrolerem. To co zaproponował p. Kardaś o ile wiem jest rozwiązaniem skierownym do amatorów, osób które chcą się nauczyć programowania, poznać podstawy elektroniki. I chyba jest to dobry wyrób skoro wiele osób go kupuje i sobie to chwali - jak to się mówi, zagłosowali portfelami
  14. 2 punkty
    Idea działania Komora jonizacyjna, to urządzenie składające się z dwóch elektrod do których doprowadzane jest stałe napięcie, co powoduje powstanie pola elektrycznego w jej środku. Gdy kwant promieniowania "uderzy" w atom gazu znajdującego się w komorze, "rozbija" go na dwa jony (dodatni i ujemny), które są przyciągane do elektrod (dodatni do ujemnej i vice versa). Mierząc prąd płynący między dodatnią, a ujemną elektrodą, będzie on proporcjonalny do ilości tych jonów, zaś to będzie proporcjonalne do mierzonego promieniowania. Utrudnieniem jest, że wspomniane prądy są małe, więc wymagają dużego wzmocnienia, co zaś wymaga m.in. starannego filtrowania zasilania, oraz ekranowania, by urządzenie się nie wzbudzało. Poniżej znajduje się schemat blokowy prezentowanego rozwiązania. Część elektroniczna Pierwotnie do wytworzenia napięcia polaryzującego, miałem w planach użycie przetwornicy, jednak okazało się, że napięcie 12V z baterii jest wystarczające. Sygnał z komory trafia do wzmacniacza transimpedancyjnego, w pętli sprzężenia znajdują się szeregowo dwa rezystory o wartości aż 50G. Połączenie owych rezystorów, elektrody komory jonizacyjnej i nóżki wzmacniacza musi być wykonane w powietrzu, by uniknąć pasożytniczych rezystancji. Poniżej znajduje się render w KiCADie, oraz rzeczywiste urządzenie (wiem, fotka jest dość niskiej jakości). Część programistyczna Sygnał analogowy trafia do przetwornika ADC, i jest zbierany przez procek - tu użyłem dość mało popularnego STM8. Zaskoczeniem było dla mnie, że GCC nie obsługuje tych procesorów, zaś poświęcony im SDCC nie umie wycinać z binarki funkcji, które nie są używane! Do komunikacji z hardwarem użyłem stdperiph. Komunikacja z światem zewnętrznym jest jednokierunkowa (urządzenie wysyła pomiary co kilka sekund) za pomocą UARTa. Założeniem było, by urządzenie można było pozostawić same sobie i zdalnie je flashować, czy też pobierać z niego dane. W skrócie, wolę programować leżąc w łóżku, niż garbiąc się nad stołem pełnym kabli :) Zostało to zrealizowane przez dodanie Raspberry Pi, do której podpięty jest zarówno programator, jak i przelotka UART/USB. Soft na procka napisałem w C. Pobieranie danych po stronie maliny jest wykonywane przez skrypt w Pythonie, dane są wizualizowane skryptem w R. Użyłem R, mimo, że Python też ma biblioteki do tworzenia wykresów, bo bardzo podobają mi się wykresy w R. Dokumentacja powstała w LATEXie. Całość dostępna jest na GitHubie - zapraszam do odwiedzenia Wyniki Poniżej znajdują się dane pomiarowe zebrane za pomocą urządzenia.
  15. 1 punkt
    @Treker przecież to normalny sposób zapisywania "true", nie wiem o co chodzi. @Maks22 najpierw odczytujesz analogowo stan pinu i go wysyłasz na serial a potem odczytujesz go cyfrowo? Dlaczego?
  16. 1 punkt
    Hej, poniżej kod z którym mam problem. W monitorze portu szeregowego wpisuje mi cały czas pierwszy przycisk, chociaż nic nie naciskam i nie wiem czemu tak się dzieje. Wiem, że można skorzystać z biblioteki keypad, ale muszę sam ogarnąć program, bo w trakcie monitorowania naciśnięcia przycisku ma wykonywać się multipleksowanie diod więc muszę to ze sobą połączyć, żeby miganie diod nie było zauważalne przez ludzie oko. Ewentualnie jeśli macie jakiś pomysł jak połączyć miganie diodami z monitorowaniem klawiatury w tym samym czasie to chętnie wysłucham. #include <Wire.h> #include <Adafruit_MCP23017.h> Adafruit_MCP23017 ekspander; const int ROWS[] = {13,12,11,10}; const int COLS[] = {0,1,2,3}; const int NUM_ROWS = sizeof(ROWS)/sizeof(int); const int NUM_COLS = sizeof(COLS)/sizeof(int); const char KEYS[NUM_ROWS][NUM_COLS] = { {'1','2','3','4'}, {'5','6','7','8'}, {'9','A','B','C'}, {'D','E','F','G'} }; void setup() { Serial.begin(9600); ekspander.begin(0x01); for(int x = 0; x < NUM_ROWS; x++) { ekspander.pinMode(ROWS[x], OUTPUT); ekspander.digitalWrite(ROWS[x], LOW); } for(int x = 0; x < NUM_COLS; x++) { ekspander.pinMode(COLS[x], INPUT_PULLUP); } } void loop() { char key = readKey(); if(key) Serial.println(key); } char readKey() { for(int x = 0; x < NUM_ROWS; x++) { ekspander.digitalWrite(ROWS[x], HIGH); for(int y = 0; y < NUM_COLS; y++) { if(ekspander.digitalRead(COLS[y]) == HIGH) return KEYS[x][y]; } ekspander.digitalWrite(ROWS[x], LOW); } return 0; }
  17. 1 punkt
    Ruch liniowy masz na myśli po linii prostej? W takiej sytuacji przyda Ci się kinematyka odwrotna, gdzie określasz punkt (efektor) w przestrzeni kartezjańskiej, a wszystkie kąty w przegubach są obliczane. Wydaje mi się, że w tym przypadku możesz podejść do tematu algebraicznie i po prostu wyznaczyć wzór. W tego typu robocie nie powinno być miejsca na kilka przypadków, czy sytuację że musisz parametryzować zmienną, żeby uzyskać konkretną odpowiedź. Na początek możesz skorzystać ze współrzędnych walcowych gdzie podstawa to okrąg (współrzędne biegunowe), a położenie efektora to pewien promień w podstawie i wysokość. Taka sytuacja się upraszcza, bo zostaje Ci do wyznaczenia ruch fragmentu robota w płaszczyźnie. Zostaniesz wtedy z 2 przypadkami gdzie "łokieć" robota jest nad lub pod prostą, odrzucasz jeden z wyników i masz wzór wprost.
  18. 1 punkt
    Dla większego porządku pytanie wydzieliłem z kursu, ponieważ nie dotyczy ono bezpośrednio omawianych tam ćwiczeń. Tutaj będzie łatwiej utrzymać porządek w dyskusji i nie będziemy mylić osób szukających informacji o programach z kursu. Źródło pytania: https://forbot.pl/forum/topic/8164-kurs-arduino-6-kontynuacja-uart-serwomechanizmy/page/10
  19. 1 punkt
    @marco witam na forum Czy masz możliwość sprawdzenia tej konfiguracji z innym monitorem (lub bez)? Z wcześniejszej wiadomości wynika, że ten problem występował tylko przy konkretnej konfiguracji sprzętu (i właściwie nie wiadomo co dokładnie go powodowało).
  20. 1 punkt
    A na tym module przypadkiem nie ma napisu 3-5V? Jeżeli jest on na 5V to spróbuj podłączyć bez dodatków po prostu 4 przewodami tak jak są oznaczenia. Rozumiem że chcesz w ten sposób wykonać "level shifter" czyli obniżyć sygnał sterujący, ale nawet jeżeli to na drugiej linii byłby tranzystor który "podwyższałby" napięcie.
  21. 1 punkt
    Witam. Byliśmy tam pierwszy raz i moje wrażenia wyglądają tak. - Dobrze zorganizowane - Pełna kultura!!!! i Miła obsługa. - Problem z parkingiem. Po raz pierwszy rozegrali konkurencje, gdzie drony walczą ze sobą Drone Wars. I my pierwszy raz w niej wzięliśmy udział. Konkurencja jest znakomita, choć wymaga części zamiennych, Nie mamy filmiku z wydarzenia, ale zasady wyglądają tak: Świetna zabawa!!! Następny nasz cel to Robotic Arena.
  22. 1 punkt
    W czasach gdy mikrokontrolery były w obudowach DIP40 z czego prawie połowa była zmarnowana na jakieś zasilania, zegary itp potrzeby "organizacyjne" robiłem to tak, że do skanowania zarówno klawiatury jak i pola LED (cokolwiek to znaczy) brałem te same linie. Wtedy do powiedzmy kolumn Twojej klawiatury i jednocześnie do sterowania elektrod wspólnych LED masz 4 linie, 4 kolejne na wejście zwrotne (wiersze) klawiatury i kilka (ile potrzeba) na sterowanie segmentów LED. Jeśli na to ostatnie przeznaczysz także 4 linie to w sumie zużywasz 12 linii (np. jeden cały port na wyjście i pół na wejście) i zadanie wykonane: klawiatura 4x4 i max 16 niezleżnych punktów świecących. A program do tego jest naprawdę prosty. Funkcja odpalana z przerwania od któregoś timera robi to sama a program główny z jednej strony wpisuje coś do pola "ekran" i to się wyświetla a z drugiej czyta zmienną "kod_przycisku" i dostaje znaki jak z klawiatury PC. Posiłkując się dodatkowym scalakiem (ale nie ekspanderem przez I2C tylko zwykłym tanim dekoderem TTL za 1.50zł) można liczbę linii jeszcze ograniczyć nie tracąc nic na idei bezpośredniego dostępu do lokalnych portów.
  23. 1 punkt
  24. 1 punkt
    @ethanak poprawiłem, dzięki! @Gieneq kod schematu jest na GitHubie, w tym linku, tutaj zaś jest skrypt do generowania z pliku .tex pliku .png
  25. 1 punkt
    Obawiam się że 1,5A w przypadku tej drugiej to za mało, prąd pobierany przy zatrzymanej osi to 1,6A przy 6V! Choć najlepiej niech wypowie się @Treker bo swojego czasu zbudował kilka takich perełek. Możesz zadać sobie pytanie jakie ma być napięcie na silnikach i wtedy jaki prąd. Bo jeżeli składasz robota z modułów i baterii AA to nie będzie to robot który zajmie 1 miejsce w zawodach więc narazie można trochę spokojniej podejść do tematu. 9V z baterii to finalnie napięcie będzie się wahać pomiędzy powiedzmy: 7-10V, ta dolna granica to jest taka już absurdalna, ale spokojnie możesz uznać że 6V to będzie to co ma być na silnikach. Wtedy przetwornica step down będzie wystarczająca. Dlaczego o to warto powalczyć? Bo sama przetwornica step down będzie miała lepsze parametry. Np modele 3A są już dość tanie. Jeżeli jednak zależy Ci, żeby mieć napięcie na silnikach bliskie maksymalnemu to bierz step up/down. Tylko problem w tym, że nawet jak będziesz miał wyższe napięcie to i trzeba wyższy prąd. 1,5A to na pewno za mało na 2 silniki. Więc musiałbyś kupić 2 takie zestawy: przetwornika - sterownik - silnik. Tylko znowu czarnego scenariusza 8/9V i zablokowane koła nie spełni, ale nie zdarzy się to raczej... Przetwornice to dość delikatne urządzenia więc lepiej uważać żeby "nie strzeliły". Mostek który wskazałeś zapewnie 1A na kanał, to w ogóle dość mało i 6V na silnikach to będzie chyba max osiągniesz.
  26. 1 punkt
    Sprawdź czy czasami Atmega nie jest lekko krzywa albo wyciągnięta. Ja też raz tak miałem, wystarczyło docisnąć do podstawki i działało
  27. 1 punkt
    Proszę, błagam, LaTeXu... LATEX to materiał na BALONY
  28. 1 punkt
    Ten czujnik zawsze na początku sprawia problemy, bo zapominamy, że: Nie ma żadnej optyki i widzi dokładnie całą przednią półsferę. Ch-ka kierunkowa pokazuje, że spadek czułości do 50% następuje dopiero powyżej 70° odchylenia od osi a i przy 90° wciąż jeszcze jest 10%. Gdyby chcieć zrozumieć jak ten czujnik widzi otoczenie trzeba wyobrazić sobie okulary z mleczną szybą. Czy zakłądając je na nos możemy określić kolor czerwonej kartki A4 w odległości 50cm od oczu? Nie ma szans, bo jej pole powierzchni stanowi jedynie niewielki fragment wszytskiego co widzimy. Do naszych oczu dociera średnia z całego pola widzenia i zwykle będzie to mniej lub bardziej średnio szare. Natomiast gdy przyłożymy tę kartkę sobie do nosa, wtedy nasze okulary wyraźnie poczerwienieją. Jeżeli chcesz by ten czujnik określał kolor czegoś co mu pokazujesz musisz sprawić, by widział tylko to. Albo robisz czarną puszkę z okienkiem odsłaniającym dobrze oświetlony przedmiot badany albo wstawiasz czujnik w czarną (matową, tekturową?) rurkę kończącą się przy powierzchni badanej. Im dalejbędzie przedmiot i im mniejszy jest musisz go jaśniej oświetlić, to chyba oczywiste. Dziłające rozwiązania spokojni eodrózniające kolory to a) zbliżenie tego czegoś na 2-3mm od czoła, b) rurka, c) puszka z okienkiem, d) najtańszy obiektyw od kamerki z filtrem IR. Wszystkie trzy diody RGB bardzo dobrze widzą podczerwień. Filtry kolorów mają "dziurę" w paśmie od 800nm do 1um więc w otoczeniu czujnika (nawet "z tyłu") nie może być żadnych żarówek, świetlówek, ekranów LCD itp rzeczy. "Światło" podczerwone z tego typu źródeł jednakowo intensywnie oddziaływuje na każdą fotodiodę i wtedy kolor przedmiotu który chcemy analizować zwyczajnie znika w śmieciach. A jeśli weźmiemy pod uwagę, że od żarówek/świetlówek zwykle są to sygnały 100Hz to zaczyna wyglądać, że dostajemy zupełnie losowy sygnał kolorów. Popróbowałbym ze zmniejszeniem częstotliwości sygnałów. W programie widzę, że czujnik jest ustawiony na średni zakres częstotliwości wyjściowych (S0=1, S1=0) co oznacza, że może wygenerować sygnał nawet ponad 100kHz. Ponieważ pulseIn() mierzy długość "jedynki" to polegnie już powyżej 50kHz, bo z opisu tej funkcji wiemy, że mierzy od 10us. Swoją drogą pomiar długości stanu wysokiego nie daje "frequency" jak nazywa się zmienna w kodzie a wręcz przeciwnie: im więcej światła tym częstotliwość z czujnika będzie wyższa czyli okres krótszy, więc liczba oddana przez pulseIn() będzie mniejsza. Po zrobieniu dobrego układu mechaniczno-optycznego (to podstawa, bez tego w żadne pomiary nie mają sensu) spróbuj jakie liczby się mierzą dla S0=0 i S1=1, tylko zmień typ zmiennych frequency, R, G i B na taki który te pomiary pomieści, np. uint32_t.
  29. 1 punkt
    Może zacznij od zwykłego zmierzenia napięcia na pinie A5? Na podstawie danych katalogowych LM35 policz sobie najpierw czego powinieneś spodziewać się dla temperatury pokojowej (naprawdę masz tam 28°C?) i zwyczajnie to zweryfikuj. Zobacz, czy to napięcie zmienia się po podłączeniu LCD czy tam innych rzeczy i wyśledź dlaczego. A jeśli się nie zmienia a wyniki konwersji i owszem to znaczy, że zmienia się referencja przetwornika. W tym przypadku jest nią zasilanie 5V (we wzorze masz 5.0) więc może ono pływa? Je zmierz także i będziesz miał odpowiedź. A przyczynę to już sam znajdź. Ani nie wiemy co to za Arduino, ani z czego je zasilasz więc co tu zgadywać. Może głodzisz go 6V podawanymi na VIN, może masz jakąś bateryjkę która ledwo zipie i o Vcc=5V można tylko pomarzyć? Jak już wymyślisz gdzie tkwi problem to daj znać.
  30. 1 punkt
  31. 1 punkt
    Cześć, w większości nowych wersji dystrybucji Linux'a sterowniki są już wkompilowane w jądro sytemu i nie trzeba ich instalować (w przeciwieństwie do systemu Windows). Pozdrawiam
  32. 1 punkt
    A tego linku próbowałeś: https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/archive-ise.html Pozdrawiam Dokładnie tak, nie działa symulator od jakiegoś czasu, ale bez tej opcji można przejść kurs Forbota Pozdrawiam
  33. 1 punkt
    @crbjsfso ciekawe podejście Daj znać później czy wszystko zadziałało poprawnie!
  34. 1 punkt
    Myślę, że dało by się pozbyć bramki. Wystarczy przycisk zwierający kolektor i emiter tranzystora sterującego przekaźnikiem.
  35. 1 punkt
    @Overwatch witam na forum! Możesz mieć rację, bo przyczyna leży gdzieś w tym obszarze. Trzeba tylko porobić testy. Może być też problem z gniazdem na karty SD - u mnie w laptopie bywa że czegoś nie wykrywa i też trzeba posiłkować się innymi programami. Na wszelki wypadek spróbowałbym wgrać Rasbiana Strecz bo on był dedykowany do RPi3B+ i sprawdzić czy czysta karta ruszy.
  36. 1 punkt
    Cześć Forbotowicze Nazywam się Dawid, zawodowo zajmuję się usługami IT w dużej korporacji przemysłowej. Zainteresowałem się elektroniką głównie dzięki kursom dostępnym tutaj. W końcu coś co zawsze było zawiłe wydaje się proste W poszukiwaniu nowego hobby i potencjalnie nowych umiejętności zawodowych wtłaczam sobie wiedzę do głowy w nadziei, że ładnie ogarnę ten temat. Może kiedyś uda mi się uciec z bezdusznego biura i naprawiać rzeczy. Pozdrowienia z Krakowa.
  37. 1 punkt
    @carbonitium witam na forum! Fajnie, że udało Ci się uporać z tym problemem. Czasem zdarza się, że przy produkcji coś się nie tak połączy. Zdecydowanie tak nie jest chyba że mowa o szybkości dokonywania pomiarów, to może tam być niewielkie opóźnienie.
  38. 1 punkt
    Tak, masz rację, trochę w nietypowy sposób podałem ten luz, ale zasugerowałem się faktem, że kiedyś na innym forum ktoś rozmawiał na ten temat i właśnie tak podawali luzy przekładni i każdy wiedział o co chodzi. Wydawało mi się to zrozumiałe. Wbrew pozorom dużo łatwiej jest podać w mm, bo wystarczy na końcu promienia linijkę przystawić, aby widzieć przesunięcie. W domowych warunkach zwykłym kątomierzem raczej ciężko i bardzo niewygodnie to zmierzyć z dużą dokładnością i dlatego własnie podałem wynik w mm. Następnym razem będę bardziej szczegółowy Niestety silniki póki co muszą być DC12V ze zintegrowaną przekładnią. Przy poborze prądu do 1A moc jest wystarczająca praktycznie dla każdego modelu silnika z przekładnią jaka mnie interesuje (na wyjściu około 80-100obr/min) - układ mechaniczny jest wyważony i nie potrzebuje dużo mocy. Obroty wirnika min 6000 pozwalają na dużo bardziej elastyczne zarządzanie prędkością (czym wyższe obroty tym szerszy zakres regulacji). Projekt, w którym wykorzystuje te silniki (na razie RH158) to poniższy potworek... Tu efekt działania: Sterownik: I jako ciekawostka jak sobie do tej pory radzę z luzami przekładni: (pogłośnić audio przy oglądaniu)
  39. 1 punkt
    Jednak znalazłem to złącze i pasuje. Ma ono średnicę wewnętrzną około 2mm, Arduino ma złącze koncentryczne 5,5/2,1 mm. Także będzie działać W razie problemów chętnie pomożemy, powodzenia w eksperymentach.
  40. 1 punkt
    Niestety to wtyk 2.1 mm a Arduino ma 2.5 mm. Przepraszam. Chodzi a Warszawską inicjatywę edukacyjną. Pozdrawiam serdecznie i liczymy na obfitą pomoc ze strony Państwa.
  41. 1 punkt
    Też lubię wiedzieć gdzie mam poszczególny kabel i do czego on ma służyć. W tym przypadku postawiłem na modularność - wszystkie elementy które potencjalnie mogą się popsuć (wyświetlacz arduino drivery itp) można podmienić w ciągu pary chwil. Reszta elementów - jak gniazda 230V raczej nie powinny się popsuć więc są montowane bardziej na stałe. W głowie kiełkuje mi jeszcze jeden pomysł na pozbycie się niektórych elementów ale to muszę dokładnie przemyśleć stworzyć prototyp i dopiero wdrażać takie rozwiązanie. Niby projekt skończony a jednak cały czas coś zmieniam i modyfikuję
  42. 1 punkt
    Czy planujecie jakąś wyprzedaż na książki/zestawy w Black Friday/Cyber Monday?
  43. 1 punkt
    Cześć wszystkim!!! Sylwek i zaczynam swoją przygodę z elektroniką. Ps. po rejestracji zakupionego zestawu skąd mogę pobrać "Ściągi" ? S.
  44. 1 punkt
    Fat32 max 2^32 = 4`294`967`296bajtów. Nie tylko DMA ale także tryb 4-bit a nie jak w większości przypadków podłączenia SD do uC przez SPI 1-bit.
  45. 1 punkt
    Oj jak z lipola zasilałeś to wszystko możliwe, kilkanaście amperów to norma jaką możesz z niego wyciągnąć więc nawet krótkie zwarcie może usmażyć elektronikę. Możliwe że gdzieś jest bezpiecznik, dioda zabezpieczająca. Musiałbyś posprawdzać miernikiem gdzie jakie są napięcia. Ale jak płytka się nagrzewa to chyba koniec
  46. 1 punkt
    Darmowe statystyki popularności języków są dostępne w sieci i co więcej są za darmo. Język C++ jest używany w wielu projektach opartych o uC. Zarówno kilku poprzenich projektach, jak i w mojej aktualnej pracy C++ jest wykorzystywany do pisania aplikacji działającej bez systemu operacyjnego (albo raczej używającej jedynie RTOS-a) i jakoś nikomu to nie przeszkadza. Co ciekawe akurat po linuxem pracuję więcej w czystym C, sam system też w tym języku jest napisany - więc argumenty o C++ dla linuxa, a czystym C dla uC to absolutna bzdura - chociaż nie pierwsza wygłaszana przez tego użytkownika. Jak chodzi o naukę, to zarówno C, jak i C++ są dobrymi kandydatami - chociaż ostatnio modne są zupełnie inne języki, więc można również pomyśleć o micropythonie, albo Rust. @Wloczykij555 Skoro kupiłeś zestaw z STM32, to może zacznij od kursu stm32? Jak czegoś nie będziesz wiedzał, czy rozumiał zawsze możesz zapytać na forum, na pewno pomożemy. Arduino to fajna opcja, ale skoro masz już sprzęt to bez sensu kupować kolejny - zacznij, zobacz jak Ci się będzie tym bawiło, zawsze można, a nawet należy później kupić coś kolejnego. A czy to będzie Arduino, Raspberry Pi, czy zupełnie coś innego - to się okaże
  47. 1 punkt
    Witam nowych na naszym forum! @wislaken nauka samego programowania może być trochę nudna, ale jak masz wystawiony konkretny cel to będzie to na pewno bardzo satysfakcjonujące. @kisiel powodzenia w nauce, na pewno się uda! @Facilier aplikacje na Androida i Arduino to dobre połączenie, możesz sprawdzić artykuł o aplikacji w QT, może być to pierwszy krok do poważniejszej aplikacji.
  48. 1 punkt
    Cześć, budowę następnego robota czas zacząć Kolejny raz podjąłem współpracę z firmą Plast - Spaw. Firma udostępniła mi materiał do druku, bo jak w przypadku moich poprzednich robotów, tak i ten będzie częściowo wydrukowany na drukarce 3d. Spora część robota będzie też wycięta na ploterze cnc, a że w życiu szczęście trzeba mieć, udało mi się dogadać z firmą EBMiA i dostałem od nich części elektroniczne i silniki do budowy plotera cnc - opis budowy plotera można podejrzeć tutaj. Części do robota drukowane są na drukarce własnej roboty - może nie do końca, ponieważ trochę rozwiązań podpatrzyłem z drukarki RatRig. Jako, że i tak zawsze obrabiam wydrukowany materiał drukowałem z dyszą 1mm. Jakość wydruku nie powala ale po szlifowaniu i szpachlowaniu będzie gładko. Jak to teraz wygląda: 1. Projekt: 2. Wydruki: Takie rzeczy też się zdarzają (za szybko i za wysoka warstwa): 3. I filmik: Co do funkcji: będzie się ruszał od pasa w górę, będzie można z nim porozmawiać, wykorzystam rozwiązania z poprzedniego robota i na pewno je udoskonalę, tj. rozpoznawanie obiektów, kształtów, twarzy, mimiki, itd... Teraz czas na etap wycinania ze sklejki...
  49. 1 punkt
    Po prostu informatyka i przy okazji kształcenie się we własnym zakresie w security. Jest masa materiałów w internecie na ten temat np: https://www.youtube.com/channel/UClcE-kVhqyiHCcjYwcpfj9w/videos
  50. 1 punkt
    Nie jestem specem od Arduino, ale taka jest idea tej funkcji. Ten licznik się zresetuje po 50 dniach i o ile Twoja płytka nie będzie dłużej działać po jednym włączeniu to zrób tak: 1. Początek pomiaru unsigned long start; .... start = millis(); 2. Koniec pomiaru unsigned long czas = millis() - start; Jest także alternatywa - resetować stan millis: "Make sure the variable is in the scope of your code by declaring it sometime after wiring.c is included and before loop(): extern volatile unsigned long timer0_overflow_count; Then, whenever you need to reset the timer back to zero, just set: timer0_overflow_count = 0;" PS. Znalezienie tych informacji zajeło mi 60sekund... korzystaj z wyszukiwarek...
Tablica liderów jest ustawiona na Warszawa/GMT+01:00
×
×
  • Utwórz nowe...