Informatyk/programista potrzebny przy budowie gokarta elektrycznego?

Vitajte! (słowacki)

Dzisiaj chcę Ci coś opowiedzieć, drogi Czytelniku. Opowiem Ci o zespole świetnych ludzi, którzy tworzą coś niezwykłego i o tym, co może robić informatyk lub stricte programista w ich szeregach. Ostrzegam, wpis jest troszkę długi, ale naprawdę warto go przeczytać 🙂

Jak zapewne czytałeś w sekcji O autorze, mam niebywałą przyjemność być członkiem Koła naukowego ADek, działającego przy Wydziale Elektrycznym Politechniki Warszawskiej.

O kole

Koło naukowe ADek od początku swojego istnienia zajmuje się budową gokartów elektrycznych, z którymi co roku jeździ na zawody Limoges French International and Educational Meeting of Electrical Gokart e-Kart i z których co roku przywozi różne nagrody. Poniżej zachęcam do zapoznania się z filmem z zawodów w 2016 roku.

Oraz kolejny film przedstawiający naszą działalność:

Członkowie koła projektują i implementują rozwiązania z dziedziny mechaniki i elektrotechniki, które w sumie tworzą całość zwaną gokartem elektrycznym.

Drugą sekcją w kole, która się wytworzyła całkiem nie dawno, jest sekcja budowy bezzałogowych statków powietrznych, czyli tzw. „dronów”. Pewnie widzisz, że ostatnio drony są po prostu wszędzie 🙂 Także i do nas dotarły. Tutaj ekipa przygotowuje się do zawodów dronów Droniada, które odbędą się w czerwcu w Krakowie. Zobacz, jak ciekawe zadanie zostało postawione przed uczestnikami zawodów 🙂

Staramy się, aby nasze rozwiązania były nowoczesne, innowacyjne, a co więcej, zaspokajały potrzeby dynamicznie rozwijającego się rynku – czy to pojazdów elektrycznych, od których nie uciekniemy, a wręcz przeciwnie, powinniśmy się coraz bardziej z nimi zaprzyjaźnić (kto nigdy nie jechał, to polecam! :D), czy lotniczych. Dzięki temu członkowie koła mają dostęp do narzędzi czy elementów dostarczanych od naszych sponsorzy mogą pozyskać wartościowych pracowników czy realizować swoje projekty z naszym udziałem. I wilk syty i owca cała 🙂 Bo, jak się pewnie domyślasz, niestety do takich przedsięwzięć są potrzebne całkiem spore pieniądze.

Koło liczy ok. 40 osób podzielonych na różne zespoły, np. mechaników, napędu, instalacji itp. Członkowie koła pochodzą z różnych kierunków i wydziałów. Są wśród nas automatycy, elektrotechnicy, mechanicy. Jednak w ostatnim czasie coraz silniejsza stała się potrzeba utworzenia nowego zespołu, do którego właśnie zmierzam w swoim wpisie 🙂

Czy to wystarczy popodpinać ze sobą kabelkami i skręcić śrubkami i jedzie?

Otóż oczywiście nie. Pewnie się zdziwisz, ale do 100% działania takiego pojazdu trzeba… naklepać całkiem sporą ilość kodu. Tak, kodu! Ze względu na rozwój koła, ilość zespołów, członków, ilość pracy do wykonania, zaczęliśmy tworzyć kolejny zespół, tzw. Dział IT. Szumnie i dumnie brzmi, ale nie wiem, czy zdajesz sobie sprawę, jak jest ten zespół osób ważny w naszej pracy. Pozwól, że przedstawię Ci strukturę tego działu i wyjaśnię po kolei co się z czym je.

Struktura działu IT w kole

Nasz dział składa się z trzech zespołów. Pierwszym z nich jest zespół oprogramowania niskopoziomowego. Jak napisałem wcześniej, projektujemy i implementujemy urządzenia od podstaw. Sercem urządzeń elektronicznych jest mikrokontroler, który w najprostszych wypadkach zbiera dane z czujników i przesyła je odpowiednią magistralą do innych urządzeń. Jednak mikrokontroler trzeba co zrobić? ZAPROGRAMOWAĆ. Urządzeń powstających od podstaw u nas w kole jest całkiem sporo, zatem i samego oprogramowania do napisania także jest całkiem dużo. Ponadto kod trzeba w jakiś sposób utrzymać i ewentualnie rozwinąć, jeżeli urządzenie tego wymaga i w ogóle umożliwia 🙂 Do dziś robiliśmy to tak, że jedna lub dwie osoby tworzyły jakieś urządzenie od podstaw, projektując elektronikę i pisząc potem na nią kod. Jednak podział obowiązków ściśle na dwie, tzn. elektronik zajmuje się tym, co wychodzi od nóżki mikrokontrolera dalej, a programista tylko tworzy kod realizujący założenia sprawi, że urządzenia będą powstawały szybciej, bo projektowanie kodu i elektroniki będzie można zrównoleglić i będą jeszcze lepiej dopracowane (jeżeli ktoś nigdy nie projektował elektroniki, to podpowiem, że jest to niesamowicie trudne i trzeba brać pod uwagę wiele czynników). Tutaj głównie wykorzystywać będziemy język C, w tym języku bardzo wygodnie się to robi 🙂 Można to robić jeszcze w Assemblerze, ale na razie sobie to podarujemy 🙂

Drugim zespołem potrzebnym w kole jest zespół oprogramowania wysokopoziomowego. O matko, chcesz mi powiedzieć, że tam można jeszcze coś pisać w jakimś Pythonie, Javie czy .Necie? Można. Pewnie, że można. A nawet trzeba. Dodam, że część projektowanych urządzeń może skomunikować się z komputerem, są też takie, których sercem jest minikomputer RaspberryPi, o którym już pisałem tutaj 🙂 Stawiamy na nim Linuxa i wtedy mamy możliwość uruchomienia aplikacji napisanych w językach wysokopoziomowych. Jeżeli chodzi o urządzenia, które mogą skomunikować się z komputerem. Napisanie odpowiednich aplikacji w języku wysokiego poziomu może np. pozwolić zebrać dane pomiarowe, zmienić ustawienia konfiguracyjne urządzenia bez zmian i rekompilowania programu procesora etc. Możliwości jest nieskończona ilość, a pomysłów w głowie jeszcze więcej 🙂 Ale oczywiście co? Potrzeba to ZAKODZIĆ. Do tej pory też to działało tak jak wyżej. Osoba projektująca dane urządzenie sama coś tam takiego klepała. Zatem trzeba to zmienić.

No i trzeci, ostatni już zespół w tym dziale – zespół administracji i utrzymania usług sieciowych. Tak duża organizacja jak nasze koło siłą rzeczy musi być w jakiś sposób zarządzana, musi być ułatwiona komunikacja, wymiana plików czy ich wersjonowanie, przy czym nie możemy też korzystać z publicznych usług typu GitHub z oczywistych względów 🙂 Dlatego też powstała potrzeba, aby mocno popracować w tym temacie. Z czasem zostały takie usługi stworzone, jednak niestety, po otrzymaniu przez naszą organizację publicznego IP doszło do włamania na nasz serwer i zainstalowanie rootkita, co wiąże się z koniecznością postawienia wszystkiego od początku. Dostrzegamy oczywiście dobre strony tego przedsięwzięcia. Teraz po 4 latach działania koła dokładnie wiemy, czego potrzebujemy i co się nam jeszcze przyda. Zatem zebrała się w naszym kole ekipa, która teraz dzielnie walczy z tematem konfiguracji wszystkich usług tak, by żyło się lepiej i bezpiecznie 🙂 Pewnie możesz się zapytać a czego to oni takiego potrzebują? No to proszę 🙂 Na co dzień korzystamy z Redmine, który pozwala zarządzać projektami i zadaniami w nich do wykonania. Do wersjonowania plików i równoległej współpracy nad nimi do tej pory wykorzystywaliśmy SVN. Naszymi kontami w tych usługach zarządza Ldap (EDIT: usługa to tak naprawdę OpenLDAP, LDAP sam w sobie jest protokołem dostępu do katalogów). Do przechowywania większych plików i wymiany nimi – FTP. A do tego jeszcze zadbanie o odpowiednie zabezpieczenia, integracja usług ze sobą i wiele wiele innych 🙂 Roboty oczywiście nie do przerobienia.

Podsumowanie

Chciałem Ci w tym wpisie przedstawić kilka rzeczy: koło naukowe, które jest zespołem naprawdę świetnych ludzi wkładających całe serce w to, co robią, jakie potrzeby wynikają z istnienia tak dużej organizacji, pokazać, że programista nie musi kodzić tylko rzeczy związanych bezpośrednio z biznesem, ale może się spełniać również przy innych zadaniach, to jak taki dział się tworzy oraz że programowanie jest wszędzie, nawet tam, gdzie go może nie widać 🙂 Dla mnie to wielki zaszczyt tworzyć z tymi ludźmi to wszystko, o czym dzisiaj napisałem.

Gorąco zachęcam Cię, do śledzenia naszego Fanpage na Facebooku. Jeżeli masz pytania o samą organizację, czy związane z pojazdami elektrycznymi, może chcesz w jakiś sposób do nas dołączyć, czy nam pomóc, nawiązać współpracę, cokolwiek, pisz w komentarzu lub skontaktuj się przez formularz kontaktowy w zakładce Kontakt.

A tymczasem powoli się z Tobą żegnam, drogi czytelniku. Trzymaj kciuki, bo w niedzielę (28.05) nasza reprezentacja znów wyjeżdża do Francji na zawody, które są już we wtorek. Życzę Ci dobrego dnia! 🙂

Czytaj również:
« »