kramann.info
© Guido Kramann

Login: Passwort:










EmbSyst
1 day_by_day
2 Eingebettete_Systeme
..2.1 Softwareentwicklung
....2.1.1 AgileSoftwareentwicklung
....2.1.2 Verhalten
....2.1.3 Entwurfsmuster
....2.1.4 FuzzyRegler
....2.1.5 Uebung
..2.2 Arduino
....2.2.1 Uebung1
..2.3 Android
....2.3.1 UML
......2.3.1.1 Volumenberechnung
......2.3.1.2 UML_Klassendiagramm
......2.3.1.3 Konstruktor
......2.3.1.4 Statische_Variable
....2.3.2 bluej
....2.3.3 Threads
....2.3.4 Interfacedesign
....2.3.5 Android
......2.3.5.1 Getting_Started
......2.3.5.2 App
......2.3.5.3 Beispielprojekt
........2.3.5.3.1 Richtlinien
........2.3.5.3.2 Anforderungen
........2.3.5.3.3 Layout
........2.3.5.3.4 Projekt_einrichten
........2.3.5.3.5 Refactoring
........2.3.5.3.6 Icon
........2.3.5.3.7 Icon2
........2.3.5.3.8 Kurzanleitung
........2.3.5.3.9 Architektur
........2.3.5.3.10 Anwendungsklasse
......2.3.5.4 Threads
......2.3.5.5 Activities
......2.3.5.6 Was_ist_wo
......2.3.5.7 Regelungssysteme
........2.3.5.7.1 Servo
........2.3.5.7.2 Fahrzeug
......2.3.5.8 ADB_Apps
......2.3.5.9 Veroeffentlichen
......2.3.5.10 Einzelheiten
........2.3.5.10.1 Bildschirmaufloesung
........2.3.5.10.2 Parameter
........2.3.5.10.3 Permission
........2.3.5.10.4 Latenzzeit
......2.3.5.11 Tonerkennung
........2.3.5.11.1 Wahrscheinlichkeitsrechnung
........2.3.5.11.2 Kovarianz_Scilab
........2.3.5.11.3 Java_Threads
........2.3.5.11.4 Java_Reflection
....2.3.6 Processing
......2.3.6.1 Installation
......2.3.6.2 Erste_Schritte
......2.3.6.3 Mechatronik
......2.3.6.4 Bibliotheken
......2.3.6.5 Uebung
......2.3.6.6 Snippets
........2.3.6.6.1 Dateioperationen
........2.3.6.6.2 Bilder
........2.3.6.6.3 GUI
........2.3.6.6.4 Text
........2.3.6.6.5 PDF
........2.3.6.6.8 Maus
........2.3.6.6.10 Zeit
........2.3.6.6.13 Animation
........2.3.6.6.15 Simulation
......2.3.6.7 Referenzen
....2.3.7 Android_Processing
......2.3.7.1 Basics
......2.3.7.2 Einrichten
......2.3.7.3 Crossplattform
......2.3.7.4 sinus
......2.3.7.5 sample
......2.3.7.6 analyse
......2.3.7.7 synthese
......2.3.7.8 Hilfsapps
......2.3.7.9 Eigene_Library
....2.3.8 Processing_VR
....2.3.9 Shapes3D
....2.3.10 TextToSpeech
....2.3.11 Internetprogrammierung
......2.3.11.1 Codegenerierung
......2.3.11.2 PHP_Programmierung
......2.3.11.3 PHP_OOP
......2.3.11.4 Java
......2.3.11.5 UDP
......2.3.11.6 Internetkontrolle
........2.3.11.6.1 Kamerabild
....2.3.12 OSC
......2.3.12.1 Datenaustausch
......2.3.12.2 i2audiolab
......2.3.12.3 Ardour
....2.3.13 Netzwerkprogrammierung
....2.3.14 JNI
....2.3.15 Erweitern
......2.3.15.1 sprich
......2.3.15.2 spiel
....2.3.16 thbvr
....2.3.17 Reflection
....2.3.18 Script
....2.3.19 Java3D
3 Echtzeitprogrammierung
..3.1 Echtzeit
..3.2 Korrektheit
..3.2 Semaphoren
..3.3 Hardware
..3.5 Synchronprogramm
..3.6 Zustandsmaschine
..3.7 Arduino
....3.7.1 Uebung
....3.7.2 RTOS
....3.7.3 Scheduler
....3.7.4 Semaphor
......3.7.4.1 Laufkatze
......3.7.4.2 Java
......3.7.4.3 Semaphor
....3.7.5 Messages
..3.8 Android
....3.8.2 Threads
......3.8.2.1 Java
......3.8.2.2 Synchronisierung
..3.9 Petrinetze
....3.9.1 Installation
....3.9.2 Test
4 KI
..4.1 Unueberwachtes_Lernen
..4.2 Agentensysteme
....4.2.1 Architekturen
......4.2.1.1 Verhalten
......4.2.1.2 Entwurfsmuster
....4.2.2 SUMO
......4.2.2.1 GettingStarted
......4.2.2.2 Antrieb
......4.2.2.3 Sensoren
......4.2.2.4 Zeitbasis
......4.2.2.5 Fernsteuerung
......4.2.2.6 Umsetzung_Fernst
......4.2.2.7 Fernsteuerung3
......4.2.2.10 Umsetzung
......4.2.2.11 Sockelsoftware
......4.2.2.12 Plan
......4.2.2.13 Lernen
........4.2.2.13.1 Parameter
........4.2.2.13.2 Identifikation
........4.2.2.13.3 Java
..4.3 Genetische_Algorithmen
....4.3.1 Heuristiken
....4.3.2 Genalgorithmus
..4.4 Kalmanfilter
....4.4.1 Vorarbeit
....4.4.2 Minimalversion
....4.4.3 Beispiel
5 Bildverarbeitung
..5.1 Gestalttheorie
..5.2 Bildverarbeitung
6 Technische_Systeme
..6.1 Kulturgeschichte
..6.2 Technikphilosophie
..6.3 Anthropozaen
7 Literatur
kramann.info
© Guido Kramann

Login: Passwort:




Experimente zum Datenaustausch zwischen Android-Devices mittels OSC

(EN google-translate)

(PL google-translate)

Siehe auch Library-Beispiele zu oscP5.

Erstes Experiment: Android A ändert per OSC jede Sekunde die Hintergrundfarbe von Android B

import processing.vr.*;
import oscP5.*;
import netP5.*;
import java.util.Random;

//Achtung:
//Bei Sketch-Permissions muß INTERNET angehakt sein!
//VR anhaken!

OscP5 oscP5;
NetAddress ziel_ip;

PShape sphere;
PMatrix3D eyeMat = new PMatrix3D();

Random zufall = new Random(System.currentTimeMillis());

long ZEIT = System.currentTimeMillis();

int R = 255;
int G = 0;
int B = 0;

void setup() 
{
    fullScreen(MONO);
    
    /* oscP5 starten, auf Port 12000 senden */
    oscP5 = new OscP5(this,12000);
    /* Zieladresse: */
    //Empfänger-IP eintragen (siehe Erweiterte W-LAN-Einstellungen auf Device)
    ziel_ip = new NetAddress("172.20.222.73",12000);

    sphere = createShape(SPHERE, 50);
    sphere.setStroke(false);
    sphere.setFill(color(255,0,0));
    sphere.translate(0,0,-500);
}

void draw() 
{
  //Standardeinstellungen für unser Arbeiten:
  background(R,G,B);
  getEyeMatrix(eyeMat); //Kameramatrix auslesen  
  translate(eyeMat.m03, eyeMat.m13, eyeMat.m23); //Welt in Koordinatenursprung von Kamera setzen.
  lights();
  //ENDE Standardeinstellungen für unser Arbeiten:
  
  if(System.currentTimeMillis()>=ZEIT+1000)
  {
      OscMessage myMessage = new OscMessage("/test");
      
      int ROT   = zufall.nextInt(256);
      int GRUEN = zufall.nextInt(256);
      int BLAU  = zufall.nextInt(256);
      
      myMessage.add(ROT); //Attribute hinzufügen ROT
      myMessage.add(GRUEN); //Attribute hinzufügen GRÜN
      myMessage.add(BLAU); //Attribute hinzufügen BLAU

      //abschicken:
      oscP5.send(myMessage, ziel_ip);

      println("Abgeschickt: ROT="+ROT+" GRUEN="+GRUEN+" BLAU="+BLAU);
      
      R=ROT;
      G=GRUEN;
      B=BLAU;
      
      ZEIT = System.currentTimeMillis();  
  }
     
  shape(sphere);
}

Code 0-1: OSC001_SENDER

import processing.vr.*;
import oscP5.*;
import netP5.*;
import java.util.Random;
  
//Achtung:
//Bei Sketch-Permissions muß INTERNET angehakt sein!
//VR anhaken!
  
OscP5 oscP5;

PShape sphere;
PMatrix3D eyeMat = new PMatrix3D();

int R = 255;
int G = 0;
int B = 0;

void setup() 
{
    fullScreen(MONO);

    /* oscP5 starten, auf Port 12000 auf hereinkommende Nachrichten lauschen */
    oscP5 = new OscP5(this,12000);
    
    sphere = createShape(SPHERE, 50);
    sphere.setStroke(false);
    sphere.setFill(color(255,0,0));
    sphere.translate(0,0,-500);
}

void draw() 
{
  //Standardeinstellungen für unser Arbeiten:
  background(R,G,B);
  getEyeMatrix(eyeMat); //Kameramatrix auslesen  
  translate(eyeMat.m03, eyeMat.m13, eyeMat.m23); //Welt in Koordinatenursprung von Kamera setzen.
  lights();
  //ENDE Standardeinstellungen für unser Arbeiten:
      
  shape(sphere);
}

void oscEvent(OscMessage theOscMessage) 
{
  /* Empfangene Nachricht auswerten */
  print("### received an osc message.");
  print(" Name der Nachricht: "+theOscMessage.addrPattern()); //Befehlsname
  println(" Format der Nachricht: "+theOscMessage.typetag()); //iii, d.h. 3 Integer!
  R = theOscMessage.get(0).intValue();
  G = theOscMessage.get(1).intValue();
  B = theOscMessage.get(2).intValue();
  
  println("[ROT, GRUEN,BLAU] = ["+R+", "+G+", "+B+"]");
}

Code 0-2: OSC001_EMPFAENGER