.. _other_bardware:

Hardware
########

Sensorarray
***********

|SensorarrayImage|

.. |SensorarrayImage| image:: images/Sensorarray.png

Specs V4
--------

| **Processor:**  `STM32G030F6P6 <https://mou.sr/3UxW49B>`_ - 32-bit ARM Cortex M0 CPU @ 64 MHz
| **I/O:** 1x I2C, 1x SWD
| **Sensors:** 5x `QRE1113GR <https://mou.sr/3TWGYdI>`_

Specs V2
--------

| **Processor:**  `ATMEGA328P-AU <https://mou.sr/3FxhPC5>`_ - 8-bit CPU @ 16 MHz
| **I/O:** 1x I2C, 1x UART, 1x ISP
| **Sensors:** 5x `QRE1113GR <https://mou.sr/3TWGYdI>`_

Details
-------

Das Sensorarray wird verwendet um Linienen vor dem Roboter zu erkennen. Es agiert als I2C Slave und muss dementsprechend aktiv gepollt werden.
Zusätzlich besteht die möglichkeit alle Emitter zu deaktiviern um einen eventuellen Messfehler durch Sonneneinstralung oder andere Störquellen zu erkennen.

Version 4 unterscheidet sich zu Version 2 im Mikroprozessor, da es zu Lieferengpässen des ATMEGA gekommen ist.
Zusätzlich wurde die möglichkeit alle Emitter einzeln an bzw. auszuschalten entfernt, da diese keinen signifikanten Mehrwert brachte.

Motorboard
**********

|MainboardImage|

.. |MainboardImage| image:: images/Mainboard.png

Specs
-----
**Motor-Treiber:** `LV8548MC-AH <https://mou.sr/3TXbFzu>`_

Details
-------
Das Motorboard kann an einen der 4 Ports am Roboter angesteckt werden und ermöglicht das Ansteuern von Motoren und auslesen von Encodern.

Mainboard
*********

Specs
-----

| **Processor:**  `STM32L051C8T6TR <https://mou.sr/3fuaAQv>`_ - 32-bit ARM Cortex M0 @ 32MHz
| **I/O:** 4x I2C (3x Bus 1, 1x Bus 2), 1x 40 Pin GPIO Header, 2x SPI (Verbunden mit GPIO), 4x Motor-/Servo-connector, 1x SWD, 1x USB-C

Details
-------

Das Mainboard wird auf den GPIO-Header eines Raspberry Pi gesteckt und ermöglicht die Steuerung eines Roboters mittels 4 Motor- bzw. Servo-Ports. Der RaspberryPi kommuniziert dabei mittels SPI mit dem Mainboard und steuert die einzelnen Sensoren oder Module an.
Zusätzlich befinden sich auf der Unterseite des Mainboards Lötstellen, welche direkt mit der Stromversorgung der Motoren verbunden sind und geben so die möglichkeit Motoren mit mehr als 5V anzusteuern.