Manuel di Cerbo - Android mit Arduino™ Due

Здесь есть возможность читать онлайн «Manuel di Cerbo - Android mit Arduino™ Due» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. ISBN: , Жанр: Математика, на немецком языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Android mit Arduino™ Due: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Android mit Arduino™ Due»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Mit Android und Arduino™ treffen die zwei Platzhirsche in ihrem jeweiligen Segment aufeinander. Android ist in den letzten Jahren zur Nummer eins unter den Smartphone-Betriebssystemen aufgestiegen. Arduino™ zählt zu den wichtigsten Plattformen für eigene Hardwareprojekte und wird weit über die Elektronik hinaus eingesetzt, z. B. auch von Künstlern. Android und Arduino™ haben eines gemeinsam: beide sind Open Source. Aufgrund dieser Eigenschaft haben sich hinter beiden Systemen riesige Communitys gebildet. Eine Kombination der beiden Systeme ist deswegen die perfekte Symbiose.Mit Android und Arduino™ treffen die zwei Platzhirsche in ihrem jeweiligen Segment aufeinander. Android ist in den letzten Jahren zur Nummer eins unter den Smartphone-Betriebssystemen aufgestiegen. Arduino™ zählt zu den wichtigsten Plattformen für eigene Hardwareprojekte und wird weit über die Elektronik hinaus eingesetzt, z. B. auch von Künstlern. Android und Arduino™ haben eines gemeinsam: beide sind Open Source. Aufgrund dieser Eigenschaft haben sich hinter beiden Systemen riesige Communitys gebildet. Eine Kombination der beiden Systeme ist deswegen die perfekte Symbiose. Bei Android handelt es sich um ein Betriebssystem auf der Basis von Linux. Nach einer Vorstellung der wichtigsten Eigenheiten von Android wird die Installation der Entwicklungsumgebung (IDE) erläutert. Als IDE kommt dabei Eclipse zum Einsatz. Anhand einer ersten Android-App wird schrittweise die Nutzung der IDE gezeigt. Praxis-Tipps für Eclipse erleichtern den Umgang mit der IDE im Alltag. Mit vier Projektbeispielen, z. B. der Ansteuerung eines Servomotors, wird die Verbindung zwischen Android und Arduino™ Due anhand von Quellcode ausführlich aufgezeigt. Der Quellcode dieser Projekte ist natürlich als Download-Material verfügbar.

Android mit Arduino™ Due — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Android mit Arduino™ Due», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Genau dieser Sketch kann später auch zusammen mit einem Android-Gerät verwendet werden, vorausgesetzt das Android-Gerät verfügt über USB-Host-Funktionalität. Damit die Kommunikation auch über Android Accessory Mode funktioniert, wird der Sketch noch etwas erweitert.

2.7 LED-Intensität steuern über serielle Konsole und Android Accessory Mode

Der nachfolgende Sketch wurde erweitert, damit die Lichtintensität auch über den Android USB Accessory Mode eingestellt werden kann.

#include

#include

#define LED 13

#define RCVSIZE 128

char model[] = "HelloWorldModel";

char description[] = "A Hello World Accessory";

char company[] = "Hello Inc";

char versionNumber[] = "1.2";

char serialNumber[] = "1";

char url[] = "http://www.osciprime.com";

USBHost Usb;

ADK adk(&Usb, company, model, description,versionNumber,url,serialNumber);

void setup()

{

cpu_irq_enable();

pinMode(LED, OUTPUT);

Serial.begin(9600);

delay(200);

Scheduler.startLoop(adkLoop);

Scheduler.startLoop(serialLoop);

}

void loop(){

yield();

}

void serialLoop(){

uint8_t cmd = 0;

if(Serial.available()){

cmd = Serial.read();

analogWrite(LED,cmd);

}

yield();

}

void adkLoop()

{

uint8_t buf[RCVSIZE];

uint32_t nbread = 0;

uint8_t cmd = 0;

Usb.Task();

if (adk.isReady()){

adk.read(&nbread, RCVSIZE, buf);

if (nbread > 0){

cmd = buf[0];

analogWrite(LED,cmd);

}

}

yield();

}

Die Definitionen zu Beginn wie model, description, company etc. dienen dazu, das Android Accessory zu beschreiben. Besonders bei diesem Sketch ist, dass zwei Loops gleichzeitig ausgeführt werden. In der setup()-Funktion sieht man, dass zwei Loops gestartet werden mit Scheduler.startLoop(). Die Scheduler Library ist eine Besonderheit des Arduino Due, andere Boards mit AVR-Mikrocontrollern unterstützen diese Funktionalität (noch) nicht. Die beiden Loops laufen quasi unabhängig voneinander. Der serialLoop kümmert sich um die serielle Kommunikation und der adkLoop um den Android Accessory Mode. Es fallen die yield()-Aufrufe auf. Die Funktion yield() gibt die Kontrolle zwischenzeitlich an andere Tasks bzw. Loops ab und sollte im Zusammenhang mit dem Scheduler mehrfach gebraucht werden.

Die Anweisungen innerhalb des adkLoop sind quasi analog zu serialLoop. Ein Beispiel zum Android Accessory Mode findet man übrigens auch unter File > Examples > USBHost > ADKTerminalTest .

Der obige Sketch wird später für die Kommunikation zwischen Android-Gerät und Arduino Due verwendet. Sowohl für Kommunikation via Android-USB-Host als auch via Android Accessory Mode.

3 Android

3.1 Betriebssystem Android

Um alle Bestandteile dieses Buches zu verstehen, macht es Sinn, zuerst einen Überblick über Android zu erhalten. Android ist ein Betriebssystem, das Gebrauch vom Linux-Kernel macht.

Android ist für mobile Systeme ausgelegt. Insbesondere heißt das, es ist für Energieeffizienz und beschränkte Ressourcen (niedrige CPU-Taktfrequenz, niedrige Speicherkapazität, kleines RAM etc.) konzipiert worden. Da Android für den mobilen Einsatz gedacht ist, wurde auch an das Verwalten von Batterie, Wi-Fi, Bluetooth, Kamera etc. schon von Anfang an gedacht, speziell auch daran, dass gewisse Teile, wie Grafik- und Kamera-Treiber, »Closed Source« vom Hardware-Hersteller (OEM) geliefert werden.

Dies bringt uns wieder auf einen sehr spannenden Punkt:Android ist Open Source!

Open Source heißt, der Source-Code von Android kann von jedem inspiziert und modifiziert werden. Die Weiterentwicklung des Systems findet allerdings zum größten Teil bei Google intern statt, dabei werden »Major Releases« (größere Versionen) von Android dann wieder für die Öffentlichkeit freigegeben.

Um eine bessere Übersicht über das System zu bekommen, studieren wir Bild 3.1. In dieser Illustration sehen wir, aus welchen Schichten das Betriebssystem zusammengesetzt ist. Architektonisch bietet Android nämlich so einige Einzigartigkeiten und unterscheidet sich stark von seinen »nächsten« Verwandten (Embedded Linux, iOS, Windows Mobile). Das Modell veranschaulicht hardwarenahe Teile des Systems (im unteren Bereich des Modells) und eher hardwareferne Elemente (oben).

Bild 3.1: Der Aufbau des Android-Betriebssystems.

3.1.1 Kernel

Der Kernel ist der Teil des Betriebssystems, der direkt auf der Hardware aufsetzt. Android verwendet dazu den Linux-Kernel, welcher unter der Open-Source-Lizenz GPL verfügbar ist. Hardware-Treiber werden so durch den Kernel verwendet, wobei gewisse Treiber »closed source« vom OEM geliefert werden, die dann außerhalb des Kernels agieren (Video Codec, Audio, Kamera etc.). Dies ist einer der größten Schwachpunkte des Systems. Für die Entwickler gibt es so nämlich eine massive Hürde, ein Update für eine bestehende Hardware zu erstellen, weil sie jeweils auf die Aktualisierung der »closed« Treiber durch den OEM angewiesen sind. Der Kernel stellt auch die Funktionalität von USB zur Verfügung, was wir später in einem Versuch noch genauer betrachten werden.

3.1.2 Native Daemons

Sobald der Kernel gestartet ist, übernehmen Daemons den Lebenszyklus des Systems. Der berühmteste darunter ist »init«: der erste Prozess des Systems. Init startet zusätzliche wichtige Daemons ( netd , vold , rild , …). Ein anderer für Android spezifischer Daemon ist der »system_server«. Er stellt das Herzstück des Systems dar und bietet die Basis für die verschiedenen »services«, welche auf dem System aufsetzen.

3.1.3 Libraries

Ein wichtiger Bestandteil sind die Bibliotheken (Libraries), welche für ein vielseitiges Spektrum an Aufgaben im System verwendet werden. Darunter befinden sich auch viele Open-Source-Libraries wie z. B. libpng für das Erstellen von PNG-Bildern oder auch libsqlite , welche für SQL-Datenbanken verwendet wird. Ein weiterer Bestandteil der Libraries ist auch die Bionic Libc , eine Sprachlibrary für C, welche sich von der Linux-Library glibc in Art und Lizenz unterscheidet und von den Android-Entwicklern selbst erstellt wurde. Einen weiteren Teil stellen Framework-Bibliotheken für Android dar, welche zur Laufzeit eingebettet werden und Funktionalität für das Zusammenspiel von Android mit Hardwaretreibern implementieren und des weiteren Kernfunktionalität für das Betriebssystem liefern. Proprietäre (oder closed source) Libraries werden vom OEM zur Verfügung gestellt und ermöglichen so Kommunikation mit angeschlossener Hardware (z. B. GSM-Modem, GPS, Kamera etc.).

3.1.4 Command Line Tools

Android bringt auch eine Anzahl Command Line Tools mit. Zur Systemuntersuchung und zum Debugging können diese sehr hilfreich sein. Darunter befindet sich die Commandsammlung Toolbox (ähnlich wie Busybox ), diese ermöglicht das Ausführen von ls , cd , top , rm , reboot etc. Weiter sind Tools wie ping oder netstat vorhanden, welche für den Benutzer oder Entwickler hilfreich sein können.

3.1.5 System Services

Ein sehr Android-spezifischer Bestandteil sind die Android Services, welche auf den vorher genannten Elementen aufbauen. Diese sind überwiegend in Java geschrieben, weshalb Android auch eine virtuelle Maschine mitbringt, welche sogenannten »Dalvik-Bytecode« (im Gegensatz zu Java-Bytecode) interpretiert. Verwendet man auf dem PC die Sun Virtual Machine (heute Oracle), so ist es auf Android die Dalvik Virtual Machine. Das Format des Codes unterscheidet sich zwischen den beiden stark. Dalvik-Code ist optimiert für limitierte Ressourcen und für bestmögliche Performance. Die Android Services bieten den Applikationen des Systems Zugriff auf Betriebssystembestandteile oder auch auf Hardware.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Android mit Arduino™ Due»

Представляем Вашему вниманию похожие книги на «Android mit Arduino™ Due» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Android mit Arduino™ Due»

Обсуждение, отзывы о книге «Android mit Arduino™ Due» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x