Woodstock, karcianka IT Startup i konferencje

Ostatnio przez długi czas na blogu panowała cisza spowodowana oczywiście wakacjami. Jednak powoli już wracam do codziennej rzeczywistości, a więc także i do regularnego zamieszczania nowych wpisów. Na początek jeszcze będzie trochę ogórkowo, ponieważ dzisiaj mam zamiar opisać ostatnie tygodnie i plany na najbliższe miesiące. Będzie więc o Woodstocku, o grze IT Startup i o konferencjach.

Continue reading

Poprawienie dokładności regulacji silników

Pokazany w poprzednim wpisie filmik obrazował jak wyrobiły się otwory w mocowaniu silnika z drukarki 3D. W sumie można się było tego spodziewać, w końcu te tworzywa nie są super wytrzymałe, a ja używam je już od roku. W końcu postanowiłem je poprawić dodając na górze nakrętki na śruby. Powinienem to zrobić od razu po złożeniu i nie mieć problemów z luzowaniem się mocowań. Wpływały one między innymi na działanie regulatora silnika. W tym wpisie opiszę szczegóły prowadzące do poprawienia dokładności regulacji. Na początek jednak filmik pokazujący końcowy efekt (wartości zadane: 0.5m/s i 90°/s przez 2 sekundy):

Continue reading

Działający regulator i problem z mocowaniem silników

Wprowadziłem zmiany opisane w poprzednim wpisie i wyniki są wręcz niewiarygodne. Testy pokrywają się z obliczeniami teoretycznymi i symulacją! Działanie nowego regulatora ruchu obrotowego możecie obejrzeć na filmiku:

Program testowy po naciśnięciu przycisku przez 2 sekundy podaje wartość zadaną 360 stopni na sekundę, czyli spodziewamy się dwóch obrotów. W rzeczywistości jest trochę mniej, bo robot musi się rozpędzić przy starcie, a poza tym jest pewien problem mechaniczny..

Continue reading

Zmiany w regulatorze prędkości kątowej

Po wyeliminowaniu błędów w PID opisanych w poprzednim artykule, mogłem przejść do kolejnych poprawek w module silników. Moją uwagę przykuł regulator prędkości kątowej. Postanowiłem wprowadzić w nim zmiany, aby zwiększyć precyzję obrotu robota i zwiększyć jego stabilność. Do tej pory zdarzało mi się, że robot się wzbudzał i stojąc w miejscu wykonywał czasem niewielkie skręty.

Continue reading

Błędy w regulatorze silników

Dobry regulator prędkości silników jest niezbędny do nawigacji w labiryncie. Robot powinien być w stanie zarówno robić małe skręty podczas jazdy w celu korekty ustawienia oraz skręty o 45, 90 i 180 stopni podczas eksploracji labiryntu i speed runu. Mój regulator powstał już jakiś czas temu, co opisywałem tu, tu i tu. Strojenie zajęło mi sporo czasu w końcu uzyskałem jakieś sensowne wyniki, jednak miałem wrażenie, że powinno to działać lepiej. Postanowiłem więc jeszcze raz przejrzeć implementację i znalazłem kilka grubych baboli.

Continue reading

Unit testy funkcji statycznych w C

W idealnym świecie nie testujemy szczegółów implementacyjnych jakimi są funkcje statyczne. To samo tyczy się prywatnych pól i metod klasy w językach obiektowych. Zamiast tego piszemy testy dla publicznego API i z pomocą odpowiednich mocków jesteśmy w stanie zaobserwować całe zachowanie testowanego modułu z zewnątrz. Rzeczywistość często nie jest taka różowa i musimy często jakoś dostać się do tego ukrytego kodu.

Continue reading

Jak testować nieskończone pętle?

Częstą wymówką, aby nie pisać unit testów jest „Tego kodu nie da się przetestować.”, otóż zwykle jednak się da, tylko trzeba chwilę pomyśleć jak się do tego zabrać. Jednym z takich trudniejszych przypadków jest testowanie nieskończonych pętli. W tym wpisie pokażę kilka technik służących do pokrycia ich unit testami.

Continue reading

Code review – prosty sposób na poprawienie jakości kodu

O code review napisano już całkiem sporo. W internecie można znaleźć dokładne opisy jak powinny wyglądać, jakie dają efekty, czy ile kodu sprawdzać na raz. Dlatego nie będę dokładnie analizować tych aspektów. Zamiast tego krótko opiszę najważniejsze korzyści i kilka przydatnych technik na podstawie własnych doświadczeń. Z code review korzystałem już w wielu projektach i zawsze miało to pozytywny wpływ na jakość kodu. Moim zdaniem code review powinno być elementem każdego poważnego projektu.

Continue reading

Wielka korporacja, czy mała firma?

Ostatnio czytałem książkę „Mit przedsiębiorczości”, która mówi, że każda firma od samego początku powinna mieć jasno określoną strukturę i dobrze zdefiniowane procesy. Skłoniło mnie to do refleksji jaki wpływ takie procesy mają na mnie jako pracownika. Jakie są zalety i wady pracy dla wielkiej korporacji oraz małego startupu. I jaki poziom strukturyzacji jest najlepszy dla mnie. Nie skupiam się tutaj na aspektach finansowych, czy multisportach, a jedynie na konsekwencjach strukturyzacji i jej wpływie na zadowolenie z pracy.

Continue reading

C++ bez exceptionów

Korzystając z C++ na systemach embedded najczęściej wyłączamy obsługę exceptionów. W tym artykule wyjaśnię dlaczego tak robimy oraz jakie zagrożenia z tym się wiążą.

Continue reading

© 2018 ucgosu.pl

Theme by Anders NorénUp ↑