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:




Übung zu Arduino-Programmierung

(EN google-translate)

(PL google-translate)

Arduino IDE für Arduino Nano 33 iot aktualisieren

1. Platz schaffen:
Löschen Sie unter /mnt-system/htdocs
eine Reihe an Offline-Inhalten, um ca. 1GB Platz zuschaffen,
solche mit vorangestellten Nummern:
30_Informatik3
40_Mikrocontroller
u.ä.

2. Alle vorangehenden Installationsordner löschen:
(Im Dateimanager bei view "verborgene Dateien" anzeigen)
.arduino
.arduino15
Arduino
und alle alten Installationsordner von Arduino.

3.
Aktuelle IDE-Version herunterladen:
für LINUX 32Bit
arduino-1.8.10

4. .tar.gz Datei in /home/fhbstud entpacken

5. Arduino nano 33 iot anschließen und ide starten
Angebot, Paket für 33 iot zu installieren annehmen.

6. Im Bibliotheksmanager der IDE:
"nano 33" angeben und alle angebotenen Pakete installieren.
"LSM6D" angeben und alle angebotenen Pakete installieren.
"FreeRTOS" angeben und Version von Richard Barry installieren.
Danach IDE schließen

7. Skript im Homeverzeichnis: 
arduino_unter_linux_laufen_lassen (o.ä.)
mit chmod +x ausführbar machen und in der Konsole mit
cd ~
./arduino_unter_linux_laufen_lassen
ausführen.

8. Arduino IDE Desktop-Icon mit Leafpad öffnen und anpassen.
(2. Icon löschen.)

9. Jetzt Beispiel
nano004_imu_helligkeit
testen.
Dazu Beispielordner entpacken und in /home/fhbstud/Android kopieren, danach IDE neu starten.
In loop() ergänzen:
Serial.println(z);
Nach dem Flashen serial monitor öffnen und
Board bewegen, um die Veränderung der z-Komponente der
Beschleunigungen sehen zu können.




Code 0-1: Arduino IDE im PC-Pool IWZ135 für Arduino Nano 33 iot aktualisieren

Seit Kurzem steht der Arduiono nano33iot zur Verfügung. Diese Plattform besitzt bereits einen integrierten Sensor zur Erfassung von Beschleunigungssignalen (6 axis Inertial Measurement Unit -- IMU), sowie W-LAN (ESP32).

Aufgabe 1
  • Analysieren und testen Sie nachfolgendes Programm, bei dem der Beschleunigungssensor verwendet wird.
  • Modifizieren Sie das Programm so, dass die Beschleunigungen über die serielle Schnittstelle an den PC gesendet werden und überprüfen Sie diese mit dem Serial-Monitor.
nano004_imu_helligkeit.zip

#include "SparkFunLSM6DS3.h"
#include "Wire.h"
#include "SPI.h"

uint16_t errorsAndWarnings = 0;

//Erzeuge Instanz von LSM6DS3Core
LSM6DS3Core myIMU( I2C_MODE, 0x6A );  //I2C Adresse: 0x6A
int x=0;
int y=0;
int z=0;
void setup() 
{
  //Initialisieren des seriellen Schnittstelle
  Serial.begin(9600);
  
  //Aufruf .beginCore() zur Konfiguration des IMU
  if( myIMU.beginCore() != 0 )
  {
    Serial.print("
Device Error.
");
  }
  else
  {
    Serial.print("
Device OK.
");
  }
  
  uint8_t dataToWrite = 0;  //Temporary variable

  //Zusammenfügen der Beschleunigungsdaten.
  dataToWrite = 0; //Start Fresh!
  dataToWrite |= LSM6DS3_ACC_GYRO_BW_XL_100Hz;
  dataToWrite |= LSM6DS3_ACC_GYRO_FS_XL_8g;
  dataToWrite |= LSM6DS3_ACC_GYRO_ODR_XL_104Hz;

  //Senden der Beschleunigungsdaten.
  errorsAndWarnings += myIMU.writeRegister(LSM6DS3_ACC_GYRO_CTRL1_XL, dataToWrite);

  //ODR Bit setzen
  errorsAndWarnings += myIMU.readRegister(&dataToWrite, LSM6DS3_ACC_GYRO_CTRL4_C);
  dataToWrite &= ~((uint8_t)LSM6DS3_ACC_GYRO_BW_SCAL_ODR_ENABLED);
}

void berechne()
{
  int16_t temp;
  
  //Acelerometer axis X
  if( myIMU.readRegisterInt16(&temp, LSM6DS3_ACC_GYRO_OUTX_L_XL) != 0 )
  {
    errorsAndWarnings++;
  }
  x=temp;  
  
  //Acelerometer axis Y 
  if( myIMU.readRegisterInt16(&temp, LSM6DS3_ACC_GYRO_OUTY_L_XL) != 0 )
  {
    errorsAndWarnings++;
  }
  y=temp;
  
  //Acelerometer axis Z  
  if( myIMU.readRegisterInt16(&temp, LSM6DS3_ACC_GYRO_OUTZ_L_XL) != 0 )
  {
    errorsAndWarnings++;
  }
  z=temp;  
}

void loop()
{
  berechne();
  analogWrite(13,(z+4000)/32);  
  delay(100);
}


Code 0-2: Quelltext nano004_imu_helligkeit.

Aufgabe 2
  • Analysieren und testen Sie nachfolgendes Programm, mit dem eine Internet-Verbindung aufgebaut wird.
  • Nehmen Sie ggf. nötige Anpassungen selber vor.
nano33_wifi.zip