Szybki interfejs LCD Serial

Jest to interfejs szeregowy dla dowolnego LCD przy użyciu wyjątkowo wspólnego sterownika 44780. Istnieje kilka różnych interfejsów szeregowych takich jak na rynku, ale ten projekt ma być niezwykłą wersją. Może używać 5 – 30V z dołączonym regulatorem. Ma ochronę ESD. Prawdziwe poziomy RS232 wskazują, że można użyć naprawdę długich kabli. Obsługiwane są również do 8 przycisków. Działałoby to wspaniale z komputerem samochodowym. Wszystkie oprogramowanie i schematy są dostarczane. Spójrz na witrynę Madhacker na wiele innych niesamowitych projektów.

[dzięki stuart]

permalink.

MOVING FORTH WITH MECRISP-STELLARIS and EMBELLO

In the last episode, I advocated a little bit for Forth on microcontrollers being a still-viable development platform, not just for industry where it’s normally seen these days, but also for hackers. I maybe even tricked you into getting a couple pieces of cheap hardware. this time around, we’re going to get the Forth system set up on that hardware, and run the compulsory “hello world” and LED blinky. but then we’ll also take a dip into one of the features that make Forth very neat on microcontrollers: easy multitasking.

Pracować!

Sprzęt komputerowy

Mecrisp-Stellaris Forth runs on a great number of ARM microcontrollers, but I’ll focus here on the STM32F103 chips that are available for exceptionally little money in the form of a generic copy of the Maple Mini, often called a “STM32F103 minimum System Board” or “Blue Pill” because of the form-factor, and the fact that there used to be red ones for sale. The microcontroller on board can run at 72 MHz, has 20 kB of RAM and either 64 or 128 kB of flash. It has plenty of pins, the digital-only ones are 5 V tolerant, and it has all the normal microcontroller peripherals. It’s not the most power-efficient, and it doesn’t have a floating-point unit or a DAC, but it’s a rugged old design that’s available for much less money than it must be.

Programmer Connected, Power over USB
Similar wonders of mass production work for the programmer that you’ll need to initially flash the chip. any of the clones of the ST-Link v2 will work just fine. (Ironically enough, the hardware inside the programmer is nearly identical to the target.) Finally, considering that Forth runs as in interactive shell, you’re going to need a serial connection to the STM32 board. That probably indicates a USB/serial adapter.

This whole setup isn’t going to cost much a lot more than a fast food meal, and the programmer and USB/serial adapter are things that you’ll want to have in your kit anyway, if you don’t already.

You can power the board directly through the various 3.3 and GND pins scattered around the board, or through the micro USB port or the 5V pins on the target board. The latter two options pass through a 3.3 V regulator before joining up with the 3.3 pins. all of the pins are interconnected, so it’s best if you only use one power supply at a time.

Firmware: The Forth System

Go get the super-special Hackaday-edition Mecrisp Forth package from GitHub. included in the “ROMs” directory is a Forth system that’ll work for the demos here. I’ve loaded in a respectable base from [jcw]’s exceptional Embello Forth libraries as well, supplying things like easy GPIO configuration, delay functions, and so on. There are lots of a lot more libraries available, and we’ll look into them next time when we need them.

The coolest thing about using a Forth system is that very little support software is needed in any way — the Forth interpreter compiles its own code, and you interact with it over the serial terminal. everything happens inside the microcontroller. The one hurdle, then, is getting Forth onto the chip. In the old days, this used to be done by toggling in the bytes manually, and Forth is actually small enough that literally bootstrapping it this way is possible. but you already gotten that chip programmer, right?

[Texane]’s ST utilities are the easiest way to get Forth onto your chip. download them from GitHub, and build it yourself or try your luck with your distro’s package manager. (Windows folks, you’re not left out either. Although that binary hasn’t seen updates in a while, it’ll do.)

Connect up the programming wires in the evident fashion, and issue the magic commands st-flash erase and st-flash write mecrisp-stellaris-hackaday-edition.bin 0x8000000. In five seconds, you’ll be ready to rumble.

GND — GND

SWCLK — CLK

SWSIO — DIO

Having to get a programmer is a hassle if you don’t have one, but it will make the rest of your life easier, and getting one is as basic as clicking “pay” and waiting. Our own [Al Williams] (no relation) has a recent post on using the same software for debugging C or Arduino code with GDB, so it’s worth your time to set this up.

Oprogramowanie

Serial Hookup, Powered by Laptop
Put the programmer away for now and connect to the STM32 over serial; the default baud rate must be 115,200. If you haven’t unplugged power yet, you might need to hit the reset button on the STM32 board. If all went well, you’ll be greeted by a familiar skull-and-cross-wrenches. Mecrisp is expecting a linefeed at the end of lines, so if you’re sending LF+CR, you’ll be successfully hitting return twice.

A9 TX — Serial RX

A10 RX — Serial TX

GND — GND

[jcw]’s folie is a nice, multi-platform serial terminal emulator for this application. What it does that your normal terminal program doesn’t is allow you to re-enter a command line with the up-arrow, which makes taking care of mistakes much, much much easier than re-typing a long command. It alsoautomatically includes other files, which I made substantial use of in building the binary for this article. You don’t need to run folie, but I bet you’ll like it.

Witaj świecie

Now it’s “Hello World” time. If you’re new to Forth, here comes an very selective introduction. type 2 2 + and hit enter. It says ok.. That’s reassuring, right? now type . (read “dot”) and it will print out the not-surprising result. dot is the first of a few global Forth shorthands that you’ll want to internalize. a lot of commands with a dot print out their results immediately. .s (dot-ess) prints out the stack contents, for instance. two a lot more idioms that we’ll see a lot of are @ for getting a variable or reading an input and ! for setting a variable or output. read these as “get” and “set” in your head when scanning Forth code.

Next, let’s see how to write a function. : starts a function definition and ; ends it. So : four 2 2 + ; defines a function that adds two and two together. (And compiles it in real time!) You can then turn around and call this function immediately. four .s will show you that our function has left the sum of two and two on the stack. In this sense, functions in Forth aren’t really functions. They don’t take explicit arguments or return explicit values. They just operate on whatever data is on the stack, and leave the results there too. That’s why Forth functions are called “words”. I’ll be sticking to this convention from now on.

Here, finally, is “Hello World”: : hw .” Hello, World!” cr ;” Strings are a little odd in Forth, mainly because of the way the language is parsed — the compiler reads up to a space and then executes what it has found, so there has to be a space between the print-a-string command (.”) and the first character that you want to print. The print command scans forward until it finds a closing “, though, so you don’t need an extra space there. cr sends a carriage return. type hw at the prompt. Hello, World!

Blinking LEDs

Even though serial text input and output is so easy in Forth, blinking an LED is the standard “hello world” of microcontrollers, so it’s time for some GPIO. because the system is already configured for this particular microcontroller board, turning an LED on is as easy as typing led.on at the prompt. want to turn it off? led.off. manual blinking will get old pretty quickly, though, so let’s write a blink word. : blink led.on 100 ms led.off 200 ms ; da rade. try blink blink blink. See my blink demo code for elaboration. (More on ms in a few thousand milliseconds.)

The details of the GPIO initialization are hidden in core/Hackaday/LED.fs and in Embello’s stm32f1/io.fs respectively. Digging through, you’ll see the standard initialization procedure: the particular pin is set as output by flipping some bits in the STM32’s peripheral control registers. [jcw] has defined a bunch of these, making setting a pin as output, with the push-pull driver, as easy as PC13 OMODE-PP io-mode!. (Remember the “!” indicates set the value in a variable or register.)

To configure pin PA7 for ADC input: PA7 IMODE-ADC io-mode!. testing buttons, using the built-in pullup or pulldown resistors: PA3 IMODE-PULL io-mode! and then set the output to pull up or down using true PA3 io! or PA3 ios!. You’ll then be able to read the button state with PA3 io@ (“io get”) later on.

GPIO on the STM32 chips is very flexible, and if you want to get deep into the configuration options in the datasheet, you can set all of this fairly easily using [jcw]’s io.fs code. For instance, io.all prints all of the GPIO registers and their values, which is a great help for interactive debugging. That said, there’s some room here for a a lot more user-friendly hardware-abstraction layer, if you want to contribute one.

Multitasking on the Quick

So now we’ve got a blinking LED and serial-port printing “Hello World”. Not a bad start, and both of these make good use of Forth’s interactivity: the LED only lights up when you type blink. one of the chief virtues of Forth, for me, is the ease of going between interactive testing of words like this, and then deploying the functionality in a working system. One reason is that nearly all Forths support basic cooperative multitasking. Here’s what I mean.

First, let’s loop our blink function so that we don’t have to type so much. : bb begin blink again ; creates a function, bb for “bad blink”, that will run forever. The problem with “run forever” in Forth is that you never get back to the interpreter’s command line without physically pressing the reset button, and then everything you were working on in RAM is lost.

Instead, let’s blink in a loop with a way out. : gb begin blink key? aż do ; creates a function that will run our blink command until there’s some input from the keyboard — the return crucial is pressed. This particular looping construct is very beneficial for testing out functions that you’d like to run continuously, without hanging the system. keep it in mind.

Once we’ve tweaked our blink function to run just the way we want it, let’s create a background task so it can blink unattended.

task: blinktask
: blink&
blinktask activate
begin blink again
;
wielozadaniowy
migać&

Briefly, the task: word creates some memory space for our blinking background task that we’re calling blinktask. The function blink& does the work in the background. blink& starts off by declaring that it will use the blinktask task context, and that it must start off running. then it goes into an limitless blinking loop from which it never leaves. multitask turns multitasking on, and blink& executes our task. Run it, and the LED blinks while you can still interact with the console. Słodki. type tasks and you’ll see that there are two active: one is our blinker and the other is the interactive interpreter.

But how does the blink task know when to yield to other simultaneous processes? In Forth, the word pause yields from the current context and moves on to the next, round-robin multitasking. The ms function, among others, consists of a pause command, so what looks like a blocking delay in a single-task setup ends up playing fantastically well with your other tasks.

The great thing about cooperative multitasking is that you control exactly when there’s going to be a context switch, which can help eliminate glitches that you’ll find in preemptive systems. The downside is that you’re responsible for remembering to pause your functions now and then, and you have to verify the timing yourself. Of course, this is a microcontroller, and you have the ARM’s quite rich internal interrupt controller to play with as well.

The real point of multitasking on micros in Forth is that it makes a great workflow for writing, testing, and deploying little daemons: functions that want to be “always on”. First, write the function that does the action once. Second, test it in a loop with an escape hatch. Third, once it’s working, remove the escape and make a background task for it. You can then turn it on and off using idle and wake, even from within other tasks. See Mecrisp’s multitask.txt, the source, for a lot more details.

Co dalej?

So far, we’ve set up Mecrisp-Stellaris, with additional libraries from Jeelabs’ Embello Forth framework, and run some quick demos. If this has piqued your interest, I’ll take you on a walkthrough of building some real software next time. There’s a lot a lot more to say about the way that Mecrisp handles the nuances of flash versus RAM, inputs and outputs, and the practice of interactive development. some of the really freaky aspects of working in Forth will raise their funny-shaped heads, and we’ll learn to love them anyway.

In the meantime, get your cheap STM32F103 boards flashed up with our binary, and get a little bit used to playing around in the Forth environment on the chip. Blink some LEDs. look around the Mecrisp-Stellaris glossary and the embello API documentation. Or just type list to see all the command at your disposal and start hacking away.

ASK HACKADAY: WHAT about THE DIFFUSERS?

Blinky LED projects: we just can’t get enough of them. but anyone who’s stared a WS2812 straight in the face knows that the secret sauce that takes a good LED project and makes it great is the diffuser. Without a diffuser, colors don’t blend and LEDs are just tiny, blinding points of light. The ideal diffuser scrambles the photons around and spreads them out between LED and your eye, so that you can’t tell exactly where they originated.

We’re going to try to pay the diffuser its due, and hopefully you’ll get some inspiration for your next project from scrolling through what we found. but this is an “Ask Hacakday”, so here’s the question up front: what awesome LED diffusion tricks are we missing, what’s your favorite, and why?

Diffusive Materials, Blending Colors

Look closely enough at an RGB LED and you’ll see three individual LED chips, not surprisingly in red, green, and blue. we all know this, and yet it’s still surprising how badly blended the colors can be, even from an LED unit like the WS2812, where the three diodes are ridiculously tiny and less than a millimeter apart. Somehow, even at desk-distance, you still get the feeling that you’re looking at a red LED and a blue LED instead of a blended magenta light source.

One approach is to use a diffusive material that has a rough enough surface that it scatters the light that passes through it. Diffusive materials include something “traditional” like frosted glass or acrylic, as seen in [Mike Szczys]’s 1 Pixel Pacman demo video or this classy linear RGB clock. Something like 50% transparent acrylic seems to be just about right. You can get a similar effect by sanding or tumbling a clear LED.

Then there are “oddball” diffusers. A drop of hot glue works pretty well, because it’s rarely crystal clear. stranger still is polyester pillow stuffing. Lately, I’ve been experimenting with re-melting candles and entombing LEDs in paraffin wax — around 1 cm depth yields very uniform colors. I’ve also seen holes drilled in wooden cases, filled with epoxy, and sanded down.

You could always 3D print the case in a translucent material, so that the case is the diffuser. Or you can just hold up a sheet of paper or a cutout from a milk jug. These low-tech options work surprisingly well.

The main variables with diffusive materials is how transmissive the material is and how far away from the LED it’s located. Thicker, less transmissive materials tend to blur better but darken the LED more — sometimes a good thing. locating the diffuser further away tends to mix colors better, but also blurs the points of light out, and can muddy up the image. Again, sometimes you want this effect, like in this wall panel, and sometimes you don’t, like in [Mike]’s Pacman. but the distance to the diffuser can be critical. test it out well before designing the case.

Plain-old translucent Acrylic, Up close
acrylic Sheet, Spaced Farther Away
transparent PLA = Diffuser
gorący klej
Polyester pillow Stuffing Cloud
PCB Fiberglass
Ręcznik papierowy
Molded acrylic Mask
Shapelock / Polymorph

Reflective Cavities, Shaping Light

Reflective cavities serve the same purpose as translucent material, but can be lighter weight if more difficult to construct. You can either add a diffuser sheet to the front of the cavity or not, as you wish. Both can be really nice effects. For instance, “Ecstatic Epiphany” by [Micah Elizabeth Scott] uses folded borders that bounce the LEDs off of a light-colored surface, and spread it around a little bit, to achieve both color mixing and some shaping. It works fine without any front cover.

“Colossus” uses white foam-core dividers to make many individual reflective cavities, covered with two layers of white bed sheet as a front-surface diffuser. Within each cell, the colors are discrete and well mixed, for the perfect big-pixel effect. You could also use straws, toilet-paper tubes, or even soda bottles.

Photographer’s light boxes are also essentially diffuser cavities. We’ve shot many of our closeups in one that’s made of “vellum” art paper surrounding a wooden frame, but we recently upgraded to IKEA Trofast with optional LED lighting for nocturnal photo sessions. most of the light coming through the translucent plastic ends up bouncing around inside, leaving very soft shadows and even illumination. It works better when driven by daylight. If you want to take this idea to the extreme, check out [Doog]’s model shooting rig. note the clever use of underlit diffusive acrylic.

Nothing is stopping you from making interesting shapes out of the reflective cavities. Triangle-shaped reflective cells give [Micah Scott]’s “Triangle Attractor” and [Becky Stern]’s WiFi wall display their style. If triangles aren’t your thing, you can 3D-print the cavities in whatever shape you need, like these 16-segment wyświetlacze.

Projektowanie dyfuzyjnej jamy prawa jest sztuką bardziej niż nauka. Ogólnie rzecz biorąc, tym bardziej odblaskowe ściany, a im więcej objętości obejmowały, tym lepsze będzie mieszanie kolorów. Zdecydowanie jest warte twojego czasu, aby eksperymentować z pośrednim oświetleniem, gdzie po raz pierwszy odbija się światło przed opuszczeniem pudełka. Łącząc wnęki z dyfuzyjnymi paneli przedniego materiału mogą przynieść bardzo subtelne efekty.

Pasze wnęki klinowe
Trójkąt Atraktora.
Podliczkę przez dyfukcyjne akrylowe, lekkie odbijające się wszędzie
Słomki
Colossus w akcji
Szlifowana butelka z napojami zwierząt domowych
Wyświetlacz pogody w stylu trójkąta

Zapytanie

PSHWEW! To była wycieczka z opcjami dyfuzji, podzielona arbitralnie w kategorie materiałów dyfuzyjnych i ubytków, z nakładaniem się. Co przegapiliśmy? Jaki jest twój ulubiony efekt dyfuzyjny LED?

Pole Aray fluorescencyjny, bezprzewodowo zasilany

Co byś zrobił, gdybyś prowadził wzdłuż autostrady i spojrzałeś w pole, aby zobaczyć gigantyczną tablicę fluorescencyjnych rur świeci bezprzewodowo z pól elektromagnetycznych linii energetycznych. Wróć w 2004 r., [Richard Box] Skonfiguruj ten wyświetlacz po przesłuchaniu o Pal gra “Light Saber” z fluorescencyjnymi rurkami pod liniami energetycznymi. Probówki można łatwo świecić, mają zmianę napięcia między końcami. Przyklejając jeden koniec w ziemi, a drugi w powietrzu, wykorzystuje silne pole magnetyczne z linii energetycznych. Chociaż niektórzy uważali, że wyświetlacz został podjęty, aby przywołać uwagę ludzi na możliwe zagrożenia życia w pobliżu linii, [Box] stwierdza, że zrobił to tylko dlatego, że wyglądało fajnie.

[przez IO9]

Lapse Dolly wykorzystuje niektóre części zapasowe i trochę pracy obróbki

[Ben] właśnie skończyłem budowę tego czasu Dolly i postanowiliśmy podzielić się jego doświadczeniem. Uważamy, że uderzył w odpowiednią równowagę DIY i dostępnych w handlu materiałów, aby stworzyć platformę, która jest stabilna, ale stosunkowo niedrogi.

Projekt zainspirowany przez Projekt Chronos. Daje wiele szczegółów na temat elektroniki napędowej i używanego kodu, ale istnieją pewne luki w instrukcji budowania samego śledzenia. [Ben] kute naprzód, kupując łożyska liniowe i szynę podwójną prowadnicę z Igusa. Nie wspomniał o tej cenie na tym przedmiocie, ale znaleźliśmy 1000 mm rzeczy (około 40 cali) za mniej niż 75 USD, więc nie jest to oburzalne. Część, której nie mógł uzyskać za rozsądną cenę, była precyzyjny pasek gwintu. Zakończył się regularnym prętem gwintowanym i kilkoma orzechami połączonymi z mechanizmem sprężynowym, aby utrzymać sankę stabilną. To działa dobrze. Po przerwaniu widać, że pręt odbija się trochę w klipie, ale nie szkodzi stabilności przechwyconych obrazów.

Zakończniki końcowe, w tym ten, do którego montowany jest silnik krokowy, to jego własna praca. Brzmi, jakby wymagały nieco więcej prac wytwarzających niż on planował, ale postacie, jeśli nie rzucasz wyzwaniem Twojej umiejętności, nigdy nie będziesz lepiej.

30-stylowy odbiornik regeneracyjny

[DES] Wysłany w tym naprawdę fajnym zapisu na budowaniu odbiornika regeneracyjnego za pomocą VFDS. Odbiorniki regeneracyjne są na ogół odbiorniki radiowe krótkie fali, które używają pozytywnej opinii na znacznie bardziej drobno dostroić sygnał. Chociaż mogą być zbudowane z nowoczesnymi komponentami, chciałem zrobić coś, co nie tylko wyglądało, jakby to było wykonane w 30-tych, ale faktycznie wykorzystało tę samą technologię. Wykorzystał kilka VFD w różnych miejscach, w których potrzebne były rury próżniowe. Po budynku, [DES] odkrył, że urządzenie wykonane bardzo dobrze, lepsze niż jego autentyczne 30-dniowe radio, z którym porównał. Te VFD wydają się być ostatnio niedawno. Zrobiliśmy historię na użyciu ich jako wzmacniaczy, a także budowanie dla nich kierowców.

Rejestr opracowywania kształtu – to młyn CNC w pudełku

nie próbujemy promocji tego produktu. Po prostu opracowywanie dziennika obejmującego proces montażu kształtujących wykonany przez [anool] jest jak złamanie dla tych z nas, którzy jeszcze nie otrzymali własnych młynów stacjonarnych CNC.

Podobnie jak tytuł mówi, ta rzecz jest w zasadzie młyn w pudełku. Jednak [anool] zdecydował się zamówić wersję zestawu, który nie obejmuje żadnego typu silników ani zarządzać elektroniką. Podobnie zorganizowany na przyszłe aktualizacje, zamawiając dodatkową szynę wytłaczaną, aby zwiększyć rozmiar kształtującego. Po montażu ramy jego decyzję o znalezieniu silników stepperowych lokalnie, gdy byli niedostępnymi. Jednak nadal było wiele do przygotowywania zarządzania elektroniką podczas oczekiwania. Opierał swój system na Raspberry PI, który mówi z Arduino, aby rozwiązać silniki, a także ekranowe czujniki.

Gdy wszystkie części były wreszcie rozliczeniowe, sprawdzał plotek jako ploter. Pióro zostało ostatecznie zastąpione silnikiem routera, a także ten dźwiękowy płytka PCB widziana powyżej była pierwszą rzeczą, którą z tym mieli.

[Dzięki Justin]

Nowy dzień Część: Bardzo tanio LIDAR

Samochodowe samochody są, najwyraźniej kolejna wielka rzecz. Ta myśl jest regulowana na rozwój w wizji urządzenia i tańszych, lepszych czujników. W przypadku wizyjnej części równania, NVIDIA, Intel i Google wywierają kilka interesujących kawałków sprzętu. Jednak czujniki? Potrzebujemy Lidar, lepszych czujników odległości, znacznie bardziej zdolnych kluczy autobusowych, a sprzęt do łączenia go razem.

Jest to najbardziej niedrogi Lidar, jaki kiedykolwiek widzieliśmy. Rplidar jest nowym produktem z Seed Studios i jest to niedrogi Lidar dla wszystkich. 400 USD otrzymuje jeden moduł, a dziwne 358 USD dostaje dwa moduły. Nie zadawaj pytań – ten cenny punkt był niespotykany zaledwie pięć lat temu.

Zasadniczo ta jednostka LIDAR jest modułem spinningowym podłączony do silnika przez pasek. Wyszukiwarka laserowego jest ukryta w bitach Spinny i podłączony do interfejsu UART i USB przez pierścień poślizgu. Zamontuj tę jednostkę Lidar na robota, zastosuj moc, a bit Spinny robi swoją rzecz w około 400-500 obr./min. Tata, która wychodzi, obejmuje odległość (w milimetrach), łożysko (w jednostkach stopni), jakość pomiaru, a flaga startowa raz na każdym czasie głowa dokonuje rewolucji. Jeśli nigdy nie przekonwertujesz Polar do współrzędnych kartezjańskich, jest to świetne miejsce do rozpoczęcia.

Chociaż samodzielne samochody i selfie drony są przyszłością, część ta jest prawdopodobnie nieodpowiedni dla każdego projektu z wystarczającą masą lub prędkością. Zakres skanowania tego Lidara wynosi tylko 6 metrów i niewystarczający do modernizacji Camry Toyota z inteligencją syntetyczną. Mówi się, że jest to tani Lidar, który otwiera drzwi do wielu eksperymentów, od małych robotów, aby odtworzyć ten jeden radioodel.

Retrotechtacular: The Fourier Series

Oto prawdziwie szybki film, który podejmuje inną metodę w celu zrozumienia serii Fouriera niż jesteśmy wykorzystywane. Jeśli jesteś rutynowym użytkownikiem, jesteśmy pewni, że słyszałeś o serii Fouriera (często omawiane jako FFT lub Szybka transformacja Fouriera), jednak jest duża możliwość, że rozumiesz o tym. Seria umożliwia rozbicie złożonych sygnałów (pomyślać fale audio) do kombinacji łatwych równań sine lub cosinusów, które mogą być obsługiwane przez mikrokontrolera.

Od dawna mieliśmy ten bazowy poziom zrozumienia. Jednak kiedy zaczniesz kopać głębiej, odkryjemy, że staje się ćwiczeniem matematycznym, który nie jest to intuicyjne. Klip wideo osadzony po tym modyfikacji przerwania. Zaczyna się, pokazując włączenie wektora. Mapowanie sugestii tego wektorowego poziomo wyciągnie przebieg. Seria Fouriera jest następnie wykorzystywana, dodając wirujące wektory dla harmonicznych do sugestii ostatniego wektora. Wynikiem podsumowania tych harmonicznych tworzy przybliżone przybliżenie fali kwadratowej w sine.

To kęs, a także jesteśmy pewni, że zgodzicie się, że demo wideo jest znacznie prostsze do zrozumienia. Jednak trzy minuty zacisk tylko zadrapania powierzchni. Jeśli jesteś zidentyfikowany do Master The Fourier Series, zapewniają tę mamutową serię wykładów Stanford na temat spróbuj.

[przez Reddit]