<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.attraktor.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kapest</id>
	<title>Attraktor Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.attraktor.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kapest"/>
	<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/Special:Contributions/Kapest"/>
	<updated>2026-04-17T16:28:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Attraktor_Wiki&amp;diff=42094</id>
		<title>Attraktor Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Attraktor_Wiki&amp;diff=42094"/>
		<updated>2025-06-16T20:17:28Z</updated>

		<summary type="html">&lt;p&gt;Kapest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #000; background:#67b8dc;color:#fff;padding: 0.1em 1em; font-size: 80%; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Location&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #000000;border-top-width:0px; padding: 0px 0px; margin-bottom:0.5em;background:#ffffff;&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Adresse:&#039;&#039;&#039; Eschelsweg 4 (Altona)&amp;lt;br/&amp;gt;22767 Hamburg&lt;br /&gt;
* &#039;&#039;&#039;Telefon:&#039;&#039;&#039; derzeit keins&lt;br /&gt;
* &#039;&#039;&#039;Koordinaten:&#039;&#039;&#039; 53.5498443,9.946661&lt;br /&gt;
* &#039;&#039;&#039;OpenStreetMap:&#039;&#039;&#039; [http://www.openstreetmap.org/?lat=53.5498443&amp;amp;lon=9.946661&amp;amp;zoom=18&amp;amp;layers=M Go]&lt;br /&gt;
* &#039;&#039;&#039;Google Maps:&#039;&#039;&#039; [http://maps.google.com/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=53.5498443,9.946661&amp;amp;daddr=&amp;amp;geocode=&amp;amp;hl=en&amp;amp;mra=dme&amp;amp;mrcr=0&amp;amp;mrsp=0&amp;amp;sz=19&amp;amp;sll=53.602983,10.022873&amp;amp;sspn=0.001372,0.00213&amp;amp;ie=UTF8&amp;amp;ll=53.5498443,9.946661&amp;amp;spn=0.002744,0.004259&amp;amp;t=h&amp;amp;z=18 Go]&lt;br /&gt;
* &#039;&#039;&#039;Wegbeschreibung:&#039;&#039;&#039; [[Wegbeschreibung | Go]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;attraktorbg center&amp;quot; style=&amp;quot;font-weight: initial; font-size: 130%;&amp;quot;&amp;gt;&lt;br /&gt;
Der Makerspace Attraktor ist der Treffpunkt in Hamburg für Tüftler*innen, Bastler*innen und alle Technikbegeisterten.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bei uns kannst du dich zum Beispiel mit Elektronik, Software, Textilien und der Bearbeitung von Holz und Metallen auseinandersetzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Termine&amp;lt;/h2&amp;gt;&lt;br /&gt;
{{Calendar-Next10}}&lt;br /&gt;
Kalender im [https://wiki.attraktor.org/calendar.ics VCS/ICS-Format]&amp;lt;!--{{Calendar-iCal}}--&amp;gt;. Tragt eure Veranstaltungen bitte im [[Calendar|vollständigen Kalender]] ein.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Navigation&amp;lt;/h2&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Aktuelles&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://blog.attraktor.org/ Attraktor Blog]&lt;br /&gt;
* [[:Category:Projekt|Projekte]]&lt;br /&gt;
* [[Fotos]]&lt;br /&gt;
* [[Hilf mit!]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Aktiv werden&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Mitglied_in_drei_Schritten|Mitglied in drei Schritten]]&lt;br /&gt;
* [http://blog.attraktor.org/anfahrt/ Vorbeikommen]&lt;br /&gt;
* [[Wegbeschreibung]]&lt;br /&gt;
* [[Mitglied werden]]&lt;br /&gt;
* [[Veranstaltung organisieren]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Spenden&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [https://blog.attraktor.org/spenden/ Übersicht aller Spenden-Möglichkeiten]&lt;br /&gt;
* [[Spenden|(Geld-)Spenden]] / [[Bezugsquellen]]&lt;br /&gt;
* [http://www.betterplace.org/de/organisations/attraktor BetterPlace]&lt;br /&gt;
* [https://www.gooding.de/organization/attraktor-e-v-1401 Gooding]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Special:RecentChanges|Letzte Änderungen]]&lt;br /&gt;
* [[Special:AllPages|Alle {{NUMBEROFARTICLES}} Seiten]]&lt;br /&gt;
* &#039;&#039;&#039;[[Special:Categories|Alle Seiten nach Kategorie]]&#039;&#039;&#039; &lt;br /&gt;
* [[Wiki-Seite bearbeiten|Regeln zum Bearbeiten von Wiki-Seiten]]&amp;lt;br /&amp;gt;(vor dem editieren bitte lesen)&lt;br /&gt;
* &#039;&#039;&#039;Du hast noch keinen Wiki-Account?&#039;&#039;&#039;&amp;lt;br&amp;gt;-&amp;gt; [[Help:Logging_in|Neuen Account registrieren]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Soziale Netzwerke &amp;amp; Plattformen&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [https://www.instagram.com/attraktor_org/ Instagram]&lt;br /&gt;
&amp;lt;!--* [http://twitter.com/attraktor_org Twitter]--&amp;gt;&lt;br /&gt;
* [http://facebook.com/attraktorev Facebook]&lt;br /&gt;
&amp;lt;!--* [http://www.youtube.com/user/AttraktorHH YouTube]--&amp;gt;&lt;br /&gt;
* [https://wiki.hackerspaces.org/Attraktor HackerspaceWiki]&lt;br /&gt;
* [http://www.meetup.com/attraktor/ Meetup]&lt;br /&gt;
&amp;lt;!--* [http://www.heise.de/hardware-hacks/kalender/ Veranstaltungskalender (Hardware Hacks)]--&amp;gt;&lt;br /&gt;
&amp;lt;!--* [http://pinterest.com/altepuppe/attraktor/ Pinterest] --&amp;gt;&lt;br /&gt;
* [http://www.handmadekultur.de/web/attraktor-der-makerspace-in-hamburg_51089 HandmadeKultur]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Veranstaltungen&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Calendar|Alle Termine]]&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
regelmäßig:&lt;br /&gt;
* [[Basteldonnerstag]] (wöchentlich) &lt;br /&gt;
* [[Open_Lockpicking_Workshop|Open Lockpicking Workshop]] (wöchentlich)&lt;br /&gt;
* [[FPV-Stammtisch]] (wöchentlich)&lt;br /&gt;
* [[Elektronik-Stammtisch]] (monatlich)&lt;br /&gt;
* [[Nähgruppe]] (wöchentlich)&lt;br /&gt;
* [[Craft_Samstag|Craft Samstag]] (monatlich)&lt;br /&gt;
* [[Konvent]] (alle 5 Wochen)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
unregelmäßig:&lt;br /&gt;
* [[Arduino#Workshops|Arduino-Workshops]]&lt;br /&gt;
* [[Foto-Workshops]]&lt;br /&gt;
&amp;lt;!-- * [[Näh-Workshop]] --&amp;gt;&lt;br /&gt;
* [[Siebdruck-Workshop]]&lt;br /&gt;
* [[Lasercutter-Einweisung]]&lt;br /&gt;
* [[Themenabend_Kunst|Themenabend Kunst]]&lt;br /&gt;
* [[:Category:M5Stack|M5Stack]]&lt;br /&gt;
* [[Programmieren]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Infrastruktur&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Infrastruktur|Infrastruktur]] (allgemeine Übersicht)&lt;br /&gt;
* [[:Category:Werkzeuge|Werkzeuge]]&lt;br /&gt;
[[File:Milling-machine.png |CNC Maschinen|middel|32px|link=:Category:CNC-Maschinen]] [[:Category:CNC-Maschinen|CNC-Maschinen]]&lt;br /&gt;
&lt;br /&gt;
[[File:Flaticon-laser-cutting-machine-1.png|Lasercutter|middle|border|32px|link=Lasercutter]] [[Lasercutter|Lasercutter]]&lt;br /&gt;
* [[Musik]]&lt;br /&gt;
* [[Zettel|Zettel und Formulare]]&lt;br /&gt;
* [[Would you like to know more?]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Kommunikation&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Matrix|Attraktor Matrix-Chatserver]]&lt;br /&gt;
* [[Mitglieder]]&lt;br /&gt;
* [[Konvent]]&lt;br /&gt;
* [mailto:office@attraktor.org E-Mail an den Attraktor]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Öffentlichkeitsarbeit&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Corporate Identity]]&lt;br /&gt;
* [[Pressematerial]]&lt;br /&gt;
* [[persönliche Kurzvorstellung]]&lt;br /&gt;
* [[Anschreiben]]&lt;br /&gt;
* [[Im Web]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Räume/Werkstätten&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Werkstattordnung]]&lt;br /&gt;
* [[Vortragsbereich]]&lt;br /&gt;
* [[Hackcenter]]&lt;br /&gt;
* [[Holzwerkstatt]]&lt;br /&gt;
* [[Metallwerkstatt]]&lt;br /&gt;
* [[Elektronikwerkstatt]]&lt;br /&gt;
* [[Textilwerkstatt]]&lt;br /&gt;
* [[Küche]]&lt;br /&gt;
* [[Fotos/2012-11-19-Panoramafotos|Panoramafotos]]&lt;br /&gt;
* [[Anlieferung]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Hauptraum]]&lt;br /&gt;
* [[Werk 1 (Elektronik-Werkstatt)]]&lt;br /&gt;
* [[Werk 2 (Krach-Dreck-Werkstatt)]]&lt;br /&gt;
* [[Serverraum]]&lt;br /&gt;
* [[Küche]]&lt;br /&gt;
* [[Platinenfräsenraum]]&lt;br /&gt;
* [[2. Ebene (Lockpicker)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Netzwerk&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Dienste]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Kurse&amp;diff=42093</id>
		<title>Kurse</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Kurse&amp;diff=42093"/>
		<updated>2025-06-16T20:16:37Z</updated>

		<summary type="html">&lt;p&gt;Kapest: Blanked the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Kurse&amp;diff=42091</id>
		<title>Kurse</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Kurse&amp;diff=42091"/>
		<updated>2025-06-16T11:33:49Z</updated>

		<summary type="html">&lt;p&gt;Kapest: Created page with &amp;quot;* Elektronikkurs 2016&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Elektronikkurs 2016]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Attraktor_Wiki&amp;diff=42090</id>
		<title>Attraktor Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Attraktor_Wiki&amp;diff=42090"/>
		<updated>2025-06-16T11:33:03Z</updated>

		<summary type="html">&lt;p&gt;Kapest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; padding-left:1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #000; background:#67b8dc;color:#fff;padding: 0.1em 1em; font-size: 80%; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Location&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:1px solid #000000;border-top-width:0px; padding: 0px 0px; margin-bottom:0.5em;background:#ffffff;&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Adresse:&#039;&#039;&#039; Eschelsweg 4 (Altona)&amp;lt;br/&amp;gt;22767 Hamburg&lt;br /&gt;
* &#039;&#039;&#039;Telefon:&#039;&#039;&#039; derzeit keins&lt;br /&gt;
* &#039;&#039;&#039;Koordinaten:&#039;&#039;&#039; 53.5498443,9.946661&lt;br /&gt;
* &#039;&#039;&#039;OpenStreetMap:&#039;&#039;&#039; [http://www.openstreetmap.org/?lat=53.5498443&amp;amp;lon=9.946661&amp;amp;zoom=18&amp;amp;layers=M Go]&lt;br /&gt;
* &#039;&#039;&#039;Google Maps:&#039;&#039;&#039; [http://maps.google.com/maps?f=d&amp;amp;source=s_d&amp;amp;saddr=53.5498443,9.946661&amp;amp;daddr=&amp;amp;geocode=&amp;amp;hl=en&amp;amp;mra=dme&amp;amp;mrcr=0&amp;amp;mrsp=0&amp;amp;sz=19&amp;amp;sll=53.602983,10.022873&amp;amp;sspn=0.001372,0.00213&amp;amp;ie=UTF8&amp;amp;ll=53.5498443,9.946661&amp;amp;spn=0.002744,0.004259&amp;amp;t=h&amp;amp;z=18 Go]&lt;br /&gt;
* &#039;&#039;&#039;Wegbeschreibung:&#039;&#039;&#039; [[Wegbeschreibung | Go]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;attraktorbg center&amp;quot; style=&amp;quot;font-weight: initial; font-size: 130%;&amp;quot;&amp;gt;&lt;br /&gt;
Der Makerspace Attraktor ist der Treffpunkt in Hamburg für Tüftler*innen, Bastler*innen und alle Technikbegeisterten.&amp;lt;br /&amp;gt;&lt;br /&gt;
Bei uns kannst du dich zum Beispiel mit Elektronik, Software, Textilien und der Bearbeitung von Holz und Metallen auseinandersetzen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Termine&amp;lt;/h2&amp;gt;&lt;br /&gt;
{{Calendar-Next10}}&lt;br /&gt;
Kalender im [https://wiki.attraktor.org/calendar.ics VCS/ICS-Format]&amp;lt;!--{{Calendar-iCal}}--&amp;gt;. Tragt eure Veranstaltungen bitte im [[Calendar|vollständigen Kalender]] ein.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Navigation&amp;lt;/h2&amp;gt;&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;33%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Aktuelles&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [http://blog.attraktor.org/ Attraktor Blog]&lt;br /&gt;
* [[:Category:Projekt|Projekte]]&lt;br /&gt;
* [[Fotos]]&lt;br /&gt;
* [[Hilf mit!]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Aktiv werden&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Mitglied_in_drei_Schritten|Mitglied in drei Schritten]]&lt;br /&gt;
* [http://blog.attraktor.org/anfahrt/ Vorbeikommen]&lt;br /&gt;
* [[Wegbeschreibung]]&lt;br /&gt;
* [[Mitglied werden]]&lt;br /&gt;
* [[Veranstaltung organisieren]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Spenden&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [https://blog.attraktor.org/spenden/ Übersicht aller Spenden-Möglichkeiten]&lt;br /&gt;
* [[Spenden|(Geld-)Spenden]] / [[Bezugsquellen]]&lt;br /&gt;
* [http://www.betterplace.org/de/organisations/attraktor BetterPlace]&lt;br /&gt;
* [https://www.gooding.de/organization/attraktor-e-v-1401 Gooding]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Wiki&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Special:RecentChanges|Letzte Änderungen]]&lt;br /&gt;
* [[Special:AllPages|Alle {{NUMBEROFARTICLES}} Seiten]]&lt;br /&gt;
* &#039;&#039;&#039;[[Special:Categories|Alle Seiten nach Kategorie]]&#039;&#039;&#039; &lt;br /&gt;
* [[Wiki-Seite bearbeiten|Regeln zum Bearbeiten von Wiki-Seiten]]&amp;lt;br /&amp;gt;(vor dem editieren bitte lesen)&lt;br /&gt;
* &#039;&#039;&#039;Du hast noch keinen Wiki-Account?&#039;&#039;&#039;&amp;lt;br&amp;gt;-&amp;gt; [[Help:Logging_in|Neuen Account registrieren]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Soziale Netzwerke &amp;amp; Plattformen&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [https://www.instagram.com/attraktor_org/ Instagram]&lt;br /&gt;
&amp;lt;!--* [http://twitter.com/attraktor_org Twitter]--&amp;gt;&lt;br /&gt;
* [http://facebook.com/attraktorev Facebook]&lt;br /&gt;
&amp;lt;!--* [http://www.youtube.com/user/AttraktorHH YouTube]--&amp;gt;&lt;br /&gt;
* [https://wiki.hackerspaces.org/Attraktor HackerspaceWiki]&lt;br /&gt;
* [http://www.meetup.com/attraktor/ Meetup]&lt;br /&gt;
&amp;lt;!--* [http://www.heise.de/hardware-hacks/kalender/ Veranstaltungskalender (Hardware Hacks)]--&amp;gt;&lt;br /&gt;
&amp;lt;!--* [http://pinterest.com/altepuppe/attraktor/ Pinterest] --&amp;gt;&lt;br /&gt;
* [http://www.handmadekultur.de/web/attraktor-der-makerspace-in-hamburg_51089 HandmadeKultur]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Veranstaltungen&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Calendar|Alle Termine]]&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
regelmäßig:&lt;br /&gt;
* [[Basteldonnerstag]] (wöchentlich) &lt;br /&gt;
* [[Open_Lockpicking_Workshop|Open Lockpicking Workshop]] (wöchentlich)&lt;br /&gt;
* [[FPV-Stammtisch]] (wöchentlich)&lt;br /&gt;
* [[Elektronik-Stammtisch]] (monatlich)&lt;br /&gt;
* [[Nähgruppe]] (wöchentlich)&lt;br /&gt;
* [[Craft_Samstag|Craft Samstag]] (monatlich)&lt;br /&gt;
* [[Konvent]] (alle 5 Wochen)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
unregelmäßig:&lt;br /&gt;
* [[Kurse]]&lt;br /&gt;
* [[Arduino#Workshops|Arduino-Workshops]]&lt;br /&gt;
* [[Foto-Workshops]]&lt;br /&gt;
&amp;lt;!-- * [[Näh-Workshop]] --&amp;gt;&lt;br /&gt;
* [[Siebdruck-Workshop]]&lt;br /&gt;
* [[Lasercutter-Einweisung]]&lt;br /&gt;
* [[Themenabend_Kunst|Themenabend Kunst]]&lt;br /&gt;
* [[:Category:M5Stack|M5Stack]]&lt;br /&gt;
* [[Programmieren]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;33%&amp;quot; style=&amp;quot;vertical-align:top;&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Infrastruktur&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Infrastruktur|Infrastruktur]] (allgemeine Übersicht)&lt;br /&gt;
* [[:Category:Werkzeuge|Werkzeuge]]&lt;br /&gt;
[[File:Milling-machine.png |CNC Maschinen|middel|32px|link=:Category:CNC-Maschinen]] [[:Category:CNC-Maschinen|CNC-Maschinen]]&lt;br /&gt;
&lt;br /&gt;
[[File:Flaticon-laser-cutting-machine-1.png|Lasercutter|middle|border|32px|link=Lasercutter]] [[Lasercutter|Lasercutter]]&lt;br /&gt;
* [[Musik]]&lt;br /&gt;
* [[Zettel|Zettel und Formulare]]&lt;br /&gt;
* [[Would you like to know more?]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Kommunikation&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Matrix|Attraktor Matrix-Chatserver]]&lt;br /&gt;
* [[Mitglieder]]&lt;br /&gt;
* [[Konvent]]&lt;br /&gt;
* [mailto:office@attraktor.org E-Mail an den Attraktor]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Öffentlichkeitsarbeit&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Corporate Identity]]&lt;br /&gt;
* [[Pressematerial]]&lt;br /&gt;
* [[persönliche Kurzvorstellung]]&lt;br /&gt;
* [[Anschreiben]]&lt;br /&gt;
* [[Im Web]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Räume/Werkstätten&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Werkstattordnung]]&lt;br /&gt;
* [[Vortragsbereich]]&lt;br /&gt;
* [[Hackcenter]]&lt;br /&gt;
* [[Holzwerkstatt]]&lt;br /&gt;
* [[Metallwerkstatt]]&lt;br /&gt;
* [[Elektronikwerkstatt]]&lt;br /&gt;
* [[Textilwerkstatt]]&lt;br /&gt;
* [[Küche]]&lt;br /&gt;
* [[Fotos/2012-11-19-Panoramafotos|Panoramafotos]]&lt;br /&gt;
* [[Anlieferung]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Hauptraum]]&lt;br /&gt;
* [[Werk 1 (Elektronik-Werkstatt)]]&lt;br /&gt;
* [[Werk 2 (Krach-Dreck-Werkstatt)]]&lt;br /&gt;
* [[Serverraum]]&lt;br /&gt;
* [[Küche]]&lt;br /&gt;
* [[Platinenfräsenraum]]&lt;br /&gt;
* [[2. Ebene (Lockpicker)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #D8D8D8; padding:4px 8px 8px 8px; margin:10px; background: #F2F2FF;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; width: 32px;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Netzwerk&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Dienste]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=42083</id>
		<title>Programmieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=42083"/>
		<updated>2025-06-12T17:44:42Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Kurse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite enthält links zu den Seiten im Wiki die sich mit dem Theme Programmieren beschäftigen.&lt;br /&gt;
&lt;br /&gt;
==Kurse==&lt;br /&gt;
[[Micropython Kurs 2022]] - Dieser Kurs ist jetzt beendet. Seine Inhalte werden nach und nach Eingang in die Micropython Referenz finden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2023]] - Dieser Kurs startet am 31.10.2023 um 18.00 Uhr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2025]] - In diesem Jahr gibt&#039;s keine Kurse von mir.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2026]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython für Umsteiger]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Referenzen==&lt;br /&gt;
=== [https://micropython.aundz.net/index.php?title=Hauptseite Micropython Referenz] ===&lt;br /&gt;
Hierbei handelt es sich um eine Referenz zur Programmiersprache Micropython. Diese habe [[User:Kapest|ich]] angelegt, weil die Informationen zum M5Stack Micropython sehr unvollständig und im Netz verteilt sind. &lt;br /&gt;
&lt;br /&gt;
Ich werde meine Erfahrungen mit Micropython und auch die Inhalte meiner Kurse zu Micropython hier einfließen lassen. Natürlich freue ich mich über Unterstützung bei diesem Unternehmen.&lt;br /&gt;
&lt;br /&gt;
Diese Webseite befindet sich derzeit auf meinem privaten Account. Es ist aber beabsichtigt sie später in das Attraktor Wiki zu integrieren.&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=42082</id>
		<title>Programmieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=42082"/>
		<updated>2025-06-12T17:43:24Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Kurse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite enthält links zu den Seiten im Wiki die sich mit dem Theme Programmieren beschäftigen.&lt;br /&gt;
&lt;br /&gt;
==Kurse==&lt;br /&gt;
[[Micropython Kurs 2022]] - Dieser Kurs ist jetzt beendet. Seine Inhalte werden nach und nach Eingang in die Micropython Referenz finden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2023]] - Dieser Kurs startet am 31.10.2023 um 18.00 Uhr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2026]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython für Umsteiger]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Referenzen==&lt;br /&gt;
=== [https://micropython.aundz.net/index.php?title=Hauptseite Micropython Referenz] ===&lt;br /&gt;
Hierbei handelt es sich um eine Referenz zur Programmiersprache Micropython. Diese habe [[User:Kapest|ich]] angelegt, weil die Informationen zum M5Stack Micropython sehr unvollständig und im Netz verteilt sind. &lt;br /&gt;
&lt;br /&gt;
Ich werde meine Erfahrungen mit Micropython und auch die Inhalte meiner Kurse zu Micropython hier einfließen lassen. Natürlich freue ich mich über Unterstützung bei diesem Unternehmen.&lt;br /&gt;
&lt;br /&gt;
Diese Webseite befindet sich derzeit auf meinem privaten Account. Es ist aber beabsichtigt sie später in das Attraktor Wiki zu integrieren.&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Termin:Meshtastic_Stammtisch_Hambburg_2025-06-07&amp;diff=42058</id>
		<title>Termin:Meshtastic Stammtisch Hambburg 2025-06-07</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Termin:Meshtastic_Stammtisch_Hambburg_2025-06-07&amp;diff=42058"/>
		<updated>2025-05-29T12:01:10Z</updated>

		<summary type="html">&lt;p&gt;Kapest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Termin&lt;br /&gt;
|date=2025/06/09 07:00:00 PM&lt;br /&gt;
|enddate=2025/06/09 10:00:00 PM&lt;br /&gt;
|title=Meshtastic Stammtisch Hamburg&lt;br /&gt;
|visible=true&lt;br /&gt;
}}&lt;br /&gt;
Das Hauptziel des Projekts ist die Ermöglichung einer stromsparenden, weitreichenden Kommunikation über lizenzfreie Funkbänder . Es ist auf den Austausch von Textnachrichten und Daten in netzunabhängigen Umgebungen ausgelegt und kann in IoT-Projekten eingesetzt werden, bei denen ein dezentrales Kommunikationssystem ohne vorhandene Infrastruktur benötigt wird.&lt;br /&gt;
Es kann ebenfalls als Notfallkommunikation im Katastrophenfall dienen, wenn die Telekommunikationsnetze (z.B. durch längeren Stromausfall) ausgefallen sind.&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=41507</id>
		<title>Programmieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=41507"/>
		<updated>2024-10-31T13:02:59Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /*  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite enthält links zu den Seiten im Wiki die sich mit dem Theme Programmieren beschäftigen.&lt;br /&gt;
&lt;br /&gt;
==Kurse==&lt;br /&gt;
[[Micropython Kurs 2022]] - Dieser Kurs ist jetzt beendet. Seine Inhalte werden nach und nach Eingang in die Micropython Referenz finden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2023]] - Dieser Kurs startet am 31.10.2023 um 18.00 Uhr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2025]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython für Umsteiger]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Referenzen==&lt;br /&gt;
=== [https://micropython.aundz.net/index.php?title=Hauptseite Micropython Referenz] ===&lt;br /&gt;
Hierbei handelt es sich um eine Referenz zur Programmiersprache Micropython. Diese habe [[User:Kapest|ich]] angelegt, weil die Informationen zum M5Stack Micropython sehr unvollständig und im Netz verteilt sind. &lt;br /&gt;
&lt;br /&gt;
Ich werde meine Erfahrungen mit Micropython und auch die Inhalte meiner Kurse zu Micropython hier einfließen lassen. Natürlich freue ich mich über Unterstützung bei diesem Unternehmen.&lt;br /&gt;
&lt;br /&gt;
Diese Webseite befindet sich derzeit auf meinem privaten Account. Es ist aber beabsichtigt sie später in das Attraktor Wiki zu integrieren.&lt;br /&gt;
&lt;br /&gt;
== Navigation ==&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Lasercutter&amp;diff=41334</id>
		<title>Lasercutter</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Lasercutter&amp;diff=41334"/>
		<updated>2024-08-29T16:34:44Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Holz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox-v&lt;br /&gt;
|typ=Geräte&lt;br /&gt;
|image=Lasercutter_2022-10-20.jpg&lt;br /&gt;
|image_note=&lt;br /&gt;
|qrcode&lt;br /&gt;
|kategorien={{catDef|Werkzeuge}}&lt;br /&gt;
|beschreibung=Voll Laser wie der abgeht.&lt;br /&gt;
|ansprechpartner=Tobias -&amp;gt; tobias.jacobi(bei)attraktor.org&lt;br /&gt;
|einweisung={{Warning-Status|[[Lasercutter/Einweisung|JA!]]}}&lt;br /&gt;
|standort=Flur in Richtung Werkstätten. Nicht zu übersehen. &lt;br /&gt;
|standort_seit=&lt;br /&gt;
|status={{Good-DeviceStatus}}&lt;br /&gt;
|status_seit=&lt;br /&gt;
|letzteWartung=02.05.2024&lt;br /&gt;
|datumAnschaffung=&lt;br /&gt;
|kosten=~10.000€&lt;br /&gt;
|finanzierung=&lt;br /&gt;
|hersteller=BRM&lt;br /&gt;
|modell=BRM 90130&lt;br /&gt;
|leistung_elektrisch=100 W (CO2-Laser)&lt;br /&gt;
|links=Anleitungen:&lt;br /&gt;
* [[Media:BRM_90130_Gebrauchsanleitung.pdf|Manual (BRM)]]&lt;br /&gt;
* [[Media:BRM_90130_Maintaince_manual.pdf|Service Manual (China)]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:QR:todo]]&lt;br /&gt;
&lt;br /&gt;
Wir haben eine neue Software: [[Lasercutter/Lightburn|Lightburn]]. Neue Erkenntnisse dazu werden in der Unterseite [[Lasercutter/Lightburn|Lightburn]] zusammengetragen. Die alte Software kann noch verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Wer darf lasern? ==&lt;br /&gt;
&lt;br /&gt;
== Ablauf generell ==&lt;br /&gt;
&lt;br /&gt;
=== Wenn du selbst lasern möchtest ===&lt;br /&gt;
&lt;br /&gt;
Wenn du in Zukunft selbst die Maschine bedienen möchtest, musst du ein paar Voraussetzungen erfüllen.&lt;br /&gt;
&lt;br /&gt;
# Du musst Mitglied im Attraktor sein. Ohne Mitgliedschaft keine Benutzung der Maschinen. Mitgliedsanträge in letzter Sekunde können nicht angenommen werden.&lt;br /&gt;
# Du solltest ein konkretes Projekt haben, das du lasern möchtest. Erzeuge davon eine DXF-Datei.&lt;br /&gt;
# Installiere die Software auf deinem Computer und mache dich mit der Bedienung vertraut. Lese dazu die Seite [[Lasercutter/Software]] aufmerksam durch, importiere deine DXF-Datei und versuche alle Punkte nachzuvollziehen. Wenn Fragen dabei auftreten, kannst du die gern bei der Einweisung stellen.&lt;br /&gt;
# Optional: Mache beim [[Lasercutter/Betreutes Lasern]] erste Erfahrungen mit dem Lasercutter.&lt;br /&gt;
# Melde dich bei der [[Lasercutter/Einweisung]] an (trage dich unten bei &amp;quot;Interessenten&amp;quot; ein). Dort erklären wir dir die Grundlagen, die du zur Bedienung der Maschine brauchst. Hier hast du auch die Möglichkeit, Fragen zu stellen.&lt;br /&gt;
# Besuche die Lasercutter-Einweisung&lt;br /&gt;
# Nach der Einweisung laserst du mindestens die ersten 5 Mal zusammen mit einem Tutor, der dir mit Rat und Tat zur Seite steht und seine Erfahrungen weitergibt.&lt;br /&gt;
&lt;br /&gt;
=== Wenn du etwas gelasert haben möchtest ===&lt;br /&gt;
&lt;br /&gt;
* Für Mitglieder ohne Einweisung und Nicht-Mitglieder bieten wir das betreute Lasern an. Bitte informiere dich unter [[Lasercutter/Betreutes Lasern]], was du dafür vorbereiten musst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tutoren-System ==&lt;br /&gt;
&lt;br /&gt;
Nachdem du die [[Lasercutter/Einweisung]] besucht hast, darfst du den Lasercutter zuerst nur zusammen mit einem Tutor nutzen. Diese Person steht dir mit Rat und Tat zur Verfügung und gibt ihre Erfahrungen gern weiter. Wenn du lasern möchtest, findest du einen Tutor z. B., indem du auf der [[Mailinglisten|Mailingliste]] &amp;quot;Traktoristen&amp;quot; fragst, ob dich jemand dabei unterstützen kann.&lt;br /&gt;
&lt;br /&gt;
Bei der Nutzung der Maschine füllst du ein Logbucheintrag aus. Am Ende notiert dein Tutor darauf, ob er ein gutes Gefühl dabei hat, dich allein lasern zu lassen. Wenn dies 5x in Folge notiert wurde, darfst du den Lasercutter allein bedienen. Du wirst dann gleichzeitig Tutor für Neue und kannst dein Wissen weitergeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedienung ==&lt;br /&gt;
&lt;br /&gt;
* [[Lasercutter/Software]] - Bedienung der Laser-Software &amp;quot;LaserWork&amp;quot;&lt;br /&gt;
* [[Lasercutter/Externe Software]] - Erstellen von DXF-Dateien mit externer CAD-Software&lt;br /&gt;
* [[Lasercutter/Bedienung]] - Bedienung der Maschine selbst&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Die Maschine ==&lt;br /&gt;
Bei unserem Lasercutter handelt es sich um einen [http://www.brmlasers.de/lasermaschinen/co2-lasermaschinen/brm-90130/ BRM90130] der Firma [http://www.brmlasers.de BRM] mit einer 150W-Röhre.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Leistung&lt;br /&gt;
| 150W CO2-Röhre&lt;br /&gt;
|-&lt;br /&gt;
! Bearbeitungsfläche&lt;br /&gt;
| 1280 mm * 850 mm (offiziell 1300 mm * 900 mm)&lt;br /&gt;
|-&lt;br /&gt;
! Max. Plattengröße&lt;br /&gt;
| {{Prüfe Info|1370 mm * 1100 mm}} (für dünne Platten &amp;lt;= 5mm)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dokumentation ===&lt;br /&gt;
# [[Media:BRM_90130_Gebrauchsanleitung.pdf|Deutsch-Niederländische Bedienungsanleitung]]&lt;br /&gt;
# [[Media:Usaul_manual_small.pdf|Usual manual (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Maintaince_manual.pdf|Maintaince manual (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Cutting_parameter.pdf|Software / Cutting Parameter (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Colourful_control_pannel_manual.pdf|Colourful control pannel manual (chinenglisch)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Materialien ==&lt;br /&gt;
Tipps, wo man Material bekommt, siehe [[Lasercutter/Material]].&lt;br /&gt;
&lt;br /&gt;
Was kann man lasern? Was nicht?&lt;br /&gt;
&lt;br /&gt;
=== Nein ===&lt;br /&gt;
* Metall (eloxiertes Aluminium funktioniert, Einbrennen von Trockenmolybdän-Spray auch, s. [[Lasercutter#Galerie]])&lt;br /&gt;
* Materialien mit (im Infrarot-Bereich) reflektierenden Oberflächen, z. B. Kupfer (/Platinen)&lt;br /&gt;
* Alles, was beim Verbrennen &#039;&#039;&#039;Blausäure&#039;&#039;&#039; (HCN / Cyanwasserstoff) freisetzt (z. B. PU, PA, ABS). &#039;&#039;&#039;In geringsten Konzentrationen extrem giftig!&#039;&#039;&#039;&lt;br /&gt;
* Alles, was beim Verbrennen &#039;&#039;&#039;Chlor&#039;&#039;&#039; oder andere korrosive Stoffe freisetzt (z. B. PVC, PTFE, Chlorkautschuk) &#039;&#039;&#039;Greift die Maschine an!&#039;&#039;&#039; (s. U. Kupferdraht-Test)&lt;br /&gt;
&lt;br /&gt;
=== Ja ===&lt;br /&gt;
* Holz - &#039;&#039;&#039;Natur-Materialien variieren stark. Mit jeder neuen Platte einen Test machen.&#039;&#039;&#039;&lt;br /&gt;
* Multiplex, MDF/HDF&lt;br /&gt;
* PMMA (Plexiglas/Acrylglas). Nicht verwechseln mit Bastlerglas/Hobbyglas (PS oder PVC)&lt;br /&gt;
* PS (Polystyrol), Kanten werden milchig&lt;br /&gt;
* PET, wird aber scheiße&lt;br /&gt;
* POM / Delrin (Polyacetal / Polyoxymethylen)&lt;br /&gt;
* (Stempel-)Gummi (Spezielles Produkt zum Lasern, nicht 0815 Gummi)&lt;br /&gt;
* Textil&lt;br /&gt;
* (Natur-)Leder&lt;br /&gt;
* Papier / Pappe&lt;br /&gt;
&lt;br /&gt;
=== Weiterlesen ===&lt;br /&gt;
* [https://vds.de/fileadmin/Website_Content_Images/VdS_Publikationen/vds_2516_web.pdf VDS - Kunststoffe: Eigenschaften, Brandverhalten, Brandgefahren] Tabelle auf S. 19&lt;br /&gt;
* [http://www.chymist.com/Polymer%20Identification.pdf Identifikation von Kunststoffen] u. A. mit Kupferdraht-Test&lt;br /&gt;
&lt;br /&gt;
== Schnittparameter ==&lt;br /&gt;
Alle angegebenen Werte sind Richtwerte, es empfiehlt sich jeweils vor dem Lasern des eigentlichen Objektes, eine kleine Probe mit den gewünschten Schnittparametern durchzuführen. Die Konkreten Werte hängen von vielen Parametern ab, die nicht immer konstant sind (Sauberkeit der Linse, Fokussierung des Lasers, aktuelle Leistung der Laserröhre, konkrete Materialbeschaffenheit [Holz],  ...).&lt;br /&gt;
Bei Naturmaterialien wie Holz und bei Sperrholz kommt es sehr auf die Art, das Alter und die Feuchtigkeit des Holzes an. Insbesondere ist Sperrholz nicht gleich Sperrholz nicht gleich Multiplex. Deshalb sind hier genaue Angaben und evt. auch die Bezugsquelle notwendig.&lt;br /&gt;
&lt;br /&gt;
=== Liste erweitern ===&lt;br /&gt;
{{Todo-Status|Hilf mit!}}&lt;br /&gt;
Bitte erweitert diese Liste um eure eigenen ermittelten Werte; insbesondere, wenn ihr Materialien lasert, die hier noch nicht aufgeführt sind. Falls ihr für ein Material bei gleicher Stärke einen anderen Wert ermittelt, erstellt einfach einen zweiten Eintrag.&lt;br /&gt;
&lt;br /&gt;
Noch ein Hinweis zum Testen: Achtet darauf, dass ihr bei voller Fahrt testet. Die Beschleunigungswege können bei hohen Geschwindigkeiten (z. B. für Papier und Pappe) sehr groß sein. Testet deshalb möglichst im manuellen Betrieb. So könnt ihr hören, ob die volle Geschwindigkeit erreicht ist und dann für den Test die Pulse-Taste drücken.&lt;br /&gt;
&lt;br /&gt;
=== Plexiglas / Acryl ===&lt;br /&gt;
Achtung! &amp;quot;Bastelglas&amp;quot; aus den Baumärkten wird oftmals als &amp;quot;Plexiglas&amp;quot; verkauft. Es handelt sich um Polystyrol. Besc**** zu schneiden mit hoher Brandgefahr!&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || || gravieren || 300 (250-300) || || 10-30 || 50 || Mitte Material || ? || Carsten || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || || gravieren || 200  ||20||20||50|| Oberfläche-0,5mm || ? || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas farbig|| || gravieren || 200 (150-250) || 20 || 20 || 50 ||  Oberfläche-1,0mm || 0.06 (0.12-0.06) || Stefan H. || 01.12.2018 || bestes Ergebnis bei Speed 200 mit 0.06 Sew width, noch gut wahrnehmbar bis Speed 250 mit Sew width 0.12&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 1 || schneiden || 100 (40-130) ||  || 75-80 || 50 || ? || ? || BRM || || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 2 || schneiden || 60 (30-90) ||  || 75-80 || 50 || ? || ? || BRM  || || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 3 || schneiden || 25 (10-40) ||  || 75-80 || 50 || 6 || ? || Carsten || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 3 || schneiden || 25  || 40 || 80 || 50 || 6 || ? || MiniKlaus || 04.06.2016 || Minimalpower verbessert Ecken.&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 5 || schneiden || 12 (10-40) ||  || 75-80 || 50 || ? || ? || BRM || ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 6 || schneiden || 10 ||  || 85 || 50 || 4 || ? || JanS || 15.09.2016 ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 8 || schneiden || 5 (2-7) ||  || 75-80 || 50 || ? || ? || BRM  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 10 || schneiden || 4 (2-6) ||  || 75-80 || 50 || ? || ? || BRM || ||  &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas schwarz || 3 || schneiden ||  ||  ||  || 50 || ? || ? || JanS || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas schwarz || 3 || schneiden || 25 || 45 || 85 || 50 || 6 || - || MiniKlaus || 13.07.2016 || schneidet sich wie klar und weiß&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas weiß || 3 || schneiden || 25  || 45 || 85 || 50 || 6 || - || MiniKlaus || 05.06.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas orange || 5 || schneiden || 14  || 85 || 95 || 50 || 5,0 || - || JanS || 10.11.2016 || das von RedNose&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas orange || 5 || schneiden || 12  || 80 || 95 || 50 || 5,0 || - || Stefan H. || 10.11.2018 || Bei höherem Speed nicht durch&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== POM / Delrin  ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| POM natur || 2 || schneiden || 32  || 40 || 90 || 50 || 6,5 || - || JanS || 30.09.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM natur || 6 || schneiden || 8-9  || 40 || 90 || 50 || 4,5 || - || JanS || 30.09.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM schwarz || 3 || schneiden || 25  || 40 || 90 || 50 || 6 || - || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM schwarz || 5 || schneiden || 15  || 40 || 85 || 50 || 5 || - || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PP (Polypropylen)  ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| PP grau || 2 || schneiden ||  ||  ||  ||  ||  || - || SvenJ || 08.09.2016 || sinnlos, geschmolzener Klumpen&lt;br /&gt;
|-&lt;br /&gt;
| PP grau || 2 || gravieren|| 200  || 30 || 30 || 50 || 7 || - || SvenJ || 08.09.2016 || Scan Interval 0,5mm&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Holz ===&lt;br /&gt;
Übersicht zur Gravur weiter unten in der Galerie&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Flugzeug Sperrholz || 1 || schneiden || 100 || || 85 || 50 || 6,5 || 0,1 ||  JanS, Hauke || 13.05.16 || *1,  Q1&lt;br /&gt;
|-&lt;br /&gt;
| Flugzeug Sperrholz || 1,5 || schneiden || 75 || ||  85 || 50 || 6 || 0,1 ||  JanS, Hauke || 13.05.16 || *1, Q2&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 1 || schneiden || 70 (30-120) || || 75-80 || 50 || ? || ? || BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 3 || schneiden || 45 (20-70) || || 75-80 || 50 || ? || ? || BRM || || fürs Stecken: Sew compensation 0.15 outward&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || 3 || schneiden || 35 || 70 || 85 || 50 || 6.0 || ? || Stefan H.|| 01.12.18 || Qualität B/BB&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 4 || schneiden || 45(20-70) || || 75-80 || 50 || ? || ? || Carsten || 00.04.16 || -&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Buche || 4 || schneiden || 15 || || 90 || 50 || 3,5 || ? || Sven || 07.04.24 || beim OBI erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || 6 || schneiden || 10 (10-50) || || 90 || 50 || 3,5 || ? || Carsten || 04.05.16 || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz (Buche) || 6 || schneiden || 15 || || 95 || 50 || 3,5 || ? || Peter || 29.08.2024 || Neue Röhre&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 8 || schneiden ||5 (2-7) || || 75-80 || 50 ||  ||  ||  BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 10 || schneiden || 4 (2-6) || || 75-80 || 50 ||  ||  || BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel|| 10 || schneiden || 8 || 80 || 85 || 50 || 2,5 || ? || Leon || 20.10.16 ||   &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Kiefer || 12 || schneiden || 5 (2-6) || || 90-100 || 50 || 1,5 || ? || Carsten ||  || Druckluft auf ca 1/3&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt; Sperrholz Birke &amp;lt;/span&amp;gt;  || 12 || schneiden ||&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Nicht möglich &amp;lt;/span&amp;gt;|| X || X || 50 || 1,5 || ? || Carsten || || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || - || gravieren (scan) || 250 || 25-65 || 25-65 || 50 || 6.5 || - || Stefan H. || 01.12.18 || für &amp;gt; 250 spd keine Veränderung im Ergebnis wahrnehmbar&lt;br /&gt;
|-&lt;br /&gt;
| Bambus || 12 || gravieren|| 200 || || 50 || 50 || 7 || ? || NilsJen || 11.09.16  || ca. 1-2mm tief eingelasert, noch nicht optimal&lt;br /&gt;
|-&lt;br /&gt;
| Gummibaum || - || gravieren (scan) || 300 || 35 || 35 || 50 || 6 || - || Florian || 19.10.16 || 0,6mm tief, gute Bräunung [http://www.ikea.com/de/de/catalog/products/50228618/ Ikea-Schneidbrett MAGASIN]&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 8 || schneiden || 20-25 || ? || 95 || 50 || 3 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 10 || schneiden || 10 || ? || 95 || 50 || 2 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 12 || schneiden || 10 || ? || 95 || 50 || 1,5 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Multiplex Birke || 6 || schneiden || 8 || ? || 95 || 50 || 4 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Multiplex Birke || 10 || schneiden || 2 || ? || 95 || 50 || 2 || - || Florian || 24.11.16 || viel gekokel, beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| |&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Multiplex Birke&amp;lt;/span&amp;gt; || 12 || schneiden || &amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Nicht möglich &amp;lt;/span&amp;gt; || - || - || 50 || 2 || - || Florian || 24.11.16 || nicht möglich, beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MDF / HDF ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF unklare Benennung || 3 || schneiden ||48 || || 85 || 50 || 5,5 || 0,035 - 0,04 || JanS || 02.05.2016 || -&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF unklare Benennung || 3 || schneiden ||40 || || 85 || 50 || 5,5 || 0,035 - 0,04 || Leon || 01.12.2016 || Eventuelles Nachlassen der Leistung?&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF (Bauhaus) || 3 || schneiden || 20-25 || 70 || 85 || 50 || 6,0 || - || Stefan H. || 03.12.2018 || verrußte Schnittkanten&lt;br /&gt;
|-&lt;br /&gt;
| HDF (Q10) || 3 || schneiden || 25-30 || 70 || 85 || 50 || 6,0 || - || Stefan H. || 03.12.2018 || schöne, versiegelte Schnittkanten&lt;br /&gt;
|-&lt;br /&gt;
| HDF || 3 || cut-gravieren ||70 || 10 || 35 || 50|| 6 || || SvenJ || 08.09.2016 || Einzelner Strich im CUT Modus!&lt;br /&gt;
|-&lt;br /&gt;
| HDF || 5 || cut ||10 || 75 || 85 || 50|| 5 || || Leon || 12.01.2017 || - &lt;br /&gt;
|-&lt;br /&gt;
| MDF || 5 || schneiden || 15 || || 85 || 50 || 4,5 || ? || TobiasJ ||05.01.2017 || -&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 5 || scan-gravieren|| 200-250 || 10 || 35 || 50 || 6 || 0,1 || TobiasJ ||05.01.2017 || Je nach Schwärzungsgrad, Geschwindigkeit variieren&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 10 || schneiden || 6 || || 85 || 50 || 2 || ? || JanS ||18.04.2016 || -&lt;br /&gt;
|-&lt;br /&gt;
| --- || --- || --- || --- || --- || --- || --- || --- || --- || --- || 04.06.2024 || NEUE RÖHRE&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 3 || schneiden || 45 || 85 || 95 || 50 ||  ||  || PeterS ||04.06.2024 || Material: Bauhaus - NEUE RÖHRE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Papier / Pappe / Karton ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Screenboard-Karton || 2 || schneiden || 50 || ||  50 || 50 || 6 || 0,1 O || JanS || 13.05.2016 || *2 Q3 &lt;br /&gt;
|-&lt;br /&gt;
| Buchbinderpappe || 2 || schneiden || 50 || 60 ||  85 || 50 || 5,5  || 0,12 || Stefan H. || 09.02.2019 ||  &lt;br /&gt;
|-&lt;br /&gt;
| Tonkarton || 0,8 || schneiden || 250 ||  || 50 || 50 || 6  ||  || Daniel B. || 20.06.2023 ||  &lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 0,9 || schneiden || 250 || || 50 || 50 || 6 || 0,1 O || JanS || 13.05.2016 || *3 Q4&lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 1,5 || schneiden || 200 || ||  50 || 50 || 6 || 0,07 O || JanS || 14.05.2016 || *3 Q5&lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 3,0 || schneiden || 75 || || 50 || 50 || 6 || 0,06 O || JanS || 14.05.2016 || *3 Q6&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 5-6 || schneiden || || ||  || 50 || ? || ? || JanS || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 3 || schneiden || 200 || || 30 || 85 || ? || ? || TobiasJ|| 16.03.2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 1 || schneiden || 400 || || 35 || 50 || ? || ? || Hauke || 06.04.2016 ||  *1&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 1 || gravieren || 400 || || 17 || 50 || ? || ? || Hauke || 06.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Transparentpapier || ? 80 g/m² || gravieren || 400 || || 10 || 50 || 8 || - || Patric || 30.09.2016 || Gravur wird weiß bzw. opak &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stahl ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Stahl || egal || Gravur || 65 || 85 ||  85 || 50 || 7 || 0,1 || MiniKlaus || 30.0.2016 || Rasterabstand:0.1mm *4 Q7 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Aluminium ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium schwarz || -- || Gravur || 160 || 80 ||  80 || 50 || 7 || 0.08 || MiniKlaus || 14.11.2016 || [[Lasercutter#Galerie|Testbild]]&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium grau|| -- || Scan || 100 || 10 ||  10 || 50 || 7 || 0.1 || SvenJ || 13.10.2018 || &amp;quot;Natur&amp;quot; Alu, wird heller. siehe Anschlaege Holzwerkstatt&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium schwarz|| -- || Gravur || 100 || 10 ||  10 || 50 || 7 || 0.1 || Marcel || 13.10.2018 || Alu wird heller -&amp;gt; [[Lasercutter#Galerie|SSD-laser-gravur.jpeg]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stempelgummi ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || schneiden ||30 ||40 || 85 || 50 || 7 || - || MiniKlaus || 23.07.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || gravieren ||250 ||65 || 70 || 50 || 7 || 0.06 || MiniKlaus || 23.07.2016 || Kontour nicht schneiden.  Dauert recht lange.&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || schneiden ||15 ||70 || 85 || 50 || 6.5 || - || Stefan H. || 21.11.2018 || Bei höherer Speed nicht durch.&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || gravieren ||200 ||65 || 70 || 50 || 6.5 || 0.06 || Stefan H. || 21.11.2018 || 0.7mm Material abgetragen.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Leder ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 1 || schneiden ||100|| 50 || 50 || 50 || 7 || - || SvenJ|| 15.9.2016 || 1,5mm Rinder-&amp;quot;Nubuk&amp;quot;; Kanten werden unterschiedlich&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 1 || gravieren ||200 || 15 || 15 || 50 || 7 || - || SvenJ || 15.9.2016 ||&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||200 || 15 || 15 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur deutlich in die Oberfläche gebrannt, Laserstaub lässt sich feucht gut wegwischen. &lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||300 || 10 || 10 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur sicht-  &amp;amp; fühlbar &lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||500 || 10 || 10 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur sichtbar, aber praktisch nicht fühlbar &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Glas ===&lt;br /&gt;
Glas lässt sich nur gravieren. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Glas|| egal || gravieren ||50, 100|| 30 || 100 || 50 || 7 || - || Carsten|| 23.12.2016 || Haushaltsglas auf Rotationsachse. Tiefe/Deutlichkeit der Gravur steigt bei steigendem Energieeintrag langsam an. Zu hoher Energieeintrag führt erst zu verschwommenen Konturen mit Faserbildung später zum Bruch. &lt;br /&gt;
|-&lt;br /&gt;
| Glas|| egal || gravieren || 100|| 25 || 25|| 50 || 5.0 || 0.06 || Stefan H.|| 14.02.2019 ||Trinkglas aus Milchglas. Ggf. 2x befahren.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sonstiges Material ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Mylar Folie || egal || schneiden || 400 || 40 || 40 || 50 || 7.5 || - || Ali || 2.10.2017 || Solder-Stencil, Rastern mit 0.1mm &lt;br /&gt;
|-&lt;br /&gt;
| Straußen Ei|| egal || gravierend || 50 || 50|| 40 || 50 || 7.5 || - || cobii || 28.06.2018 || Straußenei wurde gut gelasert s. Bild [[https://wiki.attraktor.org/File:StraussenEi.jpg]]&lt;br /&gt;
|-&lt;br /&gt;
| Polystyrol || 1,5mm|| schneiden || 20 || 55 || 70 || 50 || 6 || - || Aeris || 07.08.2018 || laserwidth ~.8mm&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Legende ===&lt;br /&gt;
:; Speed&lt;br /&gt;
:: Schnittgeschwindigkeit in Millimeter pro Sekunde&lt;br /&gt;
:; Power&lt;br /&gt;
:: Leistung des Lasers in Prozent. Da wir z.Z. eine 100 W Laserröhre in unserm Laser haben, entspricht der Zahlenwert der Leistung in Watt.&lt;br /&gt;
:; Linse&lt;br /&gt;
:: Angabe der Brennweite der verwendeten Linse in Millimetern. Wir haben derzeit zwei verschiedene Linsen eine mit einer Brennweite von 63,5 mm und eine mit einer Brennweite von 100 mm. Die Linse mit der Brennweite von 63,5 mm ist die Normal Linse, die bei dünneren Materialien die besten Schnittergebnisse erzielt. Die Linse mit der Brennweite von 100 mm ist zum Schneiden von dickere Materialien.&lt;br /&gt;
:; Fokus&lt;br /&gt;
:: Hier ist der Abstand der Unterkante des Objektivtubuses zur Materialoberfläche angegeben. Bei der 63,5 mm Linse liegt der  Fokus etwa 7,5 mm unterhalb des Objektivtubuses. Da sich der Fokus in etwa in der Mitte des Materials liegen sollte, lässt sich der notwendige Abstand auch leicht rechnerisch bestimmen.&lt;br /&gt;
:; Sew width&lt;br /&gt;
:: Dieser Wert kann bei den Schnittparametern angegeben werden. Er gibt den Stahldurchmesser an und wird bei Passungendafür verwendet den Strahldurchmesser zu berücksichtigen. Der zu verwendende Wert hängt stark von dem Material und seiner Dicke sowie der Schnittgeschwindigkeit ab.&lt;br /&gt;
:; Benutzer &lt;br /&gt;
:: Wenn hier ein Benutzer eingetragen ist, heißt das, dass es sich um von uns auf unserer Maschine ermittelte Werte handelt. Falls nicht, handelt es sich um Literaturwerte. Die Quelle sollte unter Bemerkungen angegeben werden.&lt;br /&gt;
:; ?&lt;br /&gt;
:: die mit einem &amp;quot;?&amp;quot; angegebenen Werte müssen noch eingetragen bzw. bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
=== Fußnoten ===&lt;br /&gt;
: &#039;&#039;&#039;*1&#039;&#039;&#039; - Bei langen geraden Strecken muss die Geschwindigkeit z.T deutlich reduziert werden, da der Laser erst auf diesen richtig beschleunigt.&lt;br /&gt;
: &#039;&#039;&#039;*2&#039;&#039;&#039; - Beiseitig weiß beschichteter Karton. Die Schmauchspuren lassen sich mit einem leicht feuchten Lappen und etwas Druck relativ gut abreiben. Überstehenden Leim oder Kleber besser abtupfen, nicht wischen. Ponal Express geht gut oder aber Planatol BB.&lt;br /&gt;
: &#039;&#039;&#039;*3&#039;&#039;&#039; - einfache, leicht gelbliche Pappe, keine Schmauchspuren, relativ saubere Ränder. Ponal Express geht gut oder aber Planatol BB.&lt;br /&gt;
: &#039;&#039;&#039;*4&#039;&#039;&#039; - Lasermarkierung auf Stahl mit Molybdänsulfat-Trockenschmiermittel. Einsprühen mit leichter Schicht. Außenlinie schneiden nach Rastern verbessert den Kontrast. Möglich mit verchromten Werkzeugen und wahrscheinlich mit allen Stahlarten. Getestetes Spray unter Q7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quellen und weitere Materialbeschreibung ===&lt;br /&gt;
: &#039;&#039;&#039;Q1&#039;&#039;&#039; - Andresen &amp;amp; Jochimsen 25 €/qm. Wird aber nur in ganzen Platten (1500 mm* 1500 mm) verkauft. Transportschnitte werden aber durchgeführt.&lt;br /&gt;
: &#039;&#039;&#039;Q2&#039;&#039;&#039; - Andresen &amp;amp; Jochimsen 23 €/qm. Wird aber nur in ganzen Platten (1500 mm* 1500 mm) verkauft. Transportschnitte werden aber durchgeführt.&lt;br /&gt;
: &#039;&#039;&#039;Q3&#039;&#039;&#039; - Beidseitig weiß beschichteter Karton. Wird bei Boesner (www.boesner.com, 2 Filialen in Hamburg) unter dem Namen Phoebe Einlegekarton verkauft. Z.B. 1 m * 0,7 m 3,75 €. Es gibt auch kleinere Formate.&lt;br /&gt;
: &#039;&#039;&#039;Q4&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 1.94 €. &lt;br /&gt;
: &#039;&#039;&#039;Q5&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 2,55 €. &lt;br /&gt;
: &#039;&#039;&#039;Q6&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 4,38 €. &lt;br /&gt;
: &#039;&#039;&#039;Q7&#039;&#039;&#039; - Molybdänsulfid-Trockenschmiermittel. Schlechte Verfügbarkeit in Deutschland. &amp;quot;CRC DRY MOLY LUBE MoS2-Gleitlack&amp;quot; Dose reicht für ~500 Markierungen . Dose (400ml) 13-17€ . &lt;br /&gt;
: &#039;&#039;&#039;Q8&#039;&#039;&#039; - Gummi speziell für das Lasern von Stempeln. Ebay &amp;quot;Lasergummi&amp;quot;. A4 Platte - 10€ [http://www.ebay.de/itm/Lasergummi-Stempelgummi-2-3-mm-Graviermaterial-fur-Lasergraviermaschine-Stempel-/161704835355][http://www.gravierbedarf.de/epages/63201300.sf/de_DE/?ObjectPath=/Shops/63201300/Categories/StempelGummi]&lt;br /&gt;
: &#039;&#039;&#039;Q9&#039;&#039;&#039; - Hochwertiges Birkensperrholz, Pappelsperrholz, Qualität B/B für Laser/Modellflugzeug: [http://www.thomabalsa.de/]&lt;br /&gt;
: &#039;&#039;&#039;Q10&#039;&#039;&#039; - Sperrholz in B/BB Qualität, HDF nach EN622-5/EN622-1 und breite Palette an Acryl: [http://www.expresszuschnitt.de/]&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
Diese ist eine Sammlung von Informationen, die im Laufe der Arbeit mit unserem Lasercutter gesammelt wurden. Sie ist erst einmal ungeordnet und unsystematisch.&lt;br /&gt;
* Der Wabentisch ist nicht 1300 mm sondern nur 1280 mm breit.Dieses ist bei der Materialbeschaffung zu beachten. Maximale Materialgröße: 1280 mm * 900 mm. (JanS)&lt;br /&gt;
* Es ist auf eine möglichst gute Planlage des Werkstückes zu achten. Bei dünnen Holz und MDF kann dieses problematisch sein. &lt;br /&gt;
* Im Zubehör-Schränkchen befinden sich diverse Magnete aus alten Festplatten, damit lassen sich nicht allzu stark gewellte Platten runterdrücken.&lt;br /&gt;
* Die Planlage diverser Materialien kann durch die Verwendung der Festplattenmagneten deutlich verbessert werden. Evt. zwei Magneten verwenden. Achtung! Passt auf, das der Linsentubus nicht mit den Magneten kollidiert. (Carsten und JanS)&lt;br /&gt;
* Wenn der Laserkopf weit ausgefahren wird kann er beim Hochschieben an der zweiten Schraube hängen bleiben. Dann setzt er beim Fahren am Tisch auf! Daher genau darauf achten den Kopf wieder wirklich ganz nach oben zu schieben. (Marcel)&lt;br /&gt;
&lt;br /&gt;
=== Materialspezifische Tipps ===&lt;br /&gt;
Acryl&lt;br /&gt;
*Beim Schneiden und Gravieren von &amp;gt;5mm Platten sollte man die Schritte trennen und dazwischen die Linse verstellen. -0.5mm unter der Oberfläche gibt die schärfte Gravur.&lt;br /&gt;
*Schutzfolie an der Oberseite zu belassen führt zu einer ungleichmäßigen Gravur und spürbar reduzierter Gravurtiefe (siehe Bild unten). Verunreinigungen durch das Lasern ohne Schutzfolie lassen sich aber gut mit Brennspiritus (nicht Aceton!) wieder entfernen. =&amp;gt; besser also ohne Schutzfolie. Schutzfolie an der Unterseite sollte bleiben wegen Laserreflektionen vom Wabentisch.&lt;br /&gt;
POM / Delrin&lt;br /&gt;
*Geruchsbelastung ist sehr gering. Geruchloses Formaldehyd dampft ab, ähnlich MDF bei Zerspannung. Lüftung kurz weiterlaufenlassen sonst Kopfschmerzen etc.&lt;br /&gt;
*Sehr brauchbares Material für mechanische Konstruktionen. POM ist um ein vielfaches zäher als Acryl, welches gerade bei engen Toleranzen gerne zerbricht.&lt;br /&gt;
*Die Reibung von POM ist relativ gering, sodass es auch für Gleitanwendungen, wie etwa Schlitten in Aluminiumprofilen eingesetzt werden kann.&lt;br /&gt;
*Gewinde lassen sich gut in POM schneiden und halten erstaunlich hohe Belastungen aus. &lt;br /&gt;
*Kleben von POM auf POM ist schwierig bzw. unmöglich. Evt. kann es zusammengeschweißt werden. Schmelzpunkt 165°C bis 180°C.&lt;br /&gt;
HDF&lt;br /&gt;
*Beim &amp;quot;Scan&amp;quot; für die Gravuren schlägt sich neben der Schrift immer der Leimdampf nieder. Dies kann mit einem kleinen Stück Papierklebeband, durch welches man durchlasert, verhindert werden. &lt;br /&gt;
*Der Leimdampf kann mit einem feuchten Lappen weggewischt werden. Das HDF zieht schnell feuchtigkeit und verändert seine Maße. Also erst zusammenbauen, dann reinigen.&lt;br /&gt;
*Die Unterschiede von  MDF/HDF aus dem Baumarkt und HDF nach EN622-5/EN622-1 sind erheblich. Wenn Material geschliffen und lackiert werden soll =&amp;gt; Baumarkt reicht; wenn Material unbehandelt bleibt =&amp;gt; HDF nach EN622-5/EN622-1 nehmen.&lt;br /&gt;
Holz&lt;br /&gt;
* Beim Gravieren von Holz lässt sich u.U. eine dunklere Färbung bei weniger Materialabtrag erreichen, wenn der Tisch ~6mm aus dem Fokus gefahren wird. Dazu kann man die Pen Up/Down Einstellungen verwenden. Auf den Abstand zur Linse achten.&lt;br /&gt;
Leder&lt;br /&gt;
* Die Geruchsentwicklung beim Schneiden &amp;amp; Gravieren ist sehr stark, der Filter hält diese kaum zurück. Daher bitte: Fenster zu! (v.a. im Nähraum &amp;amp; Elektronik Werkstatt, gerne auch alle anderen)&lt;br /&gt;
* Laserstaub vom Gravieren ließ sich bei Glattledern mit feuchtem Tuch gut entfernen&lt;br /&gt;
&lt;br /&gt;
==Rotation==&lt;br /&gt;
Wir haben für unseren Lasercutter einen Rotationseinsatz. Damit können Runde Dinge graviert oder geschnitten werden. Siehe [[Lasercutter/Rotary]].&lt;br /&gt;
&lt;br /&gt;
==Galerie==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:BeschriftungsTest.jpg|Lasermarkierung von eloxiertem Aluminium (schwarz)- kleinste Schrift im Bild 1.1mm Höhe&lt;br /&gt;
File:Universal-snap-fit.jpg|[https://tltl.stanford.edu/project/universal-snap-fit Universal Snap Fit] in 5mm Sperrholz&lt;br /&gt;
File:GravurUebersicht.jpg|Ergebnis unterschiedlicher Leistungs/Geschwindig-keits Kombinationen in Pappel Sperrholz&lt;br /&gt;
File:GravurSeite.jpg|Einbrenntiefe unterschiedlicher Leistungs/Geschwindig-keits Kombinationen in 4mm Pappel Sperrholz&lt;br /&gt;
File:Bohrstaender.jpg|Bohrständer für ein Bohrerset aus HDF&lt;br /&gt;
File:Cases_Mk.jpg|Projektboxen aus HDF und Plexiglas&lt;br /&gt;
File:StraussenEi.jpg|Straußenei gelasert&lt;br /&gt;
File:SSD-laser-gravur.jpeg|Eloxiertes Alu graviert&lt;br /&gt;
File:Plexiglas-3mm-fluoreszierend-cut+gravur.jpg|Spieltoken aus Plexiglas fluoreszierend 3mm mit cut und scan&lt;br /&gt;
File:Plexiglas-gravur-schutzfolie.jpg|Gravur auf Plexiglas mit (links, sichtbare Unebenheiten) und ohne (rechts, sauberere Gravur) Schutzfolie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wartung ==&lt;br /&gt;
Die regelmäßige Wartung (Reinigung, Schmierung, etc.) übernehmen derzeit Tobias, Marcel und Florian. Wenn irgendetwas an der Maschine zu beanstanden ist, bitte eine Mail an die bekannte Mailingliste.&lt;br /&gt;
&lt;br /&gt;
* [[Media:Lasercutter Logbucheintrag.pdf|Logbucheintrag zum Ausdrucken]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 19.04.2022: Z-Riemen gewechselt ===&lt;br /&gt;
* Der Riemen für die Z-Achse (Tisch hoch/runter) hat sich gelängt, konnte nicht weiter gespannt werden und ist deshalb übergesprungen&lt;br /&gt;
* Riemen: Profil HDT, 5mm Zahnabstand, Breite: 15mm, Länge: 5,3m (verschweißt), Kosten: 193,38 € (inkl. MwSt. &amp;amp; Versand)&lt;br /&gt;
* Gewechselt von Tobias und Florian&lt;br /&gt;
* Dafür musste das gesamte Gestell ausgebaut werden&lt;br /&gt;
* Zeitbedarf: 2,5 Stunden&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Anschluss Motorkabel&lt;br /&gt;
|-&lt;br /&gt;
! Kabel vom Motortreiber !! Kabel zum Motor&lt;br /&gt;
|-&lt;br /&gt;
| grün || gelb/schwarz&lt;br /&gt;
|-&lt;br /&gt;
| gelb || blau/rot&lt;br /&gt;
|-&lt;br /&gt;
| braun || grün/orange&lt;br /&gt;
|-&lt;br /&gt;
| weiß || weiß/braun&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 07.03.2024: Linse bei 63,5mm Optik getauscht ===&lt;br /&gt;
* Gewechselt von Tobias&lt;br /&gt;
* Zeitbedarf: 0,5 Stunden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 02.05.2024: Laserröhre und Netzteil getauscht. ===&lt;br /&gt;
* Die bisherige 100W Röhre hat in ihrer Leistung nachgelassen und wurde daher durch eine 150W Röhre ersetzt.&lt;br /&gt;
* Upgrade des Laser-Netzteils passend für eine 150W Röhre.&lt;br /&gt;
* Der Umbau verlief absolut reibungslos.&lt;br /&gt;
* Gewechselt von Carsten und Tobias&lt;br /&gt;
* Zeitbedarf: ca. 3 Stunden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
{{Template:SieheAuch:Lasercutter}}&lt;br /&gt;
{{Template:SieheAuch:CNC-Maschinen}}&lt;br /&gt;
&lt;br /&gt;
[[Category:CNC-Maschinen]]&lt;br /&gt;
[[Category:QR:todo]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2025&amp;diff=41236</id>
		<title>Micropython Kurs 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2025&amp;diff=41236"/>
		<updated>2024-07-28T11:02:07Z</updated>

		<summary type="html">&lt;p&gt;Kapest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Kurs ist noch in der Planung&amp;lt;br&amp;gt;&lt;br /&gt;
Für ganz Neugierige: https://micropython.aundz.net/index.php?title=Micropython_Kurs_2025&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=3._Lektion:_Datentypen&amp;diff=41235</id>
		<title>3. Lektion: Datentypen</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=3._Lektion:_Datentypen&amp;diff=41235"/>
		<updated>2024-07-27T17:13:44Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Fließkomma Zahlen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mit welche Arten von Daten kann Python umgehen?=&lt;br /&gt;
== Ganze Zahlen==&lt;br /&gt;
* positiv und negativ&lt;br /&gt;
* beliebige Größe (theoretisch)&lt;br /&gt;
* int()&lt;br /&gt;
=== Zahlendarstellung:===&lt;br /&gt;
==== Dezimal====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; _+1&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; _+1&lt;br /&gt;
2&lt;br /&gt;
...&lt;br /&gt;
9&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; _+1&lt;br /&gt;
10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Hexadezimal (0x, 0X)====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
10&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; hex(_)&lt;br /&gt;
&#039;0xa&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; _+1&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
TypeError: can&#039;t convert &#039;int&#039; object to str implicitly&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 0xa&lt;br /&gt;
10&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 0xa + 1&lt;br /&gt;
11&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; hex(0xa + 1)&lt;br /&gt;
&#039;0xb&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Binär (0b, 0B)====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; bin(10)&lt;br /&gt;
&#039;0b1010&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 0B1010&lt;br /&gt;
10&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
==== Casting:====&lt;br /&gt;
* hex()&lt;br /&gt;
* bin()&lt;br /&gt;
** &#039;&#039;&#039;Es werden nicht die Zahlen umgewandelt, sondern nur ihre Darstellung!&#039;&#039;&#039;&lt;br /&gt;
* int()&lt;br /&gt;
** &#039;&#039;&#039;Wandelt auch eine Textdarstellung in eine Zahl!&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; int(10)&lt;br /&gt;
10&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; int(10.0)&lt;br /&gt;
10&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; int(&#039;10.0&#039;)&lt;br /&gt;
Traceback (most recent call last):&lt;br /&gt;
  File &amp;quot;&amp;lt;stdin&amp;gt;&amp;quot;, line 1, in &amp;lt;module&amp;gt;&lt;br /&gt;
ValueError: invalid syntax for integer with base 10&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; int(&#039;10&#039;)&lt;br /&gt;
10&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Übung: ===&lt;br /&gt;
* Dezimalzahlen in Hexadezimalzahlen und Binärzahlen umwandeln.&lt;br /&gt;
* Hexadezimalzahlen in Dezimalzahlen und Binärzahlen umwandeln.&lt;br /&gt;
* Binärzahlen in Dezimalzahlen und Hexadezimalzahlen umwandeln.&lt;br /&gt;
* Wie groß kann eine ganze Zahl werden?&lt;br /&gt;
** Start mit 10**100&lt;br /&gt;
* Zahl mit input() holen und in Integer umwandeln.&lt;br /&gt;
** Prüfe mit type().&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(42)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(3.14)&lt;br /&gt;
&amp;lt;class &#039;float&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(&#039;Hallo&#039;)&lt;br /&gt;
&amp;lt;class &#039;str&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Schreibe ein Programm das Zahlen in allen drei Darstellungsarten ausgibt.&lt;br /&gt;
&lt;br /&gt;
== Fließkomma Zahlen==&lt;br /&gt;
* Punkt zur Trennung von ganzahligen und gebrochenen Teil der Zahl&lt;br /&gt;
* Darstellung in der wissenschaftlichen Schreibweise&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1.735e6&lt;br /&gt;
1735000.0&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1.735E6&lt;br /&gt;
1735000.0&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
# größere Zahlen werden auch in wissenschaftlicher Schreibweise ausgegeben.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1.1234e8&lt;br /&gt;
1.1234e+08&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Mantisse -&amp;gt; Float mit nur einer Stelle vor dem Komma&lt;br /&gt;
** Exponent -&amp;gt; positiver oder negativer Integer&lt;br /&gt;
* Die Größe ist begrenzt&lt;br /&gt;
** Ist für Micropython nicht definiert.&lt;br /&gt;
*** Eigene Experimente:&lt;br /&gt;
**** Mantisse: 8-stellig&lt;br /&gt;
**** Exponent: +38 ... -44&lt;br /&gt;
==== Casting:====&lt;br /&gt;
** float()&lt;br /&gt;
&lt;br /&gt;
=== Übung:===&lt;br /&gt;
* Ganze Zahlen in Fließkommazahlen umwandeln und umgekehrt.&lt;br /&gt;
* Wie viele Stellen werden maximal ausgegeben?&lt;br /&gt;
** Zahlen mit immer mehr Stellen eingeben und die Ausgabe in der REPL beobachten.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1.1234567890&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*** Wie viele Stellen werden intern verwendet?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1.99999999999&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*** Wann wird gerundet oder abgeschnitten?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1.89995&lt;br /&gt;
1.89995&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1.899995&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Fließkommazahlen werden von Micropython in normaler oder in wissenschaftlicher Darstellung ausgegben.&lt;br /&gt;
** Wann erfolgt die Umschaltung?&lt;br /&gt;
&lt;br /&gt;
=== Link===&lt;br /&gt;
* https://de.wikipedia.org/wiki/IEEE_754&lt;br /&gt;
** Micropython verwendet &#039;&#039;&#039;binary32&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Wahrheitswert / Boolsche Werte==&lt;br /&gt;
* In Programmen wird häufig eine Entscheidung erforderlich. &lt;br /&gt;
** Das Ergebnis kann dann Wahr oder Falsch sein.&lt;br /&gt;
*** &#039;&#039;&#039;True&#039;&#039;&#039; = Wahr oder eine Zahl !=0&lt;br /&gt;
*** &#039;&#039;&#039;False&#039;&#039;&#039; = Falsch oder 0&lt;br /&gt;
==== Casting:====&lt;br /&gt;
bool()&lt;br /&gt;
&lt;br /&gt;
=== Übung===&lt;br /&gt;
* Testet welche Zahlen &#039;&#039;&#039;True&#039;&#039;&#039; und welche &#039;&#039;&#039;False&#039;&#039;&#039; zurückgeben.&lt;br /&gt;
* Wie verhält es sich mit Texten?&lt;br /&gt;
&lt;br /&gt;
== None==&lt;br /&gt;
* Ist nichts - eine noch nicht verwendete Variable&lt;br /&gt;
* None != leere Variable&lt;br /&gt;
* Verwendung:&lt;br /&gt;
** Variable deklarieren ohne Wertzuweisung&lt;br /&gt;
&lt;br /&gt;
== String==&lt;br /&gt;
* String ist sowohl ein Datentyp als auch eine Datenstruktur.&lt;br /&gt;
* Ein String ist eine Zeichenkette, Also die Aneinanderreihung von Zeichen. Also Worte oder Sätze oder auch ganze Texte.&lt;br /&gt;
* Auch ein einzelnes Zeichen ist in Python ein String.&lt;br /&gt;
* Micropython benutzt UNICODE. UTF8.&lt;br /&gt;
** Zeichengröße: 8-Bit&lt;br /&gt;
** 0 ... 127 entspricht dem ASCII-Zeichensatz&lt;br /&gt;
** &amp;gt;127 ist eine Auswahl aus nationalen Sonderzeichen&lt;br /&gt;
* Strings werden in einfache oder doppelte Anführungszeichen gesetzt.&lt;br /&gt;
** Das ermöglicht Anführungszeichen in einem String auszugeben.&lt;br /&gt;
** Strings dürfen nicht auf mehrere Zeilen verteilt werden.&lt;br /&gt;
* Es gibt auch Strings mit drei einfachen oder doppelten Anführungszeichen.&lt;br /&gt;
** In diesen werden Zeilenumbrüche übernommen.&lt;br /&gt;
&lt;br /&gt;
==== Casting:====&lt;br /&gt;
* str() -&amp;gt; wandelt Zahl in Text&lt;br /&gt;
* ord() -&amp;gt; wandelt einen Buchstaben in den UTF-8 Code&lt;br /&gt;
* chr() -&amp;gt; wandelt UTF-8 Code Buchstaben&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; str(3.14)&lt;br /&gt;
&#039;3.14&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; ord(&#039;a&#039;)&lt;br /&gt;
97&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; chr(97)&lt;br /&gt;
&#039;a&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Übung===&lt;br /&gt;
* Erstelle verschiedene Stringvariablen.&lt;br /&gt;
** Gebe Anführungszeichen im Text aus.&lt;br /&gt;
* Zahlen in Strings Umwandeln und umgekehrt.&lt;br /&gt;
* Erstelle Strings mit 3 Anführungszeichen und teste wie sich Zeilenumbrüche darin verhalten.&lt;br /&gt;
* Versuche den UTF-8 Code verschiedener nicht ASCII-Zeichen zu ermitteln.&lt;br /&gt;
* Versuche die Zeichen für verschiedene Codes &amp;lt;256 anzuzeigen.&lt;br /&gt;
&lt;br /&gt;
== Komplexe Zahlen==&lt;br /&gt;
Micropython kann auch mit komplexen Zahlen rechnen. Das werden wir aber nicht besprechen.&lt;br /&gt;
&lt;br /&gt;
== Zu welchem Typ gehört eine Variable==&lt;br /&gt;
* Da Variableninhalte von unterschiedlichen Typen sein können, bietet Python die Möglichkeit den Typ zu ermitteln. &lt;br /&gt;
** type()&lt;br /&gt;
&lt;br /&gt;
=== Übung===&lt;br /&gt;
* Erzeuge verschiedene Variablen und ermittle deren Typ.&lt;br /&gt;
* Ändere den Datentyp einer Variablen und teste dann.&lt;br /&gt;
&lt;br /&gt;
== Was haben wir gelernt?==&lt;br /&gt;
* Grundlagen der wichtigsten Datentypen.&lt;br /&gt;
&lt;br /&gt;
== Navigation==&lt;br /&gt;
[[Micropython_Kurs_2023_-_Teil_1|Zurück zu Micropython Kurs 2023 - Teil 1]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2023|Zurück zur &amp;quot;Micropython Kurs 2023&amp;quot; Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Programmieren|Zurück zur Programmieren Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attraktor_Wiki|Zurück zur Wiki Startseite]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_f%C3%BCr_Umsteiger&amp;diff=41159</id>
		<title>Micropython für Umsteiger</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_f%C3%BCr_Umsteiger&amp;diff=41159"/>
		<updated>2024-07-07T10:50:00Z</updated>

		<summary type="html">&lt;p&gt;Kapest: Created page with &amp;quot;Dieser Kurs ist noch in der Planung&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Kurs ist noch in der Planung&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2025&amp;diff=41158</id>
		<title>Micropython Kurs 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2025&amp;diff=41158"/>
		<updated>2024-07-07T10:49:46Z</updated>

		<summary type="html">&lt;p&gt;Kapest: Created page with &amp;quot;Dieser Kurs ist noch in der Planung&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dieser Kurs ist noch in der Planung&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=41157</id>
		<title>Programmieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=41157"/>
		<updated>2024-07-07T10:39:07Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Kurse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite enthält links zu den Seiten im Wiki die sich mit dem Theme Programmieren beschäftigen.&lt;br /&gt;
&lt;br /&gt;
==Kurse==&lt;br /&gt;
[[Micropython Kurs 2022]] - Dieser Kurs ist jetzt beendet. Seine Inhalte werden nach und nach Eingang in die Micropython Referenz finden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2023]] - Dieser Kurs startet am 31.10.2023 um 18.00 Uhr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2025]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython für Umsteiger]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Referenzen==&lt;br /&gt;
=== [https://micropython.aundz.net/index.php?title=Hauptseite Micropython Referenz] ===&lt;br /&gt;
Hierbei handelt es sich um eine Referenz zur Programmiersprache Micropython. Diese habe [[User:Kapest|ich]] angelegt, weil die Informationen zum M5Stack Micropython sehr unvollständig und im Netz verteilt sind. &lt;br /&gt;
&lt;br /&gt;
Ich werde meine Erfahrungen mit Micropython und auch die Inhalte meiner Kurse zu Micropython hier einfließen lassen. Natürlich freue ich mich über Unterstützung bei diesem Unternehmen.&lt;br /&gt;
&lt;br /&gt;
Diese Webseite befindet sich derzeit auf meinem privaten Account. Es ist aber beabsichtigt sie später in das Attraktor Wiki zu integrieren.&lt;br /&gt;
&lt;br /&gt;
== ==&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41086</id>
		<title>Micropython Kurs 2023 - Teil 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41086"/>
		<updated>2024-06-11T10:25:16Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Themen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Micropython Kurs 2023 - Teil 2===&lt;br /&gt;
Hier werden wir den Umgang mit der Microcontroller spezifischen Hardware lernen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein paar Dateien die für den Kurs benötigt werden: [[media:d4MPK2.zip|MPK2023_2_Dateien]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Das ZIP-File kann von dieser Seite heruntergeladen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
* Anschließend auf dem Rechner entpacken und &amp;lt;br&amp;gt;&lt;br /&gt;
* dann den Inhalt mit Thonny auf den Pico kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
* Fertig.&lt;br /&gt;
&lt;br /&gt;
=== Termine===&lt;br /&gt;
Im 2. Teil habe ich die Themen nicht fest den Terminen zugeordnet. Ich habe sie zwar in eine m.E. sinnvolle Reihenfolge gebracht, aber grundsätzlich sind wir frei in der Auswahl der Themen, die wir am Abend behandeln wollen.&lt;br /&gt;
==== 1. Abend====&lt;br /&gt;
Di. 16.1.24&lt;br /&gt;
==== 2. Abend====&lt;br /&gt;
Di. 23.1.2024&lt;br /&gt;
==== 3. Abend====&lt;br /&gt;
Di. 30.1.2024&lt;br /&gt;
==== 4. Abend====&lt;br /&gt;
Di. 6.2.2024&lt;br /&gt;
==== 5. Abend====&lt;br /&gt;
Di. 13.2.2024&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Themen===&lt;br /&gt;
[[19. Lektion: Raspberry Pi Pico W]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[20. Lektion: Vorstellung des Experimentierboards]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[21. Lektion: Pin&#039;s]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[22. Lektion: Neopixel]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[23. Lektion: Onewire]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[24. Lektion: UART]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25. Lektion: I2C]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25a. Lektion: Fonts]] - Spätere Ergänzung - noch in Arbeit&amp;lt;br&amp;gt;&lt;br /&gt;
[[26. Lektion: SPI]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[27. Lektion: ADC]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[28. Lektion: DAC]] - Der Raspberry Pi Pico W hat keinen DAC&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[29. Lektion: Puls Weiten Modulation (PWM)]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[30. Lektion: Watch Dog Timer (WDT)]] - s. 32. Lektion: Timer&amp;lt;br&amp;gt;&lt;br /&gt;
[[31. Lektion: Interrupts]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[32. Lektion: Timer]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[33. Lektion: Wlan]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[34. Lektion: NTP/RTC]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[35. Lektion: HTTP Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[36. Lektion: HTML Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[37. Lektion: Request]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[38. Lektion: Webserver]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[39. Lektion: Webseiten für den Webserver erstellen]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Diverse Themen===&lt;br /&gt;
[[xxx. Lektion: Diverse Themen]]&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
[[Micropython Kurs 2023|Zurück zur&#039;&#039;&#039; &amp;quot;Micropython Kurs 2023&amp;quot; &#039;&#039;&#039;Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Programmieren|Zurück zur &#039;&#039;&#039;Programmieren&#039;&#039;&#039; Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attraktor_Wiki|Zurück zur &#039;&#039;&#039;Wiki&#039;&#039;&#039; Startseite]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41085</id>
		<title>Micropython Kurs 2023 - Teil 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41085"/>
		<updated>2024-06-11T10:23:46Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Micropython Kurs 2023 - Teil 2===&lt;br /&gt;
Hier werden wir den Umgang mit der Microcontroller spezifischen Hardware lernen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein paar Dateien die für den Kurs benötigt werden: [[media:d4MPK2.zip|MPK2023_2_Dateien]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Das ZIP-File kann von dieser Seite heruntergeladen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
* Anschließend auf dem Rechner entpacken und &amp;lt;br&amp;gt;&lt;br /&gt;
* dann den Inhalt mit Thonny auf den Pico kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
* Fertig.&lt;br /&gt;
&lt;br /&gt;
=== Termine===&lt;br /&gt;
Im 2. Teil habe ich die Themen nicht fest den Terminen zugeordnet. Ich habe sie zwar in eine m.E. sinnvolle Reihenfolge gebracht, aber grundsätzlich sind wir frei in der Auswahl der Themen, die wir am Abend behandeln wollen.&lt;br /&gt;
==== 1. Abend====&lt;br /&gt;
Di. 16.1.24&lt;br /&gt;
==== 2. Abend====&lt;br /&gt;
Di. 23.1.2024&lt;br /&gt;
==== 3. Abend====&lt;br /&gt;
Di. 30.1.2024&lt;br /&gt;
==== 4. Abend====&lt;br /&gt;
Di. 6.2.2024&lt;br /&gt;
==== 5. Abend====&lt;br /&gt;
Di. 13.2.2024&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Themen===&lt;br /&gt;
[[19. Lektion: Raspberry Pi Pico W]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[20. Lektion: Vorstellung des Experimentierboards]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[21. Lektion: Pin&#039;s]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[22. Lektion: Neopixel]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[23. Lektion: Onewire]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[24. Lektion: UART]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25. Lektion: I2C]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25a. Lektion: Fonts]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[26. Lektion: SPI]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[27. Lektion: ADC]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[28. Lektion: DAC]] - Der Raspberry Pi Pico W hat keinen DAC&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[29. Lektion: Puls Weiten Modulation (PWM)]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[30. Lektion: Watch Dog Timer (WDT)]] - s. 32. Lektion: Timer&amp;lt;br&amp;gt;&lt;br /&gt;
[[31. Lektion: Interrupts]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[32. Lektion: Timer]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[33. Lektion: Wlan]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[34. Lektion: NTP/RTC]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[35. Lektion: HTTP Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[36. Lektion: HTML Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[37. Lektion: Request]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[38. Lektion: Webserver]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[39. Lektion: Webseiten für den Webserver erstellen]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Diverse Themen===&lt;br /&gt;
[[xxx. Lektion: Diverse Themen]]&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
[[Micropython Kurs 2023|Zurück zur&#039;&#039;&#039; &amp;quot;Micropython Kurs 2023&amp;quot; &#039;&#039;&#039;Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Programmieren|Zurück zur &#039;&#039;&#039;Programmieren&#039;&#039;&#039; Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attraktor_Wiki|Zurück zur &#039;&#039;&#039;Wiki&#039;&#039;&#039; Startseite]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41084</id>
		<title>Micropython Kurs 2023 - Teil 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41084"/>
		<updated>2024-06-11T10:23:23Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Micropython Kurs 2023 - Teil 2===&lt;br /&gt;
Hier werden wir den Umgang mit der Microcontroller spezifischen Hardware lernen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein paar Dateien die für den Kurs benötigt werden: [[media:d4MPK2.zip|MPK2023_2_Dateien]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Das ZIP-File kann von dieser Seite heruntergeladen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
* Anschließend auf dem Rechner entpacken und &amp;lt;br&amp;gt;&lt;br /&gt;
* dann den Inhalt mit Thonny auf den Pico kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
* Fertig.&lt;br /&gt;
&lt;br /&gt;
=== Termine===&lt;br /&gt;
Im 2. Teil habe ich die Themen nicht fest den Terminen zugeordnet. Ich habe sie zwar in eine m.E. sinnvolle Reihenfolge gebracht, aber grundsätzlich sind wir frei in der Auswahl der Themen, die wir am Abend behandeln wollen.&lt;br /&gt;
==== 1. Abend====&lt;br /&gt;
Di. 16.1.24&lt;br /&gt;
==== 2. Abend====&lt;br /&gt;
Di. 23.1.2024&lt;br /&gt;
==== 3. Abend====&lt;br /&gt;
Di. 30.1.2024&lt;br /&gt;
==== 4. Abend====&lt;br /&gt;
Di. 6.2.2024&lt;br /&gt;
==== 5. Abend====&lt;br /&gt;
Di. 13.2.2024&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Themen===&lt;br /&gt;
[[19. Lektion: Raspberry Pi Pico W]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[20. Lektion: Vorstellung des Experimentierboards]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[21. Lektion: Pin&#039;s]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[22. Lektion: Neopixel]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[23. Lektion: Onewire]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[24. Lektion: UART]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25. Lektion: I2C]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25a. Lektion: Fonts]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[26. Lektion: SPI]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[27. Lektion: ADC]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[28. Lektion: DAC]] - Der Raspberry Pi Pico W hat keinen DAC&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[29. Lektion: Puls Weiten Modulation (PWM)]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[30. Lektion: Watch Dog Timer (WDT)]] - s. 32. Lektion: Timer&amp;lt;br&amp;gt;&lt;br /&gt;
[[31. Lektion: Interrupts]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[32. Lektion: Timer]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[33. Lektion: Wlan]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[34. Lektion: NTP/RTC]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[35. Lektion: HTTP Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[36. Lektion: HTML Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[37. Lektion: Request]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[38. Lektion: Webserver]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[39. Lektion: Webseiten für den Webserver erstellen]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Diverse Themen===&lt;br /&gt;
[[xxx. Lektion: Diverse Themen]]&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
[[Micropython Kurs 2023|Zurück zur&#039;&#039;&#039; &amp;quot;Micropython Kurs 2023&amp;quot; Startseite&#039;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Programmieren|Zurück zur &#039;&#039;&#039;Programmieren&#039;&#039;&#039; Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attraktor_Wiki|Zurück zur &#039;&#039;&#039;Wiki&#039;&#039;&#039; Startseite]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41083</id>
		<title>Micropython Kurs 2023 - Teil 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Kurs_2023_-_Teil_2&amp;diff=41083"/>
		<updated>2024-06-11T10:22:56Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Micropython Kurs 2023 - Teil 2===&lt;br /&gt;
Hier werden wir den Umgang mit der Microcontroller spezifischen Hardware lernen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Hier ein paar Dateien die für den Kurs benötigt werden: [[media:d4MPK2.zip|MPK2023_2_Dateien]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Das ZIP-File kann von dieser Seite heruntergeladen werden.&amp;lt;br&amp;gt;&lt;br /&gt;
* Anschließend auf dem Rechner entpacken und &amp;lt;br&amp;gt;&lt;br /&gt;
* dann den Inhalt mit Thonny auf den Pico kopieren.&amp;lt;br&amp;gt;&lt;br /&gt;
* Fertig.&lt;br /&gt;
&lt;br /&gt;
=== Termine===&lt;br /&gt;
Im 2. Teil habe ich die Themen nicht fest den Terminen zugeordnet. Ich habe sie zwar in eine m.E. sinnvolle Reihenfolge gebracht, aber grundsätzlich sind wir frei in der Auswahl der Themen, die wir am Abend behandeln wollen.&lt;br /&gt;
==== 1. Abend====&lt;br /&gt;
Di. 16.1.24&lt;br /&gt;
==== 2. Abend====&lt;br /&gt;
Di. 23.1.2024&lt;br /&gt;
==== 3. Abend====&lt;br /&gt;
Di. 30.1.2024&lt;br /&gt;
==== 4. Abend====&lt;br /&gt;
Di. 6.2.2024&lt;br /&gt;
==== 5. Abend====&lt;br /&gt;
Di. 13.2.2024&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Themen===&lt;br /&gt;
[[19. Lektion: Raspberry Pi Pico W]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[20. Lektion: Vorstellung des Experimentierboards]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[21. Lektion: Pin&#039;s]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[22. Lektion: Neopixel]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[23. Lektion: Onewire]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[24. Lektion: UART]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25. Lektion: I2C]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[25a. Lektion: Fonts]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[26. Lektion: SPI]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[27. Lektion: ADC]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[28. Lektion: DAC]] - Der Raspberry Pi Pico W hat keinen DAC&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[29. Lektion: Puls Weiten Modulation (PWM)]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[30. Lektion: Watch Dog Timer (WDT)]] - s. 32. Lektion: Timer&amp;lt;br&amp;gt;&lt;br /&gt;
[[31. Lektion: Interrupts]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[32. Lektion: Timer]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[33. Lektion: Wlan]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[34. Lektion: NTP/RTC]]&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
[[35. Lektion: HTTP Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[36. Lektion: HTML Briefing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[37. Lektion: Request]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[38. Lektion: Webserver]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[39. Lektion: Webseiten für den Webserver erstellen]]&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Diverse Themen===&lt;br /&gt;
[[xxx. Lektion: Diverse Themen]]&lt;br /&gt;
&lt;br /&gt;
==Navigation==&lt;br /&gt;
[[Micropython Kurs 2023|Zurück zur&#039;&#039;&#039; &amp;quot;Micropython Kurs 2023&amp;quot; Startseite&#039;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Programmieren|Zurück zur &#039;&#039;&#039;Programmieren&#039;&#039;&#039; Startseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attraktor_Wiki|Zurück zur &#039;&#039;&#039;Wiki Startseite&#039;&#039;&#039;]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41082</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41082"/>
		<updated>2024-06-11T10:17:53Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Python wird sehr viel Wert auf die Lesbarkeit des Codes gelegt.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr für einen einzelnen Charakter gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Set====&lt;br /&gt;
Sets dürfen keine mehrfachen Einträge haben! Die Reihenfolge der Einträge ist nicht festgelegt. Sets sind für die Arbeit mit Mengen vorgesehen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
my_set = {1, 2, 3, &#039;Hallo&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;br /&gt;
&lt;br /&gt;
== Navigation==&lt;br /&gt;
[[Programmieren|Zur &#039;&#039;&#039;Programmieren&#039;&#039;&#039; Übersichtsseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki &#039;&#039;&#039;Startseite&#039;&#039;&#039;]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Lasercutter&amp;diff=41066</id>
		<title>Lasercutter</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Lasercutter&amp;diff=41066"/>
		<updated>2024-06-06T16:13:18Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* MDF / HDF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox-v&lt;br /&gt;
|typ=Geräte&lt;br /&gt;
|image=Lasercutter_2022-10-20.jpg&lt;br /&gt;
|image_note=&lt;br /&gt;
|qrcode&lt;br /&gt;
|kategorien={{catDef|Werkzeuge}}&lt;br /&gt;
|beschreibung=Voll Laser wie der abgeht.&lt;br /&gt;
|ansprechpartner=Tobias -&amp;gt; tobias.jacobi(bei)attraktor.org&lt;br /&gt;
|einweisung={{Warning-Status|[[Lasercutter/Einweisung|JA!]]}}&lt;br /&gt;
|standort=Flur in Richtung Werkstätten. Nicht zu übersehen. &lt;br /&gt;
|standort_seit=&lt;br /&gt;
|status={{Good-DeviceStatus}}&lt;br /&gt;
|status_seit=&lt;br /&gt;
|letzteWartung=02.05.2024&lt;br /&gt;
|datumAnschaffung=&lt;br /&gt;
|kosten=~10.000€&lt;br /&gt;
|finanzierung=&lt;br /&gt;
|hersteller=BRM&lt;br /&gt;
|modell=BRM 90130&lt;br /&gt;
|leistung_elektrisch=100 W (CO2-Laser)&lt;br /&gt;
|links=Anleitungen:&lt;br /&gt;
* [[Media:BRM_90130_Gebrauchsanleitung.pdf|Manual (BRM)]]&lt;br /&gt;
* [[Media:BRM_90130_Maintaince_manual.pdf|Service Manual (China)]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:QR:todo]]&lt;br /&gt;
&lt;br /&gt;
Wir haben eine neue Software: [[Lasercutter/Lightburn|Lightburn]]. Neue Erkenntnisse dazu werden in der Unterseite [[Lasercutter/Lightburn|Lightburn]] zusammengetragen. Die alte Software kann noch verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Wer darf lasern? ==&lt;br /&gt;
&lt;br /&gt;
== Ablauf generell ==&lt;br /&gt;
&lt;br /&gt;
=== Wenn du selbst lasern möchtest ===&lt;br /&gt;
&lt;br /&gt;
Wenn du in Zukunft selbst die Maschine bedienen möchtest, musst du ein paar Voraussetzungen erfüllen.&lt;br /&gt;
&lt;br /&gt;
# Du musst Mitglied im Attraktor sein. Ohne Mitgliedschaft keine Benutzung der Maschinen. Mitgliedsanträge in letzter Sekunde können nicht angenommen werden.&lt;br /&gt;
# Du solltest ein konkretes Projekt haben, das du lasern möchtest. Erzeuge davon eine DXF-Datei.&lt;br /&gt;
# Installiere die Software auf deinem Computer und mache dich mit der Bedienung vertraut. Lese dazu die Seite [[Lasercutter/Software]] aufmerksam durch, importiere deine DXF-Datei und versuche alle Punkte nachzuvollziehen. Wenn Fragen dabei auftreten, kannst du die gern bei der Einweisung stellen.&lt;br /&gt;
# Optional: Mache beim [[Lasercutter/Betreutes Lasern]] erste Erfahrungen mit dem Lasercutter.&lt;br /&gt;
# Melde dich bei der [[Lasercutter/Einweisung]] an (trage dich unten bei &amp;quot;Interessenten&amp;quot; ein). Dort erklären wir dir die Grundlagen, die du zur Bedienung der Maschine brauchst. Hier hast du auch die Möglichkeit, Fragen zu stellen.&lt;br /&gt;
# Besuche die Lasercutter-Einweisung&lt;br /&gt;
# Nach der Einweisung laserst du mindestens die ersten 5 Mal zusammen mit einem Tutor, der dir mit Rat und Tat zur Seite steht und seine Erfahrungen weitergibt.&lt;br /&gt;
&lt;br /&gt;
=== Wenn du etwas gelasert haben möchtest ===&lt;br /&gt;
&lt;br /&gt;
* Für Mitglieder ohne Einweisung und Nicht-Mitglieder bieten wir das betreute Lasern an. Bitte informiere dich unter [[Lasercutter/Betreutes Lasern]], was du dafür vorbereiten musst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tutoren-System ==&lt;br /&gt;
&lt;br /&gt;
Nachdem du die [[Lasercutter/Einweisung]] besucht hast, darfst du den Lasercutter zuerst nur zusammen mit einem Tutor nutzen. Diese Person steht dir mit Rat und Tat zur Verfügung und gibt ihre Erfahrungen gern weiter. Wenn du lasern möchtest, findest du einen Tutor z. B., indem du auf der [[Mailinglisten|Mailingliste]] &amp;quot;Traktoristen&amp;quot; fragst, ob dich jemand dabei unterstützen kann.&lt;br /&gt;
&lt;br /&gt;
Bei der Nutzung der Maschine füllst du ein Logbucheintrag aus. Am Ende notiert dein Tutor darauf, ob er ein gutes Gefühl dabei hat, dich allein lasern zu lassen. Wenn dies 5x in Folge notiert wurde, darfst du den Lasercutter allein bedienen. Du wirst dann gleichzeitig Tutor für Neue und kannst dein Wissen weitergeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedienung ==&lt;br /&gt;
&lt;br /&gt;
* [[Lasercutter/Software]] - Bedienung der Laser-Software &amp;quot;LaserWork&amp;quot;&lt;br /&gt;
* [[Lasercutter/Externe Software]] - Erstellen von DXF-Dateien mit externer CAD-Software&lt;br /&gt;
* [[Lasercutter/Bedienung]] - Bedienung der Maschine selbst&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Die Maschine ==&lt;br /&gt;
Bei unserem Lasercutter handelt es sich um einen [http://www.brmlasers.de/lasermaschinen/co2-lasermaschinen/brm-90130/ BRM90130] der Firma [http://www.brmlasers.de BRM] mit einer 150W-Röhre.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Leistung&lt;br /&gt;
| 150W CO2-Röhre&lt;br /&gt;
|-&lt;br /&gt;
! Bearbeitungsfläche&lt;br /&gt;
| 1280 mm * 850 mm (offiziell 1300 mm * 900 mm)&lt;br /&gt;
|-&lt;br /&gt;
! Max. Plattengröße&lt;br /&gt;
| {{Prüfe Info|1370 mm * 1100 mm}} (für dünne Platten &amp;lt;= 5mm)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dokumentation ===&lt;br /&gt;
# [[Media:BRM_90130_Gebrauchsanleitung.pdf|Deutsch-Niederländische Bedienungsanleitung]]&lt;br /&gt;
# [[Media:Usaul_manual_small.pdf|Usual manual (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Maintaince_manual.pdf|Maintaince manual (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Cutting_parameter.pdf|Software / Cutting Parameter (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Colourful_control_pannel_manual.pdf|Colourful control pannel manual (chinenglisch)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Materialien ==&lt;br /&gt;
Tipps, wo man Material bekommt, siehe [[Lasercutter/Material]].&lt;br /&gt;
&lt;br /&gt;
Was kann man lasern? Was nicht?&lt;br /&gt;
&lt;br /&gt;
=== Nein ===&lt;br /&gt;
* Metall (eloxiertes Aluminium funktioniert, Einbrennen von Trockenmolybdän-Spray auch, s. [[Lasercutter#Galerie]])&lt;br /&gt;
* Materialien mit (im Infrarot-Bereich) reflektierenden Oberflächen, z. B. Kupfer (/Platinen)&lt;br /&gt;
* Alles, was beim Verbrennen &#039;&#039;&#039;Blausäure&#039;&#039;&#039; (HCN / Cyanwasserstoff) freisetzt (z. B. PU, PA, ABS). &#039;&#039;&#039;In geringsten Konzentrationen extrem giftig!&#039;&#039;&#039;&lt;br /&gt;
* Alles, was beim Verbrennen &#039;&#039;&#039;Chlor&#039;&#039;&#039; oder andere korrosive Stoffe freisetzt (z. B. PVC, PTFE, Chlorkautschuk) &#039;&#039;&#039;Greift die Maschine an!&#039;&#039;&#039; (s. U. Kupferdraht-Test)&lt;br /&gt;
&lt;br /&gt;
=== Ja ===&lt;br /&gt;
* Holz - &#039;&#039;&#039;Natur-Materialien variieren stark. Mit jeder neuen Platte einen Test machen.&#039;&#039;&#039;&lt;br /&gt;
* Multiplex, MDF/HDF&lt;br /&gt;
* PMMA (Plexiglas/Acrylglas). Nicht verwechseln mit Bastlerglas/Hobbyglas (PS oder PVC)&lt;br /&gt;
* PS (Polystyrol), Kanten werden milchig&lt;br /&gt;
* PET, wird aber scheiße&lt;br /&gt;
* POM / Delrin (Polyacetal / Polyoxymethylen)&lt;br /&gt;
* (Stempel-)Gummi (Spezielles Produkt zum Lasern, nicht 0815 Gummi)&lt;br /&gt;
* Textil&lt;br /&gt;
* (Natur-)Leder&lt;br /&gt;
* Papier / Pappe&lt;br /&gt;
&lt;br /&gt;
=== Weiterlesen ===&lt;br /&gt;
* [https://vds.de/fileadmin/Website_Content_Images/VdS_Publikationen/vds_2516_web.pdf VDS - Kunststoffe: Eigenschaften, Brandverhalten, Brandgefahren] Tabelle auf S. 19&lt;br /&gt;
* [http://www.chymist.com/Polymer%20Identification.pdf Identifikation von Kunststoffen] u. A. mit Kupferdraht-Test&lt;br /&gt;
&lt;br /&gt;
== Schnittparameter ==&lt;br /&gt;
Alle angegebenen Werte sind Richtwerte, es empfiehlt sich jeweils vor dem Lasern des eigentlichen Objektes, eine kleine Probe mit den gewünschten Schnittparametern durchzuführen. Die Konkreten Werte hängen von vielen Parametern ab, die nicht immer konstant sind (Sauberkeit der Linse, Fokussierung des Lasers, aktuelle Leistung der Laserröhre, konkrete Materialbeschaffenheit [Holz],  ...).&lt;br /&gt;
Bei Naturmaterialien wie Holz und bei Sperrholz kommt es sehr auf die Art, das Alter und die Feuchtigkeit des Holzes an. Insbesondere ist Sperrholz nicht gleich Sperrholz nicht gleich Multiplex. Deshalb sind hier genaue Angaben und evt. auch die Bezugsquelle notwendig.&lt;br /&gt;
&lt;br /&gt;
=== Liste erweitern ===&lt;br /&gt;
{{Todo-Status|Hilf mit!}}&lt;br /&gt;
Bitte erweitert diese Liste um eure eigenen ermittelten Werte; insbesondere, wenn ihr Materialien lasert, die hier noch nicht aufgeführt sind. Falls ihr für ein Material bei gleicher Stärke einen anderen Wert ermittelt, erstellt einfach einen zweiten Eintrag.&lt;br /&gt;
&lt;br /&gt;
Noch ein Hinweis zum Testen: Achtet darauf, dass ihr bei voller Fahrt testet. Die Beschleunigungswege können bei hohen Geschwindigkeiten (z. B. für Papier und Pappe) sehr groß sein. Testet deshalb möglichst im manuellen Betrieb. So könnt ihr hören, ob die volle Geschwindigkeit erreicht ist und dann für den Test die Pulse-Taste drücken.&lt;br /&gt;
&lt;br /&gt;
=== Plexiglas / Acryl ===&lt;br /&gt;
Achtung! &amp;quot;Bastelglas&amp;quot; aus den Baumärkten wird oftmals als &amp;quot;Plexiglas&amp;quot; verkauft. Es handelt sich um Polystyrol. Besc**** zu schneiden mit hoher Brandgefahr!&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || || gravieren || 300 (250-300) || || 10-30 || 50 || Mitte Material || ? || Carsten || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || || gravieren || 200  ||20||20||50|| Oberfläche-0,5mm || ? || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas farbig|| || gravieren || 200 (150-250) || 20 || 20 || 50 ||  Oberfläche-1,0mm || 0.06 (0.12-0.06) || Stefan H. || 01.12.2018 || bestes Ergebnis bei Speed 200 mit 0.06 Sew width, noch gut wahrnehmbar bis Speed 250 mit Sew width 0.12&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 1 || schneiden || 100 (40-130) ||  || 75-80 || 50 || ? || ? || BRM || || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 2 || schneiden || 60 (30-90) ||  || 75-80 || 50 || ? || ? || BRM  || || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 3 || schneiden || 25 (10-40) ||  || 75-80 || 50 || 6 || ? || Carsten || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 3 || schneiden || 25  || 40 || 80 || 50 || 6 || ? || MiniKlaus || 04.06.2016 || Minimalpower verbessert Ecken.&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 5 || schneiden || 12 (10-40) ||  || 75-80 || 50 || ? || ? || BRM || ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 6 || schneiden || 10 ||  || 85 || 50 || 4 || ? || JanS || 15.09.2016 ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 8 || schneiden || 5 (2-7) ||  || 75-80 || 50 || ? || ? || BRM  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 10 || schneiden || 4 (2-6) ||  || 75-80 || 50 || ? || ? || BRM || ||  &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas schwarz || 3 || schneiden ||  ||  ||  || 50 || ? || ? || JanS || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas schwarz || 3 || schneiden || 25 || 45 || 85 || 50 || 6 || - || MiniKlaus || 13.07.2016 || schneidet sich wie klar und weiß&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas weiß || 3 || schneiden || 25  || 45 || 85 || 50 || 6 || - || MiniKlaus || 05.06.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas orange || 5 || schneiden || 14  || 85 || 95 || 50 || 5,0 || - || JanS || 10.11.2016 || das von RedNose&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas orange || 5 || schneiden || 12  || 80 || 95 || 50 || 5,0 || - || Stefan H. || 10.11.2018 || Bei höherem Speed nicht durch&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== POM / Delrin  ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| POM natur || 2 || schneiden || 32  || 40 || 90 || 50 || 6,5 || - || JanS || 30.09.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM natur || 6 || schneiden || 8-9  || 40 || 90 || 50 || 4,5 || - || JanS || 30.09.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM schwarz || 3 || schneiden || 25  || 40 || 90 || 50 || 6 || - || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM schwarz || 5 || schneiden || 15  || 40 || 85 || 50 || 5 || - || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PP (Polypropylen)  ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| PP grau || 2 || schneiden ||  ||  ||  ||  ||  || - || SvenJ || 08.09.2016 || sinnlos, geschmolzener Klumpen&lt;br /&gt;
|-&lt;br /&gt;
| PP grau || 2 || gravieren|| 200  || 30 || 30 || 50 || 7 || - || SvenJ || 08.09.2016 || Scan Interval 0,5mm&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Holz ===&lt;br /&gt;
Übersicht zur Gravur weiter unten in der Galerie&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Flugzeug Sperrholz || 1 || schneiden || 100 || || 85 || 50 || 6,5 || 0,1 ||  JanS, Hauke || 13.05.16 || *1,  Q1&lt;br /&gt;
|-&lt;br /&gt;
| Flugzeug Sperrholz || 1,5 || schneiden || 75 || ||  85 || 50 || 6 || 0,1 ||  JanS, Hauke || 13.05.16 || *1, Q2&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 1 || schneiden || 70 (30-120) || || 75-80 || 50 || ? || ? || BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 3 || schneiden || 45 (20-70) || || 75-80 || 50 || ? || ? || BRM || || fürs Stecken: Sew compensation 0.15 outward&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || 3 || schneiden || 35 || 70 || 85 || 50 || 6.0 || ? || Stefan H.|| 01.12.18 || Qualität B/BB&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 4 || schneiden || 45(20-70) || || 75-80 || 50 || ? || ? || Carsten || 00.04.16 || -&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Buche || 4 || schneiden || 15 || || 90 || 50 || 3,5 || ? || Sven || 07.04.24 || beim OBI erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || 6 || schneiden || 10 (10-50) || || 90 || 50 || 3,5 || ? || Carsten || 04.05.16 || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 8 || schneiden ||5 (2-7) || || 75-80 || 50 ||  ||  ||  BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 10 || schneiden || 4 (2-6) || || 75-80 || 50 ||  ||  || BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel|| 10 || schneiden || 8 || 80 || 85 || 50 || 2,5 || ? || Leon || 20.10.16 ||   &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Kiefer || 12 || schneiden || 5 (2-6) || || 90-100 || 50 || 1,5 || ? || Carsten ||  || Druckluft auf ca 1/3&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt; Sperrholz Birke &amp;lt;/span&amp;gt;  || 12 || schneiden ||&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Nicht möglich &amp;lt;/span&amp;gt;|| X || X || 50 || 1,5 || ? || Carsten || || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || - || gravieren (scan) || 250 || 25-65 || 25-65 || 50 || 6.5 || - || Stefan H. || 01.12.18 || für &amp;gt; 250 spd keine Veränderung im Ergebnis wahrnehmbar&lt;br /&gt;
|-&lt;br /&gt;
| Bambus || 12 || gravieren|| 200 || || 50 || 50 || 7 || ? || NilsJen || 11.09.16  || ca. 1-2mm tief eingelasert, noch nicht optimal&lt;br /&gt;
|-&lt;br /&gt;
| Gummibaum || - || gravieren (scan) || 300 || 35 || 35 || 50 || 6 || - || Florian || 19.10.16 || 0,6mm tief, gute Bräunung [http://www.ikea.com/de/de/catalog/products/50228618/ Ikea-Schneidbrett MAGASIN]&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 8 || schneiden || 20-25 || ? || 95 || 50 || 3 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 10 || schneiden || 10 || ? || 95 || 50 || 2 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 12 || schneiden || 10 || ? || 95 || 50 || 1,5 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Multiplex Birke || 6 || schneiden || 8 || ? || 95 || 50 || 4 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Multiplex Birke || 10 || schneiden || 2 || ? || 95 || 50 || 2 || - || Florian || 24.11.16 || viel gekokel, beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| |&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Multiplex Birke&amp;lt;/span&amp;gt; || 12 || schneiden || &amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Nicht möglich &amp;lt;/span&amp;gt; || - || - || 50 || 2 || - || Florian || 24.11.16 || nicht möglich, beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MDF / HDF ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF unklare Benennung || 3 || schneiden ||48 || || 85 || 50 || 5,5 || 0,035 - 0,04 || JanS || 02.05.2016 || -&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF unklare Benennung || 3 || schneiden ||40 || || 85 || 50 || 5,5 || 0,035 - 0,04 || Leon || 01.12.2016 || Eventuelles Nachlassen der Leistung?&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF (Bauhaus) || 3 || schneiden || 20-25 || 70 || 85 || 50 || 6,0 || - || Stefan H. || 03.12.2018 || verrußte Schnittkanten&lt;br /&gt;
|-&lt;br /&gt;
| HDF (Q10) || 3 || schneiden || 25-30 || 70 || 85 || 50 || 6,0 || - || Stefan H. || 03.12.2018 || schöne, versiegelte Schnittkanten&lt;br /&gt;
|-&lt;br /&gt;
| HDF || 3 || cut-gravieren ||70 || 10 || 35 || 50|| 6 || || SvenJ || 08.09.2016 || Einzelner Strich im CUT Modus!&lt;br /&gt;
|-&lt;br /&gt;
| HDF || 5 || cut ||10 || 75 || 85 || 50|| 5 || || Leon || 12.01.2017 || - &lt;br /&gt;
|-&lt;br /&gt;
| MDF || 5 || schneiden || 15 || || 85 || 50 || 4,5 || ? || TobiasJ ||05.01.2017 || -&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 5 || scan-gravieren|| 200-250 || 10 || 35 || 50 || 6 || 0,1 || TobiasJ ||05.01.2017 || Je nach Schwärzungsgrad, Geschwindigkeit variieren&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 10 || schneiden || 6 || || 85 || 50 || 2 || ? || JanS ||18.04.2016 || -&lt;br /&gt;
|-&lt;br /&gt;
| --- || --- || --- || --- || --- || --- || --- || --- || --- || --- || 04.06.2024 || NEUE RÖHRE&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 3 || schneiden || 45 || 85 || 95 || 50 ||  ||  || PeterS ||04.06.2024 || Material: Bauhaus - NEUE RÖHRE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Papier / Pappe / Karton ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Screenboard-Karton || 2 || schneiden || 50 || ||  50 || 50 || 6 || 0,1 O || JanS || 13.05.2016 || *2 Q3 &lt;br /&gt;
|-&lt;br /&gt;
| Buchbinderpappe || 2 || schneiden || 50 || 60 ||  85 || 50 || 5,5  || 0,12 || Stefan H. || 09.02.2019 ||  &lt;br /&gt;
|-&lt;br /&gt;
| Tonkarton || 0,8 || schneiden || 250 ||  || 50 || 50 || 6  ||  || Daniel B. || 20.06.2023 ||  &lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 0,9 || schneiden || 250 || || 50 || 50 || 6 || 0,1 O || JanS || 13.05.2016 || *3 Q4&lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 1,5 || schneiden || 200 || ||  50 || 50 || 6 || 0,07 O || JanS || 14.05.2016 || *3 Q5&lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 3,0 || schneiden || 75 || || 50 || 50 || 6 || 0,06 O || JanS || 14.05.2016 || *3 Q6&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 5-6 || schneiden || || ||  || 50 || ? || ? || JanS || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 3 || schneiden || 200 || || 30 || 85 || ? || ? || TobiasJ|| 16.03.2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 1 || schneiden || 400 || || 35 || 50 || ? || ? || Hauke || 06.04.2016 ||  *1&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 1 || gravieren || 400 || || 17 || 50 || ? || ? || Hauke || 06.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Transparentpapier || ? 80 g/m² || gravieren || 400 || || 10 || 50 || 8 || - || Patric || 30.09.2016 || Gravur wird weiß bzw. opak &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stahl ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Stahl || egal || Gravur || 65 || 85 ||  85 || 50 || 7 || 0,1 || MiniKlaus || 30.0.2016 || Rasterabstand:0.1mm *4 Q7 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Aluminium ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium schwarz || -- || Gravur || 160 || 80 ||  80 || 50 || 7 || 0.08 || MiniKlaus || 14.11.2016 || [[Lasercutter#Galerie|Testbild]]&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium grau|| -- || Scan || 100 || 10 ||  10 || 50 || 7 || 0.1 || SvenJ || 13.10.2018 || &amp;quot;Natur&amp;quot; Alu, wird heller. siehe Anschlaege Holzwerkstatt&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium schwarz|| -- || Gravur || 100 || 10 ||  10 || 50 || 7 || 0.1 || Marcel || 13.10.2018 || Alu wird heller -&amp;gt; [[Lasercutter#Galerie|SSD-laser-gravur.jpeg]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stempelgummi ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || schneiden ||30 ||40 || 85 || 50 || 7 || - || MiniKlaus || 23.07.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || gravieren ||250 ||65 || 70 || 50 || 7 || 0.06 || MiniKlaus || 23.07.2016 || Kontour nicht schneiden.  Dauert recht lange.&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || schneiden ||15 ||70 || 85 || 50 || 6.5 || - || Stefan H. || 21.11.2018 || Bei höherer Speed nicht durch.&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || gravieren ||200 ||65 || 70 || 50 || 6.5 || 0.06 || Stefan H. || 21.11.2018 || 0.7mm Material abgetragen.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Leder ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 1 || schneiden ||100|| 50 || 50 || 50 || 7 || - || SvenJ|| 15.9.2016 || 1,5mm Rinder-&amp;quot;Nubuk&amp;quot;; Kanten werden unterschiedlich&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 1 || gravieren ||200 || 15 || 15 || 50 || 7 || - || SvenJ || 15.9.2016 ||&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||200 || 15 || 15 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur deutlich in die Oberfläche gebrannt, Laserstaub lässt sich feucht gut wegwischen. &lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||300 || 10 || 10 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur sicht-  &amp;amp; fühlbar &lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||500 || 10 || 10 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur sichtbar, aber praktisch nicht fühlbar &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Glas ===&lt;br /&gt;
Glas lässt sich nur gravieren. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Glas|| egal || gravieren ||50, 100|| 30 || 100 || 50 || 7 || - || Carsten|| 23.12.2016 || Haushaltsglas auf Rotationsachse. Tiefe/Deutlichkeit der Gravur steigt bei steigendem Energieeintrag langsam an. Zu hoher Energieeintrag führt erst zu verschwommenen Konturen mit Faserbildung später zum Bruch. &lt;br /&gt;
|-&lt;br /&gt;
| Glas|| egal || gravieren || 100|| 25 || 25|| 50 || 5.0 || 0.06 || Stefan H.|| 14.02.2019 ||Trinkglas aus Milchglas. Ggf. 2x befahren.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sonstiges Material ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Mylar Folie || egal || schneiden || 400 || 40 || 40 || 50 || 7.5 || - || Ali || 2.10.2017 || Solder-Stencil, Rastern mit 0.1mm &lt;br /&gt;
|-&lt;br /&gt;
| Straußen Ei|| egal || gravierend || 50 || 50|| 40 || 50 || 7.5 || - || cobii || 28.06.2018 || Straußenei wurde gut gelasert s. Bild [[https://wiki.attraktor.org/File:StraussenEi.jpg]]&lt;br /&gt;
|-&lt;br /&gt;
| Polystyrol || 1,5mm|| schneiden || 20 || 55 || 70 || 50 || 6 || - || Aeris || 07.08.2018 || laserwidth ~.8mm&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Legende ===&lt;br /&gt;
:; Speed&lt;br /&gt;
:: Schnittgeschwindigkeit in Millimeter pro Sekunde&lt;br /&gt;
:; Power&lt;br /&gt;
:: Leistung des Lasers in Prozent. Da wir z.Z. eine 100 W Laserröhre in unserm Laser haben, entspricht der Zahlenwert der Leistung in Watt.&lt;br /&gt;
:; Linse&lt;br /&gt;
:: Angabe der Brennweite der verwendeten Linse in Millimetern. Wir haben derzeit zwei verschiedene Linsen eine mit einer Brennweite von 63,5 mm und eine mit einer Brennweite von 100 mm. Die Linse mit der Brennweite von 63,5 mm ist die Normal Linse, die bei dünneren Materialien die besten Schnittergebnisse erzielt. Die Linse mit der Brennweite von 100 mm ist zum Schneiden von dickere Materialien.&lt;br /&gt;
:; Fokus&lt;br /&gt;
:: Hier ist der Abstand der Unterkante des Objektivtubuses zur Materialoberfläche angegeben. Bei der 63,5 mm Linse liegt der  Fokus etwa 7,5 mm unterhalb des Objektivtubuses. Da sich der Fokus in etwa in der Mitte des Materials liegen sollte, lässt sich der notwendige Abstand auch leicht rechnerisch bestimmen.&lt;br /&gt;
:; Sew width&lt;br /&gt;
:: Dieser Wert kann bei den Schnittparametern angegeben werden. Er gibt den Stahldurchmesser an und wird bei Passungendafür verwendet den Strahldurchmesser zu berücksichtigen. Der zu verwendende Wert hängt stark von dem Material und seiner Dicke sowie der Schnittgeschwindigkeit ab.&lt;br /&gt;
:; Benutzer &lt;br /&gt;
:: Wenn hier ein Benutzer eingetragen ist, heißt das, dass es sich um von uns auf unserer Maschine ermittelte Werte handelt. Falls nicht, handelt es sich um Literaturwerte. Die Quelle sollte unter Bemerkungen angegeben werden.&lt;br /&gt;
:; ?&lt;br /&gt;
:: die mit einem &amp;quot;?&amp;quot; angegebenen Werte müssen noch eingetragen bzw. bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
=== Fußnoten ===&lt;br /&gt;
: &#039;&#039;&#039;*1&#039;&#039;&#039; - Bei langen geraden Strecken muss die Geschwindigkeit z.T deutlich reduziert werden, da der Laser erst auf diesen richtig beschleunigt.&lt;br /&gt;
: &#039;&#039;&#039;*2&#039;&#039;&#039; - Beiseitig weiß beschichteter Karton. Die Schmauchspuren lassen sich mit einem leicht feuchten Lappen und etwas Druck relativ gut abreiben. Überstehenden Leim oder Kleber besser abtupfen, nicht wischen. Ponal Express geht gut oder aber Planatol BB.&lt;br /&gt;
: &#039;&#039;&#039;*3&#039;&#039;&#039; - einfache, leicht gelbliche Pappe, keine Schmauchspuren, relativ saubere Ränder. Ponal Express geht gut oder aber Planatol BB.&lt;br /&gt;
: &#039;&#039;&#039;*4&#039;&#039;&#039; - Lasermarkierung auf Stahl mit Molybdänsulfat-Trockenschmiermittel. Einsprühen mit leichter Schicht. Außenlinie schneiden nach Rastern verbessert den Kontrast. Möglich mit verchromten Werkzeugen und wahrscheinlich mit allen Stahlarten. Getestetes Spray unter Q7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quellen und weitere Materialbeschreibung ===&lt;br /&gt;
: &#039;&#039;&#039;Q1&#039;&#039;&#039; - Andresen &amp;amp; Jochimsen 25 €/qm. Wird aber nur in ganzen Platten (1500 mm* 1500 mm) verkauft. Transportschnitte werden aber durchgeführt.&lt;br /&gt;
: &#039;&#039;&#039;Q2&#039;&#039;&#039; - Andresen &amp;amp; Jochimsen 23 €/qm. Wird aber nur in ganzen Platten (1500 mm* 1500 mm) verkauft. Transportschnitte werden aber durchgeführt.&lt;br /&gt;
: &#039;&#039;&#039;Q3&#039;&#039;&#039; - Beidseitig weiß beschichteter Karton. Wird bei Boesner (www.boesner.com, 2 Filialen in Hamburg) unter dem Namen Phoebe Einlegekarton verkauft. Z.B. 1 m * 0,7 m 3,75 €. Es gibt auch kleinere Formate.&lt;br /&gt;
: &#039;&#039;&#039;Q4&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 1.94 €. &lt;br /&gt;
: &#039;&#039;&#039;Q5&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 2,55 €. &lt;br /&gt;
: &#039;&#039;&#039;Q6&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 4,38 €. &lt;br /&gt;
: &#039;&#039;&#039;Q7&#039;&#039;&#039; - Molybdänsulfid-Trockenschmiermittel. Schlechte Verfügbarkeit in Deutschland. &amp;quot;CRC DRY MOLY LUBE MoS2-Gleitlack&amp;quot; Dose reicht für ~500 Markierungen . Dose (400ml) 13-17€ . &lt;br /&gt;
: &#039;&#039;&#039;Q8&#039;&#039;&#039; - Gummi speziell für das Lasern von Stempeln. Ebay &amp;quot;Lasergummi&amp;quot;. A4 Platte - 10€ [http://www.ebay.de/itm/Lasergummi-Stempelgummi-2-3-mm-Graviermaterial-fur-Lasergraviermaschine-Stempel-/161704835355][http://www.gravierbedarf.de/epages/63201300.sf/de_DE/?ObjectPath=/Shops/63201300/Categories/StempelGummi]&lt;br /&gt;
: &#039;&#039;&#039;Q9&#039;&#039;&#039; - Hochwertiges Birkensperrholz, Pappelsperrholz, Qualität B/B für Laser/Modellflugzeug: [http://www.thomabalsa.de/]&lt;br /&gt;
: &#039;&#039;&#039;Q10&#039;&#039;&#039; - Sperrholz in B/BB Qualität, HDF nach EN622-5/EN622-1 und breite Palette an Acryl: [http://www.expresszuschnitt.de/]&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
Diese ist eine Sammlung von Informationen, die im Laufe der Arbeit mit unserem Lasercutter gesammelt wurden. Sie ist erst einmal ungeordnet und unsystematisch.&lt;br /&gt;
* Der Wabentisch ist nicht 1300 mm sondern nur 1280 mm breit.Dieses ist bei der Materialbeschaffung zu beachten. Maximale Materialgröße: 1280 mm * 900 mm. (JanS)&lt;br /&gt;
* Es ist auf eine möglichst gute Planlage des Werkstückes zu achten. Bei dünnen Holz und MDF kann dieses problematisch sein. &lt;br /&gt;
* Im Zubehör-Schränkchen befinden sich diverse Magnete aus alten Festplatten, damit lassen sich nicht allzu stark gewellte Platten runterdrücken.&lt;br /&gt;
* Die Planlage diverser Materialien kann durch die Verwendung der Festplattenmagneten deutlich verbessert werden. Evt. zwei Magneten verwenden. Achtung! Passt auf, das der Linsentubus nicht mit den Magneten kollidiert. (Carsten und JanS)&lt;br /&gt;
* Wenn der Laserkopf weit ausgefahren wird kann er beim Hochschieben an der zweiten Schraube hängen bleiben. Dann setzt er beim Fahren am Tisch auf! Daher genau darauf achten den Kopf wieder wirklich ganz nach oben zu schieben. (Marcel)&lt;br /&gt;
&lt;br /&gt;
=== Materialspezifische Tipps ===&lt;br /&gt;
Acryl&lt;br /&gt;
*Beim Schneiden und Gravieren von &amp;gt;5mm Platten sollte man die Schritte trennen und dazwischen die Linse verstellen. -0.5mm unter der Oberfläche gibt die schärfte Gravur.&lt;br /&gt;
*Schutzfolie an der Oberseite zu belassen führt zu einer ungleichmäßigen Gravur und spürbar reduzierter Gravurtiefe (siehe Bild unten). Verunreinigungen durch das Lasern ohne Schutzfolie lassen sich aber gut mit Brennspiritus (nicht Aceton!) wieder entfernen. =&amp;gt; besser also ohne Schutzfolie. Schutzfolie an der Unterseite sollte bleiben wegen Laserreflektionen vom Wabentisch.&lt;br /&gt;
POM / Delrin&lt;br /&gt;
*Geruchsbelastung ist sehr gering. Geruchloses Formaldehyd dampft ab, ähnlich MDF bei Zerspannung. Lüftung kurz weiterlaufenlassen sonst Kopfschmerzen etc.&lt;br /&gt;
*Sehr brauchbares Material für mechanische Konstruktionen. POM ist um ein vielfaches zäher als Acryl, welches gerade bei engen Toleranzen gerne zerbricht.&lt;br /&gt;
*Die Reibung von POM ist relativ gering, sodass es auch für Gleitanwendungen, wie etwa Schlitten in Aluminiumprofilen eingesetzt werden kann.&lt;br /&gt;
*Gewinde lassen sich gut in POM schneiden und halten erstaunlich hohe Belastungen aus. &lt;br /&gt;
*Kleben von POM auf POM ist schwierig bzw. unmöglich. Evt. kann es zusammengeschweißt werden. Schmelzpunkt 165°C bis 180°C.&lt;br /&gt;
HDF&lt;br /&gt;
*Beim &amp;quot;Scan&amp;quot; für die Gravuren schlägt sich neben der Schrift immer der Leimdampf nieder. Dies kann mit einem kleinen Stück Papierklebeband, durch welches man durchlasert, verhindert werden. &lt;br /&gt;
*Der Leimdampf kann mit einem feuchten Lappen weggewischt werden. Das HDF zieht schnell feuchtigkeit und verändert seine Maße. Also erst zusammenbauen, dann reinigen.&lt;br /&gt;
*Die Unterschiede von  MDF/HDF aus dem Baumarkt und HDF nach EN622-5/EN622-1 sind erheblich. Wenn Material geschliffen und lackiert werden soll =&amp;gt; Baumarkt reicht; wenn Material unbehandelt bleibt =&amp;gt; HDF nach EN622-5/EN622-1 nehmen.&lt;br /&gt;
Holz&lt;br /&gt;
* Beim Gravieren von Holz lässt sich u.U. eine dunklere Färbung bei weniger Materialabtrag erreichen, wenn der Tisch ~6mm aus dem Fokus gefahren wird. Dazu kann man die Pen Up/Down Einstellungen verwenden. Auf den Abstand zur Linse achten.&lt;br /&gt;
Leder&lt;br /&gt;
* Die Geruchsentwicklung beim Schneiden &amp;amp; Gravieren ist sehr stark, der Filter hält diese kaum zurück. Daher bitte: Fenster zu! (v.a. im Nähraum &amp;amp; Elektronik Werkstatt, gerne auch alle anderen)&lt;br /&gt;
* Laserstaub vom Gravieren ließ sich bei Glattledern mit feuchtem Tuch gut entfernen&lt;br /&gt;
&lt;br /&gt;
==Rotation==&lt;br /&gt;
Wir haben für unseren Lasercutter einen Rotationseinsatz. Damit können Runde Dinge graviert oder geschnitten werden. Siehe [[Lasercutter/Rotary]].&lt;br /&gt;
&lt;br /&gt;
==Galerie==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:BeschriftungsTest.jpg|Lasermarkierung von eloxiertem Aluminium (schwarz)- kleinste Schrift im Bild 1.1mm Höhe&lt;br /&gt;
File:Universal-snap-fit.jpg|[https://tltl.stanford.edu/project/universal-snap-fit Universal Snap Fit] in 5mm Sperrholz&lt;br /&gt;
File:GravurUebersicht.jpg|Ergebnis unterschiedlicher Leistungs/Geschwindig-keits Kombinationen in Pappel Sperrholz&lt;br /&gt;
File:GravurSeite.jpg|Einbrenntiefe unterschiedlicher Leistungs/Geschwindig-keits Kombinationen in 4mm Pappel Sperrholz&lt;br /&gt;
File:Bohrstaender.jpg|Bohrständer für ein Bohrerset aus HDF&lt;br /&gt;
File:Cases_Mk.jpg|Projektboxen aus HDF und Plexiglas&lt;br /&gt;
File:StraussenEi.jpg|Straußenei gelasert&lt;br /&gt;
File:SSD-laser-gravur.jpeg|Eloxiertes Alu graviert&lt;br /&gt;
File:Plexiglas-3mm-fluoreszierend-cut+gravur.jpg|Spieltoken aus Plexiglas fluoreszierend 3mm mit cut und scan&lt;br /&gt;
File:Plexiglas-gravur-schutzfolie.jpg|Gravur auf Plexiglas mit (links, sichtbare Unebenheiten) und ohne (rechts, sauberere Gravur) Schutzfolie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wartung ==&lt;br /&gt;
Die regelmäßige Wartung (Reinigung, Schmierung, etc.) übernehmen derzeit Tobias, Marcel und Florian. Wenn irgendetwas an der Maschine zu beanstanden ist, bitte eine Mail an die bekannte Mailingliste.&lt;br /&gt;
&lt;br /&gt;
* [[Media:Lasercutter Logbucheintrag.pdf|Logbucheintrag zum Ausdrucken]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 19.04.2022: Z-Riemen gewechselt ===&lt;br /&gt;
* Der Riemen für die Z-Achse (Tisch hoch/runter) hat sich gelängt, konnte nicht weiter gespannt werden und ist deshalb übergesprungen&lt;br /&gt;
* Riemen: Profil HDT, 5mm Zahnabstand, Breite: 15mm, Länge: 5,3m (verschweißt), Kosten: 193,38 € (inkl. MwSt. &amp;amp; Versand)&lt;br /&gt;
* Gewechselt von Tobias und Florian&lt;br /&gt;
* Dafür musste das gesamte Gestell ausgebaut werden&lt;br /&gt;
* Zeitbedarf: 2,5 Stunden&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Anschluss Motorkabel&lt;br /&gt;
|-&lt;br /&gt;
! Kabel vom Motortreiber !! Kabel zum Motor&lt;br /&gt;
|-&lt;br /&gt;
| grün || gelb/schwarz&lt;br /&gt;
|-&lt;br /&gt;
| gelb || blau/rot&lt;br /&gt;
|-&lt;br /&gt;
| braun || grün/orange&lt;br /&gt;
|-&lt;br /&gt;
| weiß || weiß/braun&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 07.03.2024: Linse bei 63,5mm Optik getauscht ===&lt;br /&gt;
* Gewechselt von Tobias&lt;br /&gt;
* Zeitbedarf: 0,5 Stunden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 02.05.2024: Laserröhre und Netzteil getauscht. ===&lt;br /&gt;
* Die bisherige 100W Röhre hat in ihrer Leistung nachgelassen und wurde daher durch eine 150W Röhre ersetzt.&lt;br /&gt;
* Upgrade des Laser-Netzteils passend für eine 150W Röhre.&lt;br /&gt;
* Der Umbau verlief absolut reibungslos.&lt;br /&gt;
* Gewechselt von Carsten und Tobias&lt;br /&gt;
* Zeitbedarf: ca. 3 Stunden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
{{Template:SieheAuch:Lasercutter}}&lt;br /&gt;
{{Template:SieheAuch:CNC-Maschinen}}&lt;br /&gt;
&lt;br /&gt;
[[Category:CNC-Maschinen]]&lt;br /&gt;
[[Category:QR:todo]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Lasercutter&amp;diff=41065</id>
		<title>Lasercutter</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Lasercutter&amp;diff=41065"/>
		<updated>2024-06-06T16:10:56Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* MDF / HDF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox-v&lt;br /&gt;
|typ=Geräte&lt;br /&gt;
|image=Lasercutter_2022-10-20.jpg&lt;br /&gt;
|image_note=&lt;br /&gt;
|qrcode&lt;br /&gt;
|kategorien={{catDef|Werkzeuge}}&lt;br /&gt;
|beschreibung=Voll Laser wie der abgeht.&lt;br /&gt;
|ansprechpartner=Tobias -&amp;gt; tobias.jacobi(bei)attraktor.org&lt;br /&gt;
|einweisung={{Warning-Status|[[Lasercutter/Einweisung|JA!]]}}&lt;br /&gt;
|standort=Flur in Richtung Werkstätten. Nicht zu übersehen. &lt;br /&gt;
|standort_seit=&lt;br /&gt;
|status={{Good-DeviceStatus}}&lt;br /&gt;
|status_seit=&lt;br /&gt;
|letzteWartung=02.05.2024&lt;br /&gt;
|datumAnschaffung=&lt;br /&gt;
|kosten=~10.000€&lt;br /&gt;
|finanzierung=&lt;br /&gt;
|hersteller=BRM&lt;br /&gt;
|modell=BRM 90130&lt;br /&gt;
|leistung_elektrisch=100 W (CO2-Laser)&lt;br /&gt;
|links=Anleitungen:&lt;br /&gt;
* [[Media:BRM_90130_Gebrauchsanleitung.pdf|Manual (BRM)]]&lt;br /&gt;
* [[Media:BRM_90130_Maintaince_manual.pdf|Service Manual (China)]]&lt;br /&gt;
}}&lt;br /&gt;
[[Category:QR:todo]]&lt;br /&gt;
&lt;br /&gt;
Wir haben eine neue Software: [[Lasercutter/Lightburn|Lightburn]]. Neue Erkenntnisse dazu werden in der Unterseite [[Lasercutter/Lightburn|Lightburn]] zusammengetragen. Die alte Software kann noch verwendet werden.&lt;br /&gt;
&lt;br /&gt;
== Wer darf lasern? ==&lt;br /&gt;
&lt;br /&gt;
== Ablauf generell ==&lt;br /&gt;
&lt;br /&gt;
=== Wenn du selbst lasern möchtest ===&lt;br /&gt;
&lt;br /&gt;
Wenn du in Zukunft selbst die Maschine bedienen möchtest, musst du ein paar Voraussetzungen erfüllen.&lt;br /&gt;
&lt;br /&gt;
# Du musst Mitglied im Attraktor sein. Ohne Mitgliedschaft keine Benutzung der Maschinen. Mitgliedsanträge in letzter Sekunde können nicht angenommen werden.&lt;br /&gt;
# Du solltest ein konkretes Projekt haben, das du lasern möchtest. Erzeuge davon eine DXF-Datei.&lt;br /&gt;
# Installiere die Software auf deinem Computer und mache dich mit der Bedienung vertraut. Lese dazu die Seite [[Lasercutter/Software]] aufmerksam durch, importiere deine DXF-Datei und versuche alle Punkte nachzuvollziehen. Wenn Fragen dabei auftreten, kannst du die gern bei der Einweisung stellen.&lt;br /&gt;
# Optional: Mache beim [[Lasercutter/Betreutes Lasern]] erste Erfahrungen mit dem Lasercutter.&lt;br /&gt;
# Melde dich bei der [[Lasercutter/Einweisung]] an (trage dich unten bei &amp;quot;Interessenten&amp;quot; ein). Dort erklären wir dir die Grundlagen, die du zur Bedienung der Maschine brauchst. Hier hast du auch die Möglichkeit, Fragen zu stellen.&lt;br /&gt;
# Besuche die Lasercutter-Einweisung&lt;br /&gt;
# Nach der Einweisung laserst du mindestens die ersten 5 Mal zusammen mit einem Tutor, der dir mit Rat und Tat zur Seite steht und seine Erfahrungen weitergibt.&lt;br /&gt;
&lt;br /&gt;
=== Wenn du etwas gelasert haben möchtest ===&lt;br /&gt;
&lt;br /&gt;
* Für Mitglieder ohne Einweisung und Nicht-Mitglieder bieten wir das betreute Lasern an. Bitte informiere dich unter [[Lasercutter/Betreutes Lasern]], was du dafür vorbereiten musst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tutoren-System ==&lt;br /&gt;
&lt;br /&gt;
Nachdem du die [[Lasercutter/Einweisung]] besucht hast, darfst du den Lasercutter zuerst nur zusammen mit einem Tutor nutzen. Diese Person steht dir mit Rat und Tat zur Verfügung und gibt ihre Erfahrungen gern weiter. Wenn du lasern möchtest, findest du einen Tutor z. B., indem du auf der [[Mailinglisten|Mailingliste]] &amp;quot;Traktoristen&amp;quot; fragst, ob dich jemand dabei unterstützen kann.&lt;br /&gt;
&lt;br /&gt;
Bei der Nutzung der Maschine füllst du ein Logbucheintrag aus. Am Ende notiert dein Tutor darauf, ob er ein gutes Gefühl dabei hat, dich allein lasern zu lassen. Wenn dies 5x in Folge notiert wurde, darfst du den Lasercutter allein bedienen. Du wirst dann gleichzeitig Tutor für Neue und kannst dein Wissen weitergeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bedienung ==&lt;br /&gt;
&lt;br /&gt;
* [[Lasercutter/Software]] - Bedienung der Laser-Software &amp;quot;LaserWork&amp;quot;&lt;br /&gt;
* [[Lasercutter/Externe Software]] - Erstellen von DXF-Dateien mit externer CAD-Software&lt;br /&gt;
* [[Lasercutter/Bedienung]] - Bedienung der Maschine selbst&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Die Maschine ==&lt;br /&gt;
Bei unserem Lasercutter handelt es sich um einen [http://www.brmlasers.de/lasermaschinen/co2-lasermaschinen/brm-90130/ BRM90130] der Firma [http://www.brmlasers.de BRM] mit einer 150W-Röhre.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Leistung&lt;br /&gt;
| 150W CO2-Röhre&lt;br /&gt;
|-&lt;br /&gt;
! Bearbeitungsfläche&lt;br /&gt;
| 1280 mm * 850 mm (offiziell 1300 mm * 900 mm)&lt;br /&gt;
|-&lt;br /&gt;
! Max. Plattengröße&lt;br /&gt;
| {{Prüfe Info|1370 mm * 1100 mm}} (für dünne Platten &amp;lt;= 5mm)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Dokumentation ===&lt;br /&gt;
# [[Media:BRM_90130_Gebrauchsanleitung.pdf|Deutsch-Niederländische Bedienungsanleitung]]&lt;br /&gt;
# [[Media:Usaul_manual_small.pdf|Usual manual (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Maintaince_manual.pdf|Maintaince manual (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Cutting_parameter.pdf|Software / Cutting Parameter (chinenglisch)]]&lt;br /&gt;
# [[Media:BRM_90130_Colourful_control_pannel_manual.pdf|Colourful control pannel manual (chinenglisch)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Materialien ==&lt;br /&gt;
Tipps, wo man Material bekommt, siehe [[Lasercutter/Material]].&lt;br /&gt;
&lt;br /&gt;
Was kann man lasern? Was nicht?&lt;br /&gt;
&lt;br /&gt;
=== Nein ===&lt;br /&gt;
* Metall (eloxiertes Aluminium funktioniert, Einbrennen von Trockenmolybdän-Spray auch, s. [[Lasercutter#Galerie]])&lt;br /&gt;
* Materialien mit (im Infrarot-Bereich) reflektierenden Oberflächen, z. B. Kupfer (/Platinen)&lt;br /&gt;
* Alles, was beim Verbrennen &#039;&#039;&#039;Blausäure&#039;&#039;&#039; (HCN / Cyanwasserstoff) freisetzt (z. B. PU, PA, ABS). &#039;&#039;&#039;In geringsten Konzentrationen extrem giftig!&#039;&#039;&#039;&lt;br /&gt;
* Alles, was beim Verbrennen &#039;&#039;&#039;Chlor&#039;&#039;&#039; oder andere korrosive Stoffe freisetzt (z. B. PVC, PTFE, Chlorkautschuk) &#039;&#039;&#039;Greift die Maschine an!&#039;&#039;&#039; (s. U. Kupferdraht-Test)&lt;br /&gt;
&lt;br /&gt;
=== Ja ===&lt;br /&gt;
* Holz - &#039;&#039;&#039;Natur-Materialien variieren stark. Mit jeder neuen Platte einen Test machen.&#039;&#039;&#039;&lt;br /&gt;
* Multiplex, MDF/HDF&lt;br /&gt;
* PMMA (Plexiglas/Acrylglas). Nicht verwechseln mit Bastlerglas/Hobbyglas (PS oder PVC)&lt;br /&gt;
* PS (Polystyrol), Kanten werden milchig&lt;br /&gt;
* PET, wird aber scheiße&lt;br /&gt;
* POM / Delrin (Polyacetal / Polyoxymethylen)&lt;br /&gt;
* (Stempel-)Gummi (Spezielles Produkt zum Lasern, nicht 0815 Gummi)&lt;br /&gt;
* Textil&lt;br /&gt;
* (Natur-)Leder&lt;br /&gt;
* Papier / Pappe&lt;br /&gt;
&lt;br /&gt;
=== Weiterlesen ===&lt;br /&gt;
* [https://vds.de/fileadmin/Website_Content_Images/VdS_Publikationen/vds_2516_web.pdf VDS - Kunststoffe: Eigenschaften, Brandverhalten, Brandgefahren] Tabelle auf S. 19&lt;br /&gt;
* [http://www.chymist.com/Polymer%20Identification.pdf Identifikation von Kunststoffen] u. A. mit Kupferdraht-Test&lt;br /&gt;
&lt;br /&gt;
== Schnittparameter ==&lt;br /&gt;
Alle angegebenen Werte sind Richtwerte, es empfiehlt sich jeweils vor dem Lasern des eigentlichen Objektes, eine kleine Probe mit den gewünschten Schnittparametern durchzuführen. Die Konkreten Werte hängen von vielen Parametern ab, die nicht immer konstant sind (Sauberkeit der Linse, Fokussierung des Lasers, aktuelle Leistung der Laserröhre, konkrete Materialbeschaffenheit [Holz],  ...).&lt;br /&gt;
Bei Naturmaterialien wie Holz und bei Sperrholz kommt es sehr auf die Art, das Alter und die Feuchtigkeit des Holzes an. Insbesondere ist Sperrholz nicht gleich Sperrholz nicht gleich Multiplex. Deshalb sind hier genaue Angaben und evt. auch die Bezugsquelle notwendig.&lt;br /&gt;
&lt;br /&gt;
=== Liste erweitern ===&lt;br /&gt;
{{Todo-Status|Hilf mit!}}&lt;br /&gt;
Bitte erweitert diese Liste um eure eigenen ermittelten Werte; insbesondere, wenn ihr Materialien lasert, die hier noch nicht aufgeführt sind. Falls ihr für ein Material bei gleicher Stärke einen anderen Wert ermittelt, erstellt einfach einen zweiten Eintrag.&lt;br /&gt;
&lt;br /&gt;
Noch ein Hinweis zum Testen: Achtet darauf, dass ihr bei voller Fahrt testet. Die Beschleunigungswege können bei hohen Geschwindigkeiten (z. B. für Papier und Pappe) sehr groß sein. Testet deshalb möglichst im manuellen Betrieb. So könnt ihr hören, ob die volle Geschwindigkeit erreicht ist und dann für den Test die Pulse-Taste drücken.&lt;br /&gt;
&lt;br /&gt;
=== Plexiglas / Acryl ===&lt;br /&gt;
Achtung! &amp;quot;Bastelglas&amp;quot; aus den Baumärkten wird oftmals als &amp;quot;Plexiglas&amp;quot; verkauft. Es handelt sich um Polystyrol. Besc**** zu schneiden mit hoher Brandgefahr!&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || || gravieren || 300 (250-300) || || 10-30 || 50 || Mitte Material || ? || Carsten || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || || gravieren || 200  ||20||20||50|| Oberfläche-0,5mm || ? || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas farbig|| || gravieren || 200 (150-250) || 20 || 20 || 50 ||  Oberfläche-1,0mm || 0.06 (0.12-0.06) || Stefan H. || 01.12.2018 || bestes Ergebnis bei Speed 200 mit 0.06 Sew width, noch gut wahrnehmbar bis Speed 250 mit Sew width 0.12&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 1 || schneiden || 100 (40-130) ||  || 75-80 || 50 || ? || ? || BRM || || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 2 || schneiden || 60 (30-90) ||  || 75-80 || 50 || ? || ? || BRM  || || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 3 || schneiden || 25 (10-40) ||  || 75-80 || 50 || 6 || ? || Carsten || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 3 || schneiden || 25  || 40 || 80 || 50 || 6 || ? || MiniKlaus || 04.06.2016 || Minimalpower verbessert Ecken.&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 5 || schneiden || 12 (10-40) ||  || 75-80 || 50 || ? || ? || BRM || ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 6 || schneiden || 10 ||  || 85 || 50 || 4 || ? || JanS || 15.09.2016 ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 8 || schneiden || 5 (2-7) ||  || 75-80 || 50 || ? || ? || BRM  ||  ||&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas klar || 10 || schneiden || 4 (2-6) ||  || 75-80 || 50 || ? || ? || BRM || ||  &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas schwarz || 3 || schneiden ||  ||  ||  || 50 || ? || ? || JanS || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas schwarz || 3 || schneiden || 25 || 45 || 85 || 50 || 6 || - || MiniKlaus || 13.07.2016 || schneidet sich wie klar und weiß&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas weiß || 3 || schneiden || 25  || 45 || 85 || 50 || 6 || - || MiniKlaus || 05.06.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas orange || 5 || schneiden || 14  || 85 || 95 || 50 || 5,0 || - || JanS || 10.11.2016 || das von RedNose&lt;br /&gt;
|-&lt;br /&gt;
| Plexiglas orange || 5 || schneiden || 12  || 80 || 95 || 50 || 5,0 || - || Stefan H. || 10.11.2018 || Bei höherem Speed nicht durch&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== POM / Delrin  ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| POM natur || 2 || schneiden || 32  || 40 || 90 || 50 || 6,5 || - || JanS || 30.09.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM natur || 6 || schneiden || 8-9  || 40 || 90 || 50 || 4,5 || - || JanS || 30.09.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM schwarz || 3 || schneiden || 25  || 40 || 90 || 50 || 6 || - || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| POM schwarz || 5 || schneiden || 15  || 40 || 85 || 50 || 5 || - || MiniKlaus || 20.08.2016 || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== PP (Polypropylen)  ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max  Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| PP grau || 2 || schneiden ||  ||  ||  ||  ||  || - || SvenJ || 08.09.2016 || sinnlos, geschmolzener Klumpen&lt;br /&gt;
|-&lt;br /&gt;
| PP grau || 2 || gravieren|| 200  || 30 || 30 || 50 || 7 || - || SvenJ || 08.09.2016 || Scan Interval 0,5mm&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Holz ===&lt;br /&gt;
Übersicht zur Gravur weiter unten in der Galerie&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Flugzeug Sperrholz || 1 || schneiden || 100 || || 85 || 50 || 6,5 || 0,1 ||  JanS, Hauke || 13.05.16 || *1,  Q1&lt;br /&gt;
|-&lt;br /&gt;
| Flugzeug Sperrholz || 1,5 || schneiden || 75 || ||  85 || 50 || 6 || 0,1 ||  JanS, Hauke || 13.05.16 || *1, Q2&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 1 || schneiden || 70 (30-120) || || 75-80 || 50 || ? || ? || BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 3 || schneiden || 45 (20-70) || || 75-80 || 50 || ? || ? || BRM || || fürs Stecken: Sew compensation 0.15 outward&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || 3 || schneiden || 35 || 70 || 85 || 50 || 6.0 || ? || Stefan H.|| 01.12.18 || Qualität B/BB&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 4 || schneiden || 45(20-70) || || 75-80 || 50 || ? || ? || Carsten || 00.04.16 || -&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Buche || 4 || schneiden || 15 || || 90 || 50 || 3,5 || ? || Sven || 07.04.24 || beim OBI erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || 6 || schneiden || 10 (10-50) || || 90 || 50 || 3,5 || ? || Carsten || 04.05.16 || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 8 || schneiden ||5 (2-7) || || 75-80 || 50 ||  ||  ||  BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz || 10 || schneiden || 4 (2-6) || || 75-80 || 50 ||  ||  || BRM ||  || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel|| 10 || schneiden || 8 || 80 || 85 || 50 || 2,5 || ? || Leon || 20.10.16 ||   &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Kiefer || 12 || schneiden || 5 (2-6) || || 90-100 || 50 || 1,5 || ? || Carsten ||  || Druckluft auf ca 1/3&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt; Sperrholz Birke &amp;lt;/span&amp;gt;  || 12 || schneiden ||&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Nicht möglich &amp;lt;/span&amp;gt;|| X || X || 50 || 1,5 || ? || Carsten || || &lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Birke || - || gravieren (scan) || 250 || 25-65 || 25-65 || 50 || 6.5 || - || Stefan H. || 01.12.18 || für &amp;gt; 250 spd keine Veränderung im Ergebnis wahrnehmbar&lt;br /&gt;
|-&lt;br /&gt;
| Bambus || 12 || gravieren|| 200 || || 50 || 50 || 7 || ? || NilsJen || 11.09.16  || ca. 1-2mm tief eingelasert, noch nicht optimal&lt;br /&gt;
|-&lt;br /&gt;
| Gummibaum || - || gravieren (scan) || 300 || 35 || 35 || 50 || 6 || - || Florian || 19.10.16 || 0,6mm tief, gute Bräunung [http://www.ikea.com/de/de/catalog/products/50228618/ Ikea-Schneidbrett MAGASIN]&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 8 || schneiden || 20-25 || ? || 95 || 50 || 3 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 10 || schneiden || 10 || ? || 95 || 50 || 2 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Sperrholz Pappel || 12 || schneiden || 10 || ? || 95 || 50 || 1,5 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Multiplex Birke || 6 || schneiden || 8 || ? || 95 || 50 || 4 || - || Florian || 24.11.16 || beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| Multiplex Birke || 10 || schneiden || 2 || ? || 95 || 50 || 2 || - || Florian || 24.11.16 || viel gekokel, beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
| |&amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Multiplex Birke&amp;lt;/span&amp;gt; || 12 || schneiden || &amp;lt;span style=&amp;quot;color:#F02000&amp;quot;&amp;gt;Nicht möglich &amp;lt;/span&amp;gt; || - || - || 50 || 2 || - || Florian || 24.11.16 || nicht möglich, beim Hagebau erhältlich&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== MDF / HDF ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF unklare Benennung || 3 || schneiden ||48 || || 85 || 50 || 5,5 || 0,035 - 0,04 || JanS || 02.05.2016 || -&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF unklare Benennung || 3 || schneiden ||40 || || 85 || 50 || 5,5 || 0,035 - 0,04 || Leon || 01.12.2016 || Eventuelles Nachlassen der Leistung?&lt;br /&gt;
|-&lt;br /&gt;
| MDF/HDF (Bauhaus) || 3 || schneiden || 20-25 || 70 || 85 || 50 || 6,0 || - || Stefan H. || 03.12.2018 || verrußte Schnittkanten&lt;br /&gt;
|-&lt;br /&gt;
| HDF (Q10) || 3 || schneiden || 25-30 || 70 || 85 || 50 || 6,0 || - || Stefan H. || 03.12.2018 || schöne, versiegelte Schnittkanten&lt;br /&gt;
|-&lt;br /&gt;
| HDF || 3 || cut-gravieren ||70 || 10 || 35 || 50|| 6 || || SvenJ || 08.09.2016 || Einzelner Strich im CUT Modus!&lt;br /&gt;
|-&lt;br /&gt;
| HDF || 5 || cut ||10 || 75 || 85 || 50|| 5 || || Leon || 12.01.2017 || - &lt;br /&gt;
|-&lt;br /&gt;
| MDF || 5 || schneiden || 15 || || 85 || 50 || 4,5 || ? || TobiasJ ||05.01.2017 || -&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 5 || scan-gravieren|| 200-250 || 10 || 35 || 50 || 6 || 0,1 || TobiasJ ||05.01.2017 || Je nach Schwärzungsgrad, Geschwindigkeit variieren&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 10 || schneiden || 6 || || 85 || 50 || 2 || ? || JanS ||18.04.2016 || -&lt;br /&gt;
|-&lt;br /&gt;
| MDF || 3 || schneiden || 45 || 85 || 95 || 50 ||  ||  || PeterS ||04.06.2024 || Material: Bauhaus - NEUE RÖHRE&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Papier / Pappe / Karton ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Screenboard-Karton || 2 || schneiden || 50 || ||  50 || 50 || 6 || 0,1 O || JanS || 13.05.2016 || *2 Q3 &lt;br /&gt;
|-&lt;br /&gt;
| Buchbinderpappe || 2 || schneiden || 50 || 60 ||  85 || 50 || 5,5  || 0,12 || Stefan H. || 09.02.2019 ||  &lt;br /&gt;
|-&lt;br /&gt;
| Tonkarton || 0,8 || schneiden || 250 ||  || 50 || 50 || 6  ||  || Daniel B. || 20.06.2023 ||  &lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 0,9 || schneiden || 250 || || 50 || 50 || 6 || 0,1 O || JanS || 13.05.2016 || *3 Q4&lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 1,5 || schneiden || 200 || ||  50 || 50 || 6 || 0,07 O || JanS || 14.05.2016 || *3 Q5&lt;br /&gt;
|-&lt;br /&gt;
| Finn-Pappe || 3,0 || schneiden || 75 || || 50 || 50 || 6 || 0,06 O || JanS || 14.05.2016 || *3 Q6&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 5-6 || schneiden || || ||  || 50 || ? || ? || JanS || 00.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 3 || schneiden || 200 || || 30 || 85 || ? || ? || TobiasJ|| 16.03.2017 ||&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 1 || schneiden || 400 || || 35 || 50 || ? || ? || Hauke || 06.04.2016 ||  *1&lt;br /&gt;
|-&lt;br /&gt;
| Wellpappe || 1 || gravieren || 400 || || 17 || 50 || ? || ? || Hauke || 06.04.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Transparentpapier || ? 80 g/m² || gravieren || 400 || || 10 || 50 || 8 || - || Patric || 30.09.2016 || Gravur wird weiß bzw. opak &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stahl ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Stahl || egal || Gravur || 65 || 85 ||  85 || 50 || 7 || 0,1 || MiniKlaus || 30.0.2016 || Rasterabstand:0.1mm *4 Q7 &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Aluminium ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium schwarz || -- || Gravur || 160 || 80 ||  80 || 50 || 7 || 0.08 || MiniKlaus || 14.11.2016 || [[Lasercutter#Galerie|Testbild]]&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium grau|| -- || Scan || 100 || 10 ||  10 || 50 || 7 || 0.1 || SvenJ || 13.10.2018 || &amp;quot;Natur&amp;quot; Alu, wird heller. siehe Anschlaege Holzwerkstatt&lt;br /&gt;
|-&lt;br /&gt;
| Eloxiertes Aluminium schwarz|| -- || Gravur || 100 || 10 ||  10 || 50 || 7 || 0.1 || Marcel || 13.10.2018 || Alu wird heller -&amp;gt; [[Lasercutter#Galerie|SSD-laser-gravur.jpeg]]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Stempelgummi ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || schneiden ||30 ||40 || 85 || 50 || 7 || - || MiniKlaus || 23.07.2016 || &lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || gravieren ||250 ||65 || 70 || 50 || 7 || 0.06 || MiniKlaus || 23.07.2016 || Kontour nicht schneiden.  Dauert recht lange.&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || schneiden ||15 ||70 || 85 || 50 || 6.5 || - || Stefan H. || 21.11.2018 || Bei höherer Speed nicht durch.&lt;br /&gt;
|-&lt;br /&gt;
| Stempelgummi || 2.3 || gravieren ||200 ||65 || 70 || 50 || 6.5 || 0.06 || Stefan H. || 21.11.2018 || 0.7mm Material abgetragen.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Leder ===&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| schneiden/ gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;|Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 1 || schneiden ||100|| 50 || 50 || 50 || 7 || - || SvenJ|| 15.9.2016 || 1,5mm Rinder-&amp;quot;Nubuk&amp;quot;; Kanten werden unterschiedlich&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 1 || gravieren ||200 || 15 || 15 || 50 || 7 || - || SvenJ || 15.9.2016 ||&lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||200 || 15 || 15 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur deutlich in die Oberfläche gebrannt, Laserstaub lässt sich feucht gut wegwischen. &lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||300 || 10 || 10 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur sicht-  &amp;amp; fühlbar &lt;br /&gt;
|-&lt;br /&gt;
| Leder|| 2 || gravieren ||500 || 10 || 10 || 50 || 7 || - || Patric || 30.9.2016 || braunes Rinderleder mit glatter Oberfläche; Gravur sichtbar, aber praktisch nicht fühlbar &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Glas ===&lt;br /&gt;
Glas lässt sich nur gravieren. &lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Glas|| egal || gravieren ||50, 100|| 30 || 100 || 50 || 7 || - || Carsten|| 23.12.2016 || Haushaltsglas auf Rotationsachse. Tiefe/Deutlichkeit der Gravur steigt bei steigendem Energieeintrag langsam an. Zu hoher Energieeintrag führt erst zu verschwommenen Konturen mit Faserbildung später zum Bruch. &lt;br /&gt;
|-&lt;br /&gt;
| Glas|| egal || gravieren || 100|| 25 || 25|| 50 || 5.0 || 0.06 || Stefan H.|| 14.02.2019 ||Trinkglas aus Milchglas. Ggf. 2x befahren.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Sonstiges Material ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;mainpagetable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
! bgcolor=&amp;quot;#6699ff&amp;quot; | Material&lt;br /&gt;
!  bgcolor=&amp;quot;#99ccff&amp;quot;| Dicke [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| gravieren&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Speed [mm/s]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Min Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Max Power [%]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Linse [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Fokus [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Sew width [mm]&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Benutzer&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Datum&lt;br /&gt;
! bgcolor=&amp;quot;#99ccff&amp;quot;| Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Mylar Folie || egal || schneiden || 400 || 40 || 40 || 50 || 7.5 || - || Ali || 2.10.2017 || Solder-Stencil, Rastern mit 0.1mm &lt;br /&gt;
|-&lt;br /&gt;
| Straußen Ei|| egal || gravierend || 50 || 50|| 40 || 50 || 7.5 || - || cobii || 28.06.2018 || Straußenei wurde gut gelasert s. Bild [[https://wiki.attraktor.org/File:StraussenEi.jpg]]&lt;br /&gt;
|-&lt;br /&gt;
| Polystyrol || 1,5mm|| schneiden || 20 || 55 || 70 || 50 || 6 || - || Aeris || 07.08.2018 || laserwidth ~.8mm&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Legende ===&lt;br /&gt;
:; Speed&lt;br /&gt;
:: Schnittgeschwindigkeit in Millimeter pro Sekunde&lt;br /&gt;
:; Power&lt;br /&gt;
:: Leistung des Lasers in Prozent. Da wir z.Z. eine 100 W Laserröhre in unserm Laser haben, entspricht der Zahlenwert der Leistung in Watt.&lt;br /&gt;
:; Linse&lt;br /&gt;
:: Angabe der Brennweite der verwendeten Linse in Millimetern. Wir haben derzeit zwei verschiedene Linsen eine mit einer Brennweite von 63,5 mm und eine mit einer Brennweite von 100 mm. Die Linse mit der Brennweite von 63,5 mm ist die Normal Linse, die bei dünneren Materialien die besten Schnittergebnisse erzielt. Die Linse mit der Brennweite von 100 mm ist zum Schneiden von dickere Materialien.&lt;br /&gt;
:; Fokus&lt;br /&gt;
:: Hier ist der Abstand der Unterkante des Objektivtubuses zur Materialoberfläche angegeben. Bei der 63,5 mm Linse liegt der  Fokus etwa 7,5 mm unterhalb des Objektivtubuses. Da sich der Fokus in etwa in der Mitte des Materials liegen sollte, lässt sich der notwendige Abstand auch leicht rechnerisch bestimmen.&lt;br /&gt;
:; Sew width&lt;br /&gt;
:: Dieser Wert kann bei den Schnittparametern angegeben werden. Er gibt den Stahldurchmesser an und wird bei Passungendafür verwendet den Strahldurchmesser zu berücksichtigen. Der zu verwendende Wert hängt stark von dem Material und seiner Dicke sowie der Schnittgeschwindigkeit ab.&lt;br /&gt;
:; Benutzer &lt;br /&gt;
:: Wenn hier ein Benutzer eingetragen ist, heißt das, dass es sich um von uns auf unserer Maschine ermittelte Werte handelt. Falls nicht, handelt es sich um Literaturwerte. Die Quelle sollte unter Bemerkungen angegeben werden.&lt;br /&gt;
:; ?&lt;br /&gt;
:: die mit einem &amp;quot;?&amp;quot; angegebenen Werte müssen noch eingetragen bzw. bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
=== Fußnoten ===&lt;br /&gt;
: &#039;&#039;&#039;*1&#039;&#039;&#039; - Bei langen geraden Strecken muss die Geschwindigkeit z.T deutlich reduziert werden, da der Laser erst auf diesen richtig beschleunigt.&lt;br /&gt;
: &#039;&#039;&#039;*2&#039;&#039;&#039; - Beiseitig weiß beschichteter Karton. Die Schmauchspuren lassen sich mit einem leicht feuchten Lappen und etwas Druck relativ gut abreiben. Überstehenden Leim oder Kleber besser abtupfen, nicht wischen. Ponal Express geht gut oder aber Planatol BB.&lt;br /&gt;
: &#039;&#039;&#039;*3&#039;&#039;&#039; - einfache, leicht gelbliche Pappe, keine Schmauchspuren, relativ saubere Ränder. Ponal Express geht gut oder aber Planatol BB.&lt;br /&gt;
: &#039;&#039;&#039;*4&#039;&#039;&#039; - Lasermarkierung auf Stahl mit Molybdänsulfat-Trockenschmiermittel. Einsprühen mit leichter Schicht. Außenlinie schneiden nach Rastern verbessert den Kontrast. Möglich mit verchromten Werkzeugen und wahrscheinlich mit allen Stahlarten. Getestetes Spray unter Q7&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Quellen und weitere Materialbeschreibung ===&lt;br /&gt;
: &#039;&#039;&#039;Q1&#039;&#039;&#039; - Andresen &amp;amp; Jochimsen 25 €/qm. Wird aber nur in ganzen Platten (1500 mm* 1500 mm) verkauft. Transportschnitte werden aber durchgeführt.&lt;br /&gt;
: &#039;&#039;&#039;Q2&#039;&#039;&#039; - Andresen &amp;amp; Jochimsen 23 €/qm. Wird aber nur in ganzen Platten (1500 mm* 1500 mm) verkauft. Transportschnitte werden aber durchgeführt.&lt;br /&gt;
: &#039;&#039;&#039;Q3&#039;&#039;&#039; - Beidseitig weiß beschichteter Karton. Wird bei Boesner (www.boesner.com, 2 Filialen in Hamburg) unter dem Namen Phoebe Einlegekarton verkauft. Z.B. 1 m * 0,7 m 3,75 €. Es gibt auch kleinere Formate.&lt;br /&gt;
: &#039;&#039;&#039;Q4&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 1.94 €. &lt;br /&gt;
: &#039;&#039;&#039;Q5&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 2,55 €. &lt;br /&gt;
: &#039;&#039;&#039;Q6&#039;&#039;&#039; - einfacher, leicht gelblicher Karton. Wird auch bei Boesner (www.boesner.com, 2 Filialen in Hamburg) verkauft. Z.B. 1 m * 0,7 m 4,38 €. &lt;br /&gt;
: &#039;&#039;&#039;Q7&#039;&#039;&#039; - Molybdänsulfid-Trockenschmiermittel. Schlechte Verfügbarkeit in Deutschland. &amp;quot;CRC DRY MOLY LUBE MoS2-Gleitlack&amp;quot; Dose reicht für ~500 Markierungen . Dose (400ml) 13-17€ . &lt;br /&gt;
: &#039;&#039;&#039;Q8&#039;&#039;&#039; - Gummi speziell für das Lasern von Stempeln. Ebay &amp;quot;Lasergummi&amp;quot;. A4 Platte - 10€ [http://www.ebay.de/itm/Lasergummi-Stempelgummi-2-3-mm-Graviermaterial-fur-Lasergraviermaschine-Stempel-/161704835355][http://www.gravierbedarf.de/epages/63201300.sf/de_DE/?ObjectPath=/Shops/63201300/Categories/StempelGummi]&lt;br /&gt;
: &#039;&#039;&#039;Q9&#039;&#039;&#039; - Hochwertiges Birkensperrholz, Pappelsperrholz, Qualität B/B für Laser/Modellflugzeug: [http://www.thomabalsa.de/]&lt;br /&gt;
: &#039;&#039;&#039;Q10&#039;&#039;&#039; - Sperrholz in B/BB Qualität, HDF nach EN622-5/EN622-1 und breite Palette an Acryl: [http://www.expresszuschnitt.de/]&lt;br /&gt;
&lt;br /&gt;
=== Bemerkungen ===&lt;br /&gt;
Diese ist eine Sammlung von Informationen, die im Laufe der Arbeit mit unserem Lasercutter gesammelt wurden. Sie ist erst einmal ungeordnet und unsystematisch.&lt;br /&gt;
* Der Wabentisch ist nicht 1300 mm sondern nur 1280 mm breit.Dieses ist bei der Materialbeschaffung zu beachten. Maximale Materialgröße: 1280 mm * 900 mm. (JanS)&lt;br /&gt;
* Es ist auf eine möglichst gute Planlage des Werkstückes zu achten. Bei dünnen Holz und MDF kann dieses problematisch sein. &lt;br /&gt;
* Im Zubehör-Schränkchen befinden sich diverse Magnete aus alten Festplatten, damit lassen sich nicht allzu stark gewellte Platten runterdrücken.&lt;br /&gt;
* Die Planlage diverser Materialien kann durch die Verwendung der Festplattenmagneten deutlich verbessert werden. Evt. zwei Magneten verwenden. Achtung! Passt auf, das der Linsentubus nicht mit den Magneten kollidiert. (Carsten und JanS)&lt;br /&gt;
* Wenn der Laserkopf weit ausgefahren wird kann er beim Hochschieben an der zweiten Schraube hängen bleiben. Dann setzt er beim Fahren am Tisch auf! Daher genau darauf achten den Kopf wieder wirklich ganz nach oben zu schieben. (Marcel)&lt;br /&gt;
&lt;br /&gt;
=== Materialspezifische Tipps ===&lt;br /&gt;
Acryl&lt;br /&gt;
*Beim Schneiden und Gravieren von &amp;gt;5mm Platten sollte man die Schritte trennen und dazwischen die Linse verstellen. -0.5mm unter der Oberfläche gibt die schärfte Gravur.&lt;br /&gt;
*Schutzfolie an der Oberseite zu belassen führt zu einer ungleichmäßigen Gravur und spürbar reduzierter Gravurtiefe (siehe Bild unten). Verunreinigungen durch das Lasern ohne Schutzfolie lassen sich aber gut mit Brennspiritus (nicht Aceton!) wieder entfernen. =&amp;gt; besser also ohne Schutzfolie. Schutzfolie an der Unterseite sollte bleiben wegen Laserreflektionen vom Wabentisch.&lt;br /&gt;
POM / Delrin&lt;br /&gt;
*Geruchsbelastung ist sehr gering. Geruchloses Formaldehyd dampft ab, ähnlich MDF bei Zerspannung. Lüftung kurz weiterlaufenlassen sonst Kopfschmerzen etc.&lt;br /&gt;
*Sehr brauchbares Material für mechanische Konstruktionen. POM ist um ein vielfaches zäher als Acryl, welches gerade bei engen Toleranzen gerne zerbricht.&lt;br /&gt;
*Die Reibung von POM ist relativ gering, sodass es auch für Gleitanwendungen, wie etwa Schlitten in Aluminiumprofilen eingesetzt werden kann.&lt;br /&gt;
*Gewinde lassen sich gut in POM schneiden und halten erstaunlich hohe Belastungen aus. &lt;br /&gt;
*Kleben von POM auf POM ist schwierig bzw. unmöglich. Evt. kann es zusammengeschweißt werden. Schmelzpunkt 165°C bis 180°C.&lt;br /&gt;
HDF&lt;br /&gt;
*Beim &amp;quot;Scan&amp;quot; für die Gravuren schlägt sich neben der Schrift immer der Leimdampf nieder. Dies kann mit einem kleinen Stück Papierklebeband, durch welches man durchlasert, verhindert werden. &lt;br /&gt;
*Der Leimdampf kann mit einem feuchten Lappen weggewischt werden. Das HDF zieht schnell feuchtigkeit und verändert seine Maße. Also erst zusammenbauen, dann reinigen.&lt;br /&gt;
*Die Unterschiede von  MDF/HDF aus dem Baumarkt und HDF nach EN622-5/EN622-1 sind erheblich. Wenn Material geschliffen und lackiert werden soll =&amp;gt; Baumarkt reicht; wenn Material unbehandelt bleibt =&amp;gt; HDF nach EN622-5/EN622-1 nehmen.&lt;br /&gt;
Holz&lt;br /&gt;
* Beim Gravieren von Holz lässt sich u.U. eine dunklere Färbung bei weniger Materialabtrag erreichen, wenn der Tisch ~6mm aus dem Fokus gefahren wird. Dazu kann man die Pen Up/Down Einstellungen verwenden. Auf den Abstand zur Linse achten.&lt;br /&gt;
Leder&lt;br /&gt;
* Die Geruchsentwicklung beim Schneiden &amp;amp; Gravieren ist sehr stark, der Filter hält diese kaum zurück. Daher bitte: Fenster zu! (v.a. im Nähraum &amp;amp; Elektronik Werkstatt, gerne auch alle anderen)&lt;br /&gt;
* Laserstaub vom Gravieren ließ sich bei Glattledern mit feuchtem Tuch gut entfernen&lt;br /&gt;
&lt;br /&gt;
==Rotation==&lt;br /&gt;
Wir haben für unseren Lasercutter einen Rotationseinsatz. Damit können Runde Dinge graviert oder geschnitten werden. Siehe [[Lasercutter/Rotary]].&lt;br /&gt;
&lt;br /&gt;
==Galerie==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:BeschriftungsTest.jpg|Lasermarkierung von eloxiertem Aluminium (schwarz)- kleinste Schrift im Bild 1.1mm Höhe&lt;br /&gt;
File:Universal-snap-fit.jpg|[https://tltl.stanford.edu/project/universal-snap-fit Universal Snap Fit] in 5mm Sperrholz&lt;br /&gt;
File:GravurUebersicht.jpg|Ergebnis unterschiedlicher Leistungs/Geschwindig-keits Kombinationen in Pappel Sperrholz&lt;br /&gt;
File:GravurSeite.jpg|Einbrenntiefe unterschiedlicher Leistungs/Geschwindig-keits Kombinationen in 4mm Pappel Sperrholz&lt;br /&gt;
File:Bohrstaender.jpg|Bohrständer für ein Bohrerset aus HDF&lt;br /&gt;
File:Cases_Mk.jpg|Projektboxen aus HDF und Plexiglas&lt;br /&gt;
File:StraussenEi.jpg|Straußenei gelasert&lt;br /&gt;
File:SSD-laser-gravur.jpeg|Eloxiertes Alu graviert&lt;br /&gt;
File:Plexiglas-3mm-fluoreszierend-cut+gravur.jpg|Spieltoken aus Plexiglas fluoreszierend 3mm mit cut und scan&lt;br /&gt;
File:Plexiglas-gravur-schutzfolie.jpg|Gravur auf Plexiglas mit (links, sichtbare Unebenheiten) und ohne (rechts, sauberere Gravur) Schutzfolie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wartung ==&lt;br /&gt;
Die regelmäßige Wartung (Reinigung, Schmierung, etc.) übernehmen derzeit Tobias, Marcel und Florian. Wenn irgendetwas an der Maschine zu beanstanden ist, bitte eine Mail an die bekannte Mailingliste.&lt;br /&gt;
&lt;br /&gt;
* [[Media:Lasercutter Logbucheintrag.pdf|Logbucheintrag zum Ausdrucken]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 19.04.2022: Z-Riemen gewechselt ===&lt;br /&gt;
* Der Riemen für die Z-Achse (Tisch hoch/runter) hat sich gelängt, konnte nicht weiter gespannt werden und ist deshalb übergesprungen&lt;br /&gt;
* Riemen: Profil HDT, 5mm Zahnabstand, Breite: 15mm, Länge: 5,3m (verschweißt), Kosten: 193,38 € (inkl. MwSt. &amp;amp; Versand)&lt;br /&gt;
* Gewechselt von Tobias und Florian&lt;br /&gt;
* Dafür musste das gesamte Gestell ausgebaut werden&lt;br /&gt;
* Zeitbedarf: 2,5 Stunden&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Anschluss Motorkabel&lt;br /&gt;
|-&lt;br /&gt;
! Kabel vom Motortreiber !! Kabel zum Motor&lt;br /&gt;
|-&lt;br /&gt;
| grün || gelb/schwarz&lt;br /&gt;
|-&lt;br /&gt;
| gelb || blau/rot&lt;br /&gt;
|-&lt;br /&gt;
| braun || grün/orange&lt;br /&gt;
|-&lt;br /&gt;
| weiß || weiß/braun&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 07.03.2024: Linse bei 63,5mm Optik getauscht ===&lt;br /&gt;
* Gewechselt von Tobias&lt;br /&gt;
* Zeitbedarf: 0,5 Stunden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 02.05.2024: Laserröhre und Netzteil getauscht. ===&lt;br /&gt;
* Die bisherige 100W Röhre hat in ihrer Leistung nachgelassen und wurde daher durch eine 150W Röhre ersetzt.&lt;br /&gt;
* Upgrade des Laser-Netzteils passend für eine 150W Röhre.&lt;br /&gt;
* Der Umbau verlief absolut reibungslos.&lt;br /&gt;
* Gewechselt von Carsten und Tobias&lt;br /&gt;
* Zeitbedarf: ca. 3 Stunden&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
{{Template:SieheAuch:Lasercutter}}&lt;br /&gt;
{{Template:SieheAuch:CNC-Maschinen}}&lt;br /&gt;
&lt;br /&gt;
[[Category:CNC-Maschinen]]&lt;br /&gt;
[[Category:QR:todo]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41057</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41057"/>
		<updated>2024-06-02T15:47:42Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Python wird sehr viel Wert auf die Lesbarkeit des Codes gelegt.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr für einen einzelnen Charakter gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Set====&lt;br /&gt;
Sets dürfen keine mehrfachen Einträge haben! Die Reihenfolge der Einträge ist nicht festgelegt. Sets sind für die Arbeit mit Mengen vorgesehen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
my_set = {1, 2, 3, &#039;Hallo&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;br /&gt;
&lt;br /&gt;
== Navigation==&lt;br /&gt;
[[Programmieren|Zur Programmieren Übersichtsseite]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41056</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41056"/>
		<updated>2024-06-02T15:47:16Z</updated>

		<summary type="html">&lt;p&gt;Kapest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Python wird sehr viel Wert auf die Lesbarkeit des Codes gelegt.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr für einen einzelnen Charakter gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Set====&lt;br /&gt;
Sets dürfen keine mehrfachen Einträge haben! Die Reihenfolge der Einträge ist nicht festgelegt. Sets sind für die Arbeit mit Mengen vorgesehen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
my_set = {1, 2, 3, &#039;Hallo&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;br /&gt;
&lt;br /&gt;
== Navigation==&lt;br /&gt;
[[Programmieren|Zur Programmieren Übersichtsseite]]&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41055</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41055"/>
		<updated>2024-06-02T15:41:26Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Python wird sehr viel Wert auf die Lesbarkeit des Codes gelegt.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr für einen einzelnen Charakter gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Set====&lt;br /&gt;
Sets dürfen keine mehrfachen Einträge haben! Die Reihenfolge der Einträge ist nicht festgelegt. Sets sind für die Arbeit mit Mengen vorgesehen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
my_set = {1, 2, 3, &#039;Hallo&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41054</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41054"/>
		<updated>2024-06-02T15:39:41Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* str */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr für einen einzelnen Charakter gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Set====&lt;br /&gt;
Sets dürfen keine mehrfachen Einträge haben! Die Reihenfolge der Einträge ist nicht festgelegt. Sets sind für die Arbeit mit Mengen vorgesehen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
my_set = {1, 2, 3, &#039;Hallo&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41053</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41053"/>
		<updated>2024-06-02T15:37:04Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Set */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Set====&lt;br /&gt;
Sets dürfen keine mehrfachen Einträge haben! Die Reihenfolge der Einträge ist nicht festgelegt. Sets sind für die Arbeit mit Mengen vorgesehen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
my_set = {1, 2, 3, &#039;Hallo&#039;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41052</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41052"/>
		<updated>2024-06-02T15:36:29Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Tuple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Set====&lt;br /&gt;
Sets dürfen keine mehrfachen Einträge haben! Die Reihenfolge der Einträge ist nicht festgelegt. Sets sind für die Arbeit mit Mengen vorgesehen.&lt;br /&gt;
my_set = {1, 2, 3, &#039;Hallo&#039;}&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41051</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41051"/>
		<updated>2024-06-02T15:27:13Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Das hier ist die Vorbereitung für einen Kurs Micropython für Umsteiger der eventuell nach den Sommerferien stattfindet. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
Dieser Kurs richtet sich an Leute die schon etwas programmiert haben, z.B. mit der Arduino-IDE oder auf dem PC.&amp;lt;br&amp;gt;&lt;br /&gt;
Er ist nicht für Programmiereinsteiger geeignet, weil Grundlagen der Programmierung nicht vermittelt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Es wird vorausgesetzt, dass die Teilnehmer grundlegende Programmierkentnisse besitzen.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Kurs werden die Unterschiede von Micropython zu C oder anderen C-ähnlichen Programmiersprachen, sowie die Besonderheiten von Microcontroller besprochen.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Als Hardware kommen der &#039;&#039;&#039;Raspberry Pi Pico&#039;&#039;&#039; und das &#039;&#039;&#039;Micropython Demoboard&#039;&#039;&#039; zum Einsatz.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Gelernte ist aber auch auf andere Microcontroller übertragbar, auf denen Micropython läuft (z.B. ESP32, STM32).&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41050</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41050"/>
		<updated>2024-06-02T15:16:21Z</updated>

		<summary type="html">&lt;p&gt;Kapest: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Das hier ist die Vorbereitung für einen Kurs &#039;&#039;&#039;Micropython für Umsteiger&#039;&#039;&#039; der eventuell nach den Sommerferien stattfindet. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=41049</id>
		<title>Programmieren</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Programmieren&amp;diff=41049"/>
		<updated>2024-06-02T15:13:56Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Kurse */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diese Seite enthält links zu den Seiten im Wiki die sich mit dem Theme Programmieren beschäftigen.&lt;br /&gt;
&lt;br /&gt;
==Kurse==&lt;br /&gt;
[[Micropython Kurs 2022]] - Dieser Kurs ist jetzt beendet. Seine Inhalte werden nach und nach Eingang in die Micropython Referenz finden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython Kurs 2023]] - Dieser Kurs startet am 31.10.2023 um 18.00 Uhr&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[Micropython_Quicky]] - Dieser Kurs ist noch in der Planung&lt;br /&gt;
&lt;br /&gt;
==Referenzen==&lt;br /&gt;
=== [https://micropython.aundz.net/index.php?title=Hauptseite Micropython Referenz] ===&lt;br /&gt;
Hierbei handelt es sich um eine Referenz zur Programmiersprache Micropython. Diese habe [[User:Kapest|ich]] angelegt, weil die Informationen zum M5Stack Micropython sehr unvollständig und im Netz verteilt sind. &lt;br /&gt;
&lt;br /&gt;
Ich werde meine Erfahrungen mit Micropython und auch die Inhalte meiner Kurse zu Micropython hier einfließen lassen. Natürlich freue ich mich über Unterstützung bei diesem Unternehmen.&lt;br /&gt;
&lt;br /&gt;
Diese Webseite befindet sich derzeit auf meinem privaten Account. Es ist aber beabsichtigt sie später in das Attraktor Wiki zu integrieren.&lt;br /&gt;
&lt;br /&gt;
== ==&lt;br /&gt;
[[Attraktor_Wiki|Zur Attraktor Wiki Startseite]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Team_Event_MP&amp;diff=41048</id>
		<title>Team Event MP</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Team_Event_MP&amp;diff=41048"/>
		<updated>2024-06-02T15:12:21Z</updated>

		<summary type="html">&lt;p&gt;Kapest: Kapest moved page Team Event MP to Micropython Quicky&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Micropython Quicky]]&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41047</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41047"/>
		<updated>2024-06-02T15:12:21Z</updated>

		<summary type="html">&lt;p&gt;Kapest: Kapest moved page Team Event MP to Micropython Quicky&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41038</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41038"/>
		<updated>2024-05-31T10:10:10Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Module / Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ &lt;br /&gt;
* https://github.com/mcauser/awesome-micropython &lt;br /&gt;
* https://learn.adafruit.com/ &lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41037</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41037"/>
		<updated>2024-05-31T10:03:27Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Module / Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ https://github.com/&lt;br /&gt;
* https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython&lt;br /&gt;
* https://learn.adafruit.com/ https://learn.adafruit.com/&lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
=== Hilfsfunktionen===&lt;br /&gt;
; help(&#039;modules&#039;)&lt;br /&gt;
: gibt die vorhandenen Module aus.&lt;br /&gt;
; dir(Objektname)&lt;br /&gt;
: gibt den Inhalt eines Objekts aus.&lt;br /&gt;
; type(Objektname)&lt;br /&gt;
: gibt den Typ des Objekts aus.&lt;br /&gt;
; id(Objektname)&lt;br /&gt;
: gibt die ID des Objekts aus.&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41030</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41030"/>
		<updated>2024-05-30T20:33:03Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* bool */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen, 0 und None.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ https://github.com/&lt;br /&gt;
* https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython&lt;br /&gt;
* https://learn.adafruit.com/ https://learn.adafruit.com/&lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41029</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41029"/>
		<updated>2024-05-30T20:31:51Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Module / Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* https://github.com/ https://github.com/&lt;br /&gt;
* https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython&lt;br /&gt;
* https://learn.adafruit.com/ https://learn.adafruit.com/&lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41028</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41028"/>
		<updated>2024-05-30T20:31:11Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Module / Bibliotheken */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
&lt;br /&gt;
* https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* [[https://github.com/ https://github.com/]]&lt;br /&gt;
* [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
* https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41027</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41027"/>
		<updated>2024-05-30T20:28:40Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* einfache Variablen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
Es wird kein Typ für eine Variable festgelegt. Python ist dynamisch typisiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
42&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = 3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
3.14&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x = &#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; x&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In neueren Pythonversionen können auch Typen festgelegt werden. In Micropython ist das aber nicht implementiert.&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41026</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41026"/>
		<updated>2024-05-30T20:24:23Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Was unterscheidet Python von anderen Programmiersprachen? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in &#039;&#039;&#039;{}&#039;&#039;&#039; eingefasst werden, sondern &#039;&#039;&#039;eingerückt&#039;&#039;&#039; werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41025</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41025"/>
		<updated>2024-05-30T20:23:30Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Namen in Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &amp;quot;.py&amp;quot; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41024</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41024"/>
		<updated>2024-05-30T20:23:01Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Namen in Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
; Modulnamen&lt;br /&gt;
: ... werden komplett klein geschrieben und &#039;.py&#039; angehängt.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41023</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41023"/>
		<updated>2024-05-30T20:20:29Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Namen in Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
Namen dürfen in Python aus Groß-, Kleinbuchstaben, Zahlen und dem Unterstrich gebildet werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie dürfen nicht mit einer Zahl beginnen!&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41022</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41022"/>
		<updated>2024-05-30T20:19:01Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Namen in Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Variablen- und Funktionsnamen&lt;br /&gt;
: ... werden komplett klein geschrieben. Mehrere Worte werden durch Unterstrich getrennt (snakecase).&lt;br /&gt;
; Konstantennamen&lt;br /&gt;
: ... werden komplett groß geschrieben.&lt;br /&gt;
; Klassennamen&lt;br /&gt;
: ... werden beim ersten Buchstaben groß geschrieben.&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41021</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41021"/>
		<updated>2024-05-30T20:10:27Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Programmieren mit Micropython */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Namen in Python==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41020</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41020"/>
		<updated>2024-05-30T18:31:39Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Schleifen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur &#039;&#039;&#039;2&#039;&#039;&#039; Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41019</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41019"/>
		<updated>2024-05-30T18:29:31Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Schleifen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur 2 Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
        print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41018</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41018"/>
		<updated>2024-05-30T18:28:57Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Schleifen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur 2 Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for i in range(10):&lt;br /&gt;
    print(i)&lt;br /&gt;
    &lt;br /&gt;
0&lt;br /&gt;
1&lt;br /&gt;
2&lt;br /&gt;
3&lt;br /&gt;
4&lt;br /&gt;
5&lt;br /&gt;
6&lt;br /&gt;
7&lt;br /&gt;
8&lt;br /&gt;
9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn für eine Liste zusätzlich der Index benötigt wird:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41017</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41017"/>
		<updated>2024-05-30T18:20:49Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Tuple */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;int&#039;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tup = (23,)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; type(tup)&lt;br /&gt;
&amp;lt;class &#039;tuple&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur 2 Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41016</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41016"/>
		<updated>2024-05-30T18:18:26Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* bool */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
; False&lt;br /&gt;
: Leere Datenstrukturen und 0.&lt;br /&gt;
; True&lt;br /&gt;
: Alles Andere.&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur 2 Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
	<entry>
		<id>https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41015</id>
		<title>Micropython Quicky</title>
		<link rel="alternate" type="text/html" href="https://wiki.attraktor.org/index.php?title=Micropython_Quicky&amp;diff=41015"/>
		<updated>2024-05-30T18:16:54Z</updated>

		<summary type="html">&lt;p&gt;Kapest: /* Was unterscheidet Python von anderen Programmiersprachen? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024==&lt;br /&gt;
&lt;br /&gt;
== Löten==&lt;br /&gt;
&lt;br /&gt;
== Was ist ein Microcontroller im Gegensatz zum PC? ==&lt;br /&gt;
&lt;br /&gt;
== Was bietet das Demoboard?==&lt;br /&gt;
&lt;br /&gt;
== Die IDE Thonny==&lt;br /&gt;
&lt;br /&gt;
== Python==&lt;br /&gt;
Python ist objektorentiert entwickelt worden. &#039;&#039;&#039;Alles&#039;&#039;&#039; in Python ist ein Objekt. Demnach hat auch &#039;&#039;&#039;Alles&#039;&#039;&#039; Methoden. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In Micropython sind diese häufig nur sehr rudimentär implementiert.&lt;br /&gt;
&lt;br /&gt;
== Micropython==&lt;br /&gt;
&lt;br /&gt;
=== Python vs. Micropython===&lt;br /&gt;
Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.&amp;lt;br&amp;gt;&lt;br /&gt;
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.&lt;br /&gt;
&lt;br /&gt;
=== Was unterscheidet Python von anderen Programmiersprachen?===&lt;br /&gt;
Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if a &amp;gt; b:&lt;br /&gt;
    tue etwas&lt;br /&gt;
a = b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Einrückung beträgt &#039;&#039;&#039;4 Spaces&#039;&#039;&#039; - !kein Tab!&amp;lt;br&amp;gt;&lt;br /&gt;
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.&lt;br /&gt;
&lt;br /&gt;
=== Datentypen und Datenstrukturen in Python===&lt;br /&gt;
Die Datentypen von Python sind recht übersichtlich:&lt;br /&gt;
==== int====&lt;br /&gt;
Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.&lt;br /&gt;
&lt;br /&gt;
==== float====&lt;br /&gt;
Floats werden mit maximal 7-stelliger Mantisse ausgegeben.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.&lt;br /&gt;
&lt;br /&gt;
==== str====&lt;br /&gt;
String ist sowohl Datentyp als auch Datenstruktur.&amp;lt;br&amp;gt;&lt;br /&gt;
Chr gibt es nicht.&lt;br /&gt;
&lt;br /&gt;
==== bool====&lt;br /&gt;
&lt;br /&gt;
==== None====&lt;br /&gt;
None ist nichts. Entspricht einer nicht initialisierter Variablen.&amp;lt;br&amp;gt;&lt;br /&gt;
Es ist nicht 0!&lt;br /&gt;
&lt;br /&gt;
==== complex====&lt;br /&gt;
Python kann auch mit komplexen Zahlen arbeiten.&lt;br /&gt;
&lt;br /&gt;
==== einfache Variablen====&lt;br /&gt;
&lt;br /&gt;
==== Listen====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
liste = [1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste&lt;br /&gt;
[1, 2, 3, &#039;Hallo&#039;, 3.14]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die Elemente einer Liste sind indexiert.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; liste[3]&lt;br /&gt;
&#039;Hallo&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tuple====&lt;br /&gt;
Tuple sind wie Listen aber unveränderbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tuple = (1, 2, 3, &#039;attraktor&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Dictionarys====&lt;br /&gt;
Dictionaries enthalten &#039;&#039;&#039;key:value&#039;&#039;&#039; Paare (item).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dikt = {&#039;eins&#039;: 1, &#039;zwei&#039;: 2}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Der Zugriff erfolgt durch den Key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dikt[&#039;eins&#039;]&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Strings====&lt;br /&gt;
Strings werden in Anführungszeichen eingeschlossen. Es können einzelne &#039;&#039;&#039; &#039; &#039;&#039;&#039; und doppelte &#039;&#039;&#039; &amp;quot; &#039;&#039;&#039; Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.&lt;br /&gt;
&lt;br /&gt;
== Operatoren==&lt;br /&gt;
Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Die einzige Ausnahme ist die Division!&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
; /&lt;br /&gt;
: liefert einen float zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 / 3&lt;br /&gt;
1.666667&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; //&lt;br /&gt;
: liefert einen int zurück&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 5 // 3&lt;br /&gt;
1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Entscheidungen===&lt;br /&gt;
&lt;br /&gt;
Für Entscheidungen gibt es:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if x &amp;gt; 0:&lt;br /&gt;
    print(&amp;quot;Positive&amp;quot;)&lt;br /&gt;
elif x == 0:&lt;br /&gt;
    print(&amp;quot;Zero&amp;quot;)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;Negative&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schleifen===&lt;br /&gt;
Es gibt in Python nur 2 Schleifen. Die &#039;&#039;&#039;for&#039;&#039;&#039;- und die &#039;&#039;&#039;while&#039;&#039;&#039;-Schleife.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for item in my_list:&lt;br /&gt;
    print(item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Eine klassische for-Schleife lässt sich so realisieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for index, item in enumerate(my_list):&lt;br /&gt;
    print(index, item)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die while-Schleife entspricht dem Üblichen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while condition:&lt;br /&gt;
    # code&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Module / Bibliotheken===&lt;br /&gt;
Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Module werden mit &#039;&#039;&#039;import&#039;&#039;&#039; eingebunden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt 4 Möglichkeiten Module einzubinden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import modul&lt;br /&gt;
import modul as mo&lt;br /&gt;
from modul import function&lt;br /&gt;
from modul import function as func&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:&lt;br /&gt;
* Google Suche&lt;br /&gt;
** https://community.hiveeyes.org/t/treiber-und-modulsammlung-fur-micropython/2384/5&lt;br /&gt;
* Github u.ä.&lt;br /&gt;
** [[https://github.com/ https://github.com/]]&lt;br /&gt;
** [[https://github.com/mcauser/awesome-micropython https://github.com/mcauser/awesome-micropython]]&lt;br /&gt;
* Adafruit&lt;br /&gt;
** [[https://learn.adafruit.com/ https://learn.adafruit.com/]]&lt;br /&gt;
** Überwiegend CircutPython&lt;br /&gt;
* Weitere Links:&lt;br /&gt;
** https://awesome-micropython.com/&lt;br /&gt;
&lt;br /&gt;
== Programmieren mit Micropython==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links==&lt;br /&gt;
https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb&lt;/div&gt;</summary>
		<author><name>Kapest</name></author>
	</entry>
</feed>