Skocz do zawartości

Tablica liderów


Popularna zawartość

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

  1. 5 punktów
    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.
  2. 4 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.
  3. 3 punkty
    Czy możesz to w wolnej chwili przetłumaczyć na polski? Albo jakoś rozwinąć? Bo masz trzy kabelki i jedną wspólną masę. Sygnały w tych trzech kabelkach są zmienne i okresowe, mają tę samą częstotliwość i na dodatek ten sam kształt. Z powodów energetyki dużych mocy w sieci AC przesunięte są względem siebie o 1/3 okresu. To mogłyby być prostokąty, trójkąty albo w ogóle jakieś dziwactwa, no ale generator w elektrowni produkuje wysoce optymalną sinusoidę więc przyzwyczailiśmy się, że linie trójfazowe dają sinusoidy. Teraz okazuje się, że wcale nie chodzi o sieć AC tylko o jakiś silnik. No to może napisz jaki? Bo sygnałów trójfazowych - tak jak silników - jest wiele. I każdy pasuje do swojego. Na rysunku pokazałeś sygnał trapezowy więc zgaduję, że chodzi Ci po głowie jakiś BLDC i falownik do niego. Taki silnik sterowany jest specyficznym sygnałem a ponieważ lubimy prostotę, to nie produkujemy dla niego sygnałów AC (w sensie dwukierunkowych, bipolarnych względem masy zasilania) tylko sygnał zmieniający się jedynie od zera do jakiegoś MAX na każdej z 3 linii względem masy. Silnik BLDC nic jednak o potencjale masy "nie wie" bo jest podpięty tylko do tych trzech drutów a ponieważ jesteśmy sprytni, przełączamy jego uzwojenia tak by raz prąd płynąl przez nie w jedną stronę a raz w drugą. Dzieje się tak dlatego, że uzwojenia widzą tylko różnice między sygnałami. Jeśli narysujesz sobie to na kartce (trzy sygnały z obrazka powyżej i trzy różnice między nimi) to zobaczysz, że są bipolarne Pisałem, że aby zrobić z rachitycznego portu procesora sygnał taki jak w sieci AC czyli bipolarny w każdym przewodzie fazowym względem N, to musisz sie trochę postarać. Aby napędzać silnik, nawet malutki - także, tylko mniej. Wstawiasz zatem po dwa tranzystory na każdy sygnał, przełączasz je szybko by po uśrednieniu "udawały" sinusoidę czy co tam potrzebujesz (np. trapez) i masz sygnał 3-fazowy. Do wyjść trzech takich stopni podłączasz uzwojenia i jeśli sygnały pasują do fizyki i mechaniki silnika - dostajesz obroty i moment na wale czyli moc mechaniczną Trzy sygnały sterujące są generowane przez wspólny algorytm, który zapewnia odpowiednią częstotliwość i fazę zawsze przesuniętą o 120° względem poprzednika więc jak to "układ 3 faz nie powstaje"? Może przytocz i opisz kilka metod generowania - w tym te "skrajne", to będziemy mówić o konkretach, bo piszesz że nie rozumiesz, ale niestety nie bardzo wiadomo czego
  4. 2 punkty
    aktualne postępy w budowie osi drugiej: Przekładnia planetarna 1:5 z uzębieniem daszkowym, liczby zębów: koło pierścieniowe: 48, koło słoneczne: 12, satelity(4): 18, łożyska w satelitach: 605. Druga oś robota będzie najbardziej obciążona, dlatego też zdecydowałem się użyć większy pasek zębaty niż w pozostałych osiach (gdzie użyty został pasek gt2 szeroki na 6mm, spotykany często w drukarkach 3d i przez to tani), czyli pasek T5 o szerokości 10mm. Wymagało to przeprojektowania osi (początkowo zakładałem że cały robot będzie składał się z podobnych modułów i oś druga i trzecia będą takie same). Duże koło pasowe będzie miało około 60 zębów, małe -10. Czyli otrzymujemy przełożenie 1:6 na przekładni pasowej co w połączeniu z przekładnią planetarną da całkowite przełożenie 1:30 co powinno być wystarczające. Przy obrotach silnika 180 obr/min będziemy mieli prędkość wyjsciową osi rzędu 36 stopni/sekundę co nie powala ale jeszcze jest przeze mnie akceptowalne.
  5. 2 punkty
    @dawidp witam na forum Jeśli masz pewność, że podłączenie jest poprawne i nie zacisnąłeś przypadkiem złącz na izolacji to chyba faktycznie masz ten sam problem... W takim razie pozostaje reklamacja, bo chyba niestety trafiłeś na uszkodzony element Napisz proszę na adres reklamacje@botland.com.pl, na pewno szybko uda się wymienić element na nowy. Przepraszam za problem, mam nadzieję, że dalej obejdzie się już bez takich niespodzianek!
  6. 2 punkty
    @DamnWamn dotykasz ciekawego tematu, działań na funkcjach logicznych i minimalizacji. Można by to zrobić sprytnie na podstawie tablicy prawdy, którą zamieściłeś. Funkcja XOR może wyglądać tak: A(x)B = (A+B)*(~A+~B), możesz sobie sprawdzić jak to działa. Z tego rozpisanego wzoru widać 2 sumy, 2 negacje i jeden iloczyn. Podobnie jak z kolejnością wykonywania działań, to można zauważyć stopnie (warstwy) bramek w tym układzie. Najpierw są negacje, potem warstwa 2 sum i na wyjściu iloczyn z ich wyników. Może to wyglądać tak: Link
  7. 2 punkty
    @Wiktor2019 A czytałeś dokumentację tego czujnika, czy po prostu założyłeś że będzie działał bo powinien? Taka mała podpowiedź: Kolumna "Measurement Range" ...
  8. 2 punkty
    No tak, to absolutne minimum uchroni wzmacniacz przed wpychaniem mu prądu do wejścia. Kolejna sprawa to ustalenie ile czasu potrzebuje ten układ na "ochłonięcie", bo przecież nawet te 0.6V na diodzie doprowadza wzmacniacz x201 do nasycenia. Albo szukaj oscyloskopu albo skorzystaj z procesora jaki masz na pokładzie. Jeśli po wyłączeniu grzałki (ale nie przez analogWrite(0) tylko normalnie najpierw ją włącz na powiedzmy 500ms a potem wyłącz zwykłym digitalWrite żebyś miał jakiś determinizm czasowy) będziesz wykonywał w pętli analogRead() i wyniki zapisywał do tablicy to właśnie zrobiłeś prosty oscyloskop. Zobacz ile musisz wykonać takich pomiarów aby wyniki zaczęły przypominać to czego oczekujesz i tyle. Zamiast zapisywać do tablicy możesz zwyczajnie czekać w pętli while() aż pomiar z wyjścia wzmacniacza będzie np. niższy niż ileśtam mV jednocześnie zliczając liczbę pomiarów w jakiejś zmiennej. To także da jakąś estymację czasu. Skoro masz kilkukilohercowy ADC to skorzystaj z niego
  9. 2 punkty
    Że tak się tu wkleję ponownie bo zdaje się jakieś problemy techniczne miały miejsce. Wg. mnie masz zepsuty stabilizator 5V ja swój załatwiłem po godzinie zabawy z tą płytką 3.3v jednak przetrwał więc wymieniłem stabilizator na ten w obudowie TO220 i dokręciłem do niego mały radiatorek. Działa mi to od lat i nie miałem z tym więcej problemów. Po prostu wymień stabilizator albo reklamuj choć myślę, że wymiana będzie i szybsza i tańsza i skuteczniejsza.
  10. 2 punkty
    Będzie wyglądać jak każde inne urządzenie pomiarowe o rozdzielczości wyższej niż dokładność czyli w praktyce każde xD 2% to jest spoko wynik dla "zabawkowego" urządzenia. Ja bym to zrobił tak że mierzyłbym w przerwaniu czas pojedynczego obrotu (lub nawet części), uśredniał kolejne kilka(dziesiąt/set), przeliczał i wyświetlał.
  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. 1 punkt
    Drużyna Bunlab Team oczywiście się melduje. Tym razem Drony i Rescue
  13. 1 punkt
    @beargrylls świetnie to wygląda! Na kiedy planujesz zakończenie prac przy tej osi?
  14. 1 punkt
    Cześć, 1) Ja bm wybrał wersję RPI 3 z powodów, które sama opisałaś. 2) Ja bym wybrał jakąś dystrybucję Linux'a opartą na Debianie (jest ich sporo) za względu na największą liczbę dostępnych pakietów, łatwość użycia i mnóstwo przykładów i materiałów w sieci. Nadal możesz korzystać z Visual studio i C# pisząc programy pod OS Linux - poczytaj o ".NET Core SDK" - osobiście nie próbowałem tej opcji bo dość dobrze znam język C i kompilator GCC (Linux) mi wystarcza. 3) Ja bym wybrał język C/C++ (ewentualnie Python) i framework graficzny GTK. Używając programu (pakietu) Glade możesz wizualnie tworzyć GUI podobnie jak w "Visual Studio". Możesz też spróbować ".NET Core SDK" i "Visual Studio" (język C#), nie próbowałem tej opcji i nie wiem jak się sprawdza (kilku moich kolegów pisze aplikacje pod OS Linux w ten sposób i raczej nie narzekają). Pozdrawiam
  15. 1 punkt
    Siema. Na schemacie? No tam w obu przypadkach na schematach (rezystor przed i za diodą) anoda jest po stronie plusa a katoda po stronie minusa. Dobrze tam jest.
  16. 1 punkt
  17. 1 punkt
    I tak bardzo dużo pomogłeś, dzięki! A silniki kupiłem dziś rano więc już i tak nic nie zrobię. Mogę conajwyżej dać znać jak to będzie śmigać (albo nie)
  18. 1 punkt
    Cześć, jestem Michał. Mam 30 lat. Interesuję się prawie wszystkim, i między innymi dla tego właśnie elektronika. Na Forbota trafiłem przypadkiem. Moją uwagę zwróciła przejrzystość tego kursu i mam nadzieje zostać dłużej. Pozdrawiam wszystkich i admina.
  19. 1 punkt
    Bo próbujesz podłączyć dwa przyciski do debouncera, który obsługuje jeden. Raczej ciężko do jednej zmiennej przypisać dwie wartości... Masz w przykładach biblioteki biounce2buttons. /usunięto fragment niezgodny z PPF/
  20. 1 punkt
    Na pewno wybrana dobra płytka (tzn. DFRobot Firebeetle a nie z Firebeetle ogólnego pakietu ESP32)? Bo w pliku od Firebeetle (tym ogólnym) nie ma zdefiniowanych pinów Dx... @atMegaTona zgadnij skąd wiem jaka to płytka?
  21. 1 punkt
    Może spróbuj zapoznać się z Processing - jak pisałeś program na Arduino, to środowisko będzie ci znane. Bez napisania kodu się nie obędzie, ale nie jest to takie straszne
  22. 1 punkt
    Dobrze kombinujesz ale można to jeszcze przyspieszyć umieszczając w init0 czy 1 pamiętając, że R1 nie ma (może nie mieć) wartości 0 i jeśli będzie potrzeba trzeba w ASM zrobić wstawkę np XOR r1,r1. W .init3 R1 już == 0 ale wcześniej wykona się parę rozkazów. Co dokładnie robią init? .init0: Jeśli ją zdefiniujemy wykona się zaraz po resecie (wektor pod adresem 0). .init1: Niezdefiniowana, dla użytkownika. .init2: Używana przez C, zeruje R1 i SREG, inicjalizuje stos: 0000008c <__ctors_end>: 8c: 11 24 eor r1, r1 8e: 1f be out 0x3f, r1 ; 63 90: cf ef ldi r28, 0xFF ; 255 92: d0 e1 ldi r29, 0x10 ; 16 94: de bf out 0x3e, r29 ; 62 96: cd bf out 0x3d, r28 ; 61 .init3: Niezdefiniowana, dla użytkownika. Od tej sekcji bezpiecznie jest umieszczać kod w C, ponieważ R1 i stos jest już zainicjalizowany. .init4: Zeruje sekcję /bss oraz kopiuje wartości przypisane zmiennym z pamięci flash do ram. 0000009c <__do_copy_data>: 9c: 11 e0 ldi r17, 0x01 ; 1 9e: a0 e0 ldi r26, 0x00 ; 0 a0: b1 e0 ldi r27, 0x01 ; 1 a2: ea ec ldi r30, 0xCA ; 202 a4: f0 e0 ldi r31, 0x00 ; 0 a6: 00 e0 ldi r16, 0x00 ; 0 a8: 0b bf out 0x3b, r16 ; 59 aa: 02 c0 rjmp .+4 ; 0xb0 <__do_copy_data+0x14> ac: 07 90 elpm r0, Z+ ae: 0d 92 st X+, r0 b0: a0 30 cpi r26, 0x00 ; 0 b2: b1 07 cpc r27, r17 b4: d9 f7 brne .-10 ; 0xac <__do_copy_data+0x10> Dla mikrokontrolerów z pamięcią programu większą niż 64kB przy kopiowaniu sekcji .data dba o odpowiednie ustawienie rejestru PAMPZ. .init5: Niezdefiniowana, dla użytkownika. .init6: Niezdefiniowana w C, używana w C++. .init7: Niezdefiniowana, dla użytkownika. .init8: Niezdefiniowana, dla użytkownika. .init9: Skok do main(): b6: 0e 94 61 00 call 0xc2 ; 0xc2 <main> ba: 0c 94 63 00 jmp 0xc6 ; 0xc6 <_exit> 000000be <__bad_interrupt>: be: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> 000000c2 <main> Jest jeszcze .fini .finit9: Nie używany. definiowanych przez użytkownika. Tu nastąpi skok po wykonaniu exit (). .fini8: Nie używany. definiowanych przez użytkownika. .fini7: Nie używany. definiowanych przez użytkownika. .fini6: Niewykorzystane dla programów w C, ale wykorzystywane do destruktorów w programach C ++. .fini5: Nie używany. definiowanych przez użytkownika. .fini4: Nie używany. definiowanych przez użytkownika. .fini3: Nie używany. definiowanych przez użytkownika. .fini2: Nie używany. definiowanych przez użytkownika. .fini1: Nie używany. definiowanych przez użytkownika. .fini0: Przechodzi w nieskończoną pętlę po zakończeniu programu. 000000ca <_exit>: ca: f8 94 cli 000000cc <__stop_program>: cc: ff cf rjmp .-2 ; 0xcc <__stop_program> ale w Arduino nigdy się nie wykona, bo wyjście z loop powoduje ponowny skok do niego bo loop() znajduje się w wiecznej pętli (może razem z setup? Nie pamiętam).
  23. 1 punkt
    A ja bym proponował wrócić do tego co napisał @marek1707 Po pierwsze kod szkicu nie jest uruchamiany jako pierwszy - najpierw musi się uruchomić bootloader. Po drugie samo uruchomienie mikrokontrolera zajmuje sporo czasu - więc nawet gdyby zrezygnować z bootloadera, a pierwszą instrukcją asemblera było ustawienie pinu to i tak na wyjściu pojawi się całkiem spory impuls. Na to może pomóc tylko sprzęt - być może tak prosty jak jeden rezystor, a może będzie potrzebny negator.
  24. 1 punkt
    Podejrzewam, że biorąc pod uwagę koszt drivera serwo wyjdzie taniej... pokaż ten silnik za 2.50 bo aż sie wierzyć nie chce
  25. 1 punkt
    Witam wszystkich! Dzisiaj zaczynam zabawę z kursami Forbot
  26. 1 punkt
    @Eukaryota Dziękuję za odpowiedź. W międzyczasie posunąłem się ze swoim projektem już dość daleko, o IK przeczytałem na forum Trossen: Przeguby są z Igus'a; 3 silniki krokowe z przekładnią, zerowanie będzie na krańcówkach umieszczonych do góry (około 25 stopni w górę od poziomu), wyżej ramiona by się już i tak w normalnej pracy nie podnosiły. Czy wykorzystanie krańcówek poza ograniczeniem w jakiś sposób zakresu ruchu i tego, że należy robić to za każdym razem ma jakieś wady? Jak jest u Ciebie z dokładnością, u mnie luzy są dość duże na silnikach krokowych z przekładnią i szacuję dokładność na 2mm w każdej osi, już na efektorze. Oczywiście eżektor z ssawką, do tego chciałbym dodać jakieś siłowniki, ale nie wiem co mogłyby robić? Może masz jakiś pomysł, na inną aplikację delty niż pick&place z kamerą? To bardzo fajne, ale takie sztandarowe zastosowanie tej klasy Oczywiście gratuluję Twojej Delty, bo wyprzedza moją kilkunastokrotnie Szczególnie podoba mi się sterowanie, ja umiem jedynie zadać na Arduino trzy ruchy silnikami z rampą przyspieszenia i hamowania. Jak Tobie udało się uzyskać taką płynność ruchu? Potrzebujesz jakieś dodatkowe regulatory, które obliczają pozycję+prędkość znając trajektorię? Nie zrobię tego matematyką z szkoły średniej? Pozdrawiam i jeszcze raz gratuluję
  27. 1 punkt
  28. 1 punkt
    Nie gniewaj się za moje uwagi, wcześniejszy program wygladał jakbyś nie za bardzo zrozumiał instrukcję przypisania, były już takie nieporozumienia na forum więc to nie jest niemożliwe Teraz masz w programie źle nawiasy, w pętli while zwiększasz pulseval1, ale używasz jej dopiero jak osiagnie 1000.
  29. 1 punkt
    @marek1707 Dzięki za rady co do filtru. Zastosowałem filtr eliptyczny siódmego rzędu + zostawiłem na końcu filtr by wyciąć zegar. Zero tego filtra musi być przy 25MHz, więc nie mogłem się pozbyć "teoretycznego" kondensatora 405p, więc dałem 390p || 15p Policzyłem to wymienionym kalkulatorem, a potem przerysowałem do LTSpice i pozmieniałem trochę cewki, by miały łatwe do kupienia wartości. Według mnie jest OK. To też już mam policzone. Dzięki. Planuję wykorzystać taki ferryt, o największym rozmiarze z tego datasheeta. Wybrałem taki, a nie inny kształt, bo sugerowałem się kształtem rdzeni balunów - tutaj ten transformator też działa jako balun. Na razie nie mam tego policzonego. Tego nie wiem, ale im niższa tym byłoby dla mnie lepiej, tak 1kHz maximum. By zejść do niższych częstotliwości ograniczają mnie tylko parametry C51, C52 i charakterystyka transformatora wyjściowego, prawda? PS. na wyjściu dodałem jeszcze trzy włączane niezależnie tłumiki typu pi, każdy po 32dB, by mieć sygnały o malutkich amplitudach.
  30. 1 punkt
  31. 1 punkt
    Cześć, Krzysztof, lat 32. "Robię" KKZ jako technik elektronik, Wasze kursy są bardzo pomocne i rzetelne, szkoda że w szkołach jest niewielu takich nauczycieli - pasjonatów. Aktualnie szukam praktyk no i praktykuję w domu
  32. 1 punkt
    @Dzonzi forum tworzą użytkownicy (również Ty). Jeśli uważasz, że coś jest niezgodne z polityką przyjaznego forum to zaraportuj wiadomość lub zwróć uwagę publicznie na forum - nie ma się czego obawiać Z tego co widzę uzyskałeś odpowiedź na swoje pytanie już na samym początku, więc chyba problem został rozwiązany. Oczywiście, wkradło się tutaj później małe zamieszanie, bo jedna osoba pisała o podejściu "matematycznym", a druga o "programistycznym", ale dyskusja była merytoryczna. Zachęcam przy okazji również Ciebie do stosowania PPF w praktyce, czyli np. do oceny postów, które były pomocne (ikona serca w prawym dolnym rogu wiadomości). Dzięki temu można podziękować bezpośrednio autorowi i (co czasami ważniejsze) wyróżnić daną odpowiedź, aby inni widzieli od razu, że jest ona rozwiązaniem opisywanego problemu. Oczywiście, jeśli nie zgadzasz się z jakąś wypowiedzią to możesz ocenić ją negatywnie. Zachęcam do korzystania z tych opcji
  33. 1 punkt
    Cześć, Mam na imię Artur, mam 27 lat i jestem z wykształcenia inżynierem mechanikiem. Chciałbym pogłębić swoją wiedzę w zakresie elektroniki oraz programowania Arduino. Zaczynam od kursu podstaw elektroniki. Pozdrawiam!
  34. 1 punkt
    Pytanie zasadnicze: co mówi I2cScanner? Być może to grzanie wcale mu nie pomogło...
  35. 1 punkt
  36. 1 punkt
    Fajnie że udało się ... naprawić? Samo się naprawiło, a niby nic się samo nie robi. Ale z tym robieniem etapami to sam się złapałem, że w euforii można coś zmontować a potem niespodzianka - nie działa. I dojdź teraz na jakim etapie nie działa, a co już działa...
  37. 1 punkt
    rozwinięcie i wykorzystanie w praktyce.. zapraszam do tematu
  38. 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?
  39. 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
  40. 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.
  41. 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
  42. 1 punkt
    Proszę, błagam, LaTeXu... LATEX to materiał na BALONY
  43. 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ć.
  44. 1 punkt
    Myślę, że dało by się pozbyć bramki. Wystarczy przycisk zwierający kolektor i emiter tranzystora sterującego przekaźnikiem.
  45. 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.
  46. 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)
  47. 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.
  48. 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ę
  49. 1 punkt
    Cześć wszystkim!!! Sylwek i zaczynam swoją przygodę z elektroniką. Ps. po rejestracji zakupionego zestawu skąd mogę pobrać "Ściągi" ? S.
  50. 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
Tablica liderów jest ustawiona na Warszawa/GMT+01:00
×
×
  • Utwórz nowe...