![](pics/HSA-Banner.png)
# Raspberry Pi Pico - Template for Python
## Table of Content
1. **[Introduction](#1.-Introduction)**
2. **[Required Software](#2.-Required_Software)**
3. **[Required Visual Studio Code Plugins](#3.-Required_Visual_Studio_Code_Plugins)**
4. **[Recommended Visual Studio Code Plugins](#4.-Recommended_Visual_Studio_Code_Plugins)**
5. **[Optional Visual Studio Code Themes](#5.-Optional_Visual_Studio_Code_Themes)**
## 6. Hardware Konfiguration
Für die Verwendung benötigen Sie folgende Materialien:
Name | Description
:---: | ------------------------------------------
***Raspberry Pi Pico*** | Microcontroller der den Code ausführt
***Maker Pi Pico*** | Erweiterungsboard zur einfacheren Verkabelung und Nutzung der Anschlüsse des Pico
***MAX4466*** | Mikrofon zur Aufnahme von Geräuschen, das mit ADC fähigen Pin des Pico verbunden wird
***SD Karte*** | optional, zum Speichern von aufgenommenen Werten
Die ADC-fähigen Pins sind im Pinout Diagramm des Pico zu finden. Einer dieser Pins ist als Signal Pin zu verwenden, während der GND und VCC Anschluss des MAX4466 an den GND- und 3.3VSys-Pin des Pico angeschlossen werden.
Eine Mögliche Verschaltung des Pico mit dem MAX4466 könnte dann wie folgt aussehen:
Pinout des Pico | Verschaltung des MAX4466 mit GPIO26
:---: | ------------------------------------------
|
## 7. Verwendung der Klasse DigitalStethoskop
Beim Anlegen der Klasse ist es möglich folgende Variablen zu übergeben:
Nr | Attribut | optional | Datentyp | Beschreibung
:---: | -------| --- | --------- | -----
1 | SAMPLE_RATE | Nein | int | Die Abtastrate mit der die Werte später aufgezeichnet werden
2 | SIGNAL_PIN | Ja | Pin | machine.Pin-Objekt an dem der MAX4466 Sensor mit der Datenleitung angeschlossen ist; standardmäßig Pin(26)
3 | MAX_DATA |Ja | int | Beschreibt die maximale Anzahl an Werten, die aufgenommen werden darf um ein überfüllen des RAM-Speichers zu vermeiden; standardmäßig 8000
4 | DATEI_NAME |Ja | str | Name der Datei unter dem die Werte gespeichert werden, mit „.txt“ oder „.csv“ am Ende!; standardmäßig „data.txt“
Um dann mit dem erfolgreich angelegten Objekt Werte aufzunehmen muss die record_data Funktion aufgerufen werden.
Nr | Methode | Beschreibung
:---: | ------------------------------ | ---------
1 | record_data(time_in_s) | der übergebene Wert kann entweder ein int oder float sein, startet eine Werteaufnahme über den übergebenen Zeitraum in Sekunden in dem der Pico keine anderen Aktionen ausführen kann, um ein möglichst genaues Ergebnis zu erzielen
Dabei wird die Anzahl der möglichen aufzunehmenden Punkte auf MAX_DATA beschränkt. Dies kommt daher, dass die Daten wegen der hohen Abtastrate im Arbeitsspeicher gesichert werden müssen und dieser nur 256 KByte groß ist. Damit ist die Menge an Datenpunkten stark begrenzt.
Die im RAM hinterlegten Daten können dann mit folgenden Methoden gespeichert oder abgerufen werden.
Nr | Methode | Beschreibung
:---: | ------------------------------ | ---------
2 | save(path=self.PATH) | Speichert die aufgezeichneten Werte auf den Flash Speicher des Pico
3 | save_sd(path=self.PATH) | Speichert die aufgezeichneten Werte auf die SD Karte, sofern diese erfolgreich initialisiert wurde
4 | get_data() | gibt die aktuell im RAM enthaltenen Werte zurück, sollten noch keine aufgezeichnet worden sein wird 0 zurückgegeben
---
**Hochschule Anhalt | Anhalt University of Applied Sciences | Fachbereich 6 EMW**
Prof. Dr.-Ing. Ingo Chmielewski
:e-mail: [Ingo.Chmielewski@HS-Anhalt.de ](mailto:Ingo.Chmielewski@HS-Anhalt.de)
Tobias Müller, M. Eng.
:e-mail: [Tobias.Mueller@HS-Anhalt.de](mailto:Tobias.Mueller@HS-Anhalt.de)
:copyright: es-lab.de, 05.09.2023