Archiwa autora: netmaniac

Pogodełko – IoT w pogodzie – część 1

Szukaliśmy w Nettigo pomysłu na projekt, który będzie kompletnym, niedrogim a jednocześnie interesującym wprowadzeniem w elektronikę i świat IoT. Ma dotrzeć do ludzi, którzy nie mają żadnego doświadczenia z programowaniem i elektroniką, a bark im determinacji by samemu zgłębiać te zagadnienia. Idealnie by projekt dawał szybko radość ze zbudowania czegoś samemu a jednocześnie nie ograniczał możliwości poznawczych. Po złożeniu projektu ma on działać i pozwalać sie w następnych krokach modyfikować. W ten sposób pozwoli zaznajomić się z zagadnieniami programowania, IoT i elektroniki. Wpadliśmy na pomysł, który po zbudowaniu prototypu otrzymał nazwę Pogodełko. Dlaczego? Wkrótce się przekonacie.

Czytaj dalej

Prosty czujnik cofania – Arduino i HC-SR04

Dziś przedstawiam prosty projekt Arduino, który uratuje Twój samochód. Wykonanie go zajmie Ci dosłownie chwilę, a przy okazji zbudujesz coś pożytecznego, funkcjonalnego i mam nadzieję sporo się też nauczysz. Zatem do dzieła!

Historia jakich wiele. Ostatnio parkując samochód w swoim dość małym garażu uważnie sprawdzając w lusterkach, czy zaraz nie wyjadę przez tylną ścianę wpadłem na pomysł jak sobie taki proces parkowania znacznie ułatwić. Można zbudować układ oparty o Arduino, który graficznie jak i dźwiękowo zasygnalizuje mi jak blisko ściany jest samochód oraz będę mógł go sobie dowolnie skalibrować. Z pomocą przyszedł mi nowy Starter Kit Nettigo, w którym znajdziemy części niezbędne do wykonania tego prostego projektu.

Opis projektu

Zbudujemy urządzenie mierzące odległość, korzystając z ultradźwiękowego czujnika HC-SR04. Wyobraźmy sobie, że zamontujemy układ na ścianie, linijka LED będzie sygnalizować odległość a buzzer dodatkowo zapewni sygnał dźwiękowy. Im samochód bliżej końcowej ściany, tym więcej diod będzie się świecić i będzie ulegał zmianie ich kolor.

Lista potrzebnych części

Oczywiście przydatne będą też płytka stykowa i przewody montażowe. Jak już wspomniałem, wszystkie elementy (oprócz samego Arduino) wchodzą w skład nowego Nettigo Starter Kit dla Arduino.

Schemat podłączenia

Całość możemy w prosty sposób zmontować na płytce stykowej w sposób przedstawiony na poniższym schemacie:

Schemat wskaźnika odległości

Schemat naszego układu

Realizacja układu miernika odległości na Arduino, HC-SR04

Szczegółowy wygląd układu zmontowanego wg poprzedniego schematu

Czytaj dalej

Mały robot sterowany przez Bluetooth – micro:bit w akcji

Od pewnego czasu bardzo mi się podoba Micro:Bit. Od momentu, kiedy mogłem samemu coś na nim zrobić bardzo polubiłem tą platformę. Jeśli nie wiesz zupełnie o co chodzi to może zobacz to krótkie wideo, które nagrałem:

Płytka Micro:Bit oferuje dwa podstawowe sposoby programowania – Python oraz składanie programu w sposób graficzny z dostępnych komponentów (kto widział już Scratcha ten dokładnie wie o co chodzi).

Zajmiemy się dziś tym drugim, bo wydaje się to doskonałym rozwiązaniem, gdy chcesz przedstawić Micro:Bita młodszym użytkownikom. Jednocześnie system ten jest łatwy i zrozumiały jak i dopracowany. Korzystając z przeglądarki składamy elementy blokowe a gdy program jest gotowy, to ściągamy skompilowany plik .hex. Wystarczy teraz podłączyć Micro:Bit do komputera i wgrać plik hex na niego (tak jak się wgrywa pliki na pendrive), to cała filozofia.

Dobra, zrobimy robota, którego można sterować przez Bluetooth. Będzie to wyglądało mniej więcej tak:

 

Dobra, co potrzebujemy? Micro:bit, sterownik silników moto:bit i jakaś platforma robota, tutaj jest to Magician Chassis ale może to być dowolna, dwusilnikowa platforma. Do sterowania potrzebny jest telefon z Bluetooth 4.0 pod kontrolą Androida.

Robocik po zmontowaniu

Gotowy program jest do zobaczenia tutaj: https://makecode.microbit.org/_arAAUz7gMi1b Tam możecie użyć opcji „Download” by ściągnąć plik .hex.

Program dla micro:bit

Jak wygląda program? Ano tak: Czytaj dalej

Wyświetlacze 1.4 i 1.8 cala z Arduino – sterownik ILI9163

Dodaliśmy na Nettigo dwa nowe wyświetlacze LCD. Oparte o kontroler ILI9163C posiadają efektywną rozdzielczość 128×128 (1.44 cala przekątnej) oraz 128×160 (1.8 cala przekątnej). W sieci funkcjonuje biblioteka do nich (dostępna nawet przez menedżer bibliotek w Arduino IDE) jednak nie do końca dla nas jest OK. Wyświetlacze w naszej ofercie mają nieco inne parametry i nie pracował poprawnie z tą biblioteką.

Dlatego na szybko sklonowaliśmy bibliotekę na Githubie i dokonaliśmy minimalnych poprawek by wyświetlacze można obsłużyć.

Podłączenie ich jest bardzo proste, korzystają z SPI.

Połączenie wyświetlacz <-> Arduino

  • SCK – D13 (SCK)
  • SDA – D11 (MOSI)
  • A0 – D9 (można zmienić)
  • RESET – RESET
  • CS – D10 (można zmienić)
  • GND – GND
  • VCC – 5V
  • LED – 3.3V

Zasadniczo wyświetlacz razem działa na logice 3.3V. Moduły mają wbudowane stabilizatory napięcia, więc można zasilić bez problemu 5V. Podświetlenie LED ma wbudowany rezystor i niby działa na 5V bez kłopotów, ale sugeruję jednak używanie 3.3V do zasilania LED. Przy zasilaniu LED 3.3V podświetlenie wyświetlacza 1.44″ bierze około 20 mA. Zmiana napięcia LED na 5V powoduje skok prądu do 55 mA. Jasność świecenia prawie się nie zmienia, co sugeruje że już przy napięciu 3.3V diody podświetlenia pracują w dobrym zakresie charakterystyki. Zwiększenie prądu spowoduje tylko skrócenie czasu życia diod. Dlatego zasilajmy LED 5V.

Co do logiki… Nota katalogowa ILI9163 mówi, że napięcie na pinach SPI w takim konfigu nie powinno przekroczyć 3.6V. Jednak u mnie na biurku testowe egzemplarze działają w porządku. Jednak YMMV :) czyli nie daję żadnej gwarancji a wręcz sugeruję jednak użycie konwertera poziomów logicznych. Tym bardziej, że na PCB nie widać rezystorów które mogłyby działać jako dzielnik napięcia/konwerter.

Czytaj dalej

DAC w Arduino czyli Covox na ratunek

Wiele miejsca w różnych tutorialach poświęca się tematowi konwersji sygnałów analogowych na cyfrowe. Mówiąc inaczej  – o mierzeniu napięcia. Tym razem pomówimy o procesie odwrotnym, czyli zamianie wartości cyfrowej na analogową (napięcie).

Jak mierzeniem napięcia zajmują się przetworniki analogowo-cyfrowe (ADC – Analog Digital Converter), to w drugą stronę taki przetwornik nazywamy cyfrowo-analogowym (DAC – Digital Analog Converter). ADC znajdziesz w każdym praktycznie mikrokontrolerze. DAC już jest czymś rzadszym (ale np Teensy 3.2 ma taki jeden 12-sto bitowy).

Po co może być potrzebny DAC? Najczęściej gdy mowa jest o dźwięku. Jeśli obracamy się w kontekście Arduino, to ma ono przecież funkcje tone()  i można znaleźć wiele przykładów jak zagrać melodyjkę na buzzerze. Tak, tyle że tone generuje sygnał 0/1 z odpowiednią częstotliwością i buzzer  tak pobudzony wydaje dźwięki. Ale jeżeli zapragniemy sygnału o większych subtelnościach niż 0/5V to musimy zapomnieć o tej funkcji z Arduino.

Od razu powiem, że nie próbujemy tutaj stworzyć audiofilskiego urządzenia. Z wielu powodów sygnał będzie daleki od ideału, ale i tak dużo lepiej niż z jednym pinem i tone().

Czytaj dalej

NodeMCU i SDS011 jako badacz jakości powietrza

SDS011 to dobry czujnik pyłów zawieszonych, podaje dane dla PM2.5 i PM10. Ostatnio wśród nas wzrosła świadomość zanieczyszczeń pyłami, więc pojawiło się trochę zapytań jak korzystać z tego czujnika. Większość przykładów jakie można znaleźć jednak wykorzystują Raspberry Pi. Koszt Raspberry to co najmniej drugie tyle co sam sensor, tymczasem w wielu przypadkach zależy nam na pomiarze i przekazaniu danych do chmury. W takim przypadku nie potrzebujemy całego Raspberry, to co ma od zaoferowania nodeMCU w zupełności /wystarczy.

NodeMCU, SDS011 – prosta stacja pomiaru jakości powietrza

Dlatego tym razem pokaże Wam jak zbudować taki sensor w oparciu o te dwa elementy – nodeMCU i SDS011. Planuję w przyszłości projekt poprawić, bo ma teraz kilka wad. Podstawowa kwestia to jest wilgotność – czujnik przy wilgotności ponad 70% przekłamuje wyniki, dlatego by w dokonywać wiarygodnych pomiarów, nasz układ potrzebuje elementu ogrzewającego napływające powietrze. W tej wersji zupełnie to pomijamy, jedyne co potrzebujemy to wiedza jaka jest wilgotność, by móc odrzucić pomiary przy wilgotności przekraczającej 70%. Ale z pominięciem tego wystarczy powiesić na uchylonym oknie by mieć z grubsza świadomość tego co się dzieje…

Czytaj dalej

Poprawianie dobrego, czyli LCD Shield i Nettigo Keypad

Odświeżałem ostatnio bibliotekę do Keypada, tak by pracowała łatwiej z LCD Shieldem lub innymi niestandardowymi klawiaturami opartymi o dzielnik napięcia. O jakie klawiaturki chodzi?

Klawiatura taka, to szereg rezystorów, każdy kolejny zwarty przez przycisk do masy. Jeśli odczytamy napięcie między rezystorem R1 a R2, to będzie się zmieniało w zależności od tego który przycisk jest załączony. Górny rezystor zostaje cały czas włączony, a liczba dolnych się zmienia. W szczególności gdy zewrzemy pierwszy przycisk (PRAWO), to będzie tam napięcie 0 -bo przycisk zewrze wszystkie rezystory R2-R5 do masy. Gdy wciśniemy drugi przycisk napięcie będzie zależne od dzielnika R1/R2, rezystory R3-R5 będą zwarte. Gdy wciśniemy DÓŁ napięcie zależy od wartości R1/(R2+R3), R4 i R5 – zwarte. Co nam z tego?

Czytaj dalej

Wyświetlacz z SSD1306 podłączony do Arduino

Gdy przychodzi do wyboru wyświetlacza dla Arduino opcji jest sporo. Dziś zajmiemy się niewielkim (0.96 cala) wyświetlaczem o rozdzielczości 128×64. Ma on jasny i wyraźny obraz. Ten egzemplarz akurat ma dziwną konfigurację podłączenia, ale o tym zaraz. Najpierw – jest on monochromatyczny ale jednak dwukolorowy :)

Jak to możliwe? Ano pierwsze 16 linii ma piksele żółte, a reszta niebieskie.

To zdjęcie chyba najlepiej oddaje to, o co chodzi z tym żółtym/niebieskim.

Czytaj dalej

RPi: podstawy – sterowanie GPIO i przekaźnikami

Niedawno dostaliśmy pytanie od jednego klienta – jak sterować przekaźnikami z Raspberry Pi. Ponieważ nie było to pierwsze pytanie takiego typu, postanowiłem napisać kilka słów tutaj.

W ofercie Nettigo mamy już kilka różnych modułów przekaźników. Różnią się ilością przekaźników, napięciem zasilającym oraz sposobem sterowania. Niektóre z nich mają (w uproszczeniu – te czerwone) możliwość wyboru, który stan logiczny (niski czy wysoki) będzie oznaczał że przekaźnik jest włączony. Ponieważ każdy przekaźnik ma trzy wyjścia (wspólne, normalnie wyłączone i normalnie włączone) da się dobrać właściwe podłączenie niezależnie od tego jak sterujesz przekaźnikiem. Może mieć to wpływ tylko na wygodę programowania oraz na pobór prądu – wskazane jest by przekaźnik był raczej wyłączony niż włączony. Zużywa wtedy mniej prądu a i cewka się nie grzeje. Warto to mieć na uwadze, bo np moduł 8-mio kanałowy, jeśli włączymy wszystkie 8 przekaźników będzie pobierał ponad 500 mA. To już całkiem sporo.

No dobra, gadamy o jakiś niuansach, ale Ciebie pewnie interesuje jak, cholera włączyć ten przekaźnik z Twojego RPi. Ok, przejdźmy do rzeczy. Zakładam, że masz Raspberry z Raspbianem. Pokaże Ci jak podłączyć do niego moduł przekaźnika i korzystając z Pythona włączyć go i wyłączyć.

Czytaj dalej

LinuxMagazine nr 155

Otrzymaliśmy od wydawcy informację o nowym numerze LinuxMagazine:

Sekcja dotycząca Raspberry Pi w styczniowym wydaniu „Linux Magazine” zawiera artykuły opisujące sterowanie czasowe Raspberry Pi przy użyciu programowalnej wtyczki elektrycznej WiFi oraz test bestsellera w niskiej cenie – Raspberry Pi Zero.

Artykuł wiodący opisuje umieszczanie w zdjęciach informacji dotyczących położenia geograficznego za pomocą pary narzędzi do geotagowania obrazów cyfrowych digiKam i GPS Correlate.

Z wydaniem powiększonym o cztery strony rozpoczyna się też nowy dział LinuxVoice z pytaniami i odpowiedziami, najciekawszymi projektami i grami, samouczkami i felietonem.

Na dołączonym DVD znajduje się Fedora 25.

Wewnątrz wydania również: dodawanie z Gimpem koloru do starych czarno-białych zdjęć, tworzenie aplikacji mobilnych na osiem systemów operacyjnych za pomocą Apache Cordovy, Microsoft PowerShell dla Linuksa – marketingowa zagrywka czy konkurencja dla powłok natywnych?, zabezpieczanie danych w chmurze z prostym i praktycznym Cryptomatorem, GNU social: wolna alternatywa dla Twittera, Termux dla Androida – aplikacja umożliwiająca korzystanie z popularnych narzędzi linuksowych na Androidzie, test LibreOffice’a, Apache OpenOffice’a, SoftMaker Office Professionala i WPS Office’a z formatami nienatywnymi, turbodoładowanie wiersza poleceń przy użyciu Tmuksa: menedżer okien w trybie tekstowym?, nowości pierwszego wydania od lat – Vima 8, usprawnianie wdrażania oprogramowania z Ansible Containerem, polecenie, które rządzi wszystkim: ip, Skype dla Linuksa, NoSQL w pytaniach i odpowiedziach, Greg Kroah-Hartman – człowiek, który stoi za stabilną gałęzią jądra oraz inne tematy: