Skocz do zawartości

FlyingDutch

Użytkownicy
  • Zawartość

    676
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    31

FlyingDutch wygrał w ostatnim dniu 9 lipca

FlyingDutch ma najbardziej lubianą zawartość!

Reputacja

296 Mistrz

O FlyingDutch

  • Ranga
    6/10
  • Urodziny 28.05.1968

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Bydgoszcz
  • Języki programowania
    C/C++
  • Zainteresowania
    informatyka
  • Zawód
    Programista

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Cześć, dokładnie tak jak napisałeś. Jest tylko kwestia w jakim formacie trzymamy tablice funkcji trygonometrycznych, jako liczby stało-przecinkowe, czy zmienno-przecinkowe? Ponieważ kod do dodawania i mnożenia liczb 32-bitowych float działa, to zapiszmy wartości tablicowanych funkcji trygonometrycznych właśnie w tym formacie. Pozdrawiam
  2. Cześć, jeśli nie chcesz używać tranzystorów MOSFT (z powodu wysokiego napięcia sterującego dla tańszych modeli), to możesz użyć tranzystora bipolarnego n-p-n w układzie Darlingtona (tzw tranzystory super-alfa). Ze względu na duże wzmocnienie stało-prądowe wymagają małego prądu bazy dla dużych wartości prądu kolektora. Możesz wziąć pod uwagę np. taki model (BDW83C): https://sklep.avt.pl/tranzystor-bdw83c.html Pozdrawiam
  3. Cześć @Szałszanin, super, że miałeś czas, aby się za to zabrać. Jak będziesz miał ostateczną (uproszczoną) wersję macierzy translacji, to będzie się można przymierzyć, jak to najlepiej policzyć na układzie FPGA. Ja teraz siedzę nad problemem odpowiedniego stablicowania i liczenia funkcji trygonometrycznych (dla rozdzielczości 10 bitów z enkoderów). Pozdrawiam
  4. Cześć @Szałszanin, muszę przeanalizować wykresy czasowe podane dla tych enkoderów. Trzeba będzie zmienić dekoder dla takiego enkodera z powodu istnienia trzech faz przebiegu (kod w HDL'u). Dzięki za odpowiedź Pozdrawiam
  5. Cześć, tutaj masz przykład takiej przeróbki biblioteki z Arduino (C++), na wersję nieobiektową (użycie struktury zamiast klasy): Pozdrawiam
  6. Dzień dobry, poszukuję pracy jako programista systemów wbudowanych (języki: C i C++). Posiadam ponad pięcioletnie doświadczenie zawodowe (łącznie) w programowaniu w językach C (mikro-kontlorery ARM STM32XX) i C++(Linux/Unix). Posiadam podstawową wiedzę z zakresu znajomości architektury mikro-kontrolerów STM32xx (głównie rodziny STM32F1xx, STM32F3xx, STM32F4xx). Umiem programować te rodziny mikro-kontroślerów z użyciem bibliotek: "HAL" oraz "Standard Peripheral". Mam praktyczne doświadczenie w pracy z kompilatorami/IDE "Raisonance Ride7 & RKit-ARM", "ARM uVision Keil" i "System Workbench for STM32" , "STM32CubeMX". Posiadam także podstawową wiedzę z zakresu układów programowalnych (FPGA Xilinx). Mam podstawową znajomość języków VHDL i Verilog. Aktualnie pracuję na stanowisku projektanta-programisty (systemy embedded dla branży morskiej). Potrafię się posługiwać oscyloskopem oraz analizatorami stanów logicznych. Posiadam dobrą znajomość magistrali CAN i protokołów komunikacyjnych RS485/422 oraz "Modbus RTU" i stosu TCP/IP. Poza tym mam doświadczenie w programowaniu w językach: Java, C#, Python. Niestety od kilku miesięcy moja firma ma kłopoty finansowe i otrzymuję wypłatę z dużym opóźnieniem. Oczywiście zainteresowanym wyślę pełne CV. Proszę zainteresowanych o kontakt za pomocą wiadomości prywatnej. Interesują mnie zarówno oferty pracy etatowej, jak i zlecenia. Pozdrawiam
  7. Cześć, zapewne większość czytelników, która już trochę się orientuje w architekturze układów FPGA wie, że te układy nie zawierają bloków dla obliczeń zmienno-przecinkowych. Wbudowane w strukturę FPGA układy mnożące lub bloki DSP służą do wydajnych działań z użyciem arytmetyki na liczbach stało-przecinkowych. Oczywiście można zaimplementować w układzie FPGA bloki służące do obliczeń na liczbach zmienno-przeciknkowych, lecz wiąże się to z dość sporym użyciem zasobów układu. Jakiś czas temu opisywałem na tym forum swoje zmagania z blokiem arytmetycznym wykonującym 4 podstawowe działania arytmetyczne na liczbach Double (64-bitowych) - patrz ten link: Blok działał poprawnie,, lecz zużywał bardzo dużo zasobów układu FPGA i był wolniejszy niż moduł FPU w procesorach STM32 F4xx. Stąd stwierdziłem iż liczb zmienno-przecinkowych nie warto używać w układach FPGA (lepiej działania na zmiennych typu float czy double zastąpić obliczeniami dla liczb stało-przecinkowych). Nie zawsze jednak jest to wygodne, dlatego postanowiłem sprawdzić blok FPU dla liczb float 32-bitowych. Skorzystałem z kodu zamieszczonego w portalu: opencores.org. Oto link do projektu: https://opencores.org/projects/fpuvhdl Utworzyłem projekt (ISE 14.7 Webpack) dla układy FPGA Spartan6 (XC6SLX9 in CSG324 package) dla płytki Mimas V2 (firmy Numato Labs). Oto link do tej płytki (jest także dostępna w Botlandzie) https://numato.com/product/mimas-v2-spartan-6-fpga-development-board-with-ddr-sdram Powyższy moduł FPU wykonuje dwa działania arytmetyczne (dodawanie i mnożenie) na liczbach 32-bitowych float (odpowiednik 32-bitowego float z języka C). Po implementacji blok zajmuje sensowną ilość miejsca w układzie FPGA: Adder - około 481 LUT (Spartan6) Multiplier - około 137 LUT (Spartan6). Poniżej zamieszczam działający projekt dla ISE 14.7 Xilinx'a (Spasrtan6). W opcjach projektu łatwo można zmienić docelowy układ na Spartana3A z płytki Elbert V2. Bloku FPU z tego projektu zamierzam użyć do obliczeń w manipulatorze mechanicznym z enkoderami kwadraturowymi - patrz ten post z Forbot'a: FPU_Multiply_ADD_01.zip Pozdrawiam
  8. Cześć @Szałszanin, czy mógłbyś podać link do enkoderów, które zamierzasz użyć w tym projekcie? Pozdrawiam
  9. Cześć, ogólnie idea jest fajna, ale jak dla mnie do projektów hobbystycznych jest to dużo za drogie (np. płyta "matka" za 156 PLN). jeśli natomiast chodzi o prototypowanie rozwiązań komercyjnych to wolę robić prototyp na zestawach uruchomieniowych STM32, a docelowo samemu projektować płytkę PCB z użyciem STM32XX. Pozdrawiam
  10. Cześć, pisałeś, że chcesz się nauczyć programować w C, i co teraz poddasz się na początku drogi? Nikt nie neguje, że możesz mieć wiedzę na różne tematy z elektroniki, tylko niepotrzebne były wulgaryzmy i czepianie się Marka, który jest najbardziej doświadczonym elektronikiem na tym forum. On po prostu merytorycznie omawiał temat (jak zawsze zresztą}, a Ty sobie ubzdurałeś, że ma coś personalnie do Ciebie. Wyrobienie prestiżu na forum wszędzie działa podobnie (na innych forach jest tak samo): najpierw zaczynam od drobnych tematów zbiorę trochę punktów (staram się wyłącznie udzielać merytorycznych odpowiedzi). Gdy ludzie na forum już mnie trochę poznają i zaakceptują można sobie pozwolić na "trochę więcej" *i tu podkreślam (trochę). Najlepiej zrób tak jak Ci radził Elvis: odpocznij sobie kilka ni od pisania, a za jakiś czas zdecydujesz, czy chcesz tu pozostać, czy nie? Jeśli postawiłeś sobie plan poszerzenia swoich umiejętności to nie poddawaj się na początku tej dogi. Pozdrawiam Cześć @daniel89, udzielam się na kilku zagranicznych forach dot. elektroniki i jest pod tym względem tak samo jak na Forbocie (a wydaje mi się, że jeszcze gorzej). Niestety głębsze "wejście" w elektronikę (szczególnie z programowaniem) nie jest łatwe z kilku powodów: 1) To nie są łatwe tematy - wymagana jest obszerna wiedza z kilku dziedzin 2) Trudno jest zacząć bo to wymaga poświęcenia bardzo dużej ilości czasu, aby osiągnąć taki poziom, aby móc coś wynieść np. z takiego forum jak Forbot 3) Wymagana jest w miarę dobra znajomość języka angielskiego - bo w tym języku najłatwiej znaleźć wartościowe materiały i odpowiedzi na pytania Pozdrawiam
  11. Cześć, To tym lepiej, że mnożenie macierzy nie będzie potrzebne. Za pomocą algorytmu CORDIC można zmniejszyć tablice potrzebne do obliczania funkcji trygonometrycznych - patrz linki: https://en.wikipedia.org/wiki/CORDIC https://www.allaboutcircuits.com/technical-articles/an-introduction-to-the-cordic-algorithm/ Na układach FPGA nie da się łatwo liczyć działań dla liczb zmienno-przecinkowych - trzeba je zastąpić obliczeniami fixed-point. Mógłbyś podać tą macierz transformacji dla twojego manipulatora? Pozdrawiam
  12. Cześć, tak, z opisu producenta wynika, że układ można zasilać poprzez USB lub z zewnętrznego zasilacza o napięciu 5V. Patrz link z opisem: http://www.farnell.com/datasheets/1887745.pdf?_ga=2.237468805.48362096.1562687175-1306154709.1562687175&_gac=1.28358094.1562687175.Cj0KCQjw9pDpBRCkARIsAOzRzivhfVmCLjsHFFQuQPE7CI53eB6fWV5YqjweDzPNuXREs9WNg6ZEV1QaAjGPEALw_wcB Board power supply: through USB bus or from an external 5 V supply voltage -to z tego opisu. Pozdrawiam
  13. Cześć, temat mnie zainteresował na tyle, że chciałbym wykonać taki manipulator, tylko z mniejsza liczbą stopni swobody, powiedzmy 3-4. Mógłby ktoś polecić taki tańszy manipulator z encoderami i napędami (np. jako kit do złożenia)? Tylko istotne, aby do niego ułożyć te równania macierzowe w notacji Denavita-Hartenberga. Według mnie taki manipulator można zaprojektować z wykorzystaniem układu FPGA jako sterownika (bez konieczności użycia mikro-kontrolera). Będę wdzięczny za propozycje. Pozdrawiam
  14. Cześć, znalazłem kod w VHDL'u do mnożenia macierzy (32x32: 16-bit unsigned integer): https://www.fpga4student.com/2016/11/matrix-multiplier-core-design.html mógłby się przydać do policzenia pozycji (x,y,z) z liczników enkoderów dla przegubów w tym manipulatorze. A tutaj kod w Verilogu do mnożenia macierzy o wymiarze 4 : https://www.fpga4student.com/2016/12/fixed-point-matrix-multiplication-in-Verilog.html Jest lepszy w tym sensie, że mnoży macierze o wymiarze 4 (a nie 32 jak w poprzednim przykładzie), a właśnie takie rozmiary są nam potrzebne, aby obliczyć zadanie proste kinematyki dla tego manipulatora. Pozdrawiam
  15. Cześć @Faramir, wiesz na tym forum nie używamy wulgaryzmów. Czasem są dość ostre dyskusje, ale nikt nie używa takiego słownictwa. Mógłbyś się także stosować do tej reguły. Pozdrawiam
×
×
  • Utwórz nowe...