Page 19 of 23

Modyfikator const w C

Po omówieniu modyfikatora volatile w poprzednim wpisie, dzisiaj zajmę się drugim podobnym modyfikatorem – const. Modyfikator const jest często przedstawiany jako sposób deklarowania stałych liczbowych. W artykule wytłumaczę, dlaczego do definiowania pojedynczych stałych liczbowych lepiej nadają się inne mechanizmy oraz jak używać const w deklaracjach funkcji, aby uzyskać lepszą kontrolę typów.

Continue reading

Jak używać modyfikatora volatile

Dzisiaj omówię element składni języka C, który jest rzadko tłumaczony większości kursów. W książce K&R został wspomniany zaledwie w trzech zdaniach, które zupełnie nie sugerowały, że może on być ważny. Chodzi o modyfikator volatile. Jego nieprawidłowe stosowanie może powodować:

  • Błędne działanie programu po włączeniu optymalizacji.
  • Błędne działanie programów wykorzystujących przerwania lub współbieżność.
  • Problemy z obsługą sterowników sprzętu.
  • Problemy z wydajnością programu.

Continue reading

Robot jeździ o własnych siłach

Problemem na którym zatrzymałem się ostatnio podczas próby wprawienia robota w ruch (link) było przeniesienie napędu z silnika na koła. Osią obrotu koła jest jest śruba przechodząca przez mocowanie silnika. Jest ona dokręcana za pomocą nakrętki, co widać na poniższym zdjęciu.Kiedy nakrętka jest wkręcona za mocno, występuje opór przy próbie obrotu koła. Zębatka na wale silnika przestaje się wtedy kręcić. Po poluzowaniu śruby, koło dobrze się kręci, ale nakrętka zaczyna się odkręcać i po jakimś czasie wypada. Rozwiązaniem mojego problemu okazał się klej do śrub. Dzięki sklejeniu nakrętki ze śrubą, nie odpada ona podczas obracania się koła. Nie muszę więc tak mocno skręcać śruby i koło może swobodnie się kręcić.

Po zamontowaniu kół i sklejeniu śrub robot mógł w końcu wyruszyć w swą pierwszą trasę. Została ona uwieczniona na filmiku:

Continue reading

Elektronika dla dzieci

Z okazji dnia dziecka postanowiłem napisać artykuł o tym jak można zainteresować dzieci elektroniką i programowaniem. Niestety miałem pewną obsuwę i publikuję dopiero dzisiaj. W tekście opiszę zarówno produkty kierowane do przedszkolaków i uczniów podstawówki, jak i dla starszych – gimnazjalistów czy licealistów. Tematy takie jak elektronika i programowanie uchodzą za trudne. Poza tym szkoła wyrabia przeświadczenie, że nauka czegokolwiek polega tylko na siedzeniu nad książkami, wkuwaniu wzorów i zdawaniu klasówek. Okazuje się, że wcale tak być nie musi. Poznawanie elektroniki może być świetną zabawą. Nie tylko dla dziecka, ale także dla rodzica.

Continue reading

Sprawić, żeby robot zaczął jeździć

Trzy miesiące konkursu „Daj się poznać” już praktycznie minęły i o ile jestem zadowolony z treści, które pojawiły się na blogu, to prace nad rozwojem robota są w szczerym polu. Od początku wiedziałem, że realizacja całego projektu potrwa dłużej niż konkursowe trzy miesiące, ale liczyłem, że będę już trochę dalej. Uświadomiłem to sobie w poniedziałek i wtedy też postanowiłem podjąć się wyzwania – do końca maja (czyli w 3 dni) miałem sprawić, żeby robot zaczął jeździć. Z tego powodu w ostatnich dniach solidnie popracowałem nad projektem. Tym bardziej, że przed trzema dniami wyzwania miałem jeszcze owocny weekend z OctoPrint i drukarką 3D. Na zdjęciu puszczony na telewizorze kolejny odcinek serialu „Bootowanie Raspberry Pi”.

Continue reading

M3D – problemy z kalibracją

We wpisie dotyczącym pierwszych odczuć związanych z drukarką 3D (link) chwaliłem soft dołączany do M3D za prostotę obsługi, możliwość łatwego poznania wszystkich opcji i ogólnie krótkiego czasu potrzebnego na wdrożenie się. Jednak ostatnio, gdy próbowałem wykonać kalibrację backlash, miałem okazję poznać jego wady. Okazało się, że soft niebardzo nadaje się do bardziej zaawansowanych operacji. Niektóre opcje są po prostu zbugowane i nie działają w ogóle. Dojście do tej konkluzji zajęło mi trochę czasu i dzisiaj opiszę problemy jakie napotkałem.

Continue reading

Trójmiejski Turniej Robotów – relacja – część 1

W sobotę 20 maja na Politechnice Gdańskiej odbyła się  dziewiąta edycja Trójmiejskiego Turnieju Robotów (TTR). Większość ludzi oglądających to wydarzenie na żywo może nie zdawać sobie sprawy z różnych szczegółów technicznych dotyczących robotów startujących w zawodach. Pomyślałem więc, żeby dokładniej opisać zastosowane rozwiązania, decyzje projektowe i trudności do pokonania kryjące się za poszczególnymi konstrukcjami. Postaram się również przybliżyć specyfikę poszczególnych konkurencji i omówić najczęściej stosowane taktyki. Materiału mam dosyć sporo, dlatego podzielę relację na dwie części. Dzisiaj skupię się na robotach z kategorii Freestyle. Natomiast konkurencje Line Follower, Sumo i Micromouse zostaną omówione w kolejnym odcinku.

Continue reading