Miesięczne archiwum: Sierpień 2016

tinyBrd zasilane z USB

TinyBrd 2.0 dzięki regulatorowi napięcia może być zasilane np 5V. Jest to napięcie jakie jest dostarczane w ramach standardu USB, co za tym idzie, każdy powerbank do zasilania komórki zapewnia nam duuużo energii dla tinyBrd. Jak podłączyć zasilanie z power banku?

Bierzemy wtyczkę USB oraz jakieś przewody typu F-M i lutujemy:

Lutowanie lini zasilającychLutowanie przewodów do wtyczki

Zwróć uwagę na polaryzację, czyli gdzie jest plus a gdzie masa. Na zdjęciu czerwony przewód to plus. Przyjrzyj się wtyczce, położona jest tak, że widoczne otwory na metalowym złączu są zaślepione plastikiem. A najlepiej – podłącz wtyczkę do powerbanku i zmierz miernikiem gdzie jest 5V a gdzie GND :)  Pozostaje podłączyć zasilanie do tinyBrd:

s20160712_124810Oczywiście – to tylko z tinyBrd 2.0, wersja 1.x nie ma regulatora i takie podłączenie uszkodzi modem NRF.

Teensy 3 vs Arduino – o ile szybsze?

Początkujący użytkownicy Arduino, jeżeli postawią sobie ambitne zadanie często docierają do ściany możliwości Arduino. Wydaje się za wolne, zbyt mało zasobów. Prawda jest taka, że często wystarczy napisać program w sposób bardziej efektywny i nagle Arduino może jeszcze całkiem sporo.

Jednak jak zawsze jest pokusa – zmieńmy Arduino na coś szybszego/większego. Nie pochwalam podejścia polegającego na „rzucaniu więcej MHz na problem”, ale czasem może warto? Każda sytuacja jest inna i  na etapie potwierdzenia wykonywalności projektu, czasem warto po prostu użyć czegoś szybszego.  Potem, jeśli będziemy realizować projekt docelowy to wtedy pisać jak należy? Wszystko zależy od priorytetów – jeśli czas jest najważniejszy to może warto?

teensy

OK, w tym kontekście pomówmy o czymś większym co może zastąpić Arduino. Paradoksalnie Teensy 3.2 jest mniejszy pod względami rozmiarów od Arduino, ale procesor ARM 72 MHz wygląda obiecująco :)Dla uściślenia – nie mam zamiaru porównywać wydajności procesora, bo to jest bez sensu, wiadomo, że przewaga jest po stronie ARM. Chcę zastanowić się o ile szybsze będzie Teensy użyte jak Arduino. A jak się używa Arduino? Jako maszynki do Blinka :) Blink jako taki nie ma sensu jako materiał porównawczy, ale jeśli postawimy sobie pytanie o ile szybciej Teensy jest w stanie zmieniać stan wyjścia niż Arduino, to będzie to już jakieś wartościowe porównanie.Kod jest bardzo prosty:

void loop() {
  while (1) {
    digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
    digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  };
}

Ładujemy kod na Arduino i Teensy, podłączamy oscyloskop no i jaki mamy rezultat?

DS1Z_QuickPrint6Jak widać Teensy (żółty) jest dużo szybszy niż Arduino (niebieski). Oscyloskop wyliczył, że sygnał wygenerowany przez Teensy ma częstotliwość 1.47 MHz a z Arduino 134 kHz. Wynika z tego, że Teensy jest 11 razy szybsze niż Arduino. Czemu aż tyle, skoro 72 MHz/16 MHz to tylko 4.5? Najwyraźniej digitalWrite jest o wiele efektywniej napisane w wersji dla ARM (albo po prostu mniej operacji wymaga) stąd nie dość że każda instrukcja (w kodzie maszynowym) na Teensy wykonuje się szybciej, to jeszcze mniej ich potrzeba niż na Arduino – dlatego mamy aż 11 krotną przewagę Teensy nad Arduino.

Ale to nie koniec. Teensy oferuje domyślnie opcję overclockingu, można wybrać prędkość pracy procesora przez opcję w menu Tools/CPU Speed. Zamiast 72 MHz optimized wystarczy wybrać 96 MHz optimized (overclock) i:

DS1Z_QuickPrint4

Tak, wiem trochę inne nastawy tego screenshota, ale już schowałem swój zestaw, a nie zauważyłem że ten ma inną podstawę czasową. Jednak jak widać w przy 96 MHz zegara oscyloskop wyliczył nam sygnał wygenerowany przez Teensy ma 2 MHz.

Jednak nie zawsze zmiana Arduino na Teensy przyniesie przyspieszenie. Zwróciłeś uwagę że w kodzie użyliśmy pętli while by zmieniać cały czas stan wyjścia. Jednak jeżeli użyjemy takiego kodu:

void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
}

Przebieg obu sygnałów (z Arduino i Teensy) będzie wyglądać tak:

DS1Z_QuickPrint1

Coś dziwnego dzieje się w kodzie Teensy. Co? Odpowiedź kryje się w tym kodzie (funkcja main dla Teensy3). W części wywołującej loop po tej funkcji wywołuje się jeszcze funkcja yield. W Arduino jej nie ma, dlatego po zakończeniu loop, wraca natychmiast do jej wykonywania. W Teensy3 yield zajmuje chwilę – sprawdza czy są dostępne dane portach szeregowych. Ponieważ Teensy ma ich więcej niż Arduino UNO, chwilę to trwa.

W takim użyciu okazuje się, że Teensy jest ok 2-3 razy szybszy od Arduino. Jeśli nie zależy Ci na SerialEvent to po prostu nie wychodź z loop na Teensy :).

LinuxMagazine nr 150

LM150Dotarła do nas informacja o 150 wydaniu LinuxMagazine:

W sierpniowym, 150 wydaniu miesięcznika „Linux Magazine” – z odświeżoną grafiką – znajdziemy projekty samodzielnej budowy żaglówki Arduino sterowanej przy użyciu taniego pilota oraz łazika złożonego littleBits, Raspberry Pi i Lego.

Materiał wiodący dotyczy scentralizowanego zarządzania plikami dziennika systemowego: opisuje, jak skonfigurować monitorowanie sieci bazujące na serwerze logów Graylog. Na dołączonym DVD po raz pierwszy znajduje się Manjaro, w wersji 16.06.

Wewnątrz wydania również: trwałe Iptables, czyli automatyczne przywracanie reguł zapory sieciowej, skuteczne zarządzanie protokołami w nowoczesnych sieciach – sprawdzamy, jak zachować wiarygodne monitorowanie i analizę w sieci, nawet przy wirtualizacji, wirtualizacja sieci i struktura OpenDaylighta, szyfrowanie w oparciu o wiarygodne zaprzeczenie przy użyciu VeraCrypta, analizatory statyczne kodu JavaScriptu, PHP, Pythona i powłoki Linuksa, krótkie testy narzędzi Tiny Applications 20130215, CertMgr 0.2.49, Difftree 0.5.8, Scriptform 1.0, Duply 1.11.1 oraz Xplico 1.1.1, Bogofilter czy SpamAssassin: działanie i wybór filtra antyspamowego, zarządzanie wieloma systemami równocześnie z SaltStackiem, wady i zalety narzędzi do lokalnego szyfrowania danych przechowywanych w chmurze, synchronizacja plików z Osyncem i Freeholdem, które zużywają mało zasobów, są łatwe do wdrożenia i proste w użyciu, AnyDesk kontra TeamViewer, szybka edycja filmów i dodawanie efektów w małych projektach przy użyciu Lightworksa, korzystanie z sieci bez ujawniania tożsamości, czyli system operacyjny Whonix, konfiguracja zbioru aplikacji do pracy biurowej z systemem wideokonferencji, funkcją poczty i sklepem internetowym Google Apps for Work do użytku w firmie.

Wydanie jest na allegro (bezpłatna dostawa). Poprzednie e-wydanie „Linux Magazine” 7/2016 na allegro (bez płyty DVD).  Archiwalne numery Linux Magazine dostępne są w pakietach po 2 nr na allegro: