Miesięczne archiwum: Lipiec 2016

NodeMCU i Blink

Dzisiaj pokażę Wam jak przy pomocy NodeMCU zrobić rzecz, który zrobił przynajmniej raz każdy użytkownik Arduino. Mowa tu o przykładzie Blink, czyli mruganie diodą. Jest to dla każdego wstęp do bardziej zaawansowanych programów. NodeMCU jest płytką wyposażoną w procesor ESP8266 oraz układy wspomagające. Dzięki temu wystarczy kabel USB, komputer i można już wgrywać programy do NodeMCU. Z „gołym” ESP jest więcej zachodu – potrzebujesz zasilania, konwertera USB/Serial i przy każdej aktualizacji programu trzeba pamiętać o podpinaniu odpowiednich GPIO do zasilania czy GND… NodeMCU to ESP8266 gotowe od razu do pracy.

Zrobimy to na dwa sposoby: wykorzystując Arduino IDE i firmware NodeMCU, czyli takie, które umożliwa porgramowanie płytki w Lua.

Jak przystosować Arduino IDE do współpracy z ESP8266, czyli również NodeMCU opisywaliśmy we wpisie: ESP8266, IoT – praktyczny przykład cz. 4 – Arduino IDE, dlatego ten punkt możemy pominąć.

Jeżeli mamy już uruchomione Arduino IDE ze wsparciem dla ESP8266, to musimy pamiętać o kilku rzeczach. Przede wszystkim należy wybrać odpowiednią płytkę, w naszym przypadku jest to NodeMCU 1.0 (ESP-12E Module), następnie tak jak w przypadku Arduino trzeba wybrać odpowiedni port, więc jeżeli mamy podpięte jednocześnie np. Arduino UNO i NodeMCU, to nie zapomnijmy o jego zmianie. Resztę ustawień możemy zostawić w spokoju, powinny one wyglądać mniej więcej tak:1

Kolejną sprawą jest fakt, że dioda umieszczona na NodeMCU nie jest podpięta do pinu 13 jak a Arduino UNO, tylko do pinu 16. Dalej jest już prosto, jeżeli mamy otwarty przykład Blink, to zamieniamy wszystkie wystąpienia pinu 13 na 16 i klikamy „Upload”. Odczekujemy chwilę, ponieważ kompilacja i wgrywanie programu trwa trochę dłużej, niż w przypadku Arduino (można to zmienić ustawieniem „Upload Speed”, wybieramy wtedy prędkość programowania, jednak przy zbyt wysokich prędkościach mogą pojawić się błędy). Voilà, dioda miga.

Teraz pora na NodeMCU i Lua. Czytaj dalej

Wyświetlacz 2.8″ na kontrolerze ILI9341 – podłączenie do Raspberry Pi

24Od jakiegoś czasu popularne stały się wyświetlacze z kontrolerem ILI9341. Dlatego, że są tanie i łatwo podłączyć je do Arduino, Raspberry Pi czy innych płytek. Dzisiaj pokażemy jak podłączyć wyświetlacz do Raspberry Pi na 2 sposoby – wyświetlając statyczne grafiki, oraz pulpit systemu.

Czego będziemy potrzebowali? Oczywiście wyświetlacza, przydadzą nam się również przewody F-F do połączenia z Raspberry Pi.

Podłączenie wyświetlacza:

  • 3.3V Raspberry Pi – Vcc wyświetlacza
  • GND Raspberry Pi – GND wyświetlacza
  • CE0 (GPIO8) Raspberry Pi – CS wyświetlacza
  • GPIO23 Raspberry Pi – RESET wyświetlacza
  • GPIO18 Raspberry Pi – D/C wyświetlacza
  • MOSI (GPIO10) Raspberry Pi – SDI (MOSI) wyświetlacza
  • SCLK (GPIO11) Raspberry Pi – SCK wyświetlacza
  • 3.3V Raspberry Pi – LED wyświetlacza

Teraz musimy upewnić się, że mamy włączone SPI, w tym celu wpisujemy:

pi@raspberrypi:~ $ sudo raspi-config

Strzałką w dół przechodzimy do linijki „Advanced Options” i wciskamy Enter, następnie przechodzimy do sekcji „SPI” i ponownie wciskamy Enter. Na pytanie odpowiadamy oczywiście „Yes”, dla pewności restartujemy Raspberry.

Po restarcie po wpisaniu:

pi@raspberrypi:~ $ ls /dev/spi*

Powinny pokazać nam się dwa urządzenia:

pi@raspberrypi:~ $ ls /dev/spi*
/dev/spidev0.0  /dev/spidev0.1

Teraz możemy przejść do instalacji oprogramowania:

sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip python-imaging python-numpy git
sudo pip install RPi.GPIO
cd ~
git clone https://github.com/adafruit/Adafruit_Python_ILI9341.git
cd Adafruit_Python_ILI9341
sudo python setup.py instal

OK, zainstalowaliśmy bibliotekę i przykłady, przechodzimy do katalogu z przykładami i uruchamiamy jeden z nich:

pi@raspberrypi:~ $ cd ~/Adafruit_Python_ILI9341/examples
pi@raspberrypi:~ $ sudo python image.py

Jeżeli zrobiliśmy wszystko dobrze, to na wyświetlaczu powinniśmy zobaczyć obraz:

KONICA MINOLTA DIGITAL CAMERA

To była trudniejsza część. Teraz wyświetlimy pulpit posługując się moduł fbtft, który jest sterownikiem do małych modułów LCD.

Uruchamiamy Raspberry i wpisujemy:

pi@raspberrypi:~ $ sudo modprobe fbtft_device custom name=fb_ili9341 gpios=reset:23,dc:18 speed=16000000 rotate=90 bgr=1
pi@raspberrypi:~ $ FRAMEBUFFER=/dev/fb1 startx

Jeżeli chcesz, żeby po każdym restarcie odpowiedni moduł był ładowany automatycznie, to do pliku /etc/modules dopisz:

fbtft_device custom name=fb_ili9341 gpios=reset:23,dc:18 speed=16000000 rotate=90 bgr=1