Apple MacBook kontra Arduino

Wczoraj premierę miał MacBook – nowy komputer firmy Apple. Jedną z jego cech jest pozbycie się większości gniazdek. Pozostawiono jedynie maleńkie USB typ C. Tak jak w przypadku tabletów i telefonów służy ono głównie do ładowania.

Trend ten nie jest odosobniony. Firma Intel – producent najważniejszych podzespołów do PC również ma wizję, by w przyszłych laptopach wyzbyć się większości złącz – nawet tych od ładowania, stawiając na fale radiowe i indukcję magnetyczną. 
Dotyka to też internetowych komputerów typu ChromeBook od Google.

Komputery profesjonalistów i entuzjastów PC pewnie długo pozostaną tradycyjnymi. Lecz jak mawiał Adam Savage – nasze wynalazki tworzymy głównie z myślą o innych, bo patrzenie jak komuś się przydają daje większą satysfakcję niż samo ich stworzenie. Może się zdarzyć, że inni będą mieli jeden z tych nowoczesnych, wygodnych komputerów. Ba, już dziś możemy trafić na kogoś, kto posługuje się wyłącznie tabletem lub smartphone’m.

Co zrobić?

Na szczęście wymyślono już kilka płytek kontrolerów, które dobrze sobie radzą w takich sytuacjach.

Arduino Yun

Jest to płytka oparta na znanych i lubianych kontrolerach Arduino. Od tradycyjnych modeli różni się tym, że wyposażono ją w moduł komunikacji sieciowej. Zarówno Wi-Fi, jak i Ethernet.

Oprócz programów do sterowania urządzeniami podłączonymi do pinów, możemy w tym modelu dodać do nich strony WWW przez które można sterować przez sieć urządzeniem. To wygodny sposób dla użytkowników wszelkiej maści nowoczesnych urządzeń.

Arduino Yun programuje się za pomocą standardowego Arduino IDE tylko, że bezprzewodowo przez sieć Wi-Fi. Więc można do tego użyć nawet nowego MacBooka.

Płytka kontrolera Arduino Yun w sklepie Nettigo.

Raspberry PI

Raspberry Pi to mała płytka w której mieści się praktycznie cały komputer. Można ją podłączyć do sieci przez złącze Ethernet. Jeśli potrzebujesz Wi-Fi możesz użyć tanich dongli USB. Płytka ma też wyjście do podłączenia telewizora HDMI, wejście kamery i wyjście wyświetlacza.

Raspberry Pi działa na systemie operacyjnym Linux. Wszystko co możesz za jej pomocą zrobić, ogranicza się do twojej znajomości Linuksa. Większość rzeczy programuje się za pomocą języka Python. Duża społeczność stworzyła też wiele rozwiązań dla innych języków programowania i dużo bibliotek do różnych podzespołów.

Raspberry można programować podłączając do płytki mysz, klawiaturę i telewizor lub przez sieć za pomocą protokołów SSH i SFTP.

Płytka kontrolera Raspberry PI w sklepie Nettigo

Netduino

Jest to płytka dla wielbicieli rozwiązań firmy Microsoft, gdyż programuje się ją w języku C#. Urządzenie ma wyprowadzenia zgodne ze standardem Arduino i przygotowana jest głównie do urządzeń sterowanych przez sieć Internet. Wyposażona jest w gniazdo Ethernet. Programowanie przeprowadza się za pomocą środowiska Visual Studio.

Najnowszy model Netduino znajdziesz w sklepie Nettigo

Arietta G25

Arietta to skromna płytka kontrolera z systemem operacyjnym Linux oraz dużą ilością różnych wyjść. Płytka sama z siebie nie potrafi się połączyć z internetem w żaden sposób, jednak ma dostępne dodatkowe, tanie moduły Wi-Fi.

Ciekawostką jest to, że port USB przez który programujesz płytkę działa jako urządzenie sieciowe, dzięki któremu masz dostęp do SSH i SFTP.

Płytka Artietta w sklepie Nettigo

sprae

Arietta G25 i DS18B20

DS18B20 to cyfrowy czujnik temperatury, wykorzystujący magistralę 1-wire. Jego podstawową zaletą jest prostota z jaką można go wykorzystać w budowanych układach. W tym wpisie pokażę, jak użyć czujnika razem z Ariettą G25.

Skorzystamy z generatora konfiguracji na stronie: http://www.acmesystems.it/pinout_arietta

Obok napisu “1 wire bus” zaznaczamy “PC2”, dzięki czemu odpalimy magistralę na porcie PC2. Klikamy przycisk “Generate acme-arietta.dtb” i klikamy na link. Pobranemu plikowi zmieniamy nazwę na acme-arietta.dtb. Teraz musimy umieścić go na karcie pamięci. Możemy to zrobić np. przez scp.

Uruchamiamy terminal, wpisujemy: scp acme-arietta.dtb root@192.168.10.10:/boot i klikamy Enter, po chwili zostaniemy poproszeni o hasło (domyślnie: acmesystems).

Jeżeli wszystko poszło dobrze, możemy podłączyć czujnik do płytki.

image

Tak wygląda podłączenie czujnika do płytki. Oczywiście do jednej magistrali można podłączyć ich więcej, ale ja ograniczyłem się do jednego.

Teraz możemy włączyć płytkę. System automatycznie, co 10 sekund sprawdza, czy został podłączony jakiś czujnik.

Wpisujemy polecenie: cd “/sys/bus/w1/devices/w1 bus master” oraz ls

Polecenie ls powinno pokazać nam katalog z nazwą zaczynającą się od 28, przechodzimy do niego i wpisujemy: cat w1_slave

image

Liczba w drugim wierszu, po ’t=“ to temperatura. W moim przypadku jest to 19.88°C

Do odczytywania temperatury możemy też użyć prostego programu w pythonie:

scan1w.py

from ablib import w1buslist
 
print "Scan for the available thermal sensors"
 
for device in w1buslist():
    print "Sensor ID = " + device

Za pomocą tego programu możemy wyświetlić identyfikatory podłączonych czujników.

debarm:/# debarm:~/playground/python/1wire# python scan1w.py
Scan for the available thermal sensors
Sensor ID = 0000028fa89c

Za pomocą tego programu możemy wyświetlić temperaturę z wybranego czujnika:

read.py

from ablib import DS18B20
 
sensor = DS18B20("0000028fa89c")
print "Temp=%.2f C" % (sensor.getTemp())

debarm:/# debarm:~/playground/python/1wire# python read.py
Temp=20.38 C

Artur

Arietta – mniejszy konkurent Raspberry

image

Arietta to małe płytki wielkości kciuka na procesorze ARM z możliwością uruchomienia na nich Linuksa. Zaletą płytek jest 29 pinów GPIO które zawierają rozmaite sprzętowe funkcje. Od wejść analogowych i wyjść PWM po interfejsy USB i SPI.

Dziś opiszę jak zainstalować na Ariettcie Linuksa i jak nawiązać z nimi komunikację.

*Instalacja Linuksa*
Płytka działa na znanej i lubianej dystrybucji Debian. System operacyjny dostarczamy podobnie jak w innych płytkach na karcie micro SD.

Instalacja jest prosta. Wystarczy pobrać plik obrazu systemu i zapisać go na karcie SD.

Pobieramy obraz stąd: http://static.nettigo.pl/arietta.zip

Otwieramy terminal i wpisujemy: sudo dd if=arietta.img of=/dev/sdX BS=1M gdzie X to literka oznaczająca kartę pamięci, zwykle będzie to b lub c (przy tym punkcie należy uważać, żeby nie nadpisać sobie zawartości dysku).

Czekamy, aż plik obrazu zostanie wgrany na kartę, może to potrwać kilka minut. Po wrzuceniu systemu możemy włożyć kartę do slotu na płytce i podłączyć Ariettę do komputera.

Arietta G25 po podłączeniu przez USB do komputera wykrywana jest jako nowy interfejs sieciowy. Umożliwia to połączenie się po SSH przed skonfigurowaniem modułu WiFi. Do podłączenia się potrzebny będzie kabel microUSB.

Uruchamiamy terminal i za pomocą ulubionego edytora (pamiętając o sudo), edytujemy plik /etc/network/interfaces

Dodajemy następujące linijki:

allow-hotplug usb0 iface usb0

inet static address 192.168.10.20

netmask 255.255.255.0

Zapisujemy plik i wychodzimy z edytora.

Jeżeli używamy Ubuntu, nie ma takiej potrzeby, wystarczy kliknąć na ikonę połączenie i wybrać nowe urządzenie.

Wkładamy kartę pamięci z wgranym systemem do slotu na płytce. Podłączamy kabel do Arietty i komputera. Jeżeli po około 2 sekundach zacznie migać czerwona dioda na płytce, będzie to oznaczało, że system zaczął się poprawnie ładować. Odczekujemy ok. 5 sekund, otwieramy terminal i wpisujemy: dmesg Jeżeli jedna z ostatnich linijek będzie wyglądała mniej więcej tak: “[54496.170891] usb 1-1: Product: RNDIS/Ethernet Gadget”, wiemy, że system wykrył nowy interfejs sieciowy.

Wpisujemy: ifconfig i sprawdzamy, czy faktycznie mamy interfejs o nazwie usb0.

image

Jeżeli nie, to musimy “podnieść” go ręcznie wpisując: sudo ifup usb0. Sprawdzamy łączność, wpisując: ping 192.168.10.10 Jeżeli wszystko poszło dobrze, powinniśmy otrzymać odpowiedź z płytki. W tym momencie możemy zalogować się na Ariettę. Otwieramy terminal i wpisujemy: ssh root@192.168.10.10 Po chwili zostaniemy poproszeni o podanie hasła, wpisujemy więc “acmesystems” (uwaga, nie widać wpisywania żadnych znaków).

image

Od teraz mamy dostęp do płytki za pomocą SSH lub interfejsu webowego.

[Artur]

Arietta G25 – 29 GPIO z Linuksem

Artietta G25 to kolejna sprytna płytka kontrolera wielkości kciuka. Ta ma wymiary 5,3 na 2,5 cm.
Na tak małej przestrzeni znajduje się kontroler ARM A9 firmy Atmel działający z prędkością 400 MHz oraz 128 (za 20 Euro + VAT) lub 256 MB (za 30 Euro + VAT) pamięci RAM. Parametry pozwalają na uruchamianie na niej Linuksa za pośrednictwem wbudowanego czytnika kart mikro SD.

image
Zdjęcie pochodzi ze strony Acmesystems.it

Płytka wyposażona jest w dużą ilość pinów. Wyprowadzone są one na łatwe w użyciu pola lutownicze 2×20 pinów o standardowym wygodnym rastrze 2,54 mm. Można tam wlutować gniazdo lub wtyk goldpin.
Do swojej dyspozycji masz tam 29 pinów cyfrowych GPIO mających poziomy logiczne 3,3 V oraz 3 interfejsy USB.

Niektóre piny GPIO mają podwójną funkcję. Dodatkowo mogą pełnić rolę:

  • 3 interfejsów szeregowych RS232 (TTL 3,3V)
  • 2 interfejsów i2c
  • interfejsu SPI z 4 pinami CS
  • 4 wejść analogowych o rozdzielczości 10 bitów
  • Interfejsu i2s do generowania cyfrowego wyjścia aufio
  • 4 wyjść PWM
  • 4 interfejsów 1-Wire

Płytka zasilana jest przez wbudowane gniazdo mikro USBm piny 5V lub 3.3V. Gniazdo USB pozwala także na dostęp do Linuksa uruchomionego na płytce. Dodatkowo jest wejście VBat umożliwiające podtrzymanie zegarka za pomocą baterii, gdy płytka nie jest zasilana.

Dodatkowe piny pozwalają dołączyć moduł Wi-Fi, kosztujący 7 Euro + VAT.

image
Zdjęcie pochodzi ze strony Acmesystems.it

Wszystkie funkcje i wyprowadzenia są udokumentowane na stronie producenta. Płytkę można programować w każdym języku programowania dostępnym na Linuksa i obsługującym procesory ARM. Np. C++, Python, NodeJs, Java, PHP, Bash. Zgodnie z ideą U***a wszystkie interfejsy płytki są plikiem.

sprae