fstange 6 роки тому
батько
коміт
b4c30a3967
85 змінених файлів з 4345 додано та 88 видалено
  1. 1 0
      ArduinoOutput/Hauptprojekt.ino.eep
  2. BIN
      ArduinoOutput/Hauptprojekt.ino.elf
  3. 1331 0
      ArduinoOutput/Hauptprojekt.ino.hex
  4. 1458 0
      ArduinoOutput/Hauptprojekt.ino.with_bootloader.hex
  5. 10 0
      ArduinoOutput/build.options.json
  6. 14 0
      ArduinoOutput/core/CDC.cpp.d
  7. BIN
      ArduinoOutput/core/CDC.cpp.o
  8. 16 0
      ArduinoOutput/core/HardwareSerial.cpp.d
  9. BIN
      ArduinoOutput/core/HardwareSerial.cpp.o
  10. 16 0
      ArduinoOutput/core/HardwareSerial0.cpp.d
  11. BIN
      ArduinoOutput/core/HardwareSerial0.cpp.o
  12. 16 0
      ArduinoOutput/core/HardwareSerial1.cpp.d
  13. BIN
      ArduinoOutput/core/HardwareSerial1.cpp.o
  14. 16 0
      ArduinoOutput/core/HardwareSerial2.cpp.d
  15. BIN
      ArduinoOutput/core/HardwareSerial2.cpp.o
  16. 16 0
      ArduinoOutput/core/HardwareSerial3.cpp.d
  17. BIN
      ArduinoOutput/core/HardwareSerial3.cpp.o
  18. 16 0
      ArduinoOutput/core/IPAddress.cpp.d
  19. BIN
      ArduinoOutput/core/IPAddress.cpp.o
  20. 15 0
      ArduinoOutput/core/PluggableUSB.cpp.d
  21. BIN
      ArduinoOutput/core/PluggableUSB.cpp.o
  22. 14 0
      ArduinoOutput/core/Print.cpp.d
  23. BIN
      ArduinoOutput/core/Print.cpp.o
  24. 14 0
      ArduinoOutput/core/Stream.cpp.d
  25. BIN
      ArduinoOutput/core/Stream.cpp.o
  26. 14 0
      ArduinoOutput/core/Tone.cpp.d
  27. BIN
      ArduinoOutput/core/Tone.cpp.o
  28. 15 0
      ArduinoOutput/core/USBCore.cpp.d
  29. BIN
      ArduinoOutput/core/USBCore.cpp.o
  30. 6 0
      ArduinoOutput/core/WInterrupts.c.d
  31. BIN
      ArduinoOutput/core/WInterrupts.c.o
  32. 2 0
      ArduinoOutput/core/WMath.cpp.d
  33. BIN
      ArduinoOutput/core/WMath.cpp.o
  34. 3 0
      ArduinoOutput/core/WString.cpp.d
  35. BIN
      ArduinoOutput/core/WString.cpp.o
  36. 2 0
      ArduinoOutput/core/abi.cpp.d
  37. BIN
      ArduinoOutput/core/abi.cpp.o
  38. BIN
      ArduinoOutput/core/core.a
  39. 2 0
      ArduinoOutput/core/hooks.c.d
  40. BIN
      ArduinoOutput/core/hooks.c.o
  41. 15 0
      ArduinoOutput/core/main.cpp.d
  42. BIN
      ArduinoOutput/core/main.cpp.o
  43. 2 0
      ArduinoOutput/core/new.cpp.d
  44. BIN
      ArduinoOutput/core/new.cpp.o
  45. 6 0
      ArduinoOutput/core/wiring.c.d
  46. BIN
      ArduinoOutput/core/wiring.c.o
  47. 6 0
      ArduinoOutput/core/wiring_analog.c.d
  48. BIN
      ArduinoOutput/core/wiring_analog.c.o
  49. 6 0
      ArduinoOutput/core/wiring_digital.c.d
  50. BIN
      ArduinoOutput/core/wiring_digital.c.o
  51. 2 0
      ArduinoOutput/core/wiring_pulse.S.d
  52. BIN
      ArduinoOutput/core/wiring_pulse.S.o
  53. 6 0
      ArduinoOutput/core/wiring_pulse.c.d
  54. BIN
      ArduinoOutput/core/wiring_pulse.c.o
  55. 6 0
      ArduinoOutput/core/wiring_shift.c.d
  56. BIN
      ArduinoOutput/core/wiring_shift.c.o
  57. 8 0
      ArduinoOutput/libraries/Wire/Wire.cpp.d
  58. BIN
      ArduinoOutput/libraries/Wire/Wire.cpp.o
  59. 6 0
      ArduinoOutput/libraries/Wire/utility/twi.c.d
  60. BIN
      ArduinoOutput/libraries/Wire/utility/twi.c.o
  61. 18 0
      ArduinoOutput/libraries/Zumo32U4/L3G.cpp.d
  62. BIN
      ArduinoOutput/libraries/Zumo32U4/L3G.cpp.o
  63. 18 0
      ArduinoOutput/libraries/Zumo32U4/LSM303.cpp.d
  64. BIN
      ArduinoOutput/libraries/Zumo32U4/LSM303.cpp.o
  65. 3 0
      ArduinoOutput/libraries/Zumo32U4/PololuBuzzer.cpp.d
  66. BIN
      ArduinoOutput/libraries/Zumo32U4/PololuBuzzer.cpp.o
  67. 16 0
      ArduinoOutput/libraries/Zumo32U4/PololuHD44780.cpp.d
  68. BIN
      ArduinoOutput/libraries/Zumo32U4/PololuHD44780.cpp.o
  69. 16 0
      ArduinoOutput/libraries/Zumo32U4/Pushbutton.cpp.d
  70. BIN
      ArduinoOutput/libraries/Zumo32U4/Pushbutton.cpp.o
  71. 16 0
      ArduinoOutput/libraries/Zumo32U4/QTRSensors.cpp.d
  72. BIN
      ArduinoOutput/libraries/Zumo32U4/QTRSensors.cpp.o
  73. 17 0
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4Encoders.cpp.d
  74. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4Encoders.cpp.o
  75. 3 0
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4IRPulses.cpp.d
  76. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4IRPulses.cpp.o
  77. 4 0
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4Motors.cpp.d
  78. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4Motors.cpp.o
  79. 18 0
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4ProximitySensors.cpp.d
  80. BIN
      ArduinoOutput/libraries/Zumo32U4/Zumo32U4ProximitySensors.cpp.o
  81. 493 0
      ArduinoOutput/preproc/ctags_target_for_gcc_minus_e.cpp
  82. 529 0
      ArduinoOutput/sketch/Hauptprojekt.ino.cpp
  83. 34 0
      ArduinoOutput/sketch/Hauptprojekt.ino.cpp.d
  84. BIN
      ArduinoOutput/sketch/Hauptprojekt.ino.cpp.o
  85. 100 88
      Zumo32U4/Hauptprojekt/Hauptprojekt.ino

+ 1 - 0
ArduinoOutput/Hauptprojekt.ino.eep

@@ -0,0 +1 @@
+:00000001FF

BIN
ArduinoOutput/Hauptprojekt.ino.elf


Різницю між файлами не показано, бо вона завелика
+ 1331 - 0
ArduinoOutput/Hauptprojekt.ino.hex


Різницю між файлами не показано, бо вона завелика
+ 1458 - 0
ArduinoOutput/Hauptprojekt.ino.with_bootloader.hex


Різницю між файлами не показано, бо вона завелика
+ 10 - 0
ArduinoOutput/build.options.json


+ 14 - 0
ArduinoOutput/core/CDC.cpp.d

@@ -0,0 +1,14 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\CDC.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\CDC.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h

BIN
ArduinoOutput/core/CDC.cpp.o


+ 16 - 0
ArduinoOutput/core/HardwareSerial.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\HardwareSerial.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h

BIN
ArduinoOutput/core/HardwareSerial.cpp.o


+ 16 - 0
ArduinoOutput/core/HardwareSerial0.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\HardwareSerial0.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial0.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h

BIN
ArduinoOutput/core/HardwareSerial0.cpp.o


+ 16 - 0
ArduinoOutput/core/HardwareSerial1.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\HardwareSerial1.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial1.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h

BIN
ArduinoOutput/core/HardwareSerial1.cpp.o


+ 16 - 0
ArduinoOutput/core/HardwareSerial2.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\HardwareSerial2.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial2.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h

BIN
ArduinoOutput/core/HardwareSerial2.cpp.o


+ 16 - 0
ArduinoOutput/core/HardwareSerial3.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\HardwareSerial3.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial3.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h

BIN
ArduinoOutput/core/HardwareSerial3.cpp.o


+ 16 - 0
ArduinoOutput/core/IPAddress.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\IPAddress.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\IPAddress.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/IPAddress.h

BIN
ArduinoOutput/core/IPAddress.cpp.o


+ 15 - 0
ArduinoOutput/core/PluggableUSB.cpp.d

@@ -0,0 +1,15 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\PluggableUSB.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\PluggableUSB.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\PluggableUSB.h

BIN
ArduinoOutput/core/PluggableUSB.cpp.o


+ 14 - 0
ArduinoOutput/core/Print.cpp.d

@@ -0,0 +1,14 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\Print.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/Print.cpp.o


+ 14 - 0
ArduinoOutput/core/Stream.cpp.d

@@ -0,0 +1,14 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\Stream.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/Stream.cpp.o


+ 14 - 0
ArduinoOutput/core/Tone.cpp.d

@@ -0,0 +1,14 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\Tone.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Tone.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/Tone.cpp.o


+ 15 - 0
ArduinoOutput/core/USBCore.cpp.d

@@ -0,0 +1,15 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\USBCore.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\PluggableUSB.h

BIN
ArduinoOutput/core/USBCore.cpp.o


+ 6 - 0
ArduinoOutput/core/WInterrupts.c.d

@@ -0,0 +1,6 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\WInterrupts.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WInterrupts.c \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/WInterrupts.c.o


+ 2 - 0
ArduinoOutput/core/WMath.cpp.d

@@ -0,0 +1,2 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\WMath.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WMath.cpp

BIN
ArduinoOutput/core/WMath.cpp.o


+ 3 - 0
ArduinoOutput/core/WString.cpp.d

@@ -0,0 +1,3 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\WString.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\WString.h

BIN
ArduinoOutput/core/WString.cpp.o


+ 2 - 0
ArduinoOutput/core/abi.cpp.d

@@ -0,0 +1,2 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\abi.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\abi.cpp

BIN
ArduinoOutput/core/abi.cpp.o


BIN
ArduinoOutput/core/core.a


+ 2 - 0
ArduinoOutput/core/hooks.c.d

@@ -0,0 +1,2 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\hooks.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\hooks.c

BIN
ArduinoOutput/core/hooks.c.o


+ 15 - 0
ArduinoOutput/core/main.cpp.d

@@ -0,0 +1,15 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\main.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\main.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/main.cpp.o


+ 2 - 0
ArduinoOutput/core/new.cpp.d

@@ -0,0 +1,2 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\new.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\new.cpp

BIN
ArduinoOutput/core/new.cpp.o


+ 6 - 0
ArduinoOutput/core/wiring.c.d

@@ -0,0 +1,6 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\wiring.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring.c \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/wiring.c.o


+ 6 - 0
ArduinoOutput/core/wiring_analog.c.d

@@ -0,0 +1,6 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\wiring_analog.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_analog.c \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/wiring_analog.c.o


+ 6 - 0
ArduinoOutput/core/wiring_digital.c.d

@@ -0,0 +1,6 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\wiring_digital.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_digital.c \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/wiring_digital.c.o


+ 2 - 0
ArduinoOutput/core/wiring_pulse.S.d

@@ -0,0 +1,2 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\wiring_pulse.S.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_pulse.S

BIN
ArduinoOutput/core/wiring_pulse.S.o


+ 6 - 0
ArduinoOutput/core/wiring_pulse.c.d

@@ -0,0 +1,6 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\wiring_pulse.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_pulse.c \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/wiring_pulse.c.o


+ 6 - 0
ArduinoOutput/core/wiring_shift.c.d

@@ -0,0 +1,6 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\core\wiring_shift.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_shift.c \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\wiring_private.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino\binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/core/wiring_shift.c.o


+ 8 - 0
ArduinoOutput/libraries/Wire/Wire.cpp.d

@@ -0,0 +1,8 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Wire\Wire.cpp.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src\Wire.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src\utility/twi.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src\Wire.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h

BIN
ArduinoOutput/libraries/Wire/Wire.cpp.o


+ 6 - 0
ArduinoOutput/libraries/Wire/utility/twi.c.d

@@ -0,0 +1,6 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Wire\utility\twi.c.o: \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src\utility\twi.c \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src\utility\twi.h

BIN
ArduinoOutput/libraries/Wire/utility/twi.c.o


+ 18 - 0
ArduinoOutput/libraries/Zumo32U4/L3G.cpp.d

@@ -0,0 +1,18 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\L3G.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\L3G.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/L3G.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src/Wire.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h

BIN
ArduinoOutput/libraries/Zumo32U4/L3G.cpp.o


+ 18 - 0
ArduinoOutput/libraries/Zumo32U4/LSM303.cpp.d

@@ -0,0 +1,18 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\LSM303.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\LSM303.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/LSM303.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src/Wire.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h

BIN
ArduinoOutput/libraries/Zumo32U4/LSM303.cpp.o


+ 3 - 0
ArduinoOutput/libraries/Zumo32U4/PololuBuzzer.cpp.d

@@ -0,0 +1,3 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\PololuBuzzer.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\PololuBuzzer.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\PololuBuzzer.h

BIN
ArduinoOutput/libraries/Zumo32U4/PololuBuzzer.cpp.o


+ 16 - 0
ArduinoOutput/libraries/Zumo32U4/PololuHD44780.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\PololuHD44780.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\PololuHD44780.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/PololuHD44780.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/libraries/Zumo32U4/PololuHD44780.cpp.o


+ 16 - 0
ArduinoOutput/libraries/Zumo32U4/Pushbutton.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\Pushbutton.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\Pushbutton.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\Pushbutton.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/libraries/Zumo32U4/Pushbutton.cpp.o


+ 16 - 0
ArduinoOutput/libraries/Zumo32U4/QTRSensors.cpp.d

@@ -0,0 +1,16 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\QTRSensors.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\QTRSensors.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\QTRSensors.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/libraries/Zumo32U4/QTRSensors.cpp.o


+ 17 - 0
ArduinoOutput/libraries/Zumo32U4/Zumo32U4Encoders.cpp.d

@@ -0,0 +1,17 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\Zumo32U4Encoders.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\Zumo32U4Encoders.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4Encoders.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/FastGPIO.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h

BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4Encoders.cpp.o


+ 3 - 0
ArduinoOutput/libraries/Zumo32U4/Zumo32U4IRPulses.cpp.d

@@ -0,0 +1,3 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\Zumo32U4IRPulses.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\Zumo32U4IRPulses.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4IRPulses.h

BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4IRPulses.cpp.o


+ 4 - 0
ArduinoOutput/libraries/Zumo32U4/Zumo32U4Motors.cpp.d

@@ -0,0 +1,4 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\Zumo32U4Motors.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\Zumo32U4Motors.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4Motors.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/FastGPIO.h

BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4Motors.cpp.o


+ 18 - 0
ArduinoOutput/libraries/Zumo32U4/Zumo32U4ProximitySensors.cpp.d

@@ -0,0 +1,18 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\libraries\Zumo32U4\Zumo32U4ProximitySensors.cpp.o: \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4\Zumo32U4ProximitySensors.cpp \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4ProximitySensors.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4IRPulses.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/FastGPIO.h

BIN
ArduinoOutput/libraries/Zumo32U4/Zumo32U4ProximitySensors.cpp.o


+ 493 - 0
ArduinoOutput/preproc/ctags_target_for_gcc_minus_e.cpp

@@ -0,0 +1,493 @@
+# 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+# 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+//Verfassser: Felix Stange 4056379 MET2016
+//Datum: 19.07.2017 erstellt, 01.02.2018 zuletzt geändert
+//Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
+//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
+//Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
+//dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
+//Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
+//genutzt. Mithilfe der Quadraturencoder in den Motoren können Wegstrecken vermessen werden. 
+//Der Zumo kommuniziert über ein Bluetooth-Modul (HC-05) mit anderen Geräten. Die 
+//Kommunikation erfolgt seriell ('SERIAL' für USB, 'SERIAL1' für Bluetooth). 
+//Das LCD kann bei Bluetoothnutzung nicht verwendet werden. 
+
+# 14 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino" 2
+# 15 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino" 2
+
+Zumo32U4ProximitySensors proxSensors; //Abstandssensoren
+Zumo32U4LineSensors lineSensors; //Liniensensoren
+Zumo32U4Motors motors;
+Zumo32U4ButtonA buttonA;
+Zumo32U4Encoders encoders; //Motorencoder
+LSM303 compass; //Beschleunigungssensor x-Achse
+L3G gyro; //Drehbewegungssensor z-Achse
+
+int16_t lineValue[3]; //von links (0) nach rechts (2)
+uint16_t lineOffset[3];
+
+uint8_t proxValue[4]; //von links (0) nach rechts (3)
+
+int16_t encoderCounts[2]; //von links (0) nach rechts (1)
+int16_t driveRotation[2];
+
+int32_t rotationAngle = 0; //Drehwinkel
+int32_t turnAngle = 0;
+int16_t turnRate;
+int16_t gyroOffset;
+uint16_t gyroLastUpdate;
+
+int32_t moveDisplay = 0; //Beschleunigung
+int32_t moveDistance = 0;
+int16_t moveRate;
+int16_t compassOffset;
+uint16_t compassLastUpdate;
+
+uint16_t LastUpdate = 0; //Systemzeit
+uint16_t CycleTime = 0; //Zykluszeit
+int maxSpeed = 200; //Maximale Geschwindigkeit (möglich 400)
+char dir; //Fahrtrichtung, Ereignis
+char report[200]; //Ausgabe
+int warning = 0; //1 zeigt Überhol-/Abbiegevorgang an
+
+/*-----------------------------------------------------------------*/
+
+//Setup Liniensensoren
+void LineSetup()
+{
+  ledYellow(1);
+  lineSensors.initThreeSensors();
+
+  //Kalibrierung
+  uint32_t total[3] = {0, 0, 0};
+  for(uint8_t i = 0; i < 120; i++)
+  {
+    if (i > 30 && i <= 90) motors.setSpeeds(maxSpeed, -maxSpeed);
+    else motors.setSpeeds(-maxSpeed, maxSpeed);
+    lineSensors.read(lineOffset);
+    total[0] += lineOffset[0];
+    total[1] += lineOffset[1];
+    total[2] += lineOffset[2];
+    lineSensors.calibrate();
+  }
+  ledYellow(0);
+  motors.setSpeeds(0, 0);
+  lineOffset[0] = total[0] / 120;
+  lineOffset[1] = total[1] / 120;
+  lineOffset[2] = total[2] / 120;
+}
+
+//Setup Abstandssensoren
+void ProxSetup()
+{
+  proxSensors.initThreeSensors();
+}
+
+//Setup Drehbewegungssensor
+void GyroSetup()
+{
+  ledYellow(1);
+  gyro.init();
+
+  gyro.writeReg(L3G::CTRL1, 0b11111111); //Ausgaberate 800Hz, Tiefpassfilter 100Hz
+  gyro.writeReg(L3G::CTRL4, 0b00100000); //2000dps Auflösung
+  gyro.writeReg(L3G::CTRL5, 0b00000000); //Hochpassfilter ausgeschaltet
+
+  //Kalibrierung
+  int32_t total = 0;
+  for (uint16_t i = 0; i < 1024; i++)
+  {
+    while(!gyro.readReg(L3G::STATUS_REG) & 0x08);
+    gyro.read();
+    total += gyro.g.z;
+  }
+  gyroOffset = total / 1024;
+
+  gyroLastUpdate = micros();
+  ledYellow(0);
+}
+
+//Setup Beschleunigungssensor
+void CompassSetup()
+{
+  ledYellow(1);
+  compass.init();
+  compass.enableDefault();
+
+  //Kalibrierung
+  int32_t total = 0;
+  for (uint16_t i = 0; i < 1024; i++)
+  {
+    compass.read();
+    total += compass.a.x;
+  }
+  compassOffset = total / 1024;
+
+  compassLastUpdate = micros();
+  ledYellow(0);
+}
+
+/*-----------------------------------------------------------------*/
+
+void setup()
+{
+  //Initialisierung der Bluetoothverbindung
+  Serial1.begin(9600);
+  if(Serial1.available()) Serial1.println("Verbindung hergestellt");
+
+  //Initialisierung und Kalibrierung der Sensoren
+  Serial1.println("Sensorkalibrierung");
+  Wire.begin();
+  delay(500);
+  LastUpdate = micros();
+  ProxSetup();
+  LineSetup();
+  GyroSetup();
+  CompassSetup();
+
+  //Zumo bereit zu starten
+  Serial1.println("Zumo bereit, starte mit A");
+  ledGreen(1);
+  buttonA.waitForButton();
+  randomSeed(millis());
+  delay(500);
+}
+
+/*-----------------------------------------------------------------*/
+
+//Update Durchlaufzeit
+void TimeUpdate()
+{
+  uint16_t m = micros();
+  CycleTime = m - LastUpdate;
+  LastUpdate = m;
+}
+
+//Update Abstandssensoren
+void ProxUpdate()
+{
+  proxSensors.read();
+  proxValue[0] = proxSensors.countsLeftWithLeftLeds();
+  proxValue[1] = proxSensors.countsFrontWithLeftLeds();
+  proxValue[2] = proxSensors.countsFrontWithRightLeds();
+  proxValue[3] = proxSensors.countsRightWithRightLeds();
+}
+
+//Updaten Liniensensoren
+void LineUpdate()
+{
+  uint16_t lineRaw[3];
+  lineSensors.read(lineRaw);
+  lineValue[0] = lineRaw[0] - lineOffset[0];
+  lineValue[1] = lineRaw[1] - lineOffset[1];
+  lineValue[2] = lineRaw[2] - lineOffset[2];
+}
+
+//Update Drehbewegungssensor
+void GyroUpdate()
+{
+  gyro.read();
+  turnRate = gyro.g.z - gyroOffset;
+  uint16_t m = micros();
+  uint16_t dt = m - gyroLastUpdate;
+  gyroLastUpdate = m;
+  int32_t d = (int32_t)turnRate * dt;
+  turnAngle += (int64_t)d * 14680064 / 17578125;
+  rotationAngle = (((int32_t)turnAngle >> 16) * 360) >> 16;
+}
+
+// Update Beschleunigungssensor
+void CompassUpdate()
+{
+  compass.read();
+  moveRate = compass.a.x - compassOffset;
+  uint16_t m = micros();
+  uint16_t dt = m - compassLastUpdate;
+  compassLastUpdate = m;
+  int32_t d = (int32_t)moveRate * dt;
+  moveDistance += (int64_t)d * dt >> 14;
+  moveDisplay = moveDistance * 1000 / 9,81;
+}
+
+//Update Encoder
+void EncoderUpdate()
+{
+  encoderCounts[0] = encoders.getCountsLeft();
+  driveRotation[0] = encoderCounts[0] / 910; //12cpr (Motorwelle) * 75,81:1 (Getriebe) = 909,7cpr (Antriebszahnrad)
+  encoderCounts[1] = encoders.getCountsRight();
+  driveRotation[1] = encoderCounts[1] / 910;
+}
+
+/*-----------------------------------------------------------------*/
+
+ //Funktion Kollisionserkennung
+void Kollisionserkennung()
+{
+  dir = 'X';
+  Serial1.println("Kollision erkannt");
+  Serial1.println("1");
+  ledRed(1);
+  motors.setSpeeds(0, 0);
+  delay(500);
+  while(lineValue[0] < 300 && lineValue[2] < 300)
+  {
+    motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
+  }
+  delay(500);
+}
+
+//Funktion Hindernisumfahrung
+void Hindernisumfahren()
+{
+  dir = 'U';
+  Serial1.println("Hindernis umfahren");
+  Serial1.println("1");
+  ledYellow(1);
+
+  //Schritt 1: Spurwechsel links   
+  //links drehen                        
+  rotationAngle = 0;
+  GyroUpdate();
+  while(rotationAngle < 45)
+  {
+    GyroUpdate();
+    motors.setSpeeds(maxSpeed/2, maxSpeed);
+  }
+  //geradeaus über Mittellinie fahren
+  LineUpdate();
+  while(lineValue[2] < 300)
+  {
+    LineUpdate();
+    motors.setSpeeds(maxSpeed, maxSpeed);
+  }
+  //rechts drehen
+  GyroUpdate();
+  while(rotationAngle > 0)
+  {
+    GyroUpdate();
+    motors.setSpeeds(maxSpeed, maxSpeed/2);
+  }
+  //geradeaus fahren
+  motors.setSpeeds(maxSpeed, maxSpeed);
+
+  //Gegenverkehr beachten
+  proxSensors.read();
+  proxValue[1] = proxSensors.countsFrontWithLeftLeds();
+  proxValue[2] = proxSensors.countsFrontWithRightLeds();
+  if(proxValue[1] < 4 || proxValue[2] < 4)
+  {
+    //Schritt 2: Hindernis passieren
+    motors.setSpeeds(maxSpeed, maxSpeed);
+    delay(1000);
+    proxSensors.read();
+    proxValue[3] = proxSensors.countsRightWithRightLeds();
+    while(proxValue[3] > 4)
+    {
+      motors.setSpeeds(maxSpeed, maxSpeed);
+      proxSensors.read();
+      proxValue[3] = proxSensors.countsRightWithRightLeds();
+      Spurhalten();
+    }
+  }
+
+  //Schritt 3: Spurwechsel rechts     
+  //rechts drehen                     
+  rotationAngle = 0;
+  GyroUpdate();
+  while(rotationAngle > -45)
+  {
+    GyroUpdate();
+    motors.setSpeeds(maxSpeed, maxSpeed/2);
+  }
+  //geradeaus über Mittellinie fahren
+  LineUpdate();
+  while(lineValue[0] < 300)
+  {
+    LineUpdate();
+    motors.setSpeeds(maxSpeed, maxSpeed);
+  }
+  //links drehen
+  GyroUpdate();
+  while(rotationAngle < 0)
+  {
+    GyroUpdate();
+    motors.setSpeeds(maxSpeed/2, maxSpeed);
+  }
+  //geradeaus fahren
+  motors.setSpeeds(maxSpeed, maxSpeed);
+
+  Serial1.println("Umfahren beendet");
+}
+
+//Funktion Abbiegen
+void Abbiegen()
+{
+  dir = 'A';
+  ledYellow(1);
+  Serial1.println("Abbiegen");
+  Serial1.println("1");
+
+  //Kodierung analysieren
+  bool leftCode; //links => 1
+  bool rightCode; //rechts => 2
+  if(lineValue[0] > 1000) leftCode = true;
+  else leftCode = false;
+  if(lineValue[2] > 1000) rightCode = true;
+  else rightCode = false;
+
+  //Zufallszahl erzeugen
+  uint8_t randy; //geradeaus => 0
+  if(leftCode == true && rightCode == true) randy = random(1, 3); //1, 2
+  else if(leftCode == true && rightCode == false) randy = random(0, 2); //0, 1
+  else if(leftCode == false && rightCode == true)
+  {
+    randy = random(3); //0, (1), 2
+    while(randy == 1) randy = random(3); //!1 => 0, 2
+  }
+
+  //links Abbiegen
+  if(randy == 1 && leftCode == true)
+  {
+    //zur Kreuzungsmitte fahren
+    driveRotation[0] = 0;
+    driveRotation[1] = 0;
+    while(driveRotation[0] != 1 && driveRotation[1] != 1 && lineValue[0] < 300 && lineValue[2] < 300)
+    {
+      EncoderUpdate();
+      motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+    }
+    //links drehen
+    rotationAngle = 0;
+    GyroUpdate();
+    while(rotationAngle != 90)
+    {
+      GyroUpdate();
+      if(lineValue[0] > 300 && lineValue[0] < 500) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+      else if(lineValue[1] > 300 && lineValue[1] < 500) motors.setSpeeds(-maxSpeed/4, -maxSpeed/4);
+      else if(lineValue[2] > 300 && lineValue[2] < 500) motors.setSpeeds(0, maxSpeed/2);
+      else motors.setSpeeds(maxSpeed/4, maxSpeed/2);
+    }
+    //geradeaus fahren
+    motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+  }
+
+  //rechts Abbiegen
+  else if(randy == 2 && rightCode == true)
+  {
+    //rechts drehen
+    rotationAngle = 0;
+    GyroUpdate();
+    while(rotationAngle != -90)
+    {
+      GyroUpdate();
+      if(lineValue[0] > 300 && lineValue[0] < 500) motors.setSpeeds(maxSpeed/2, 0);
+      else if(lineValue[1] > 300 && lineValue[1] < 500) motors.setSpeeds(-maxSpeed/4, -maxSpeed/4);
+      else if(lineValue[2] > 300 && lineValue[2] < 500) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+      else motors.setSpeeds(maxSpeed/2, maxSpeed/4);
+    }
+    //geradeaus fahren
+    motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+  }
+
+  //nicht Abbiegen, geradeaus fahren
+  else motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+  delay(500);
+
+  Serial1.println("Abbiegen beendet");
+}
+
+//Funktion Spurhalten
+void Spurhalten()
+{
+  //linke Linie erreicht, nach rechts fahren
+  if(lineValue[0] > 300 && lineValue[0] < 500)
+  {
+    dir = 'R';
+    ledYellow(1);
+    Serial1.println("Spur nach rechts korrigieren");
+    motors.setSpeeds(maxSpeed, maxSpeed/2);
+    delay(100);
+  }
+
+  //rechte Linie erreicht, nach links fahren
+  else if(lineValue[2] > 300 && lineValue[2] < 500)
+  {
+    dir = 'L';
+    ledYellow(1);
+    Serial1.println("Spur nach links korrigieren");
+    motors.setSpeeds(maxSpeed/2, maxSpeed);
+    delay(100);
+  }
+
+  //Linie überfahren, zurücksetzen
+  else if(lineValue[1] > 300 && lineValue[1] < 500)
+  {
+    dir = 'B';
+    ledRed(1);
+    Serial1.println("Spur verlassen");
+    Serial1.println("1");
+    while(lineValue[0] < 300 && lineValue[2] < 300) //Zumo fährt solange rückwärst bis er wieder auf der Spur steht
+    {
+      motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
+    }
+    delay(500);
+  }
+
+  //normale Fahrt
+  else
+  {
+    dir = 'F';
+    ledGreen(1);
+    Serial1.println("Spur folgen");
+    motors.setSpeeds(maxSpeed, maxSpeed);
+  }
+}
+
+//Funktion Serielle Ausgabe
+void SerialOutput()
+{
+  snprintf_P(report, sizeof(report),
+    (__extension__({static const char __c[] __attribute__((__progmem__)) = ("Abstand: %d %d %d %d   Linie: %d %d %d   Weg: %d %d   Winkel: %d   Zeit: %d"); &__c[0];})),
+    proxValue[0], proxValue[1], proxValue[2], proxValue[3],
+    lineValue[0], lineValue[1], lineValue[2],
+    driveRotation[0], driveRotation[1], rotationAngle, CycleTime);
+  Serial1.println(report);
+}
+
+/*-----------------------------------------------------------------*/
+
+void loop()
+{
+  ledGreen(0);
+  ledYellow(0);
+  ledRed(0);
+
+  //Abfragen der Sensordaten
+  TimeUpdate();
+  LineUpdate();
+  ProxUpdate();
+  GyroUpdate();
+  CompassUpdate();
+  EncoderUpdate();
+
+  //Funktionsauswahl
+  warning = Serial1.read();
+  if(warning == 1) //verfügbare Funktionen bei laufenden Manövern
+  {
+    maxSpeed = 100;
+    if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 ||
+    lineValue[2] > 1000) motors.setSpeeds(0, 0);
+    else Spurhalten();
+  }
+  else //verfügbare Funktionen im Normalfall
+  {
+    if(moveRate > 1000) Kollisionserkennung();
+    else if(proxValue[1] == 6 || proxValue[2] == 6) motors.setSpeeds(0, 0);
+    else if(proxValue[1] == 5 || proxValue[2] == 5) Hindernisumfahren();
+    else if(lineValue[0] > 1000 || lineValue[2] > 1000) Abbiegen();
+    else Spurhalten();
+  }
+
+  //Ausgabe über Bluetoothverbindung
+  SerialOutput();
+}

+ 529 - 0
ArduinoOutput/sketch/Hauptprojekt.ino.cpp

@@ -0,0 +1,529 @@
+#include <Arduino.h>
+#line 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+#line 1 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+//Verfassser: Felix Stange 4056379 MET2016
+//Datum: 19.07.2017 erstellt, 01.02.2018 zuletzt geändert
+//Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
+//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
+//Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
+//dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
+//Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
+//genutzt. Mithilfe der Quadraturencoder in den Motoren können Wegstrecken vermessen werden. 
+//Der Zumo kommuniziert über ein Bluetooth-Modul (HC-05) mit anderen Geräten. Die 
+//Kommunikation erfolgt seriell ('SERIAL' für USB, 'SERIAL1' für Bluetooth). 
+//Das LCD kann bei Bluetoothnutzung nicht verwendet werden. 
+
+#include <Wire.h>
+#include <Zumo32U4.h>
+
+Zumo32U4ProximitySensors  proxSensors;  //Abstandssensoren
+Zumo32U4LineSensors       lineSensors;  //Liniensensoren
+Zumo32U4Motors            motors;
+Zumo32U4ButtonA           buttonA;
+Zumo32U4Encoders          encoders;     //Motorencoder
+LSM303                    compass;      //Beschleunigungssensor x-Achse
+L3G                       gyro;         //Drehbewegungssensor z-Achse
+
+int16_t   lineValue[3];                 //von links (0) nach rechts (2)
+uint16_t  lineOffset[3]; 
+
+uint8_t   proxValue[4];                 //von links (0) nach rechts (3)
+
+int16_t   encoderCounts[2];             //von links (0) nach rechts (1)
+int16_t   driveRotation[2];
+
+int32_t   rotationAngle = 0;            //Drehwinkel
+int32_t   turnAngle = 0; 
+int16_t   turnRate;
+int16_t   gyroOffset;
+uint16_t  gyroLastUpdate;
+
+int32_t   moveDisplay = 0;              //Beschleunigung
+int32_t   moveDistance = 0;   
+int16_t   moveRate;
+int16_t   compassOffset;                
+uint16_t  compassLastUpdate;
+
+uint16_t  LastUpdate = 0;               //Systemzeit
+uint16_t  CycleTime = 0;                //Zykluszeit
+int       maxSpeed = 200;               //Maximale Geschwindigkeit (möglich 400)
+char      dir;                          //Fahrtrichtung, Ereignis
+char      report[200];                  //Ausgabe
+int       warning = 0;                  //1 zeigt Überhol-/Abbiegevorgang an
+
+/*-----------------------------------------------------------------*/
+
+//Setup Liniensensoren
+#line 54 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void LineSetup();
+#line 79 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void ProxSetup();
+#line 85 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void GyroSetup();
+#line 109 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void CompassSetup();
+#line 130 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void setup();
+#line 157 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void TimeUpdate();
+#line 165 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void ProxUpdate();
+#line 175 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void LineUpdate();
+#line 185 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void GyroUpdate();
+#line 198 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void CompassUpdate();
+#line 211 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void EncoderUpdate();
+#line 222 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void Kollisionserkennung();
+#line 238 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void Hindernisumfahren();
+#line 321 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void Abbiegen();
+#line 398 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void Spurhalten();
+#line 445 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void SerialOutput();
+#line 457 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void loop();
+#line 54 "c:\\Users\\Carolin\\Downloads\\VSCode\\Zumo32U4\\Zumo32U4\\Hauptprojekt\\Hauptprojekt.ino"
+void LineSetup()                                            
+{
+  ledYellow(1);
+  lineSensors.initThreeSensors();     
+  
+  //Kalibrierung
+  uint32_t total[3] = {0, 0, 0};  
+  for(uint8_t i = 0; i < 120; i++)                                
+  {
+    if (i > 30 && i <= 90) motors.setSpeeds(maxSpeed, -maxSpeed);
+    else motors.setSpeeds(-maxSpeed, maxSpeed);
+    lineSensors.read(lineOffset);  
+    total[0] += lineOffset[0];
+    total[1] += lineOffset[1];
+    total[2] += lineOffset[2];
+    lineSensors.calibrate();                                      
+  }
+  ledYellow(0);
+  motors.setSpeeds(0, 0);
+  lineOffset[0] = total[0] / 120;
+  lineOffset[1] = total[1] / 120;
+  lineOffset[2] = total[2] / 120;
+}
+
+//Setup Abstandssensoren
+void ProxSetup()
+{
+  proxSensors.initThreeSensors();  
+}
+
+//Setup Drehbewegungssensor
+void GyroSetup()                                            
+{                                                                 
+  ledYellow(1);
+  gyro.init();
+
+  gyro.writeReg(L3G::CTRL1, 0b11111111);                          //Ausgaberate 800Hz, Tiefpassfilter 100Hz
+  gyro.writeReg(L3G::CTRL4, 0b00100000);                          //2000dps Auflösung
+  gyro.writeReg(L3G::CTRL5, 0b00000000);                          //Hochpassfilter ausgeschaltet
+
+  //Kalibrierung
+  int32_t total = 0;                                              
+  for (uint16_t i = 0; i < 1024; i++)
+  {
+    while(!gyro.readReg(L3G::STATUS_REG) & 0x08);
+    gyro.read();
+    total += gyro.g.z;
+  }
+  gyroOffset = total / 1024;
+
+  gyroLastUpdate = micros();
+  ledYellow(0);
+}
+
+//Setup Beschleunigungssensor
+void CompassSetup()                                            
+{
+  ledYellow(1);
+  compass.init();
+  compass.enableDefault();  
+
+  //Kalibrierung
+  int32_t total = 0;                                              
+  for (uint16_t i = 0; i < 1024; i++)
+  {
+    compass.read();
+    total += compass.a.x;
+  }
+  compassOffset = total / 1024;
+
+  compassLastUpdate = micros();  
+  ledYellow(0);
+}
+
+/*-----------------------------------------------------------------*/
+
+void setup() 
+{
+  //Initialisierung der Bluetoothverbindung
+  Serial1.begin(9600);                                              
+  if(Serial1.available()) Serial1.println("Verbindung hergestellt");  
+
+  //Initialisierung und Kalibrierung der Sensoren
+  Serial1.println("Sensorkalibrierung");   
+  Wire.begin();                       
+  delay(500);
+  LastUpdate = micros();
+  ProxSetup();
+  LineSetup();                                                
+  GyroSetup();
+  CompassSetup();
+  
+  //Zumo bereit zu starten
+  Serial1.println("Zumo bereit, starte mit A");
+  ledGreen(1);
+  buttonA.waitForButton();
+  randomSeed(millis());
+  delay(500);
+}
+
+/*-----------------------------------------------------------------*/
+
+//Update Durchlaufzeit
+void TimeUpdate()
+{
+  uint16_t m = micros();
+  CycleTime = m - LastUpdate;
+  LastUpdate = m;
+}
+
+//Update Abstandssensoren
+void ProxUpdate()
+{
+  proxSensors.read();
+  proxValue[0] = proxSensors.countsLeftWithLeftLeds();
+  proxValue[1] = proxSensors.countsFrontWithLeftLeds();
+  proxValue[2] = proxSensors.countsFrontWithRightLeds();  
+  proxValue[3] = proxSensors.countsRightWithRightLeds(); 
+}
+
+//Updaten Liniensensoren
+void LineUpdate()
+{
+  uint16_t  lineRaw[3];
+  lineSensors.read(lineRaw);
+  lineValue[0] = lineRaw[0] - lineOffset[0];
+  lineValue[1] = lineRaw[1] - lineOffset[1];
+  lineValue[2] = lineRaw[2] - lineOffset[2];
+}
+
+//Update Drehbewegungssensor
+void GyroUpdate()                                                 
+{
+  gyro.read();
+  turnRate = gyro.g.z - gyroOffset;
+  uint16_t m = micros();
+  uint16_t dt = m - gyroLastUpdate;
+  gyroLastUpdate = m;
+  int32_t d = (int32_t)turnRate * dt;
+  turnAngle += (int64_t)d * 14680064 / 17578125;
+  rotationAngle = (((int32_t)turnAngle >> 16) * 360) >> 16;
+}
+
+// Update Beschleunigungssensor
+void CompassUpdate()
+{
+  compass.read();
+  moveRate = compass.a.x - compassOffset;
+  uint16_t m = micros();
+  uint16_t dt = m - compassLastUpdate;
+  compassLastUpdate = m;
+  int32_t d = (int32_t)moveRate * dt;
+  moveDistance += (int64_t)d * dt >> 14;
+  moveDisplay = moveDistance * 1000 / 9,81;
+}
+
+//Update Encoder
+void EncoderUpdate()
+{
+  encoderCounts[0] = encoders.getCountsLeft();
+  driveRotation[0] = encoderCounts[0] / 910;                        //12cpr (Motorwelle) * 75,81:1 (Getriebe) = 909,7cpr (Antriebszahnrad)
+  encoderCounts[1] = encoders.getCountsRight();
+  driveRotation[1] = encoderCounts[1] / 910;
+}
+
+/*-----------------------------------------------------------------*/
+
+ //Funktion Kollisionserkennung
+void Kollisionserkennung()                                            
+{
+  dir = 'X';
+  Serial1.println("Kollision erkannt");
+  Serial1.println("1"); 
+  ledRed(1);
+  motors.setSpeeds(0, 0);
+  delay(500);
+  while(lineValue[0] < 300 && lineValue[2] < 300)
+  {
+    motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
+  }
+  delay(500); 
+}
+
+//Funktion Hindernisumfahrung
+void Hindernisumfahren()                                              
+{
+  dir = 'U';
+  Serial1.println("Hindernis umfahren"); 
+  Serial1.println("1"); 
+  ledYellow(1);
+
+  //Schritt 1: Spurwechsel links   
+  //links drehen                        
+  rotationAngle = 0;                                                      
+  GyroUpdate();                                                 
+  while(rotationAngle < 45)          
+  {
+    GyroUpdate();  
+    motors.setSpeeds(maxSpeed/2, maxSpeed); 
+  }
+  //geradeaus über Mittellinie fahren
+  LineUpdate();
+  while(lineValue[2] < 300)          
+  {
+    LineUpdate();
+    motors.setSpeeds(maxSpeed, maxSpeed); 
+  } 
+  //rechts drehen
+  GyroUpdate();
+  while(rotationAngle > 0)                                               
+  {                                                                   
+    GyroUpdate();
+    motors.setSpeeds(maxSpeed, maxSpeed/2); 
+  }
+  //geradeaus fahren
+  motors.setSpeeds(maxSpeed, maxSpeed); 
+
+  //Gegenverkehr beachten
+  proxSensors.read();                                                 
+  proxValue[1] = proxSensors.countsFrontWithLeftLeds();
+  proxValue[2] = proxSensors.countsFrontWithRightLeds();  
+  if(proxValue[1] < 4 || proxValue[2] < 4)
+  {
+    //Schritt 2: Hindernis passieren
+    motors.setSpeeds(maxSpeed, maxSpeed);                    
+    delay(1000);
+    proxSensors.read();
+    proxValue[3] = proxSensors.countsRightWithRightLeds();  
+    while(proxValue[3] > 4)
+    {
+      motors.setSpeeds(maxSpeed, maxSpeed);  
+      proxSensors.read();
+      proxValue[3] = proxSensors.countsRightWithRightLeds();  
+      Spurhalten();
+    }
+  }
+  
+  //Schritt 3: Spurwechsel rechts     
+  //rechts drehen                     
+  rotationAngle = 0;                                                      
+  GyroUpdate();                                                 
+  while(rotationAngle > -45)          
+  {
+    GyroUpdate();  
+    motors.setSpeeds(maxSpeed, maxSpeed/2); 
+  }
+  //geradeaus über Mittellinie fahren
+  LineUpdate();
+  while(lineValue[0] < 300)          
+  {
+    LineUpdate();
+    motors.setSpeeds(maxSpeed, maxSpeed); 
+  } 
+  //links drehen
+  GyroUpdate();
+  while(rotationAngle < 0)                                               
+  {                                                                   
+    GyroUpdate();
+    motors.setSpeeds(maxSpeed/2, maxSpeed); 
+  }
+  //geradeaus fahren
+  motors.setSpeeds(maxSpeed, maxSpeed); 
+
+  Serial1.println("Umfahren beendet");  
+}
+
+//Funktion Abbiegen
+void Abbiegen()
+{
+  dir = 'A';
+  ledYellow(1); 
+  Serial1.println("Abbiegen");  
+  Serial1.println("1"); 
+
+  //Kodierung analysieren
+  bool  leftCode;                                                         //links => 1
+  bool  rightCode;                                                        //rechts => 2
+  if(lineValue[0] > 1000) leftCode = true;
+  else leftCode = false;
+  if(lineValue[2] > 1000) rightCode = true;
+  else rightCode = false;
+
+  //Zufallszahl erzeugen
+  uint8_t randy;                                                          //geradeaus => 0
+  if(leftCode == true && rightCode == true) randy = random(1, 3);         //1, 2
+  else if(leftCode == true && rightCode == false) randy = random(0, 2);   //0, 1
+  else if(leftCode == false && rightCode == true)
+  {
+    randy = random(3);                                                    //0, (1), 2
+    while(randy == 1) randy = random(3);                                  //!1 => 0, 2
+  }
+
+  //links Abbiegen
+  if(randy == 1 && leftCode == true) 
+  {
+    //zur Kreuzungsmitte fahren
+    driveRotation[0] = 0;
+    driveRotation[1] = 0;
+    while(driveRotation[0] != 1 && driveRotation[1] != 1 && lineValue[0] < 300 && lineValue[2] < 300)
+    {
+      EncoderUpdate();
+      motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+    }
+    //links drehen
+    rotationAngle = 0;
+    GyroUpdate();
+    while(rotationAngle != 90)
+    {
+      GyroUpdate();
+      if(lineValue[0] > 300 && lineValue[0] < 500) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+      else if(lineValue[1] > 300 && lineValue[1] < 500) motors.setSpeeds(-maxSpeed/4, -maxSpeed/4);
+      else if(lineValue[2] > 300 && lineValue[2] < 500) motors.setSpeeds(0, maxSpeed/2);
+      else motors.setSpeeds(maxSpeed/4, maxSpeed/2);
+    }
+    //geradeaus fahren
+    motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+  }
+
+  //rechts Abbiegen
+  else if(randy == 2 && rightCode == true)
+  {
+    //rechts drehen
+    rotationAngle = 0;
+    GyroUpdate();
+    while(rotationAngle != -90)
+    {
+      GyroUpdate();
+      if(lineValue[0] > 300 && lineValue[0] < 500) motors.setSpeeds(maxSpeed/2, 0);
+      else if(lineValue[1] > 300 && lineValue[1] < 500) motors.setSpeeds(-maxSpeed/4, -maxSpeed/4);
+      else if(lineValue[2] > 300 && lineValue[2] < 500) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+      else motors.setSpeeds(maxSpeed/2, maxSpeed/4);
+    }
+    //geradeaus fahren
+    motors.setSpeeds(maxSpeed/2, maxSpeed/2); 
+  }  
+
+  //nicht Abbiegen, geradeaus fahren
+  else motors.setSpeeds(maxSpeed/2, maxSpeed/2); 
+  delay(500);
+
+  Serial1.println("Abbiegen beendet");  
+}
+
+//Funktion Spurhalten
+void Spurhalten()                                                   
+{
+  //linke Linie erreicht, nach rechts fahren
+  if(lineValue[0] > 300 && lineValue[0] < 500)                      
+  {
+    dir = 'R';
+    ledYellow(1); 
+    Serial1.println("Spur nach rechts korrigieren");  
+    motors.setSpeeds(maxSpeed, maxSpeed/2);
+    delay(100);    
+  }
+
+  //rechte Linie erreicht, nach links fahren
+  else if(lineValue[2] > 300 && lineValue[2] < 500)                 
+  {
+    dir = 'L'; 
+    ledYellow(1); 
+    Serial1.println("Spur nach links korrigieren");  
+    motors.setSpeeds(maxSpeed/2, maxSpeed);  
+    delay(100);  
+  }
+
+  //Linie überfahren, zurücksetzen
+  else if(lineValue[1] > 300 && lineValue[1] < 500)                 
+  { 
+    dir = 'B';  
+    ledRed(1); 
+    Serial1.println("Spur verlassen");  
+    Serial1.println("1"); 
+    while(lineValue[0] < 300 && lineValue[2] < 300)                 //Zumo fährt solange rückwärst bis er wieder auf der Spur steht
+    {
+      motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
+    }
+    delay(500);    
+  }  
+
+  //normale Fahrt
+  else                                                                
+  {
+    dir = 'F'; 
+    ledGreen(1); 
+    Serial1.println("Spur folgen");  
+    motors.setSpeeds(maxSpeed, maxSpeed);
+  }
+}
+
+//Funktion Serielle Ausgabe
+void SerialOutput()                                                     
+{
+  snprintf_P(report, sizeof(report),
+    PSTR("Abstand: %d %d %d %d   Linie: %d %d %d   Weg: %d %d   Winkel: %d   Zeit: %d"),
+    proxValue[0], proxValue[1], proxValue[2], proxValue[3], 
+    lineValue[0], lineValue[1], lineValue[2],
+    driveRotation[0], driveRotation[1], rotationAngle, CycleTime);
+  Serial1.println(report);
+}
+
+/*-----------------------------------------------------------------*/
+
+void loop() 
+{
+  ledGreen(0);
+  ledYellow(0);
+  ledRed(0);
+
+  //Abfragen der Sensordaten
+  TimeUpdate();
+  LineUpdate();                                         
+  ProxUpdate();
+  GyroUpdate();
+  CompassUpdate();
+  EncoderUpdate();
+
+  //Funktionsauswahl
+  warning = Serial1.read();
+  if(warning == 1)                                                  //verfügbare Funktionen bei laufenden Manövern
+  {
+    maxSpeed = 100;
+    if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 || 
+    lineValue[2] > 1000) motors.setSpeeds(0, 0);  
+    else Spurhalten();
+  }
+  else                                                              //verfügbare Funktionen im Normalfall
+  {
+    if(moveRate > 1000) Kollisionserkennung();         
+    else if(proxValue[1] == 6 || proxValue[2] == 6) motors.setSpeeds(0, 0);  
+    else if(proxValue[1] == 5 || proxValue[2] == 5) Hindernisumfahren();
+    else if(lineValue[0] > 1000 || lineValue[2] > 1000) Abbiegen();
+    else Spurhalten();
+  }
+
+  //Ausgabe über Bluetoothverbindung
+  SerialOutput();                                                         
+}

+ 34 - 0
ArduinoOutput/sketch/Hauptprojekt.ino.cpp.d

@@ -0,0 +1,34 @@
+c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\sketch\Hauptprojekt.ino.cpp.o: \
+ c:\Users\Carolin\Downloads\VSCode\Zumo32U4\ArduinoOutput\sketch\Hauptprojekt.ino.cpp \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/binary.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WCharacter.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/WString.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/HardwareSerial.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Print.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Printable.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBAPI.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBDesc.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/USBCore.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\variants\leonardo/pins_arduino.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\libraries\Wire\src/Wire.h \
+ C:\Users\Carolin\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.20\cores\arduino/Stream.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/FastGPIO.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/LSM303.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/L3G.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4Buttons.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Pushbutton.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/USBPause.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4Buzzer.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/PololuBuzzer.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4Encoders.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4IRPulses.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4LCD.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/PololuHD44780.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4LineSensors.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/QTRSensors.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4Motors.h \
+ C:\Users\Carolin\Documents\Arduino\libraries\Zumo32U4/Zumo32U4ProximitySensors.h

BIN
ArduinoOutput/sketch/Hauptprojekt.ino.cpp.o


+ 100 - 88
Zumo32U4/Hauptprojekt/Hauptprojekt.ino

@@ -1,7 +1,7 @@
 //Verfassser: Felix Stange 4056379 MET2016
-//Datum: 19.07.2017 erstellt, 08.12.2017 zuletzt geändert
+//Datum: 19.07.2017 erstellt, 02.02.2018 zuletzt geändert
 //Projekt: Der Zumo fährt automatisch zwischen 2 Linien ohne diese zu überfahren mithilfe der 
-//Liniensensoren (3), ähnlich einer Spurhalteautomatik (dunkler Belag und helle Streifen). 
+//Liniensensoren (3), ähnlich einer Spurhalteautomatik (heller Belag und dunkle Streifen). 
 //Außerdem werden Kollisionen verhindert durch Nutzung der vorderen Abstandssensoren. Kommt es 
 //dennoch zu einer Kollision, wird diese durch die Beschleunigungssensoren (LSM303) erkannt. 
 //Für den Überholvorgang werden die seitlichen Abstandssensoren und der Drehbewegungssensor (L3G) 
@@ -21,9 +21,8 @@ Zumo32U4Encoders          encoders;     //Motorencoder
 LSM303                    compass;      //Beschleunigungssensor x-Achse
 L3G                       gyro;         //Drehbewegungssensor z-Achse
 
-uint16_t  lineValue[3];                 //von links (0) nach rechts (2)
+int16_t   lineValue[3];                 //von links (0) nach rechts (2)
 uint16_t  lineOffset[3]; 
-uint16_t  lineRaw[3];
 
 uint8_t   proxValue[4];                 //von links (0) nach rechts (3)
 
@@ -42,10 +41,11 @@ int16_t   moveRate;
 int16_t   compassOffset;                
 uint16_t  compassLastUpdate;
 
-uint16_t  LastUpdate;
+uint16_t  LastUpdate = 0;               //Systemzeit
+uint16_t  CycleTime = 0;                //Zykluszeit
 int       maxSpeed = 200;               //Maximale Geschwindigkeit (möglich 400)
-char      dir = 'O';                    //Fahrtrichtung, Ereignis
-char      report[250];                  //Ausgabe
+char      dir;                          //Fahrtrichtung, Ereignis
+char      report[200];                  //Ausgabe
 int       warning = 0;                  //1 zeigt Überhol-/Abbiegevorgang an
 
 /*-----------------------------------------------------------------*/
@@ -144,7 +144,7 @@ void setup()
   CompassSetup();
   
   //Zumo bereit zu starten
-  Serial1.println("Zumo bereit, drücke A");
+  Serial1.println("Zumo bereit, starte mit A");
   ledGreen(1);
   buttonA.waitForButton();
   randomSeed(millis());
@@ -157,7 +157,7 @@ void setup()
 void TimeUpdate()
 {
   uint16_t m = micros();
-  uint16_t dt = m - LastUpdate;
+  CycleTime = m - LastUpdate;
   LastUpdate = m;
 }
 
@@ -174,6 +174,7 @@ void ProxUpdate()
 //Updaten Liniensensoren
 void LineUpdate()
 {
+  uint16_t  lineRaw[3];
   lineSensors.read(lineRaw);
   lineValue[0] = lineRaw[0] - lineOffset[0];
   lineValue[1] = lineRaw[1] - lineOffset[1];
@@ -210,7 +211,7 @@ void CompassUpdate()
 void EncoderUpdate()
 {
   encoderCounts[0] = encoders.getCountsLeft();
-  driveRotation[0] = encoderCounts[0] / 910;                         //12cpr (Motorwelle) * 75,81:1 (Getriebe) = 909,7cpr (Antriebszahnrad)
+  driveRotation[0] = encoderCounts[0] / 910;                        //12cpr (Motorwelle) * 75,81:1 (Getriebe) = 909,7cpr (Antriebszahnrad)
   encoderCounts[1] = encoders.getCountsRight();
   driveRotation[1] = encoderCounts[1] / 910;
 }
@@ -218,23 +219,26 @@ void EncoderUpdate()
 /*-----------------------------------------------------------------*/
 
  //Funktion Kollisionserkennung
-void CollisionDetection()                                            
+void Kollisionserkennung()                                            
 {
   dir = 'X';
-  Serial1.println("Aufprall erkannt");
+  Serial1.println("Kollision erkannt");
+  Serial1.println("1"); 
   ledRed(1);
-
   motors.setSpeeds(0, 0);
   delay(500);
-  motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
+  while(lineValue[0] < 300 && lineValue[2] < 300)
+  {
+    motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
+  }
   delay(500); 
 }
 
 //Funktion Hindernisumfahrung
-void ObstacleAvoidance()                                              
+void Hindernisumfahren()                                              
 {
   dir = 'U';
-  Serial1.println("Überholen"); 
+  Serial1.println("Hindernis umfahren"); 
   Serial1.println("1"); 
   ledYellow(1);
 
@@ -249,7 +253,7 @@ void ObstacleAvoidance()
   }
   //geradeaus über Mittellinie fahren
   LineUpdate();
-  while(lineValue[2] > 1000)          
+  while(lineValue[2] < 300)          
   {
     LineUpdate();
     motors.setSpeeds(maxSpeed, maxSpeed); 
@@ -280,7 +284,7 @@ void ObstacleAvoidance()
       motors.setSpeeds(maxSpeed, maxSpeed);  
       proxSensors.read();
       proxValue[3] = proxSensors.countsRightWithRightLeds();  
-      TrackKeeper();
+      Spurhalten();
     }
   }
   
@@ -295,7 +299,7 @@ void ObstacleAvoidance()
   }
   //geradeaus über Mittellinie fahren
   LineUpdate();
-  while(lineValue[0] > 1000)          
+  while(lineValue[0] < 300)          
   {
     LineUpdate();
     motors.setSpeeds(maxSpeed, maxSpeed); 
@@ -310,65 +314,23 @@ void ObstacleAvoidance()
   //geradeaus fahren
   motors.setSpeeds(maxSpeed, maxSpeed); 
 
-  Serial1.println("Überholen beendet");  
-}
-
-//Funktion Spurhalten
-void TrackKeeper()                                                   
-{
-  //linke Linie erreicht, nach rechts fahren
-  if(lineValue[0] < 1000)                      
-  {
-    motors.setSpeeds(maxSpeed, maxSpeed/2);
-    ledYellow(1);
-    delay(100);    
-    dir = 'R';
-  }
-
-  //rechte Linie erreicht, nach links fahren
-  else if(lineValue[2] < 1000)                 
-  {
-    motors.setSpeeds(maxSpeed/2, maxSpeed);  
-    ledYellow(1); 
-    delay(100); 
-    dir = 'L';     
-  }
-
-  //Linie überfahren, zurücksetzen
-  else if(lineValue[1] < 1000)                 
-  { 
-    ledRed(1); 
-    while(lineValue[0] > 1000 && lineValue[2] > 1000)
-    {
-      motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
-    }
-    delay(500); 
-    dir = 'B';     
-  }  
-
-  //normale Fahrt
-  else                                                                
-  {
-    motors.setSpeeds(maxSpeed, maxSpeed);    
-    ledGreen(1); 
-    dir = 'F';     
-  }
+  Serial1.println("Umfahren beendet");  
 }
 
 //Funktion Abbiegen
-void Crossroad()
+void Abbiegen()
 {
-  ledYellow(1); 
   dir = 'A';
+  ledYellow(1); 
   Serial1.println("Abbiegen");  
   Serial1.println("1"); 
 
   //Kodierung analysieren
   bool  leftCode;                                                         //links => 1
   bool  rightCode;                                                        //rechts => 2
-  if(lineValue[0] > 500 && lineValue[0] < 1500) leftCode = true;
+  if(lineValue[0] > 1000) leftCode = true;
   else leftCode = false;
-  if(lineValue[2] > 500 && lineValue[2] < 1500) rightCode = true;
+  if(lineValue[2] > 1000) rightCode = true;
   else rightCode = false;
 
   //Zufallszahl erzeugen
@@ -387,7 +349,7 @@ void Crossroad()
     //zur Kreuzungsmitte fahren
     driveRotation[0] = 0;
     driveRotation[1] = 0;
-    while(driveRotation[0] != 1 && driveRotation[1] != 1)
+    while(driveRotation[0] != 1 && driveRotation[1] != 1 && lineValue[0] < 300 && lineValue[2] < 300)
     {
       EncoderUpdate();
       motors.setSpeeds(maxSpeed/2, maxSpeed/2);
@@ -398,16 +360,17 @@ void Crossroad()
     while(rotationAngle != 90)
     {
       GyroUpdate();
-      if(lineValue[0] < 1000) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
-      else if(lineValue[2] < 1000) motors.setSpeeds(0, maxSpeed/2);
-      else motors.setSpeeds(maxSpeed/4, maxSpeed/2);  
+      if(lineValue[0] > 300 && lineValue[0] < 500) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+      else if(lineValue[1] > 300 && lineValue[1] < 500) motors.setSpeeds(-maxSpeed/4, -maxSpeed/4);
+      else if(lineValue[2] > 300 && lineValue[2] < 500) motors.setSpeeds(0, maxSpeed/2);
+      else motors.setSpeeds(maxSpeed/4, maxSpeed/2);
     }
     //geradeaus fahren
-    motors.setSpeeds(maxSpeed/2, maxSpeed/2); 
+    motors.setSpeeds(maxSpeed/2, maxSpeed/2);
   }
 
   //rechts Abbiegen
-  else if(randy == 2 && rightCode == true) 
+  else if(randy == 2 && rightCode == true)
   {
     //rechts drehen
     rotationAngle = 0;
@@ -415,9 +378,10 @@ void Crossroad()
     while(rotationAngle != -90)
     {
       GyroUpdate();
-      if(lineValue[0] < 1000) motors.setSpeeds(maxSpeed/2, 0);
-      else if(lineValue[2] < 1000) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
-      else motors.setSpeeds(maxSpeed/2, maxSpeed/4);  
+      if(lineValue[0] > 300 && lineValue[0] < 500) motors.setSpeeds(maxSpeed/2, 0);
+      else if(lineValue[1] > 300 && lineValue[1] < 500) motors.setSpeeds(-maxSpeed/4, -maxSpeed/4);
+      else if(lineValue[2] > 300 && lineValue[2] < 500) motors.setSpeeds(maxSpeed/2, maxSpeed/2);
+      else motors.setSpeeds(maxSpeed/2, maxSpeed/4);
     }
     //geradeaus fahren
     motors.setSpeeds(maxSpeed/2, maxSpeed/2); 
@@ -425,19 +389,67 @@ void Crossroad()
 
   //nicht Abbiegen, geradeaus fahren
   else motors.setSpeeds(maxSpeed/2, maxSpeed/2); 
+  delay(500);
 
   Serial1.println("Abbiegen beendet");  
 }
 
+//Funktion Spurhalten
+void Spurhalten()                                                   
+{
+  //linke Linie erreicht, nach rechts fahren
+  if(lineValue[0] > 300 && lineValue[0] < 500)                      
+  {
+    dir = 'R';
+    ledYellow(1); 
+    Serial1.println("Spur nach rechts korrigieren");  
+    motors.setSpeeds(maxSpeed, maxSpeed/2);
+    delay(100);    
+  }
+
+  //rechte Linie erreicht, nach links fahren
+  else if(lineValue[2] > 300 && lineValue[2] < 500)                 
+  {
+    dir = 'L'; 
+    ledYellow(1); 
+    Serial1.println("Spur nach links korrigieren");  
+    motors.setSpeeds(maxSpeed/2, maxSpeed);  
+    delay(100);  
+  }
+
+  //Linie überfahren, zurücksetzen
+  else if(lineValue[1] > 300 && lineValue[1] < 500)                 
+  { 
+    dir = 'B';  
+    ledRed(1); 
+    Serial1.println("Spur verlassen");  
+    Serial1.println("1"); 
+    while(lineValue[0] < 300 && lineValue[2] < 300)                 //Zumo fährt solange rückwärst bis er wieder auf der Spur steht
+    {
+      motors.setSpeeds(-maxSpeed/2, -maxSpeed/2);
+    }
+    delay(500);    
+  }  
+
+  //normale Fahrt
+  else                                                                
+  {
+    dir = 'F'; 
+    ledGreen(1); 
+    Serial1.println("Spur folgen");  
+    motors.setSpeeds(maxSpeed, maxSpeed);
+  }
+}
+
 //Funktion Serielle Ausgabe
 void SerialOutput()                                                     
 {
   snprintf_P(report, sizeof(report),
-    PSTR("Abstand: %3d %3d %3d %3d   Linie: %6d %6d %6d   Weg: %3d %3d   Winkel: %3d   Ereignis: %3c   Zeit: %3d"),
+    PSTR("Abstand: %d %d %d %d   Linie: %d %d %d   Weg: %d %d   Winkel: %d   Zeit: %d"),
     proxValue[0], proxValue[1], proxValue[2], proxValue[3], 
     lineValue[0], lineValue[1], lineValue[2],
-    driveRotation[0], driveRotation[1], rotationAngle, dir, LastUpdate);
-  Serial.println(report);
+    driveRotation[0], driveRotation[1], rotationAngle, CycleTime);
+  Serial1.println(report);
 }
 
 /*-----------------------------------------------------------------*/
@@ -458,20 +470,20 @@ void loop()
 
   //Funktionsauswahl
   warning = Serial1.read();
-  if(warning == 1) 
+  if(warning == 1)                                                  //verfügbare Funktionen bei laufenden Manövern
   {
     maxSpeed = 100;
-    if(moveRate > 1000 || proxValue[0] > 4 || proxValue[1] > 4 || lineValue[0] > 500 && lineValue[0] < 1500 || 
-    lineValue[2] > 500 && lineValue[2] < 1500) motors.setSpeeds(0, 0);  
-    else TrackKeeper();
+    if(moveRate > 1000 || proxValue[1] > 4 || proxValue[2] > 4 || lineValue[0] > 1000 || 
+    lineValue[2] > 1000) motors.setSpeeds(0, 0);  
+    else Spurhalten();
   }
-  else
+  else                                                              //verfügbare Funktionen im Normalfall
   {
-    if(moveRate > 1000) CollisionDetection();         
-    else if(proxValue[0] == 6 || proxValue[1] == 6) motors.setSpeeds(0, 0);  
-    else if(proxValue[0] > 4 || proxValue[1] > 4) ObstacleAvoidance();
-    else if((lineValue[0] > 500 && lineValue[0] < 1500) || (lineValue[2] > 500 && lineValue[2] < 1500)) Crossroad();
-    else TrackKeeper();
+    if(moveRate > 1000) Kollisionserkennung();         
+    else if(proxValue[1] == 6 || proxValue[2] == 6) motors.setSpeeds(0, 0);  
+    else if(proxValue[1] == 5 || proxValue[2] == 5) Hindernisumfahren();
+    else if(lineValue[0] > 1000 || lineValue[2] > 1000) Abbiegen();
+    else Spurhalten();
   }
 
   //Ausgabe über Bluetoothverbindung