Arduino TRE wersja developerska

image

Ruszył program testów developerskich dla Arduino TRE. Zespół Arduino zaoferował 50 płytek Arduino TRE, każda za €149,00. Testy polegają na tym, że po zakupie wersji developerskiej masz bezpośredni kontakt z twórcami płytki i możesz im zgłaszać niekompatybilności własnych urządzeń i bibliotek współpracujących z Arduino. Jesteś też w programie developerskim społeczności BeagleBoard i Arduino, dzięki któremu twój projekt ma szansę trafić na blog Arduino, lub przy dobrej współpracy nawet otrzymać kupon o równowartości tego co zapłaciłeś za Arduino TRE.

Z czego składa się Arduino TRE?

Jest to połączenie 2 znanych płytek Beagle Bone Black i Arduino Leonardo w jednym. Płytka taka posiada 2 procesory. Jednym jest Sitara 335x na rdzeniu ARM-A8 i prędkości 1 GHz z 512 MB RAM na którym uruchomiony jest Linux. Drugim jest ATmega 32u4 na rdzeniu AVR o prędkości 16 MHz.

Część Arduino posiada standardowe wyjścia jakie znamy z tego rodzaju płytek. Wszystkie w standardzie 5 V.

  • 14 wejść/wyjśc cyfrowych
  • 7 wyjść PWM
  • 6 wejść analogowych

Na zdjęciu płytki zauważyłem też podstawkę pod modemy radiowe formatu XBee.

Część zarządzana przez procesor Sitara ma piny w standardzie 3,3 V.

  • 23 cyfrowe piny wejścia/wyjścia
  • 4 wyjścia PWM
  • złącze Ethernet do internetu
  • 4 złącza USB host do podłączania dongli (flash, modemów GSM, modemów WiFi, myszy i klawiatury)
  • złącze USB do podłączania komputera
  • wejście/wyjście Audio Jack 3.5 mm
  • slot na kartę SD
  • wyjście HDMI na telewizor

Jak programuje się Arduino TRE?

image

Twórcy wymyślili nową wersję Arduino IDE. Działa ona przez przeglądarkę internetową. Aplikacja generująca stronę działa na Linuksie uruchomionym w Arduino TRE. 

Zdjęcia pochodzą z bloga Arduino

Informacje o Arduino TRE Developer na blogu Arduino

Arduino TRE w sklepie Arduino

Zdjęcia Arduino TRE

sprae

Sublime Text 3 jako Arduino IDE

Sublime Text to wygodny i szybki edytor dla programistów. Cieszy się on takim powodzeniem, że ilekroć widać gdzieś film z jakimś programistą, istnieje duże prawdopodobieństwo, że używa on Sublime.

Edytor można łatwo dostosować przez to, że ma bogatą bibliotekę pluginów. Plugin o nazwie “Arduino-like IDE” dostosowuje nasz edytor do współpracy z Arduino.

O tym jak zainstalować plugin dowiesz się z:

sprae

Czemu powstało Arduino?

Jakoś nigdy nie interesowałem się Massimo Banzi – twórcą Arduino. Używam tej platformy bo jest wygodna w programowaniu i dobrze przemyślana. Na stronie ReadWrite.com trafiłem na wywiad z nim, który mnie wciągnął, 

Dowiedziałem się, jaka jest historia powstania Arduino i czemu to wszystko jest takie fajne i przystępne. Massimo po tym jak rzucił nudne studia na wydziale elektroniki, zaczął pracować w instytucie interaktywnego dizajnu Ivrea jako nauczyciel. Tam miał do czynienia z utalentowanymi ludźmi w różnych dziedzinach, którzy mieli w różnym stopniu opanowaną elektronikę.

Jego zadaniem było wyrównać ich poziom w dość krótkim czasie.

Problemem było to, że rożnego rodzaju platformy do nauki były drogie i skomplikowane w programowaniu. Próbując wyjść na przeciw temu zapotrzebowaniu, po serii rożnych prototypów wymyślili Arduino.

Cała historia jest kolejnym dowodem na to, że trzeba słuchać ludzi i starać się ułatwiać im życie, rozwiązując problemy z jakimi się stykają. Gdyby nie Arduino, by spełnić swoje marzenia o sterowaniu różnymi rzeczami musielibyśmy poświęcić znacznie więcej czasu na uruchamianie mikro-kontrolerów i nauczenie się, jak nimi sterować za pomocą rejestrów peryferyjnych o dziwnie brzmiących nazwach:

#include <avr/io.h>

DDRB |= _BV(PB5);
PORTB |= _BV(PB5);

Zamiast tego piszemy:

pinMode(13, OUTPUT);
digitalWrite(13, HIGH);

i sprawa załatwiona, dioda świeci.

W wywiadzie możesz się jeszcze dowiedzieć o tym jak powstała nazwa Arduino, co porabia jego twórca i co nas czeka w przyszłości.

Wywiad z Massimo Banzi na ReadWrite.com

sprae

Uruchamianie modułów Bluetooth HC-05

Moduły HC-05 realizują wirtualny port szeregowy, komunikując się za pomocą standardu Bluetooth.

Od strony komputera obsługa jest bardzo prosta. Gdy moduł jest uruchomiony, wyszukujesz go wśród dostępnych urządzeń bluetooth, parujesz, wklepujesz PIN (domyślnie 1234) i otrzymujesz dostęp do nowego portu COM.

Moduł jest dostępny w różnych wersjach. Goła wersja to płytka drukowana z pinami na około w formacie SMD.

Płytka ta działa na zasilanie 3.3V i ma takie same poziomy napieć sygnałów logicznych.

Najczęściej spotykane są wersje przylutowane do adapterów z pinami i konwerterami do standardu 5V,

Mają one najczęściej wyprowadzenia:

  • 5V – zasilanie 5V
  • GND – masa zasilania
  • RXD – odbieranie danych – tym pinem dane szeregowe idą do modułu
  • TXD – wysyłanie danych – tym pinem moduł wysyła dane szeregowe
  • KEY – pin konfiguracji

Płytki zwykle mają też diodę LED sygnalizującą stan modułu. Gdy mruga ona szybko, moduł działa, ale nie jest połączony z innym urządzeniem Bluetooth. Gdy mruga wolno moduł jest podłączony z innym urządzeniem, lub jest w trybie konfiguracji.

Konfigurowanie

Jeśli masz przewód/adapter USB->Serial FTDI, podłączasz:

  • 5V do 5V
  • GND do GND
  • RXD do TXD
  • TXD do RXD
  • KEY do 3.3V (ewentualnie do 5V)

Jeśli chcesz wykorzystać Arduino UNO jako programator z komputera:

  • Łączysz RESET z GND
  • 5V do 5V
  • GND do GND
  • RXD do RX (pin 0)
  • TXD do TX (pin 1)
  • KEY do 3.3V

Po uruchomieniu takiego zestawu dioda stanu powinna migać powoli.

Moduł w trybie konfiguracji komunikuje się z prędkością 38400 bodów, a standard końca linii to “rn” czyli CRLF. Tak należy skonfigurować program terminala.

Teraz możesz mu wydawać polecenia konfiguracji.

Spis poleceń AT modułu HC-05

Podstawowym poleceniem jest AT
Jeśli wpiszesz je do terminala i naciśniesz enter, terminal powinien odpowiedzieć napisem OK. Jeśli nic nie odpowiada, albo odpowiada napisem ERROR sprawdź dokładnie połączenia i konfigurację terminala.

Inne przydatne polecenia:

AT+NAME=“Nazwa modulu”
Ustawia nazwę modułu widoczną przy przeszukiwaniu sieci Bluetooth

AT+PSWD=“1234”
Ustawia kod PIN potrzebny przy parowaniu modułu.

AT+UART=predkosc,0,0
Ustawia prędkość z jaką będzie się komunikował port szeregowy.

Po konfiguracji wyłączasz wszystko, odłączasz sygnał KEY od 3.3V i ponownie włączasz. Teraz możesz sparować urządzenie z komputerem i spróbować przeprowadzić transmisje danych z nowym portem COM.

Używanie modułu

Jeśli chcesz by moduł komunikował się z kontrolerem w Arduino – podłączasz:

  • 5V z 5V
  • GND z GND
  • TXD z RX (pin 0)
  • RXD z TX (pin 1)

Teraz możesz za pomocą obiektu Serial wysyłać i odbierać dane przez moduł Bluetootch.

sprae

MicroFlo – wizualne programowanie Arduino

Grupa programistów związana z Linuksowym projektem pulpitu GNOME wpadła na pomysł by przywrócić starą ideę programowania wizualnego. Jest ono oparte na rysowanych na ekranie diagramach i przypomina schemat elektryczny.

Polega ono na tym, że zamiast wpisywać kod do edytora, mamy do dyspozycji różne klocki, które układamy na ekranie i łączymy przewodami. Przewody sugerują kolejność uruchamiania klocków.

Zdjęcie pochodzi z bloga Henri Bergius

Programowanie takie wydaje się bardzo proste i atrakcyjne.

Autorzy stworzyli również wersję swojego pakietu o nazwie MicroFlo, przeznaczoną do wizualnego programowania Arduino. Oprogramowanie zostało sprawdzone z płytkami:

Próbowałem je zainstalować przez weekend i zdać tobie relację. Niestety, soft jest w tak wczesnej wersji, że nie jest to takie proste, Jeśli masz odpowiednio dużo samozaparcia oraz czasu to polecam spróbować i podzielić się z nami wrażeniami.

Program działa na Windows, Linux i OS X. Do pracy wymaga przeglądarki Google Chrome. Potrzebne jest też również konto na Github dzięki któremu zarejestrujesz program.

Autorzy przystosowali edytor do pracy z ekranem dotykowym i bez dostępu do internetu.

sprae

Ile zostało pamięci?

W Arduino jest zwykle 2048 bajtów pamięci RAM. W niej przechowywane są zmienne programu. Czasem zdarza się, że zaczyna jej brakować i Arduino “świruje”.

Arduino IDE w wersji 1.5 pokazuje przy kompilacji zajętość pamięci RAM, ale tylko przez zmienne globalne. Jeśli używasz też pamięci dynamicznej – np. używając typu String, to rzeczywista zajętość może różnić się od tej przy kompilacji.

int freeRam ()
{
  extern int __heap_start, *__brkval; 
  int v; 
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); 
}

Ta funkcja zwraca liczbę wolnych bajtów pamięci RAM w Arduino. Możesz jej użyć w kombinacji Serial.println(freeRam()); w celu podglądania ile aktualnie pamięci zajmuje program i czy niebezpiecznie nie zbliża się do jej końca.

Na koniec mały trik.
Najczęstszą przyczyną zajęcia pamięci jest używanie napisów typu Serial.print(“Ala ma kota”);. Każdy tekst do wyświetlenia jest przechowywany w pamięci RAM. Jeśli masz ich dużo to możesz zająć całą pamięć.

Można sobie z tym poradzić trzymając tekst w pamięci Flash, której jest dużo – przynajmniej 32 kB. Robi się to za pomocą definicji F().

Serial.print(F(“Ala ma kota”));

Funkcję ściągnąłem z: Arduino Playground – AvailableMemory
D
ziałanie elementów funkcji możesz zrozumieć dzięki:
Strona o tym jak działa przydzielanie pamięci w kontrolerze Arduino
Opis działania operatora warunkowego w C++

sprae

Prosty kurs zaawansowanych funkcji modułu XBee

XBee to fantastyczny moduł do komunikacji radiowej. Pozwala łatwo stworzyć sieć modułów, które wzajemnie się komunikują. Gdy jeden moduł jest za daleko by komunikować się z adresatem, do retransmisji wykorzystuje automatycznie najbliższy w zasięgu inny moduł.

Moduły te zwykle wykorzystywane są do transmisji danych z kontrolera za pomocą interfejsu szeregowego. Mało kto wie, że mogą one pracować również bez udziału kontrolera, wykorzystując własne piny cyfrowe i analogowe, transmitować w sieci ich stan i zdalnie nimi sterować.

Autor ukrywający się pod nickiem “Tunnelsup” stworzył serię Tutoriali na Youtube w których opisuje w prosty sposób zaawansowane funkcje modułów XBee Series 2.

Lista filmów kanału Tunnelsup na Youtube

Ściaga obsługi XBee

Moduł XBee Series 2 dostępny w Nettigo

Akcesoria do modułów XBee w Nettigo

sprae

Jak robić telefon z Raspberry Pi

David Hunt zrobił własnoręcznie telefon komórkowy z Rasbperry PI, dołączając do niego kilka modułów:

Swój wynalazek nazwał PiPhone.
Telefon może wydawać się prymitywny, ale wszystko zależy od naszego programistycznego skill-u. Tu limitem jest tylko wyobraźnia.

Ze szczegółami projektu możesz zapoznać się na blogu David-a.
PiPhone – Telefon oparty na Raspberry Pi

Kody źródłowe telefonu zostały udostępnione na GitHub
Kody źródłowe PiPhone 

sprae

Porównanie płytek opartych na Linuksie

Porównanie płytek opartych na Linuksie