Archiwum kategorii: Projekt „Dorotka”

C++: sterownik silnikiem

Po ostrych walkach z python3 i moimi układami do sterowania napędem pojazdu chciałem się poddać… potrafiłem bez problemu przesyłać komendy do układu Pololu Simple Motor Controler (w trakcie przesyłu diodka danych mrugała 😉 ) jednak nie otrzymywałem żadnych odpowiedzi…

Okazało się , że raz skompilowany i zainstalowany sterownik/biblioteka pythona dla układów BitBang  przestaje obsługiwać zwykłe układy symulujące port COM. Wszystko wyszło na jaw kiedy w momencie chęci porzucenia prób nie spróbowałem napisać programiku do komunikacji w C++, który zadziałał do strzału 🙂

Muszę jeszcze spróbować zrobić sterowanie kartą przekaźników za pomocą c++, jeśli i to będzie lepsze i łatwiejsze to na razie zrezygnuje z pythona.

Share Button

Python3: Karta z przekaźnikami

Karta przekaźników rozpracowana z jednym małym ale…

Jako, że obie karty używają czipa FTDI do konwersji sygnałów USB<->RS i niestety pracują w różnych trybach:

To specjalnie kompilowane sterowniki FTDI dla debiana na RaspBerry Pi powodują, że i owszem o wiele łatwiej używa się tych urządzeń z poziomu np.: pythona, ale blokują się one nawzajem w systemie. Oznacza to, że podłączeniu obu urządzeń, żadne nie działa prawidłowo… co jest kolejną niemiłą niespodzianką. Po podłączeniu dwóch multi-termometrów nie ma takiego problemu i mam dostęp do 16 termometrów (2 układy po 8 termometrów).

Jako, że problemy są po to aby je rozwiązywać to najprawdopodobniej będę musiał sprawić sobie jakiegoś mini-komputera do obsługi tylko i wyłącznie jednej karty przekaźników <- bo na szczęście tylko tyle ich na razie kupiłem. Przy następnym układzie z przekaźnikami zastanowię się czy nie kupić dedykowanej płytki dla np.: raspBerry pi itp

Share Button

Python3: monitor temperatury

Skrypt odczytujący temperaturę z AVT 5330 i zapisujący dane do bazy zrobiony i działa na Raspberry PI,  który twierdzi, że zużywa 80% jego CPU do działania 🙂

Wychodzi  na to, że tabela od temperatur będzie rosła o ok.42tyś rekordów i 3,3 megabajta <- czyli średniorocznie  15,3 miliona rekordów i 1,2 gigabajta…

Są to wielkości niezauważalne jak dla mnie i dobrze bo to pierwsze z 15 różnych sprzętów korzystających z bazy danych.

Share Button

Moduł z przekaźnikami

Jako, że w pojeździe będzie kilka urządzeń nad którymi będę chciał zapanować <- jak i jakieś światła by się przydały zaopatrzyłem się w bardzo uniwersalny moduł przekaźników (załączający/wyłączający wszelkiej maści sprzętu od 3/6V aż do 230V).

Jak większość takich rozwiązań tak i to oczywiście podpinane pod port USB, a w systemie obsługiwane jako kolejny port COM.

W pierwszej kolejności napisałem prosty programik, który wykorzystam kiedyś tam w przyszłości do sterowania oświetleniem pojazdu jak w normalnym samochodzie <- światła przód i tył, kierunkowskazy itp

Share Button

Moduł temperaturowy

Moduł obsługujący 8 termometrów uważam za opanowany.

20161203_000724 20161203_000700

Aktualnie płytka ustawiona jest tak, aby automatycznie wysyłała odczyt ze wszystkich termometrów co 2 sekundy <- po podłączeniu wystarczy tylko odczytać przychodzące informacje z portu COM.

Jestem po pierwszych próbach odpalenia tego na Rasberry Pi  (pierwszej wersji jaka pojawiła się na rynku). O ile w przypadku kiedy program (w tym przypadku pisany w Python 3) miał tylko odczytywać dane i pokazywać je w konsoli to malina bez problemu dawała sobie rady, a program zużywał jakieś 4-5% procka. Niestety w momencie kiedy doszła mała obróbka zaczytywanych wartości i zapis ich bardzo prostej bazy danych (baza miała tylko jedną tabelę) SqlLite to zużycie wskakiwało na ponad 50% i bywały w opóźnieniu w wyświetlaniu danych <- zamiast pokazywać nowy odczyt co 2 sekundy, dane były wyświetlane czasem po 5 sekundach.

Powyższe testy robiłem na Debian Mini czyli bez żadnego środowiska graficznego <- które w zasadzie zabija tą Malinę.

 

Muszę rozpatrzyć 3 opcję:

  1.  zakup mocniejszego mini-kompa <- jeśli już to zdecydowanie Odroid XU4
  2.  podłączenie wszystkiego pod starego laptopa z prockiem 1,2GHz + 2GB ramu <- na którym ten sam program pisany w Python3 wykazywał zużycie do 1%
  3.  wrzucenie na pokład Dorotki normalnego kompa (bez obudowy, tylko płyta, ram i procek) podpiętego pod akumulator <- na tym sprzęcie zużycie cpu było 0% nawet przy analizie i zapisie do bazy danych

 

Share Button