Ü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
|
#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
|