Robotik für Lehr- und Entwicklungszwecke Zwischenpräsentation.

Post on 05-Apr-2015

105 views 3 download

Transcript of Robotik für Lehr- und Entwicklungszwecke Zwischenpräsentation.

Robotik für Lehr- und Entwicklungszwecke

Zwischenpräsentation

Grundaufbau - Konzept Komponentenauswahl

◦ Controller-Board◦ USB-I2C-Converter

Programmierung – Libraries◦ Grundsystem◦ Sprachen und Systeme◦ I2C◦ MCK

Fortschritt

Inhalt

Grundaufbau - Konzept

Entwicklung eines universellen Robotiksystems zur Verwendung und Weiterentwicklung im Schulbetrieb◦ OS-unabhängig

flexibles, erweiterbares System hardwaretechnisch einfach zu bedienen Ausreichende Dokumentation

Ziel

Module◦ I2C-Bausteine, Sensoren/Aktoren

Verbindung◦ USB-I2C-Converter, ev. Direktverbindung

Zwischenplatine◦ Aktorensteuerung (Motoren u.a.)

DriveSystem◦ Eigene Energieversorgung, auswechselbar

Konzept

Komponentenauswahl

I2C-USB-Converter: i2c-tiny-usb (till@harbaum.org)Controller-Board: Make Controller Kit (makingthings.com)

Kleine Größe – großer Komponentenumfang Eigenbau: Zeitkomponente kritisch Viele Schnittstellen

◦ Aktoren/Sensoren◦ Programmiersprachen

Hohe Leistung◦ Atmel AT91SAM7X256 Mikrocontroller

32-bit ARM7 core 256K Flash 64K SRAM Bis zu 55MHZ/48MIPS

Hoher Preis◦ Versand aus den USA

Make Controller Kit - MCK

Einfache Handhabung – universelle Basis◦ LibUSB

Library zum USB-Handling In C, entwickelt für Linux, Windows Port existiert

Direktes Übersetzten in I2C-Signale◦ Kein simulierter COM-Port

Geringer Preis, jedoch Eigenbau

i2c-tiny-usb

Programmierung – Libraries

Bestehende Funktionen (z.B. von LibUSB) tlw. sehr komplex Kapselung

Basis-Funktionen erstellt◦ Einfacher, jedoch ev. eingeschränkte

Funktionalität

Bestehende Funktionen beibehalten Für erfahrende User

Grundsystem

Sprachen◦ C/C++◦ Java◦ C#

Systeme◦ Windows◦ Linux

Sprachen und Systeme

C#◦ Baut auf der MCK Basic C# Lib auf. (Nur Windows)

Java◦ Baut auf NetUtil auf. (Plattformunabhängig)

Es sollen einsteigerfreundliche Bibliotheken erstellt werden

In C werden Samples erstellt◦ Kompilierbar auf Windows und Linux

MCK

MCK – Example-StrukturPort wählen Port.USB oder Port.LAN

Verbindung öffnen open()

Verbindung testen isReady()

Ticket generieren generateTicket()

Kommando und Kommandotyp setzen Setter/Getter möglich

Kommando ausführen 1. executeBlocking() -> warten, bis das Kommando beendet ist (nur für GETTER)2. executeNonBlocking() -> manuell den Status abfragen (für GETTER und SETTER)

Bei Getter Kommandos das Ergebnis auslesen getValue()

Speicher den das Ticket belegt freigeben Dispose()

Verbindung schließen close()

Speicher den das MakingThings Objekt belegt freigeben

Dispose()

Bauen auf LibUSB auf OS-Unabhängig

Einsteigerfunktionen sollen bereitgestellt werden◦ Kapselung der bestehenden LibUSB-Funktionen

C#-Lib: In DLL zusammengefasste C-Funktionen aufrufen

Java-Lib: JNI

I2C

i2c_get_multiple_converters◦ Liefert die Adressen der an-

geschlossenen Converter

Wenn nur ein Converteri2c_init_win()

I2C – Example-Strukturi2c_get_multiple_convertersi2c_get_multiple_converters

i2c_init_win_multiplei2c_init_win_multiple

i2c_tiny_usb_get_funci2c_tiny_usb_get_func

i2c_lookup_addressi2c_lookup_address

i2c_write_basici2c_write_basic

i2c_read_basici2c_read_basic

i2c_close_wini2c_close_win

Fortschritt

Hardwareplanung und Bau Programmierung

◦ MCK Windows – C Windows – C# Windows – Java – Basisfunktionalitäten

◦ I2C Windows – C Linux – C Windows – C# - Grundfunktionen

Done

Programmierung◦ I2C

Windows – C# (Kosmetik- und erweiterte Funktionen) Windows – Java Linux – Java

◦ MCK Windows C# (Kosmetik- und erweiterte Funktionen) Windows – Java (Kosmetik- und erweiterte Funktionen) Linux – Java (Test) Linux/Windows – C (Mehr Samples)

Testsysteme◦ Auswahl erweitern

I2C-Converter Neubau

ToDo

Danke