Skocz do zawartości

FlyingDutch

Użytkownicy
  • Zawartość

    898
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    36

FlyingDutch wygrał w ostatnim dniu 27 września

FlyingDutch ma najbardziej lubianą zawartość!

Reputacja

508 Mistrz

O FlyingDutch

  • Ranga
    7/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. Wpisz w okno comand (aby wywołać to okno wpisz "cmd" w okienko wyszukiwania w pasku systemowym): java -version Będzie pisało, czy Java jest 64-bit czy 32. Pozdrawiam
  2. Spoko znowu nie doczytałem do końca - masz rację. Z drugiej strony taki konwerter zawsze warto mieć "pod reką" a kosztuje tylko 13 PLN Pozdrawiam
  3. Cześć, jaką masz wersję Javy i "Arduino IDE" - któreś z nich jest w wersji 64-bitowej a masz system operacyjny Windows 32-bity i nie może uruchomić aplikacji. Pozdrawiam
  4. Cześć, kup sobie np. taką przejściówkę USB-UART (portem USB podłącz do komputera PC, z drugiej strony do NodeMCU (piny: Rx i Tx) UART'a. Potem poczytaj o tym narzędziu: https://github.com/espressif/esptool https://hackaday.com/2015/03/18/how-to-directly-program-an-inexpensive-esp8266-wifi-module/ To powinno załatwić sprawę. Pozdrawiam
  5. Cześć, udało mi się uruchomić projekt gry "Breakout" (opisany powyżej) na bardzo taniej płytce FPGA za 40 PLN - "Sipeed Tang Nano". Patrz linki: https://botland.com.pl/pl/moduly-i-zestawy-fpga/15813-sipeed-tang-nano-plytka-rozwojowa-fpga-gw1n-1.html?search_query=FPGA&results=20 https://www.seeedstudio.com/Sipeed-Tang-Nano-FPGA-board-powered-by-GW1N-1-FPGA-p-4304.html Jest to całkiem fajnie zaprojektowany zestaw FPGA oparty na układzie FPGA "GW1N-1-LV" chińskiej firmy "Gowin Semiconductor Corp.". Ten zestaw FPGA ma ilość zasobów logicznych bardzo zbliżoną do łytki "Elbert V.2": 1152 LUT4 oraz 864 przerzutników. Nie ma co prawda sprzętowych układów mnożących (jak Spartan3 z Elberta), ale w zamian za to ma w układzie FPGA 72 kb pamięci SRAM i 96 kb pamięci flash oraz pamięć PSRAM: 64 Mb. Posiada też 40-to pinowe złącze do wyświetlacza RGB LED - jest do niego dedykowany (5 cali) taki wyświetlacz firmy Sipeed: https://www.seeedstudio.com/5-Inch-Display-for-Sipeed-Tang-Nanno-p-4301.html Software do syntezy i symulacji układu w FPGA jest też produkcji firmy "GOWIN" nazywa się "Gowin EDA"- patrz link: https://www.gowinsemi.com/en/support/home/ Środowisko jest bardzo proste - chwilami przypomina "ISE" Xilinx'a i działa szybko. Projekt udało się przenieść bardzo szybko, trzeba było tylko zmienić IPCore z modułem zegara PLL ze standardu Xilinx'a na standard Gowin IPCore oraz zmienić plik "user constraints" na format tego producenta FPGA. Ponieważ płytka nie ma wyjścia VGA użyłem wersji z kilkoma rezystorami opisanej w tym poście: Projekt działa poprawnie (nie widać różnic w stosunku do wersji na Elbercie). Jak będę miał chwilę czasu to opisze wersję projektu na płytkę ""Sipeed Tang Nano". Pozdrawiam
  6. Cześć, z systemem operacyjnym Linux mam do czynienia dość długo (od 1997 roku gdy na partycji MS-DOS fat zainstalowałem sobie mini-dystrybucję "Monkey" a dwa miesiące później "RedHat'a"). Do 2003 roku używałem głównie "RedHat'a" (desktop) i "Debian'a" jako serwer sieciowy WWW w pracy. Na początku 2003-ciego roku trafiłem w sieci na dystrybucję "Gentoo Linux" (a właściwie meta-dystrybucję) i zakochałem się w niej. Wtedy na desktopie zainstalowałem sobie Gentoo ze "stage 1", czyli pobrałem pakiet z kompilatorem języka C i kilkoma narzędziami pozwalającymi zbudować ze źródeł cały system operacyjny. Przypominało to budowanie systemu Linux "from scratch", dzięki czemu można było sobie zbudować system operacyjny "szyty na miarę" (łącznie z jądrem systemu dostosowanym dla konkretnego sprzętu i potrzeb). Właśnie dlatego system "Gentoo Linux" jest nazywany meta-dystrybucją. Byłem pod wrażeniem jak szybko i niezawodnie pracuje system operacyjny Linux skompilowany ze źródeł z optymalizacją dla konkretnego procesora i sprzętu. "Gentoo Linux" posiadał własne repozytoria pakietów (narzędzie "Emerge"), ale nie były to pakiety binarne, ale źródłowe (źródła programów w językach C/C++) podobnie jak w Uniksie "Free BSD". Używałem Gentoo jako jedynej dystrybucji Linuxa na desktopie od roku 2003 do 2008 i byłem bardzo zadowolony. Potem w pracy musiałem się przesiąść w pracy na sytemu Uniksowe "Solaris" i "HP-Unix". Przesiałem się na desktopie najpierw na "Ubuntu" a potem na "Mint'a", którego używam do dzisiaj. W 2012 brałem udział w tworzeniu systemu telekomunikacyjnego na zestawie z procesorem ARM - dokładnie na zestawie "CubieBoard 2". https://botland.com.pl/pl/640-cubieboard?gclid=EAIaIQobChMI7dGYqa336wIVmMx3Ch1bvQmyEAAYASAAEgK2tfD_BwE https://kamami.pl/cubieboard/205233-cubieboard-2.html Wtedy utworzyłem na bazie "Gentoo Linux" system szyty na miarę tego projektu (wersja Gentoo na procesory ARM) z jądrem dostosowanym do obsługi konkretnego sprzętu tele-komunikacyjnego i pakietami potrzebnymi do działania systemu (miedzy innymi. bibliotek "Boost" dla C++ i stosu "BlueZ"). Decyzja ta sprawdziła się bardzo dobrze i cały system działał szybko i niezawodnie. Od tego czasu praktycznie nie używałem "Gentoo" (chroniczny brak czasu) . Chciałem zapytać, czy i dzisiaj "Gentoo Linux" jest równie dobrą dystrybucją jak kilka lat temu? Może macie jakieś doświadczenia z tym systemem, którymi moglibyście się podzielić? Wiem, że wprowadzono do "Gentoo" dużo nowości, jak np. "micro-kernele" (których nie zdążyłem jeszcze nigdy wypróbować. Z chęcią bym poczytał waszych opinii o "Gentoo Linux" w dniu dzisiejszym. Pozdrawiam
  7. Cześć, nie rozumiem po co zamieszczasz taki post skoro nie odpowiadasz ani na forum, ani na wysłane wiadomości e-mail? Pozdrawiam
  8. Cześć, a może byś w skrócie opisał jakie zadania projekt ma realizować? Pozdrawiam
  9. Cześć, spróbuj dodać taką linię na początku programu (za istni8ejącymi instrukcjami #define: #define SystemCoreClock 16000000UL Jeśli to nie pomoże to wklej znów kod błędu po kompilacji z dodaną tą linią powyżej. Pozdrawiam
  10. Cześć, ponieważ dorastałem w latach 80-siątych XX wieku (szkołę średnią rozpocząłem w 1981 roku) dużo czasu spędzałem grając w proste gry na "automatach" (w Bydgoszczy były wtedy trzy duże salony gier i sporo osobno stojących automatów). Jedną z moich ulubionych gier była wtedy gra "Breakout" (znana też jako Arkanoid) więc postanowiłem poszukać, czy jakiejś wersji tej gry nie da się uruchomić zestawie FPGA. Znalazłem dwie implementacje tej gry: jedna rozbudowana z wieloma poziomami i fajną grafiką - jednak jej implementacja była oparta o soft-procesor i zajmująca duzo zasobów układu FPGA, druga natomiast bardzo prosta zaimplementowana w "zwykłych blokach logicznych" układu FPGA i zajmująca mało zasobów. Tą drugą bardzo prostą implementację (jeden poziom gry) postanowiłem uruchomić na zestawie FPGA ElbertV.2. Bazowałem na tym projekcie ze strony instructables.com: https://www.instructables.com/id/Breakout-Game/ Aby przystosować grę do zestawu Elbert należało wprowadzić kilka modyfikacji: 1) Dodać nowy zegar, który na podstawie zegara 12MHz z Elberta generował zegar 50 MHz (takim zegarem był taktowany oryginalny projekt) 2) Poprawić błąd w module głównym "breakout.v" związany z buforem dla zegara 25MHz (do taktowania wyświetlacza VGA) 3) Zanegować sygnały resetu gry (de) oraz do ruchu paletki rota i rotb 4) Zmienić proces obsługi paletki (tak, aby można było używać dwóch przycisków z zestawu Elbert) 5) Dostosować plik "user constraints" do zestawu Elbert V.2 Ale po koleji: Został dodany IPCore (moduł zegarowy) PLL_1 - instancja Clock12Mhz, a kod modułu głównego projektu (breakout.v) został zmieniony w następujący sposób: Kod oryginalny: module breakout( input clk50, input rota, input rotb, input de, output red, output green, output blue, output hsync, output vsync ); reg clk25_int; always @(posedge clk50) begin clk25_int <= ~clk25_xx; end wire clk25; BUFG bufg_inst(clk25, clk25_xx); wire [9:0] xpos; wire [9:0] ypos; signal_generator signal_generator_inst(clk25, hsync, vsync, xpos, ypos); game game_inst(clk25, xpos, ypos, rota, rotb,de, red, green, blue); endmodule Zmodyfikowany: module breakout( input clk12, //clk50 was input rota, input rotb, input de, output red, output green, output blue, output hsync, output vsync ); wire clk50; wire clkInBuf, clkOut; reg clk25; // Instantiate the module PLL-Clock PLL_1 Clock12MHz ( .CLKIN_IN(clk12), .CLKFX_OUT(clk50), .CLKIN_IBUFG_OUT(clkInBuf), .CLK0_OUT(clkOut) ); always @(posedge clk50) begin clk25 <= ~clk25; end wire [9:0] xpos; wire [9:0] ypos; signal_generator signal_generator_inst(clk25, hsync, vsync, xpos, ypos); game game_inst(clk25, xpos, ypos, ~rota, ~rotb, ~de, red, green, blue); endmodule W module "game.v" została całkowicie zmodyfikowana obsługa paletki: Było: // paddle movement reg [8:0] paddlePosition; reg [2:0] quadAr, quadBr; always @(posedge clk25) quadAr <= {quadAr[1:0], rota}; always @(posedge clk25) quadBr <= {quadBr[1:0], rotb}; always @(posedge clk25) if(quadAr[2] ^ quadAr[1] ^ quadBr[2] ^ quadBr[1]) begin if(quadAr[2] ^ quadBr[1]) begin if(paddlePosition < 520) // movement range paddlePosition <= paddlePosition + 3 ;//velocity of the paddle end else begin if(paddlePosition >= 0) // movement range paddlePosition <= paddlePosition - 3; // velocity of the paddle end end Po modyfikacji: // paddle movement reg [8:0] paddlePosition; reg [27:0] counter; always @(posedge clk25) begin counter <= counter + 1; if (counter == 250_000) begin counter <= 0; if(rota || rotb) begin if(rota) begin if(paddlePosition < 520) // movement range paddlePosition <= paddlePosition + 3 ;//velocity of the paddle end else if(rotb) begin if(paddlePosition >= 0) // movement range paddlePosition <= paddlePosition - 3; // velocity of the paddle end end end end Obsługa paletki jest teraz obsługiwana przez dwa "switche" sw4 i sw6 z płytki Elbert z częstotliwością około 100Hz (stąd dodany licznik w procesie). No i pozostaje dostosowanie pliku "breakout.ucf" do zerstawu Elbert co wygląda następująco: # Clock 12 MHz NET "clk12" LOC = P129 | IOSTANDARD = LVCMOS33 | PERIOD = 12MHz; #VGA pins NET "hsync" LOC = "P93" | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST ; NET "vsync" LOC = "P92" | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST ; NET "red" LOC = "P105" | IOSTANDARD = LVCMOS33 |DRIVE = 12 | SLEW = FAST ; NET "green" LOC = "P102" | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST ; NET "blue" LOC = "P98" | IOSTANDARD = LVCMOS33 |DRIVE = 12 | SLEW = FAST ; #Padd pins NET "rota" LOC = "P77" | IOSTANDARD = LVCMOS33 | PULLUP ; #sw6 NET "rotb" LOC = "P75" | IOSTANDARD = LVCMOS33 | PULLUP ; #sw4 NET "de" LOC = "P80" | IOSTANDARD = LVCMOS33 | PULLUP ; #sw1 Gra prezentuje się następująco: Szkoda tylko, że jest tak prosta (zajmuje około 60 % uniwersalnych komórek logicznych zestawu Elbert). Jeśli ktoś chciałby się włączyć do rozbudowy gry (wielu z Was posiada zestaw Elbert) to proponuję mały mini-konkurs: kto pierwszy zdoła tak zmodyfikować projekt tej gry aby za pomocą DIP-switchy z tego zestawu można było wybrać dwie różne szybkości piłeczki i dwie różne długości paletki. Jak analizowałem kod gry nie jest to szczególnie trudne do osiągnięcia (ale wymaga trochę przemyślenia jak można to najłatwiej osiągnąć). Może ten pomysł rozrusza trochę ten dział Forbot'a Tutaj pełny kod projektu dla ISE 14.7: Arkanoidgame.zip BTW: niestety nagrodą dla tego, któremu uda się to osiągnąć pierwszemu jest tylko prestiż Jeśli komuś udałoby się dodać wyświetlane liczni8ki zbitych "cegiełek" i ilości zgubionych piłeczek to byłby mistrzem. Pozdrawiam
  11. Cześć, może "Metrologia wielkości geometrycznych: https://www.publio.pl/metrologia-wielkosci-geometrycznych-wladyslaw-jakubiec,p577512.html Pozdrawiam
  12. Cześć, źle ustawiłeś uprawnienia do zasobu - nie moZna go otworzyć (logując się poprawnym kontem Google). Pozdrawiam
  13. Cześć, po przeczytaniu waszych opinii i obejrzeniu testu już się zdecydowałem na "Creality 3D® Ender-3 Pro" - z tego linku: https://www.banggood.com/Creality-3D-Ender-3-Pro-DIY-3D-Printer-Kit-220x220x250mm-Printing-Size-With-Magnetic-Removable-Platform-Sticker-or-Power-Resume-Function-or-Off-line-Print-or-Patent-MK10-Extruder-or-Simple-Leveling-p-1346320.html?rmmds=search&cur_warehouse=ES Bardzo dziękuję za opinie, zarówno dotyczące drukarek jak i oprogramowania do tworzenia modeli Pozdrawiam
×
×
  • Utwórz nowe...