Robotyka, Embedded, C
W dzisiejszym artykule omawiam tajemną sztukę estymowania czasu. Wiele osób ma do siebie pretensje, że nie potrafi poprawnie przewidzieć wymaganego czasu na zadanie i projekt. Prawdopodobnie zapominają oni jakie jest znaczenie słowa estymata. Aby rozjaśnić temat wychodzę od statystyki i pewnych faktów o estymatorach, a następnie formułuję wnioski dotyczące estymowania czasu. Nie należy tego traktować […]
W dzisiejszym artykule omawiam tajemną sztukę estymowania czasu. Wiele osób ma do siebie pretensje, że nie potrafi poprawnie przewidzieć wymaganego czasu na zadanie i projekt. Prawdopodobnie zapominają oni jakie jest znaczenie słowa estymata. Aby rozjaśnić temat wychodzę od statystyki i pewnych faktów o estymatorach, a następnie formułuję wnioski dotyczące estymowania czasu. Nie należy tego traktować […]
Kiedy w programie na PC nastąpi exception, aplikacja zakończy się z błędem. W skrajnym przypadku dostaniemy blue screena i komputer się zresetuje. Wyjątki są obsługiwane przez system operacyjny. W mikrokontrolerach nie mamy dostępu do takich zaawansowanych funkcjonalności. Jednak w dalszym ciągu możemy wykonać dzielenie przez 0 lub odwołać się do null pointera. W tym artykule […]
Kiedy w programie na PC nastąpi exception, aplikacja zakończy się z błędem. W skrajnym przypadku dostaniemy blue screena i komputer się zresetuje. Wyjątki są obsługiwane przez system operacyjny. W mikrokontrolerach nie mamy dostępu do takich zaawansowanych funkcjonalności. Jednak w dalszym ciągu możemy wykonać dzielenie przez 0 lub odwołać się do null pointera. W tym artykule […]
Zmienne programu są w pamięci reprezentowane jako pewien ciąg bitów. Dla komputera nie ma znaczenia, czy ten ciąg to liczba, string, struktura, czy cokolwiek innego. Pisząc programy definiujemy typy zmiennych i to na te typy rzutowane są wartości bitowe. Języki wyższego poziomu jak np. C#, czy Python oddzielają tą implementację za pewną warstwą abstrakcji. Twórcy […]
Zmienne programu są w pamięci reprezentowane jako pewien ciąg bitów. Dla komputera nie ma znaczenia, czy ten ciąg to liczba, string, struktura, czy cokolwiek innego. Pisząc programy definiujemy typy zmiennych i to na te typy rzutowane są wartości bitowe. Języki wyższego poziomu jak np. C#, czy Python oddzielają tą implementację za pewną warstwą abstrakcji. Twórcy […]
Aby wykonać operację arytmetyczną w C, kompilator musi dysponować dwoma operandami tego samego typu. Jeżeli programista o to wcześniej nie zadbał, konwersja jest wykonywana niejawnie. Na przykład: Zmienna o mniejszym rozmiarze jest konwertowana do większego np. uint8 na uint32, czy float na double. Zmienna bez znaku jest konwertowana na zmienną ze znakiem. Zmienna int jest […]
Aby wykonać operację arytmetyczną w C, kompilator musi dysponować dwoma operandami tego samego typu. Jeżeli programista o to wcześniej nie zadbał, konwersja jest wykonywana niejawnie. Na przykład: Zmienna o mniejszym rozmiarze jest konwertowana do większego np. uint8 na uint32, czy float na double. Zmienna bez znaku jest konwertowana na zmienną ze znakiem. Zmienna int jest […]
Koniec roku to czas, kiedy wszyscy piszą podsumowania, więc pora i na mnie. Ten rok upłynął mi pod znakiem otwierania się na świat. Postanowiłem ze swoimi przemyśleniami wyjść do szerszej publiczności, a także zacząłem bardziej interesować się, co mają do powiedzenia inni. Blog Do założenia bloga zbierałem się bardzo długo. Czytałem o tworzeniu tekstów, […]
Koniec roku to czas, kiedy wszyscy piszą podsumowania, więc pora i na mnie. Ten rok upłynął mi pod znakiem otwierania się na świat. Postanowiłem ze swoimi przemyśleniami wyjść do szerszej publiczności, a także zacząłem bardziej interesować się, co mają do powiedzenia inni. Blog Do założenia bloga zbierałem się bardzo długo. Czytałem o tworzeniu tekstów, […]
W praktykach Extreme Programming (XP) możemy przeczytać, że tydzień pracy programisty powinien wynosić 40 godzin. Możliwe są sporadyczne nadgodziny (kilka razy w roku), ale nigdy nie powinny występować przez dwa tygodnie pod rząd. Praktyka ta nosi nazwę Sustainable Pace, czyli zrównoważone tempo. Zgodnie z XP zespół powinien pracować w stałym tempie, które jest w stanie […]
W praktykach Extreme Programming (XP) możemy przeczytać, że tydzień pracy programisty powinien wynosić 40 godzin. Możliwe są sporadyczne nadgodziny (kilka razy w roku), ale nigdy nie powinny występować przez dwa tygodnie pod rząd. Praktyka ta nosi nazwę Sustainable Pace, czyli zrównoważone tempo. Zgodnie z XP zespół powinien pracować w stałym tempie, które jest w stanie […]
Dzisiaj zaprezentuję jak wyeliminowałem wpływ dryftu żyroskopu z pomiaru prędkości kątowej wykorzystując Rozszerzony Filtr Kalmana. Będzie miejsce na teoretyczny opis problemu i implementację najpierw w środowisku symulacyjnym, a następnie w robocie Micromouse. Definicja dryftu Częstą wadą żyroskopu jest dryft, czyli błąd systematyczny pomiaru polegający na dodaniu do niego pewnej wartości (offsetu). Ten rodzaj błędu często […]
Dzisiaj zaprezentuję jak wyeliminowałem wpływ dryftu żyroskopu z pomiaru prędkości kątowej wykorzystując Rozszerzony Filtr Kalmana. Będzie miejsce na teoretyczny opis problemu i implementację najpierw w środowisku symulacyjnym, a następnie w robocie Micromouse. Definicja dryftu Częstą wadą żyroskopu jest dryft, czyli błąd systematyczny pomiaru polegający na dodaniu do niego pewnej wartości (offsetu). Ten rodzaj błędu często […]
W ten weekend miałem przyjemność uczestniczyć w hackatonie świątecznym organizowanym przez gdański hackerspace. Hackerspace chciałem odwiedzić już od dłuższego czasu. ale jakoś nigdy nie mogłem się zebrać. Wystartowanie w hackatonie też było na mojej checkliście. Tak więc była możliwość upiec dwie pieczenie na jednym ogniu. Co to jest hackerspace Hackerspace to miejsce, gdzie przychodzą głównie […]
Robotyka, Embedded, C
Programowaniem zajmuję się zawodowo od 2012 roku. Moją specjalnością są systemy embedded, pracowałem już nad systemami safety critical, inteligentymi budynkami, czy Internet of Things. Jestem również wielkim fanem robotyki i w wolnym czasie robię własnego robota micromouse.