Po zrobieniu schematu ideowego przyszła pora na projekt płytki PCB. Udało mi się uwinąć z tym zadaniem w weekend. W tym poście opiszę, czym się kierowałem przy projekcie PCB.

Wymiary robota

Pierwszym krokiem do stworzenia PCB było określenie wymiarów. Byłem tutaj ograniczony przez program Eagle, który wykorzystałem do zrobienia projektu. Maksymalny rozmiar płytki możliwy w darmowej wersji programu to 80x100mm. Minimalna szerokość musiała być taka, aby zmieściły się dwa mocowania silników – długość jednego to 23mm, a szerokość to 40mm. Szerokość z zamontowanymi kołami to 50mm. Ostatecznie zdecydowałem, że pomiędzy silnikami umieszczę jeszcze baterię i szerokość wyniesie 60mm. Przed mocowaniami silników po zostawieniu miejsca na koła zdecydowałem się na zwiększenie szerokości do 80mm i wyprofilowanie kształtu półkola. Wzorowałem się tutaj na istniejących robotach. Takie rozwiązanie jest standardem, a przykłady można obejrzeć tu(należy wybrać Projects->Micromouse), tu i tu. Jak bym chciał być pro, to mogłem jeszcze tam wyciąć ze środka część PCB dla odchudzenia konstrukcji. Jednak nie byłem pewny, czy się ze wszystkim zmieszczę, a dopóki nie będę chciał rywalizować z najlepszymi Micromouse na zawodach w Japonii raczej nie będę musiał dbać o każdy gram. Ostateczny kształt płytki można obejrzeć na rysunku. Obraz jest mocno zaciemniony przez żółte linie reprezentujące niedokończone połączenia, których oczywiście zapomniałem wyłączyć do screena. Jednak obrys robota i rozmieszczenie najważniejszych elementów są widoczne.

Rozmieszczenie elementów

Aby projekt PCB był udany, należało rozplanować, w których miejscach umieścić najważniejsze elementy. Pozycję mocowań silników wyznaczyłem na początku określając wymiary płytki. Umiejscowienie czujników odległości z przodu również nie podlegało dyskusji. Układ zasilania zdecydowałem się umieścić z tyłu. Zostało mi tam trochę miejsca, które wypełniłem przyciskami. Dzięki temu z tyłu znajdą się wszystkie elementy do bezpośredniej interakcji z użytkownikiem, czyli dwa przyciski, dioda LED i przełącznik suwakowy włączający zasilanie.

Złącza od silników zdecydowałem się umieścić przed mocowaniami, ponieważ nie byłem w stanie dobrze ich upchnąć z tyłu. W wyznaczeniu odpowiedniego miejsca na te złącza pomogły mi wycinanki. Wydrukowałem sobie kształt PCB, wyciąłem i przykręciłem do niego mocowania silników, co widać na powyższym rysunku. Po empirycznym sprawdzeniu kilku miejsc, gdzie mógł bym umieścić złącza silników, w końcu wybrałem optymalną miejscówkę. Pomiędzy złączami silników zdecydowałem się umieścić złącze na moduł IMU, w przedniej części znalazło się miejsce dla procesora i sterownika diod. Złącza do programatora i bluetootha umieściłem po bokach tak, aby był do nich łatwy dostęp. Zostało mi dużo miejsca pomiędzy zasilaniem znajdującym się z tyłu, a wszystkimi innymi elementami umieszczonymi przed mocowaniami. Wykorzystałem to miejsce na driver silników. Rozmieszczenie kluczowych elementów jest widoczne na pierwszym rysunku.

Uzupełnienie połączeń

Po rozplanowaniu ułożenia najważniejszych elementów pozostało mi dodanie drobnicy i poprowadzenie ścieżek. Proces przebiegł bez większych problemów. Aby ułatwić sobie zadanie, pozmieniałem nieco kolejność pinów na schemacie ideowym. Dzięki temu uniknąłem nadmiernego krzyżowania się ścieżek. Ostatecznie schemat ideowy wygląda tak:

A ostateczny wygląd płytki PCB, tak:

Aby upewnić się, że żadne elementy nie będą o siebie wadziły, a wszystkie złącza będą łatwo dostępne, po raz kolejny w ruch poszły wycinanki:

Podsumowanie

Projekt elektroniki jest już gotowy. Teraz będę musiał zamówić płytkę i kupić części. Czas oczekiwania na płytkę to dwa tygodnie. Przez ten czas powinienem zacząć prace nad oprogramowaniem. Na pierwszy ogień pewnie pójdzie konfiguracja narzędzi pobocznych takich jak framework do unit testów i continuous integration. Zainteresował mnie Travis CI, który był opisywany już przez paru innych uczestników konkursu Daj Się Poznać 2017 i to prawdopodobnie jego będę używał jako narzędzie do CI.