Tumgik
#thonny raspberry pi pico
elcereza · 2 years
Text
Raspberry Pi Pico: Vale a pena aprender?
Aprenda como usar todos os periféricos do Raspberry Pi Pico, Como instalar bibliotecas no Thonny IDE e ainda veja um comparativo do Pico/Pico W com ESP32, tudo em um único post. Mais completo que isso somente o datasheet.
O Raspberry Pi Pico desde o lançamento vem sendo muito desejado por muitos projetistas, mas será que realmente vale a pena aprender? Neste post você vai aprender tudo sobre ele. 1 Surgimento do Raspberry Pi Pico Quem acompanha a empresa Raspberry Pi, sabe que todos seus lançamentos tem um preço base para um determinado produto e o propósito disso é democratizar ao máximo o acesso aos produtos…
Tumblr media
Ver no WordPress
0 notes
tsubakicraft · 1 year
Text
今日の文書化〜ロードバイクの電動変速機
ディレイラーへのサーボモーター取り付け金具の設計が大方できたので技術文書に反映しておく。 現時点ではわかっている人が読めばわかる程度の文書ですので、制作を進める過程で随時修正・追記していきます。 「難しそうな顔をして何やら深遠な作業をしている風の職人」というのはカッコいいのかもしれませんし、「やってみればわかるよ」「見て盗んで身につけたら?」と突き放すのも悪くはないと思っていますが、「文書化をまじめに考える」にも書いたように僕などのやっていることは大したことではないので、文書化できるものは文書化して自習できるようにしておくのが良い。 最近技術系某サイトが「ポエムばっかりだ」と揶揄されているのを見ましたが、技術文書は物語やポエムではありません。目的が違うものを混ぜてはいけません。
Tumblr media
View On WordPress
0 notes
draegerit · 2 years
Text
Seeed Studio XIAO RP2040 - programmieren & Beispiele
Tumblr media
In diesem Beitrag möchte ich dir den Mikrocontroller XIAO RP2040 vorstellen. Dieser kleine Mikrocontroller kommt mit dem Mikrochip RP2040 daher, welcher von der Raspberry Foundation veröffentlicht wurde.
Tumblr media
Seeed Studio XIAO RP2040 - programmieren & Beispiele Den Raspberry Pi Pico & Raspberry Pi Pico W habe ich dir bereits in separaten Beiträgen vorgestellt. - Raspberry PI Pico #1 – Vorstellung - Raspberry Pi Pico W mit Wi-Fi Support Im letzten Beitrag Seeed Studio XIAO RP2040 – ein Zwerg mit großer Leistung habe ich dir bereits einiges zu der Technik und dem Pinout gezeigt, hier möchte ich dir nun ein paar kleine Beispiele zeigen.
Tumblr media Tumblr media Tumblr media
Vorbereiten des Mikrocontrollers
Bevor wir den Mikrocontroller auf einem Steckbrett verwenden können, müssen wir noch die Stiftleisten anlöten.
Tumblr media Tumblr media
Dem Mikrocontroller liegen leider keine bei, jedoch bekommst du diese recht günstig auf ebay.de schon ab 1,35 € zzgl. Versandkosten und sogar in diversen Farben. Alternativ kannst du auch Buchsenleisten mit langen Stiften verwenden, hier hast du dann den Vorteil, dass du von oben Breadboardkabel einstecken kannst und trotzdem diesen auf einem Steckbrett stecken kannst.
Tumblr media
Stiftleisten zum Löten in den Farben rot, gelb, blau und schwarz
Tumblr media
Buchsenleiste mit langen Stiften
Anschluss an den Computer
Für den Anschluss an den Computer, benötigst du ein USB-Typ-C Datenkabel, dieses ist wiederum bedauerlicherweise auch nicht enthalten, aber dieser Anschluss ist ja bei Handys, Tablets sehr verbreitet und somit sollte man ggf. eines bereits zu Hause haben. Wenn du den Mikrocontroller mit dem Computer verbunden hast, dann wird dieser zunächst eingerichtet, unter Microsoft Windows 10 erhältst du nachfolgende Push-Benachrichtigungen vom System.
Tumblr media Tumblr media
Der Mikrocontroller wird als PicoArduino erkannt, aber dazu etwas mehr, wenn wir im nächsten Kapitel zur Programmierung kommen. Auf dem Mikrocontroller ist bereits ein kleines Programm installiert, welches die verbaute RGB LED in diversen Farben aufleuchten lässt.
Programmieren des Seeed Studio XIAO RP2040
Den Mikrocontroller kannst du in diversen IDEs programmieren, im Nachfolgenden möchte ich dir gerne zeigen, wie du diesen in der Thonny IDE programmierst. Thonny IDE Die Thonny IDE kannst du kostenfrei für macOS,Linux und auch Microsoft Windows herunterladen. Wie du diese IDE auf einem Linux System installierst, habe ich dir im Beitrag Thonny IDE auf Linux einrichten für den Raspberry Pi Pico W anhand des Raspberry Pi Pico W gezeigt. Damit du diesen Mikrocontroller in der Thonny IDE mit Micropython programmieren kannst, muss zunächst die passende Firmware installiert werden, damit dieses wiederum geschehen kann, musst du die Taste "Boot" gedrückt halten und den Stecker des Mikrocontrollers in die Buchse stecken. Im Anschluss sollte sich nun ein neues Laufwerk einbinden.
Tumblr media
installieren der Firmware für Micropython über Thonny IDE Wenn der Installationsvorgang abgeschlossen ist, dann wird der Mikrocontroller als "Raspberry Pi Pico" erkannt. Das ist auch nicht sehr verwunderlich, denn immerhin ist auf diesem der Chip RP2040 verbaut. MicroPython v1.19.1 on 2022-06-18; Raspberry Pi Pico with RP2040 Type "help()" for more information. >>> Programmieren des NeoPixel Der verbaute NeoPixel liegt zwischen den beiden Tasten "RESET" und "Boot" und kann über den Pin 11 erreicht werden. Damit wir diese jedoch programmieren können, benötigen wir eine kleine Bibliothek, welche wir unter https://files.seeedstudio.com/wiki/XIAO-RP2040/img/micropython/ws2812.py herunterladen können. Wenn diese Datei heruntergeladen wurde, dann öffnen wir diese in der Thonny IDE und speichern diese auf dem Mikrocontroller. #importieren der benötigten Bibliotheken #für den NeoPixel from ws2812 import WS2812 #zum einlegen einer kleinen Pause import time #definieren der Farben im RGB Format #Rot RED = (255, 0, 0) #Gelb YELLOW = (255, 150, 0) #Grün GREEN = (0, 255, 0) #Weiß WHITE = (255, 255, 255) #Tupel mit den Farben und den dazugehörigen Namen COLORS = ((RED,"rot"), (YELLOW,"gelb"), (GREEN,"grün"), (WHITE,"weiß")) #WS2812(pinNum, ledCount) led = WS2812(12,1) #Endlosschleife while True: #Loop über das Tupel for color in COLORS: #erster Wert ist die RGB Farbe led.pixels_fill(color) led.pixels_show() #zweiter Wert ist der Name print(color) #eine kleine Pause einlegen time.sleep(1) https://youtu.be/AZ5lEsKyu1U LED per Taster EIN/AUS schalten Im nächsten Schritt zeige ich dir, wie du eine kleine LED per Taster EIN/AUS schalten kannst.
Tumblr media Tumblr media
Hier nun der Code inkl. dem entprellen des Tasters. #importieren der benötigten Module #zum steuern der GPIOs from machine import Pin #zum einlegen von Pausen oder #dem auslesen von Zeit import time #die LED ist am Pin 3 (D10) angeschlossen led = Pin(3, Pin.OUT) #der Taster ist am Pin 7 (D5) angeschlossen button = Pin(7, Pin.IN) #Feld zum speichern des Zeitstempels der #letzten Ausführung last_action = 0 #Zeit welche zwischen zwei Ausführungen liegen soll #dient quasi dem entprellen des Tasters delay = 500 #Endlosschleife while True: #lesen der vergangenen Millisekunden #seitdem der Mikrocontroller gestartet wurde currentMillis = time.ticks_ms() #Wenn der Taster betätig wurde, dann... if button.value(): #Wenn der Zeitpunkt der letzten Ausführung kleiner #als der aktuelle Zeitpunkt - dem Delay liegt, dann... if(last_action < (currentMillis - delay)): #überschreiben des Wertes für die letzte Ausführung #mit dem aktuellen Wert last_action = currentMillis #Umkehren des Signales am Pin der LED led.toggle() https://youtu.be/0xauJsi6IeQ Read the full article
2 notes · View notes
techcree · 1 year
Text
Raspberry Pi stellt neuen Code Editor online
Tumblr media
Online Code Programmieren und testen. Das bietet euch jetzt auch die Raspberry Pi Foundation UK mit dem neuen Online Code Editor.
Das ist schon eine tolle Sache und unterstützt natürlich auch den Ansatz der Raspberry Pi Foundation, eben den Umgang mit Technologie leicht und greifbar zu machen und insbesondere den jüngsten unter uns die Möglichkeit zu bieten Programmieren zu lernen. Es ist eben nicht nur die beliebte Hardware, wie der Raspberry Pi Microcontroller Pico oder der Einplatinencomputer Modell 4, etc.! Die Stiftung bemüht sich schon lange durch den Programmier-Club und solche Maßnahmen auch etwas zu vermitteln. Auch wer sich der Herausforderung stellt den Nachwuchs zu unterrichten wird von Raspberry Pi unterstützt.
Und neu ist jetzt der zunächst in der Beta-version online gestellte Code Editor. Einfach die Website aufrufen, anmelden bzw. registrieren und dann anmelden und loslegen. Den ein oder anderen "Online" Code Editor mag es ja bereits geben, doch wer mehr will muss eben die entsprechende Software auf seinem System lokal installieren. So beispielsweise die Thonny IDE. Die aber bitet deutlich mehr, denn slebst die Raspberry eigenen Produkte wie der Pico können mit dem Online Code Editor noch nicht betankt werden.
Tumblr media
Bei der Thonny IDE oder der Ardunino IDE, wie auch mit der Software Visual Code Studio können die fertigen Programme auch direkt auf bspw. den Microcontroller bzw. einen Microcontroller übertragen werden und von der IDE aus gestartet werden. Freilich das ist mit der Online Variante der Raspberry Pi Foundation nicht möglich. Jedenfalls aktuell noch nicht. Es dürfte sicher bereits in der Planung sein bzw. dürfte auch der Pi Foundation klar sein, daran in Zukunft noch etwas zu ändern. Un so könnte eine spätere Version dies sicher ermöglichen.
Technisch wäre es grundsätzlich kein Problem, denn gerade der Pi Pico kann bereits aus dem Browser heraus erkannt werden. Die Website des neuen Online Code Editors lautet: https://editor.raspberrypi.org/en/ und kann nun von jeder Person kostenfrei genutzt werden. Erstellter Code lässt sich testen, speichern und exportieren und kann so dann auch außerhalb dieses Editors genutzt werden. Die Download Funktion stellt euch so eine *.zip Datei zur Verfügung in der bspw. eure main.py Datei gepackt wurde.
Tumblr media
Davon dürften nun einige profitieren, denn es bedarf eben keiner lokalen Installation und somit steht der Code immer zur Verfügung wo eine Verbindung zum Internet hergestellt werden kann. Systemunabhängig und doch ist das Arbeiten in der gleichen GUI möglich. Das dürfte auch im Unterricht bspw. an Schulen gut ankommen, wenn dort unterschiedliche Computer genutzt werden, welche die Schüler selbst mitbringen. Dann ist es im Prinzip egal ob sich jemand für ein Chromebook, einen Windows Laptop oder ein MacBook entschieden hat. Selbst auf einem Android Tablet oder Smartphone etc. lässt sich so programmieren.
Tumblr media
Der Editor selbst unterrichtet uns aber nicht im Programmieren! Das freilich müssen wir noch einem Lehrer überlassen. Zwar bekommen wir bei falschem Code entsprechend einen Hinweis auf die Codezeile, doch das sollte ein halbwegs guter Editor ja ohnehin beherrschen. Hier gäbe es in Zukunft durchaus auch Fantasie für eine Unterstützung mit Hilfe von künstlicher Intelligenz (KI), welche den Code analysieren kann und dann vorschläge machen kann, den Code zu verbessern oder einfach nur zu korrigieren.
Der Lerneffekt wäre jedenfalls großartig. Etwas das ChtGPT so aktuell nicht bietet. Derzeit jedenfalls noch nicht. Dafür erstellt die KI auf Wunsch aber gleich den ganzen Code. Der Lerneffekt hier ist dann aber sehr begrenzt. Persönlich bin ich aber gespannt was da noch draus wird und begrüße die Bereitstellung des Online Code Editors durch die Raspberry Pi Foundation natürlich! Der Grundstein ist jedenfalls nun gelegt!
0 notes
arduino-diy · 3 years
Video
youtube
Getting Started With Raspberry Pi Pico Couple of months ago, I bought a "Raspberry Pi Pico" to get some hands-on experience of it and to create some amazing projects using it. But since then, it has just been sitting on my desk, collecting dust. Today after a very long wait, I finally have decided to create a short video tutorial to show you guys how to get started with the Raspberry Pi Pico
1 note · View note
digital-dynasty · 4 years
Text
Erste Schritte mit dem Raspberry Pi Pico – die Thonny IDE
Die Reise, um das neue Board Raspberry Pi Pico zum Leben zu erwecken, beginnt im Blog des Pragmatischen Architekten mit der kostenlosen Python-IDE Thonny. Read more www.heise.de/developer/artikel/…... www.digital-dynasty.net/de/teamblogs/…
http://www.digital-dynasty.net/de/teamblogs/erste-schritte-mit-dem-raspberry-pi-pico-–-die-thonny-ide
0 notes
bizright-blog · 4 years
Text
Raspberry Pi PicoでLチカをやってみた!(齋藤)
こんにちは!
東京オフィス齋藤です。
今回はRaspberry Pi Picoを触ってみました!
Tumblr media
Lチカをする前にRaspberry Pi Picoについて簡単に説明したいと思います。Raspberry Pi Pico は、Raspberry Pi財団が独自に開発した開発基板で、RP2040という最新の40nmプロセスで製造された低消費電力なチップが搭載されています。RP2040の主要スペックは動作周波数133MHzのデュアルコアARMCortex-M0+と264KBのRAMが搭載されています(他詳細はこちらを参照してください)。開発環境としては、C言語ベース開発できるSDK(ソフトウェア開発キット)と専用ファームウェア+MicroPythonの2つの開発環境を利用できる。 それでは、早速、Lチカをスタート! 今回のLチカはRaspberry Pi Pico に搭載されたLEDを使います。LチカのプログラムはMicroPythonを使って書き込みます。なのでやることは以下の3つだけ! ①     ブートローダーモードでファームウェアの書込み ②     MicroPython開発環境のインストール ③     Lチカプログラムの書込み
①ブートローダーモードでファームウェアの書込み
Tumblr media
まずBOOTSELボタンを押しながらRaspberry Pi Pico をパソコンのUSB端子に接続します。接続するとRaspberry Pi Picoがマスストレージとしてマウントされます。フォルダ内にあるINDEX.HTMをダブルクリックするとRaspberry Pi Picoのスタートガイドのページが開くので[Getting started with MicroPython]タブを選択します。
Tumblr media
次にスタートガイド内の[Download UF2] ボタンを押して、UF2ファイル(Raspberry Pi Pico のファームウェア)を取得します。取得したUF2ファイルをRaspberry Pi Picoのマスストレージにドラック&ドロップするとファームウェアの書込みが勝手に始まります。完了するとRaspberry Pi Picoが自動的にリブートします。
②MicroPython開発環境のインストール
次に下記のURLからMicroPythonの開発環境であるThonnyをインストールします。 https://github.com/thonny/thonny/releases/download/v3.3.3/thonny-3.3.3.exe  Thonnyを起動し、Tools -> Options のプルダウンメニューの[General]タブで日本語を選択します。
Tumblr media
③ Lチカソフトの書込み
起動したThonnyに左下のLチカのサンプルプログラムを書き込みます。次に緑ボタンまたはF5を押すと、”Where to save to?”という保存先を選択するポップアップが表示されるので[Raspberry Pi Pico]を選択します。このとき保存するファイル名をmain.pyにします。そうしないとスタンドアローンで動かないので注意が必要です。
Tumblr media Tumblr media
次回はRP2040マイコン用C/C++SDK開発環境を使ってみたいと思います!
0 notes
recantha · 4 years
Text
Create a miniature version of Space Invaders on an LCD screen with the Raspberry Pi Pico and MicroPython
Create a miniature version of Space Invaders on an LCD screen with the Raspberry Pi Pico and MicroPython
James from Print N Play has taken his Raspberry Pi Pico, a mini SSD1306 screen and a potentiometer and created a (very) miniature version of arcade classic Space Invaders. You can see how he did it in his very detailed video below. One of the great things about the video is that you can see how to install a required library onto the Pico from Thonny. You can see his MicroPython code on GitHub…
youtube
View On WordPress
0 notes
draegerit · 25 days
Text
Raspberry Pi Pico 2: Maximale Leistung bei unverändertem Layout
Tumblr media
Raspberry Pi Pico 2 - RP2350: Die Raspberry Foundation hat jetzt eine neue Version des Raspberry Pi Pico veröffentlicht. Diese erweiterte Version des ursprünglichen Pico verfügt über eine leistungsstärkere MCU. Zwar fehlen dem Mikrocontroller die Bluetooth und WiFi Schnittstelle, aber dennoch werde ich ihm eine Chance geben und ihn genauer unter die Lupe nehmen. https://youtu.be/rUWj13kCUMg Den Raspberry Pi Pico 2 habe ich mir auf der diesjährigen Maker Faire Hannover bei Berry Base für 5,5 € gekauft. Da ich diesen vor Ort gekauft habe, entfallen hier die üblichen Versandkosten und somit war es ein gutes Schnäppchen.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Technische Daten des Pi Pico 2 mit RP2350 MCU
Nachfolgend zunächst die technischen Daten des Pi Pico 2: Technische DatenBeschreibungProzessorenDual Arm Cortex-M33 oder Dual Hazard3 RISC-V Prozessoren @ 150MHzOn-Chip-Speicher520 KB SRAMKompatibilitätSoftware- und hardwarekompatibel mit Raspberry Pi Pico 1Schnittstellen2x UART, 2x SPI-Controller, 2x I2C-Controller, 24x PWM-Kanäle, 3x ADC-KanäleUSB1 × USB 1.1-Controller und PHY, mit Host- und GeräteunterstützungSDK und ProgrammiersprachenOpen-Source-C/C++ SDK, MicroPython CircuitPython, Arduino IDEBetriebstemperatur-20 °C bis +85 °CEingangsspannungUnterstützte Eingangsspannung: 1,8–5,5V DCAuszug aus der offiziellen Dokumentation zum Raspberry Pi Pico 2 Sicherheitsfunktionen Umfassende und vollständig dokumentierte Sicherheitsfunktionen: - ARM TrustZone für Cortex-M - Optionales Boot-Signing, durch On-Chip-Masken-ROM durchgesetzt, mit Schlüssel-Fingerprint in OTP - Geschützter OTP-Speicher für optionalen Boot-Entschlüsselungsschlüssel - Globales Bus-Filtering basierend auf Arm- oder RISC-V-Sicherheits-/Privilegienstufen - Peripheriegeräte, GPIOs und DMA-Kanäle einzeln Sicherheitsdomänen zuweisbar - Hardware-Maßnahmen gegen Fehlerinjektionsangriffe - Hardware SHA-256-Beschleuniger Unterschiede der verfügbaren Versionen zum RP2350 Es gibt insgesamt vier Versionen zu dieser neuen MCU. Unter dem Link »hier« findest du eine ausführliche Beschreibung in englischer Sprache vom Hersteller dazu. VersionInterner SpeicherGPIO-AnschlüsseAnaloge EingängeRP2350AKeiner304RP2350BKeiner488RP2354A2 MB Flash304RP2354B2 MB Flash488
Pinout der RP2350 MCU
Nachfolgend das Pinout des Raspberry Pi Pico 2. Da dieses zu 100 % mit dem Vorgängermodell kompatibel ist, wirst du hier keine Besonderheiten finden.
Tumblr media
RPiPico2 RP2350 Pinout Die Grafik durfte ich mir mit freundlicher Genehmigung der Raspberry Pi Foundation von der Seite https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html entnehmen.
Der XIAO RP2350 im Vergleich mit dem originalen Pi Pico 2
Neben dem originalen Pi Pico 2 habe ich mir den XIAO RP2350 aus China gekauft und dieser wurde recht schnell innerhalb von 5 Tagen geliefert. (Abzüglich der üblichen Probleme mit dem Zoll.) Dieser kleine Zwerg kommt mit etwas weniger Pins daher, hat jedoch den Vorteil, dass dieser zumindest über eine fortschrittliche USB-Typ-C Schnittstelle verfügt und sofort programmiert werden kann (dazu später mehr).
Tumblr media Tumblr media Tumblr media
Dieser kleine Mikrocontroller besitzt zusätzlich eine RGB-LED, die über GPIO22 gesteuert werden kann. Zudem kann die als USER-LED bezeichnete LED über GPIO25 angesprochen werden. Die USER-LED wird ebenso verwendet, um den aktuellen Status anzuzeigen (UART Übertragung und POWER).
Einrichten und programmieren des originalen RP2350A
Der Mikrocontroller wird wie über die Micro-USB Buchse mit dem Computer verbunden und wird dort als RP2350 Boot erkannt.
Tumblr media Tumblr media
In der Arduino IDE sowie Thonny wird dieser jedoch nicht erkannt und ich musste diesen Mikrocontroller erstmal flashen. Dazu habe ich mir die UF2-Datei von der Seite https://micropython.org/download/RPI_PICO2/ geladen und auf den Mikrocontroller kopiert. Der Mikrocontroller war dazu bereits im korrekten Modus versetzt gewesen, d.h. es war das Laufwerk RP2350 im Explorer sichtbar. Nachdem der Mikrocontroller selbständig neu gestartet ist, war dieser in Thonny einsatzbereit und man kann nun diesen mit MicroPython programmieren.
Tumblr media
Raspberry Pi Pico 2 - RP2350 geflasht für MicroPython Nachrüsten der fehlenden Bluetoothschnittstelle mit dem seriellen HC-06 Modul Zumindest kann man die fehlende Bluetoothschnittstelle mit dem seriellen Bluetoothmodul HC-06 sehr einfach nachrüsten. Es gibt auch ESP8266 Module, welche ebenso via serieller Schnittstelle angeschlossen werden können (jedoch habe ich derzeit keines zur Hand, ist aber bestellt).
Tumblr media
Für den Aufbau der Schaltung benötigst du: - einen Raspberry Pi Pico 2* - ein Micro-USB Datenkabel* - vier Breadboardkabel*, 10 cm - eine LED* - ein Bluetoothmodul HC-06* - ein 400 Pin Breadboard* Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung! Die Schaltung hierzu ist recht einfach, für die serielle Kommunikation benötigen wir lediglich zwei Breadboardkabel und für die Stromversorgung des Modules ebenso zwei. In meinem Fall verwende ich eine 10 mm LED, welche eine Spannungsversorgung von 3.3V hat, somit direkt mit dem Mikrocontroller verbunden werden kann (quasi ohne 220 Ohm Vorwiderstand).
Tumblr media
Schaltung - Raspberry Pi Pico mit Bluetoothmodul HC-06 & LED Im Beitrag Raspberry Pi Pico W & Bluetooth habe ich dir erläutert, wie man das Vorgängermodell mit dem CYW43438 Chip über das HC-06 Modul Bluetoothfähig macht. Der Chip CYW43438 verfügt neben WiFi auch über Bluetooth, jedoch kam dieses erst mit einem Firmwareupdate und somit gab es eine Zeit wo der Pico W ohne Bluetooth geliefert wurde. # Import der benötigten Module # zum kommunizieren über # die serielle Schnittstelle from machine import Pin, UART # definieren der seriellen Schnittstelle # der Pi Pico verfügt über mehrere serielle Schnittellen # es wird hier die erste verwendet mit # einer Geschwindigkeit von 9600 baud uart = UART(0, 9600) # die LED ist am GPIO6 angeschlossen led = Pin(6, Pin.OUT) # starten der Endlosschleife while True: # Wenn Daten empfangen wurden, dann... if uart.any() > 0: # auslesen der Daten data = uart.read() # ausgeben der Daten auf der seriellen Schnittstelle # diese können via Putty oder # in der Shell von Thonny abgelesen werden print(data) # Wenn der gelesene Wert gleich 'on' ist, dann... if "on" in data: # aktivieren der LED led.value(1) # absenden der Zeichenkette an den Sender uart.write('LED on n') elif "off" in data: # Wenn der Wert 'off' ist, dann... # LED deaktivieren led.value(0) # absenden der Zeichenkette an den Sender print('LED off n') uart.write('LED off n') Read the full article
0 notes
draegerit · 3 months
Text
Fehlerfreie Installation von Thonny auf Linux: Schritt-für-Schritt-Anleitung
Tumblr media
In diesem Beitrag möchte ich dir zeigen, wie du eine fehlerfreie Installation von Thonny auf einem Linux System durchführst. Dazu zeige ich dir dieses in eine Schritt-für-Schritt-Anleitung und wenn es besonders schnell gehen muss, dann biete ich dir das Shellscript an, welches diese Schritte automatisiert ausführt.
Tumblr media
Fehlerfreie Installation von Thonny auf Linux: Schritt-für-Schritt-Anleitung Hintergrund: Zur Vorbereitung auf meinen MicroPython-Kurs im Jugendfreizeitzentrum Schöningen habe ich einige Laptops mit Linux Mint erhalten. Auf diesen Systemen musste ich zunächst ein Update durchführen, bevor ich Thonny installieren konnte. Dabei sind mir einige Fallstricke aufgefallen, die ich hier gerne inklusive der Lösungen vorstellen möchte. Im Beitrag Thonny IDE auf Linux einrichten für den Raspberry Pi Pico W habe ich dir bereits gezeigt wie du Thonny installierst, jedoch verlief dort die Installation sauber durch ohne irgendwelche Fehler. Für die nachfolgenden Schritte benötigst du root Rechte bzw. das Passwort für den Benutzer!
Schritt 1 - Aktualisieren des Linux Systems
Bevor wir Thonny installieren, aktualisieren wir das System. Damit stellen wir sicher das alle benötigten Pakete aktuell sind. sudo apt-get update sudo apt-get upgrade
Schritt 2 - Installieren vom Python Paketmanager pip
Damit wir die Python Pakete später installieren können, müssen wir pip installieren. (Ggf. wird dieses bei Thonny auch installiert, weil dort Python3 mit installiert wird.) sudo apt install pip
Schritt 3 - Installieren von Thonny
Das Tool Thonny kannst du im Anschluss mit dem nachfolgenden Befehl installieren. sudo apt install thonny Auf einem System musste ich das Modul tkinter manuell mit nachfolgendem Befehl installieren. sudo apt-get install python3-tk
Schritt 4 - Benutzer der Gruppe dialout hinzufügen
Damit der aktuelle Benutzer auf den seriellen Port zugreifen kann, muss dieser der Gruppe dialout hinzugefügt werden.
Tumblr media
sudo usermod -a -G dialout $USER Im Anschluss muss der Rechner neu gestartet werden, erst damit werden diese Berechtigungen final gesetzt. Mit dem Befehl groups kann man sich die zugewiesenen Gruppen zum Benutzer anzeigen lassen. groups $USER
Tumblr media
Schritt 5 - Entfernen von BRLTTY
In meinem Fall wurde kein Port in Thonny aufgeführt und ich musste zusätzlich noch das Dienstprogramm BRLTTY entfernen.
Tumblr media
sudo apt remove brltty
Tumblr media
BRLTTY ist ein Dienstprogramm im Hintergrund, das es blinden Personen ermöglicht, über eine Braillezeile auf die Textkonsole von Linux/Unix zuzugreifen. Es steuert die Braillezeile und bietet umfassende Funktionen zur Bildschirmüberprüfung.
Schritt 7 - Testen der Installation
Wenn alle Schritte ausgeführt wurden, dann müssen wir noch kurz die Installation testen. Dazu stellen wir eine Verbindung her und geben im Editor ein kleines Script ein, welches "Hello World!" ausgibt. print("Hello World!") Wenn die grüne Playtaste aus der Toolbar betätigt wird, dann wird das kleine Programm ausgeführt und es sollte der Text "Hello World!" auf der Kommandozeile angezeigt werden.
Tumblr media
Thonny fehlerfreie installation mit Shellyscript
Nachfolgend nun das kleine Shellyscript zum automatischen Installieren von Thonny. Shellscript zum automatischen installieren von ThonnyHerunterladen Die SH-Datei musst du auf der Konsole jedoch ausführbar machen, dazu gibst du nachfolgenden Befehl im Terminal ein: chmod +x install_thonny.sh Im Anschluss kannst du dieses Script dann mit dem nachfolgenden Befehl starten: ./install_thonny.sh Hier nun das kleine Shellscript zum automatischen Installieren von Thonny: #!/bin/bash sudo apt-get update sudo apt-get upgrade sudo apt install pip sudo apt install thonny sudo usermod -a -G dialout $USER sudo apt remove brltty groups $USER sleep 6 sudo reboot Read the full article
0 notes
draegerit · 3 months
Text
MicroPython mit ESP32: Einführung in den ESP32 D1 R32
Tumblr media
In diesem und kommende Beiträge möchte ich dir eine Einführung in die Programmierung des ESP32 mit MicroPython bieten. Bevor wir jedoch diesen kleinen Kurs starten können, müssen wir diesen Mikrocontroller etwas näher kennenlernen und flashen. https://youtu.be/l0HLbqQlHEY
Was ist besonders am ESP32 D1 R32?
Dieser Mikrocontroller mit einem ESP-WROOM-32 Chip hat den Formfaktor eines Arduino UNO R3/R4 und damit ist das Layout bekannt und besonders für Anfänger geeignet da man sich wenig umstellen muss.
Tumblr media
ESP32 D1 R32
Tumblr media
ESP32 D1 R32
Tumblr media
ESP-WROOM-32 Chip auf dem ESP32 D1 R32 Vor allem hat man den Vorteil das man ein Multifunktionales Shield aufstecken und so mit der Programmierung starten kann ohne sich um eine Schaltung kümmern zu müssen.
Tumblr media
ESP32 D1 R32 mit Rich Shield von Open Smart Technische Daten des ESP32 D1 R32 Der ESP32 D1 R32 ist ein leistungsstarkes Entwicklungsboard mit folgenden technischen Spezifikationen: Technische DatenSpezifikationenBetriebsspannung5V-12V DCStromstärke250mA (maximal)Mindest-Betriebsstrom20mA (ohne WiFi)WiFi802.11 b/g/n/e/i (bis zu 150 Mbps)AnschlussMikro-USB mit CH340-TreiberSpeicher4 MB Flash-SpeicherTaktfrequenz240 MHzAbmessungen68 mm x 53 mmDigitale Ein-/Ausgänge20 (3,3 V)Analoge Eingänge6 Wichtig: Der ESP32 hat an seinen digitalen Ein-/Ausgängen eine Spannung von 3,3V, dieses ist deutlich weniger als beim Arduino UNO R3 und daher muss man dieses bei seinen geplanten Schaltungen beachten!
Aufbau & Pinout des Mikrocontrollers
Der Mikrocontroller verfügt über eine Micro-USB Buchse, über welche dieser mit dem Computer für die Programmierung verbunden werden kann, alternativ kann daran auch eine Power Bank angeschlossen werden, um diesen mobil mit Strom zu versorgen.
Tumblr media
Pinout des ESP32 D1 R32
Verbinden des Mikrocontrollers mit dem PC
Über die Micro-USB Buchse wird der Mikrocontroller mit dem PC verbunden. Auf dem Gerät ist ein seriell-USB Konverter vom Typ CH340 verbaut, damit wir den Mikrocontroller korrekt einbinden können, müssen wir einen Treiber installieren. Es gibt diverse CH340 Treiber, mit dem bereitgestellten Treiber von Wemos konnte ich diesen korrekt installieren.
Tumblr media
eingerichteter ESP32 DE1 R32 in Windows
Flashen des ESP32 D1 R32 für die Programmierung in MicroPython
Damit wir den Mikrocontroller in MicroPython programmieren können, müssen wir diesen mit einer neuen Firmware flashen. Wir können dazu entweder das Kommandozeilentool esptool verwenden, oder man nutzt die einfache Entwicklungsumgebung Thonny. Im Nachfolgenden erläutere ich dir, wie du den ESP32 D1 R32 in MicroPython mit der Thonny IDE flasht. Im ersten Schritt wählen wir in der Thonny IDE unten rechts "Konfiguriere den Interpreter ..." aus.
Tumblr media Tumblr media
Um anschließend den Interpreter auf "MicroPython (ESP32)" sowie den korrekten Port einzustellen. Wenn du mehrere serielle Geräte am PC angeschlossen hast, so solltest du vorher im Geräte-Manager prüfen, an welchem COM-Port der ESP32 angeschlossen ist. Abschließend klickst du unten rechts auf den Link "MicroPython installieren oder aktualisieren..." Hier musst du die nachfolgenden Einstellungen treffen (siehe Grafik). Diese Anleitung funktioniert auch für andere Geräte wie dem Raspberry Pi Pico / Pico W, du musst lediglich die Daten für MicroPython family & variant anpassen. Mit der Schaltfläche "Installieren" wird dann der Vorgang gestartet.
Tumblr media
Wenn der Prozess erfolgreich abgeschlossen ist und die Fenster geschlossen wurden, dann solltest du in der Kommandozeile nachfolgende Ausgabe sehen. Natürlich kann es sein, dass die Versionsnummer zum Zeitpunkt, wenn du diesen Beitrag liest, erhöht wurde, aber die Informationen bleiben gleich.
Tumblr media
Thonny IDE im Überblick
Schauen wir uns die Anwendung Thonny nachfolgend etwas genauer an.
Tumblr media
In der Titelleiste finden wir den Dateinamen der derzeit geöffneten Datei / des gewählten Tabs sowie die Cursor-Position. In der Toolbar finden wir die Schaltflächen zum Starten und Stoppen von Skripten. Wenn wir uns den linken Bereich ansehen, dann finden wir einen kleinen Datei Explorer mit welchem wir Datei öffnen und auch über das Kontextmenü diese auf den Mikrocontroller kopieren können. Im Feld welches mit "Ausgabe" gelabelt wurde, werden dir die Ausgaben aus dem Code angezeigt. Zusätzlich kannst du da auch Eingaben tätigen.
Tumblr media
Ausblick
Dieses war nun der erste Teil zu meiner Reihe "MicroPython mit ESP32" im nächsten Beitrag möchte ich dir die Programmiersprache näher zeigen und kleine Programme damit vorstellen. Bleib also gespannt... Read the full article
0 notes
draegerit · 6 months
Text
Programmierung des 2fach Joystickshield HU-M16 am Raspberry Pi Pico mit CircuitPython
Tumblr media
In diesem Beitrag möchte ich dir zeigen, wie du das 2fach Joystickshield HU-M16 am Raspberry Pi Pico via CircuitPython programmiert. Das Shield habe ich dir bereits für den Arduino UNO vorgestellt und auch am Arduino Leonardo gezeigt, wie du mit diesem Shield deine Maus ersetzen kannst. Hier möchte ich dir nun gerne zeigen, wie dieses Shield ebenso am Pi Pico programmiert wird. https://youtu.be/M9l6msFhADQ Die Idee zu diesem Beitrag kommt von einem Kommentar zum YouTube-Video Arduino Joystick Shield Basics: Programmierung leicht gemacht für Anfänger wo ich gefragt wurde, wie dieses für den Pico bzw. ESP32 in Python umgesetzt wird.
ArduPico für den Formfaktor des Arduino UNO
Es gibt mit dem ArduPico von der Firma WisdPi die Möglichkeit den Raspberry Pi Pico in das Format des Arduino UNO R3 zu bringen.
Tumblr media Tumblr media
Der Vorteil an diesem Board ist, dass du somit das Shield nicht mit Breadboardkabel anschließen musst, sondern einfach wie am Arduino dieses aufstecken und verwenden kannst. Der Preis für dieses Modul ist mit derzeit 9,51 $ (ca. 8,69 €) zzgl. Versandkosten recht erschwinglich. Der WisdPi ArduPico verfügt ausschließlich über die analogen Pins A0 bis A2, was bedeutet, dass ein analoger Pin für die X-Koordinate des rechten Joysticks fehlt. Dennoch ist das Shield so konzipiert, dass es mit beiden Händen oder mit den Daumen bedient werden kann. In diesem Fall ist es akzeptabel, jeweils nur eine Achse mit einem Daumen zu steuern, wodurch auf die fehlende Achse verzichtet werden kann. Auf der Vorderseite des ArduPico findest du die Beschriftungen für den Arduino und auf der Rückseite diese für den Pi Pico.
Programmieren des Shields HU-M16 in CircuitPython
Damit wir dieses Shield programmieren können, schauen wir uns zunächst das Pinout an.
Tumblr media
Aufbau des Joystick Shields für den Arduino Nachfolgend eine Tabelle mit den Pins am Raspberry Pi Pico. HU-M16Arduino UNO R3Raspberry Pi PicoJoystick (links)XA0GP26YA1GP27TasterD2GP2Joystick (rechts)XA3YA2GP28TasterD4GP4LEDD3GP3 Einrichten des Pi Pico für die Programmierung in CircuitPython Bevor wir das eigentliche Programm schreiben können, müssen wir unseren Mikrocontroller für CircuitPython flashen. In meinem Fall habe ich den Raspberry Pi Pico W und müsste nun die passende UF2 Datei suchen, herunterladen und auf den Mikrocontroller spielen. Die Entwicklungsumgebung Thonny bietet hier einen sehr einfachen Weg den Mikrocontroller für CircuitPython zu flashen und das mit wenigen Klicks. Bevor wir jedoch eine neue Firmware auf den Mikrocontroller flashen können, müssen wir diesen zunächst in den Modus bringen. Dazu trennen wir zunächst den Pi Pico vom Computer und halten den Taster BOOTSEL gedrückt und verbinden diesen erneut mit dem Computer. Es sollte jetzt im Explorer ein neues Laufwerk erscheinen. In dem Tool Thonny wählen wir unten rechts aus der Auswahlliste den Eintrag "Konfiguriere den Interpreter...".
Tumblr media Tumblr media
Im neuen Dialog wählen wir als erstes "CircuitPython (generic)" (1) und unter Port das korrekte Board (2) aus. Um nun das Board für CircuitPython zu flashen, müssen wir unten rechts auf den Hyperlink "CircuitPython installieren oder aktualisieren (UF2)" (3) klicken. Jetzt müssen wir das Laufwerk auswählen (4) sollte ggf. bereits vorlegt sein und danach die Variante des Pi Pico wählen. In meinem Fall nutze ich den Raspberry Pi Pico mit WiFi Chip und wähle daher den Pico W aus. Zum Schluss nun noch die Version wählen (6) und auf die Schaltfläche "Installieren" (7) klicken. Wenn der Vorgang abgeschlossen ist, sollte der Text "Done" bei der Position (8) erscheinen.
Tumblr media Tumblr media
Wenn wir jetzt zur IDE zurückkehren, dann sollte der in der Grafik angezeigte Text erscheinen (ggf. einmal oben in der Menüleiste auf Stopp klicken). Download des Moduls Adafruit HID Zum Steuern des Mauszeigers habe ich sehr gute Erfahrung mit dem Modul Adafruit Mouse gesammelt, es gibt dazu auch eine sehr ausführliche Dokumentation mit einigen Beispielen. Zu den Beispielen findet man auch immer gleich das Modul und somit muss man nicht lange suchen, sondern lädt sich einfach das Beispiel als ZIP-Datei herunter und kann dann aus dem entpackten Ordner das Modul auf den Mikrocontroller kopieren.
Tumblr media
Auslesen der aktuellen Position der Joysticks Im ersten Abschnitt habe ich dir bereits gezeigt, an welche Pins die Joysticks und auch die LED angeschlossen sind. Zunächst lesen wir die x-Achse aus und geben die Werte in der Konsole aus. import board from analogio import AnalogIn from time import sleep joystickLeftX = AnalogIn(board.A0) while True: print(joystickLeftX.value) sleep(0.125) Wenn wir den Code ausführen und den linken Joystick nach rechts / links bewegen, dann ändert sich der gelesene analoge Wert, welchen wir aus dem Reiter Kommandozeile auslesen können.
Tumblr media
Thonny - lesen von analogen Werten Bewegen des Mauszeigers mit den Joysticks Die Funktion move für das Bewegen des Mauszeigers erwartet 3 ganzzahlige Parameter. move(x: int = 0, y: int = 0, wheel: int = 0) Wenn wir nun den Mauszeiger in der X & Y Achse bewegen wollen, dann übergeben wir für die Bewegung nach oben eine 1 und nach unten eine -1, wenn wir jedoch die Achse nicht bewegen wollen eine 0. Die Joysticks sind in der Mittelposition und wir lesen einen Wert zwischen 45000 & 48000 (jedenfalls bei meinem Modell). Ich definiere jetzt, dass Werte, kleiner als 45000 als -1 interpretiert werden und größer als 48000 als 1. import board from analogio import AnalogIn from time import sleep import usb_hid from adafruit_hid.mouse import Mouse joystickLeftX = AnalogIn(board.A0) joystickRightY = AnalogIn(board.A2) m = Mouse(usb_hid.devices) while True: if joystickLeftX.value > 48000: posX = 1 elif joystickLeftX.value < 44000: posX = -1 else: posX = 0 if joystickRightY.value > 49000: posY = 1 elif joystickRightY.value < 45000: posY = -1 else: posY = 0 m.move(posX, posY, 0) sleep(0.01) Taster der Joysticks auswerten Beide analoge Joysticks haben jeweils einen zusätzlichen Taster, diese beiden Taster können wir als Maustasten einsetzen, jeweils als linke und rechte Maustaste. Wir benötigen dazu zwei Funktionsaufrufe, zum einen um den Taster zu drücken und zum anderen um diese wieder loszulassen. - Mouse.press, - Mouse.release Hintergrund ist, dass wir theoretisch per Drag'n Drop Objekte wie Dateien, Ordner verschieben können und dabei halten wir die Maustaste gedrückt. In meinem Fall möchte ich jedoch lediglich einen einfachen Klick ausführen. import board from time import sleep import usb_hid from adafruit_hid.mouse import Mouse import digitalio led = digitalio.DigitalInOut(board.GP3) led.direction = digitalio.Direction.OUTPUT joystickLeftButton = digitalio.DigitalInOut(board.GP2) joystickLeftButton.switch_to_input(pull=digitalio.Pull.UP) joystickRightButton = digitalio.DigitalInOut(board.GP4) joystickRightButton.switch_to_input(pull=digitalio.Pull.UP) m = Mouse(usb_hid.devices) while True: if not joystickLeftButton.value: led.value = True m.press(Mouse.LEFT_BUTTON) sleep(0.010) m.release(Mouse.LEFT_BUTTON) if not joystickRightButton.value: led.value = True m.press(Mouse.RIGHT_BUTTON) sleep(0.010) m.release(Mouse.RIGHT_BUTTON) led.value = False sleep(0.01) Fertiges Programm zum Steuern des Mauszeigers mit dem Joystickshield HU-M16 in CircuitPython import board from analogio import AnalogIn from time import sleep import usb_hid from adafruit_hid.mouse import Mouse import digitalio led = digitalio.DigitalInOut(board.GP3) led.direction = digitalio.Direction.OUTPUT joystickLeftX = AnalogIn(board.A0) joystickRightY = AnalogIn(board.A2) joystickLeftButton = digitalio.DigitalInOut(board.GP2) joystickLeftButton.switch_to_input(pull=digitalio.Pull.UP) joystickRightButton = digitalio.DigitalInOut(board.GP4) joystickRightButton.switch_to_input(pull=digitalio.Pull.UP) m = Mouse(usb_hid.devices) while True: if not joystickLeftButton.value: led.value = True m.press(Mouse.LEFT_BUTTON) sleep(0.010) m.release(Mouse.LEFT_BUTTON) if not joystickRightButton.value: led.value = True m.press(Mouse.RIGHT_BUTTON) sleep(0.010) m.release(Mouse.RIGHT_BUTTON) led.value = False if joystickLeftX.value > 48000: posX = 1 elif joystickLeftX.value < 44000: posX = -1 else: posX = 0 if joystickRightY.value > 49000: posY = 1 elif joystickRightY.value < 45000: posY = -1 else: posY = 0 m.move(posX, posY, 0) sleep(0.01)
Fazit
Die Programmierung des Joystickshield HU-M16 in CircuitPython ist mit dem Modul von Adafruit deutlich einfacher als beim Arduino. Eine Erweiterung des Codes könnte nun die Funktionalität für Drag'n Drop sein. Solltest du Fragen zu diesem Programm / Beitrag haben, so kannst hier einen Kommentar hinterlassen oder mir eine E-Mail an [email protected] senden. Read the full article
0 notes
draegerit · 8 months
Text
Ardu2040M unter der Lupe: Der leistungsstarke Mikrocontroller mit RP2040 und NeoPixel Matrix
Tumblr media
In diesem Beitrag möchte ich dir den neuen Mikrocontroller Ardu2040M von der Firma WisdPi vorstellen. Dieser Mikrocontroller kommt mit dem Chip RP2040 daher und du hast damit quasi einen Raspberry Pi Pico im Formfaktor eines Arduino UNO R3/R4 in der Hand.
Tumblr media
Ardu2040M unter der Lupe Disclaimer: Ein Teil des Preises vom Ardu2040M Mikrocontrollers wurde großzügigerweise von der Firma WisdPi gesponsert. Dieser Beitrag wurde unterstützt, um dir den Mikrocontroller vorzustellen!
Tumblr media
Vorderseite des Ardu2040M Mikrocontrollers
Tumblr media
Rückseite des Ardu2040M
Aufbau des Mikrocontrollers Ardu2040M mit RP2040 Chip
Wie erwähnt ist der Mikrocontroller im Formfaktor eines Arduino UNO R3/R4. Du bekommst als Feature neben einem RP2040 Chip noch eine 5x5 RGB Matrix und viele zusätzliche digitale Pins für deine Projekte.
Tumblr media Tumblr media Tumblr media
Zusätzlich verfügt dieser noch über eine USB-C Schnittstelle und einen Jack-Adapter (2,1 mm center-positiv) für die Stromversorgung von 7 bis 15V. Um die Firmware neu zu bespielen, musst du die Taste BOOTSEL Taste gedrückt halten und diesen mit dem Computer verbinden.
Tumblr media
Technische Daten & Features des Ardu2040M Auf dem Ardu2040M arbeitet ein RP2040 Chip, welchen ich dir bereits mit dem Raspberry Pi Pico / Pico W ausgiebig vorgestellt habe. Der Vollständigkeit halber hier jedoch trotzdem noch die technischen Daten: MCURP2040, Dual ARM Cortex-M0+ mit bis zu 133 MHzSpeicher264 kB SRAM, 2 MB FlashGPIOs29 GPIOs, davon 3x analog, 3fach SWD PinsSpannung2x 3.3V Pins, 1x 5 V Pins, 2x GNDTasterBootsel, ResetFeaturesFormfaktor eines Arduino UNO R3/R4, 5x5 RGB MatrixVersorgungsspannung7 bis 15 V über Jack Adapter, 5 V über USB-C Schnittstelle Pinout des Ardu2040M Nachfolgend das Pinout des Mikrocontrollers.
Tumblr media
Pinout des Mikrocontrollers Ardu2040M
Kosten & Bezug des Mikrocontrollers Ardu2040M mit RP2040 Chip
Diesen Mikrocontroller bekommst du derzeit exklusiv im offiziellen Shop von WisdPi für knapp 12 $ zzgl. Versandkosten.
Tumblr media Tumblr media Tumblr media
Du erhältst bei deiner Bestellung lediglich den Mikrocontroller, du musst dir also noch ein passendes USB-C Datenkabel separat erwerben. Dieses Datenkabel kannst du bei zum Beispiel ebay.de bereits ab 3 € kaufen.
Programmieren des Mikrocontrollers
Den RP2040 kannst du in der Arduino IDE sowie in Micropython / Circuitpython in Thonny oder dem MU-Editor programmieren. Das Gerät wird im Geräte-Manager als "Serielles USB-Gerät" erkannt und dort kannst du dann auch den COM-Port ablesen, an welchen dieser angeschlossen ist.
Tumblr media
Ardu2040M als Serielles Gerät im Geräte-Manager erkannt.
Tumblr media
Ardu2040M mit aktiver SMD LED & 5x5 RGB Matrix Auf dem Mikrocontroller findest du nicht nur die GPIOs, sondern auch eine 5x5 RGB Matrix und eine SMD LED, welche wir beliebig programmieren können. Auf den Mikrocontroller kannst du diverse Shields stecken welche eigentlich für den Arduino UNO entwickelt wurden, jedoch musst du beachten, dass die GPIOs lediglich 3V liefern! Diese Shields eignen sich vor allem für Anfänger, da man hier diverse Sensoren & Aktoren auf einer Platine bestückt erhält.
Tumblr media
multifunktionale Shields für den Arduino UNO R3 Wenn du den Ardu2040M das erste Mal mit dem Computer verbindest, dann läuft ein kleines Programm ab, welches die 5x5 RGB Matrix in den Farben Rot, Blau und Grün aufleuchten lässt. Dabei blinkt die kleine grüne SMD LED. Arduino IDE Bevor du den Ardu2040M programmieren kannst, musst du einen entsprechenden Boardtreiber installieren.
Tumblr media
Im ersten Schritt klickst du auf das Boardsymbol links in der Menüleiste. Danach suchst du nach "rp2040" und am Eintrag "Arduino Mbed OS RP2040 Boards" klickst du auf die Schaltfläche "INSTALL". Wenn dieser Treiber erfolgreich installiert wurde, ändert sich diese Schaltfläche in "REMOVE".
Tumblr media
Du findest danach das Board unter Werkzeuge > Board: xyz > Arduino Mbed OS RP2040 Boards > Raspberry Pi Pico. Wenn du das erste Mal ein Programm auf den Mikrocontroller aufspielen möchtest, dann wird das Gerät neu eingebunden und ist danach an einem anderem COM-Port erreichbar! Als Testprogramm verwende ich gerne das Beispiel, welches für so ziemlich jede Programmiersprache genutzt wird, die Ausgabe von dem Text "Hello, world!". void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello, world!"); delay(500); } Auf dem seriellen Monitor der Arduino IDE siehst du dann die Ausgabe von dem Text.
Tumblr media
Programmieren mit Micropython oder Circuitpython Den Mikrocontroller bzw. die MCU RP2040 kannst du auch mit Micropython oder Circuitpython programmieren. Dafür musst du den Mikrocontroller für die entsprechende Programmiersprache flashen, d.h. du musst eine spezielle Firmware auf diesen aufspielen. Nachfolgend findest du die Seiten, wo du die entsprechende UF2-Datei herunterladen kannst. - Micropython - Circuitpython Wenn du diese Datei heruntergeladen hast, dann musst du deinen Mikrocontroller vom PC trennen und die Taste BOOTSEL gedrückt halten. Danach verbindest du diesen wieder mit dem PC und lässt dann die Taste BOOTSEL lost. Update Firmware and test Micropython via Putty Thonny / MU-Editor Mit den beiden Tools Thonny und MU-Editor kannst du deinen Ardu2040M auch in Micropython bzw. Circuitpython programmieren. Im Abschnitt zuvor habe ich dir gezeigt wie dieser geflasht wird, in den Tools musst du dann nur deinen Mikrocontroller auswählen und kannst dann mit der Programmierung starten. Ob du nun Micropython oder Circuitpython verwendest, hängt meist davon ab, welche externen Sensoren / Aktoren oder Funktionen du verwenden möchtest, denn hier gibt es diverse Module, welche für jede Sprache spezielle Funktionen bieten. Kleines Beispiel zum Programmieren der 5x5 RGB Matrix in Micropython Die 5x5 RGB Matrix vom Typ WS2812 ist am GPIO13 angeschlossen und können wir in Micropython recht einfach programmieren. #Importieren der benötigten Module from neopixel import NeoPixel from machine import Pin import time #Anzahl der NeoPixel Num_Pixels = 25 #Initialisieren eines Objektes vom Typ NeoPixel #am Pin GP13 als Ausgang pixel = NeoPixel(Pin(13, Pin.OUT), Num_Pixels) #Schleife über die NeoPixel for i in range(Num_Pixels): #setzen der Farbe Blau pixel = (0, 0, 255) #schreiben / anzeigen pixel.write() #kleine Pause von 125 Millisekunden time.sleep(0.125) #setzen der Farbe schwarz / deaktivierne des NeoPixel pixel = (0, 0, 0) #schreiben / anzeigen pixel.write() Der Code lässt jedes NeoPixel einmal in Blau aufleuchten und danach wird dieses wieder deaktiviert.
Ideen für Projekte mit dem Ardu2040M
Durch die vielen GPIOs und die Möglichkeit der externen Stromversorgung von 7 bis 15V können wir so einige coole Projekte mit diesem machen. Und auch wenn diesem einen drahtlose Schnittstelle fehlt, kann diese recht günstig nachgerüstet werden. Mögliche Projekte wären: - ein Astroid Game auf der 5x5 RGB Matrix, - Wetterstation mit Sensoren (Temperatur, rel. Luftfeuchtigkeit, Luftdruck, Helligkeit, etc.), - steuern eines 2WD / 4WD Chassis
Fazit & Ausblick
Der Mikrocontroller Ardu2040M mit dem RP2040 ist ein guter Ersatz, wenn man mit dem Raspberry Pi Pico herumspielen möchte. Was diesem jedoch fehlt, ist die WiFi Schnittstelle, welche beim Pi Pico W dabei ist. Der Preis mit knapp 12 $ zzgl. Versandkosten ist okay, jedoch auch nicht besonders günstig. Read the full article
0 notes
draegerit · 11 months
Text
Gruseliges Raspberry Pi Pico Projekt: Die Spooky Box für Halloween
Tumblr media
Passend zur kommenden Halloween-Zeit möchte ich dir heute ein passendes kleines Projekt vorstellen, welches du easy an einem Wochenende erstellen kannst, es ist eine Spooky Box mit Soundausgabe. Als Mikrocontroller verwende ich den Raspberry Pi Pico in der Ausführung mit WiFi / Bluetooth.
Tumblr media
Die Idee dazu bekam ich vom Leser meines Blogs, welcher mir per Mail ein ähnliches Projekt vorgestellt hat. Dieses war jedoch mit dem weniger verbreiteten Calliope Mini. Der Vorteil des Calliope Mini ist jedoch, dass dieser besonders für Anfänger einfacher zu programmieren ist. Jedoch auch die Programmierung in MicroPython ist, wie du gleich sehen wirst, nicht allzu schwierig.
Teileliste für die Spooky Box mit einem Raspberry Pi Pico
Wenn du die Spooky Box nachbauen möchtest, dann benötigst du: - einen Raspberry Pi Pico oder Pico W, - ein Micro-USB-Datenkabel, - eine Lochrasterplatine, - zwei 40 Pin Buchsenleisten, - zwei LEDs mit Vorwiderstände (220 Ohm), - einen Taster, - einen Servomotor Typ SG90, - einen Piezo Buzzer
Tumblr media
Für den Aufbau auf der Lochrasterplatine benötigst du noch zusätzlich: - einen Lötkolben, - Lötzinn & Lötfett, - eine hitzebeständige Unterlage - einen kleinen Seitenschneider, - Litze / Draht in unterschiedlichen Farben
Spooky Box
Die Box selber habe ich aus dem örtlichen Tedi Mark für 3 € gekauft, zusätzlich noch Acrylfarbe und Pinsel, somit ergab dieses genau 6 €. Wenn du das ganze online suchst, dann findest du hier eine kleine Liste: - eine kleine Schatzkiste aus Holz, - Acrylfarbe, - Pinselset, Der Vorteil an der Acrylfarbe ist, dass diese recht schnell trocknet. Du kannst deine Spooky Box natürlich nach Belieben anders bemalen und bekleben.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Aufbau der Schaltung am Raspberry Pi Pico
Nachdem die Box fertig bemalt ist und trocknen muss, kümmern wir uns um die Schaltung am Raspberry Pi Pico.
Tumblr media
Programmieren
Das Programm erstellen wir wie erwähnt in MicroPython, dafür nutze ich die Thonny IDE. Das Gute gleich vorweg, wir benötigen keine zusätzliche Bibliothek für dieses Projekt, d.h. du könntest auch rein theoretisch den MU-Editor verwenden. Nachfolgend folgt nun eine Schritt-für-Schritt-Anleitung, wie du das Programm aufbaust. Schritt 1 - Abspielen des Halloween Sounds am Raspberry Pi Pico Die Spooky Box soll bei Aktivierung einen Sound abspielen, diesen habe ich jedoch lediglich für ein Arduino Programm gefunden, dieses habe ich für MicroPython umgeschrieben. #Module zum ansteuern der GPIOs und #erzeugen eines PWM Signals from machine import Pin, PWM from utime import sleep #der Buzzer ist am GPIO1 angeschlossen buzzer = PWM(Pin(1)) #Tonname & Frequenz in einem Dictionary mappen tones = { "cs6": 1109, "fs5" : 740, "d6" : 1175, "c6" : 1047, "f5" : 698, "b5" : 988, "e5" : 659, "bf5" : 932, "ef5" : 622, "b4" : 494, "g5" : 784, } #Töne vom Lied song = #Spielt einen Ton in einer Frequenz ab def playtone(frequency): buzzer.duty_u16(1000) buzzer.freq(frequency) #Verstummt den Buzzer def bequiet(): buzzer.duty_u16(0) #Spielt das Lied ab def playsong(mysong): #läuft über die Liste mit den Tönen for i in range(len(mysong)): #abspielen eines Tones aus der Liste mit dem Index i playtone(tones]) #kleine Pause von 200 Millisekunden sleep(0.2) #verstummen des Buzzers bequiet() #Abspielen des Liedes playsong(song) Der Code bewirkt lediglich das, dass Lied auf dem Piezo Buzzer abgespielt wird. Schritt 2 - Auslesen des Fotowiderstandes Der Fotowiderstand ist am ADC0 / GP26 angeschlossen und wird als analoger Wert ausgelesen. #Module für das auslesen des LDR from machine import Pin, ADC from utime import sleep #der LDR ist am GPIO26 / ADC0 angeschlossen adc = ADC(0) #Starten einer Endlosschleife while True: #auslesen des LDR und #ausgeben auf der seriellen Schnittstelle print(adc.read_u16()) #kleine Pause von 300 Millisekunden sleep(0.3) Wenn du den obrigen Code ausführst, dann wird kontinuierlich die Helligkeit gemessen und ausgegeben. Solltest du deinen Finger auf diesen Sensor legen, so ändert sich der Wert in der Konsole entsprechend. Auf diesen Wert können wir jetzt reagieren und somit erkennen, ob der Deckel unserer Spooky Box geöffnet wurde. Schritt 3 - Taster interrupt erstellen Wenn der Taster betätigt wird, soll der Sound aufhören zu spielen und die kleine Pappfigur soll abgesenkt werden. Dazu müssen wir einen Interrupt erstellen, der Pi Pico bietet an jeden der GPIOs die Möglichkeit ein Interrupt anzuhängen. #Module zum ansteuern der GPIOs from machine import Pin #der Taster ist am GPIO5 angeschlossen, #zusätzlich wird dieser über den internen PullUp #Widerstand verbunden button = Pin(5, Pin.IN, Pin.PULL_UP) #Funktion welche ausgeführt werden soll #wenn der Taster betätigt wird. def button_handler(pin): print("Hello, world!") #konfigurieren eines Interrupts button.irq(trigger = machine.Pin.IRQ_RISING, handler = button_handler) #Starten einer Endlosschleife, #diese wird benötigt damit das Programm sich nicht selbstständig beendet while True: pass Wenn du den Taster betätigst, wird die Funktion "button_handler" ausgeführt. Egal, was gerade parallel auf dem Mikrocontroller ausgeführt wird. Schritt 4 - Steuern des Servomotors Der Servomotor wird per PWM Signal gesteuert, hier musst du noch zusätzlich ins Datenblatt des verwendeten Servos schauen. Wenn du wie ich den Servo SG90 verwendest, dann hat dieser die Frequenz von 50 Hz für einen Schritt. #Module zum steuern der GPIOs from machine import Pin, PWM from utime import sleep #Servomotor am GPIO0 angeschlossen servo = PWM(Pin(0)) #der Servomotor arbeitet mit einer #Frequenz von 50 Hz servo.freq(50) #0° hat ein Dutycycle von.. grad0 = 500000 #90° hat ein Dutycycle von.. grad90 = 1500000 #Starten einer Endlosschleife while True: #Servo auf 90° bewegen servo.duty_ns(grad90) #kleine Pause von 500 Millisekunden sleep(0.5) #Servo auf 0° bewegen servo.duty_ns(grad0) #kleine Pause von 500 Millisekunden sleep(0.5) Der Code lässt den Servomotor immer zwischen den Winkeln 0° und 90° bewegen. Probleme mit zwei unterschiedliche PWM Signale Der Piezo Buzzer & der Servomotor werden beide über PWM Signale gesteuert. Das Problem, welches wir haben ist, dass der Pi Pico lediglich ein Signal zulässt. Wir müssen also nun etwas herumtricksen, dass der Piezo Buzzer das Lied abspielt, aber der Servo auch gesteuert werden kann. Meine Lösung hierzu ist, dass ich den jeweils nicht benötigten Aktor auf einen GPIO zuweise, welcher nicht belegt ist, somit ist der Aktor quasi deaktiviert. Bevor ich diesen wieder verwende, muss dieser dann lediglich wieder korrekt zugewiesen werden. from machine import Pin, PWM from utime import sleep servo = None buzzer = None grad0 = 500000 grad90 = 1500000 tones = { "cs6": 1109, "fs5" : 740, "d6" : 1175, "c6" : 1047, "f5" : 698, "b5" : 988, "e5" : 659, "bf5" : 932, "ef5" : 622, "b4" : 494, "g5" : 784, } song = def playtone(frequency): if isinstance(buzzer, Pin): initBuzzer() buzzer.duty_u16(1000) buzzer.freq(frequency) def bequiet(): if isinstance(buzzer, Pin): initBuzzer() buzzer.duty_u16(0) def playsong(mysong): for i in range(len(mysong)): if (mysong == "P"): bequiet() else: playtone(tones]) sleep(0.2) bequiet() #GPIO des Servomotor initialisieren def initServo(): global servo servo = PWM(Pin(0)) servo.freq(50) #konfigurierten Pin ändern def resetServo(): global servo servo = Pin(8, Pin.IN, Pin.PULL_UP) #GPIO Buzzer initialisieren def initBuzzer(): global buzzer buzzer = PWM(Pin(1)) #konfigurierten Pin ändern def resetBuzzer(): global buzzer buzzer = Pin(9, Pin.IN, Pin.PULL_UP) while True: initServo() servo.duty_ns(grad90) sleep(0.5) servo.duty_ns(grad0) sleep(0.5) resetServo() sleep(0.2) initBuzzer() sleep(0.2) playsong(song) sleep(0.2) resetBuzzer() sleep(0.2) Im Video siehst du nun das zunächst der Servo von 0° zu 90° wechselt und danach wird das Lied abgespielt. Das fertige Programm für die Spooky Box am Raspberry Pi Pico Hier jetzt das fertige Programm zum Download: MicoPython Code für die Halloween SpookyBox Read the full article
0 notes
draegerit · 11 months
Text
Raspberry Pi Pico RESET-Taster: So fügst du ihn hinzu
Tumblr media
Der Raspberry Pi Pico verfügt leider über keinen RESET-Taster, diesen können wir jedoch ganz einfach in unsere Schaltung hinzufügen und wie du das machst, zeige ich dir hier nun in diesem kurzen Beitrag.
Tumblr media
Im letzten Beitrag Raspberry Pi Pico Pinout: Eine ausführliche Übersicht habe ich dir bereits eine kleine Schaltung gezeigt, wie du diesen Taster an den Pi Pico anschließt, an diesen möchte ich anknüpfen und etwas mehr in die Tiefe gehen.
Warum sollte man einen RESET-Taster an den Raspberry Pi Pico anschließen?
Mit einem RESET-Taster kann man den Mikrocontroller neu starten und so alle Variablen, Felder und Objekte neu initialisieren. Dieses ist besonders wichtig, wenn das Programm bei einem Fehler in einem unbestimmten Zustand ist. Des Weiteren kann es je nach Anwendungsfall auch vorkommen, dass der Speicher ausgeht und so der Mikrocontroller ebenso in einen unbestimmten Zustand geht. Du siehst also, der RESET-Taster ist gar nicht so unnütz.
Was passiert bei einem RESET des Mikrocontrollers?
Wenn du einen RESET am Mikrocontroller durchführst, werden alle Daten im flüchtigen Speicher gelöscht. Zu diesen Daten gehören die bereits aufgezählten Variablen, Felder und auch Objekte. Ein Problem kann hier auftreten, wenn du Motoren, Servos etc. angeschlossen hast und diese Zustände verlierst, hier musst du bei der Programmierung im Voraus handeln.
RESET bei Verbindung zu einer Entwicklungsumgebung
Eine Besonderheit ist der RESET bei aktiver Verbindung zu einer Entwicklungsumgebung wie der Thonny IDE. Wenn du aus der Entwicklungsumgebung das Programm gestartet hast und dann den RESET-Taster betätigst, dann verliert die IDE die Verbindung und du musst dann das Programm manuell starten. Um dieses zu umgehen, musst du dein Programm in den Autostart legen und als boot.py speichern. Jedoch kommst du dann leider nicht mehr an deinen Code, da dein Programm sozusagen dauerhaft läuft.
Benötigte Ressourcen für den Anschluss eines RESET-Tasters an den Pi Pico
Für den Anschluss eines RESET-Tasters an den Pi Pico benötigst du lediglich zwei Kabel und einen Taster.
Tumblr media
Taster & Breadboardkabel für den RESET-Taster
Aufbau einer Schaltung mit RESET-Taster
Um den RESET-Taster zu demonstrieren habe ich eine kleine Schaltung aufgebaut, an welcher ein OLED-Display angeschlossen ist, auf welchem die Zahlen von 1 bis 99 im Sekundentakt angezeigt werden.
Tumblr media
Das eigentlich interessante an dieser Schaltung sollte hier jedoch nur der Taster sein, welcher zwischen RUN & GND geschaltet ist.
Funktion des RESET-Tasters
Für den RESET-Taster benötigen wir keine einzige Zeile Code, denn dieser zieht lediglich den PIN RUN gegen Ground (GND). Im nachfolgenden kleinen Video siehst du die Funktion. In der Schaltung ist ein kleines OLED-Display integriert, auf welchem die Zahlen von 1 bis n durchlaufen. Wenn man nun den blauen RESET-Taster betätigt, dann wird der Index wieder von 1 begonnen. Programm in Micropython auf dem Raspberry Pi Pico Der Vollständigkeit halber hier das Programm, welches auf dem Pi Pico abläuft. from machine import Pin, I2C import time import ssd1306 i2c = I2C(1, sda=Pin(26), scl=Pin(27)) display = ssd1306.SSD1306_I2C(70, 40, i2c) index = 0 while True: display.fill(0) display.show() index = index + 1 display.text(str(index), 20, 18, 1) display.show() time.sleep(1)
Alternative mit dem ArduPico
Wenn du den WisdPi ArduPico – Raspberry Pi Pico Adapter benutzt, dann hast du bereits einen RESET-Taster (sowie weitere Features) zur Hand.
Tumblr media
ArduPico von WisdPi Auf diese Platine, welche den Formfaktor des Arduino UNO hat, kannst du den Pi Pico, mit und ohne WiFi Support anbringen. Read the full article
0 notes
draegerit · 1 year
Text
Aufbau eines Ultraschall-Abstandswarners mit Raspberry Pi Pico
Tumblr media
Ein Jahr ist vergangen, seitdem ich auf meinem Blog über das aufregende Thema "Raspberry Pi Pico & Ultraschall-Abstandswarner" geschrieben habe. Doch heute möchte ich einen Blick zurückwerfen und eine kleine Ergänzung zu diesem faszinierenden Projekt präsentieren, das durch einen inspirierenden Kommentar auf YouTube angeregt wurde.
Tumblr media
In meinem früheren Beitrag haben wir bereits die Grundlagen erkundet, hier möchte ich nun speziell auf diesen Kommentar eingehen.
Tumblr media
Es geht also um eine Schaltung am Raspberry Pi Pico / Pico W mit fünf Ultraschallsensoren, wo die Sensorwerte < 50 cm zu einem Ereignis führen sollen. Ich habe derzeit nur vier Sensoren vom Typ HC-SR04 im Sortiment. Aber was mit vier Sensoren funktioniert, wird auch mit fünf oder mehr funktionieren!
Benötigte Ressourcen für dieses Projekt
Wenn du die Schaltung am Raspberry Pi Pico / Pico W nachbauen möchtest, dann benötigst du: - einen Raspberry Pi Pico / Pico W, - ein Micro-USB Datenkabel, - vier Ultraschallsensoren vom Typ HC-SR04, - vier Leuchtdioden, 5 mm, - vier 220 Ohm Vorwiderstände, - diverse Breadboardkabel, - zwei 830 Pin Breadboard
Alternativer Mikrocontroller zum Raspberry Pi Pico
Du musst nicht zwingend einen originalen Raspberry Pi Pico für dieses Projekt verwenden. In meinem Fall nutze ich zum Beispiel den Sumolink Erhu RP2040, welcher dem Pi Pico in nichts nachsteht, aber etwas günstiger in der Anschaffung ist.
Tumblr media
Sumolink Erhu RP240
Tumblr media
Sumolink Erhu RP240
Aufbau der Schaltung - Raspberry Pi Pico mit Ultraschall-Sensoren
Der Aufbau der Schaltung auf Steckbretter erfolgt auf zwei 830 Pin Breadboards.
Tumblr media
Schaltung: Raspberry Pi Pico mit 4 Ultraschallabstandssensoren Hier nun die Tabelle mit den Anschlüssen der einzelnen Komponenten: KomponenteRaspberry Pi PicoHC-SR04 - #1VCC5VGNDGNDEchoGP3TriggerGP2HC-SR04 - #2VCC5VGNDGNDEchoGP5TriggerGP4HC-SR04 - #3VCC5VGNDGNDEchoGP7TriggerGP6HC-SR04 - #4VCC5VGNDGNDEchoGP9TriggerGP8LED #1 Kathode220 Ohm Widerstand > GNDAnodeGP16LED #2Kathode220 Ohm Widerstand > GNDAnodeGP17LED #3Kathode220 Ohm Widerstand > GNDAnodeGP18LED #4Kathode220 Ohm Widerstand > GNDAnodeGP190,92" OLED DisplayGNDGNDVCC5VSCLGP1SDAGP0 Du kannst natürlich auch mehrere kleine 170 Pin Breadboards verwenden und diese dann im Halbkreis aufbauen, um so 180° zu überwachen.
Tumblr media
Aufbau der Schaltung mit Breadboardkabel
Programmieren in der Thonny IDE
Den Raspberry Pi Pico kannst du in der Thonny IDE einfach in Micropython programmieren. Dieses Tool kannst du dir unter https://thonny.org/ kostenfrei herunterladen. Ich musste jedoch zuvor meinen Mikrocontroller für Micropython flashen. Wie du das machst, habe ich dir bereits im Beitrag Raspberry PI Pico #1 – Vorstellung erläutert. https://youtu.be/ULydV3mTQgo Das Programm kannst du dir unter nachfolgenden Link herunterladen. Die Datei kannst du dann mit der Thonny IDE öffnen und als code.py auf dem Pi Pico speichern. Programm in Micropython - Raspberry Pi Pico Ultraschall-AbstandswarnerHerunterladen Hier nun der Code: from machine import Pin, I2C from ssd1306 import SSD1306_I2C import time as time import utime i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000) oled = SSD1306_I2C(128, 64, i2c) ledPin1 = Pin(16, Pin.OUT) ledPin2 = Pin(17, Pin.OUT) ledPin3 = Pin(18, Pin.OUT) ledPin4 = Pin(20, Pin.OUT) sensor1Trigger = Pin(2, Pin.OUT) sensor1Echo = Pin(3, Pin.IN) sensor2Trigger = Pin(4, Pin.OUT) sensor2Echo = Pin(5, Pin.IN) sensor3Trigger = Pin(6, Pin.OUT) sensor3Echo = Pin(7, Pin.IN) sensor4Trigger = Pin(8, Pin.OUT) sensor4Echo = Pin(9, Pin.IN) sensor1Value = 12 sensor2Value = 12 sensor3Value = 12 sensor4Value = 12 sensorActiveDistance = 10 def setup(): ledPin1.off() ledPin2.off() ledPin3.off() ledPin4.off() def toggleLED(pin): pin.toggle() def formatValue(value): return str("{:4.2f}".format(value)+" cm") def updateDisplay(): global sensor1Value, sensor2Value, sensor3Value, sensor4Value oled.fill(0) oled.text("#1 "+formatValue(sensor1Value), 0, 0) oled.text("#2 "+formatValue(sensor2Value), 0, 15) oled.text("#3 "+formatValue(sensor3Value), 0, 30) oled.text("#4 "+formatValue(sensor4Value), 0, 45) oled.show() def readUltrasonicSensor(trigger, echo): trigger.low() utime.sleep_us(2) trigger.high() utime.sleep_us(5) trigger.low() signaloff = 0 while echo.value() == 0: signaloff = utime.ticks_us() signalon = 0 while echo.value() == 1: signalon = utime.ticks_us() timepassed = signalon - signaloff return (timepassed * 0.0343) / 2 def checkValueSetState(value, pin): if (value < sensorActiveDistance): pin.on() else: pin.off() def main(): global sensor1Value, sensor2Value, sensor3Value, sensor4Value while True: sensor1Value = readUltrasonicSensor(sensor1Trigger, sensor1Echo) sensor2Value = readUltrasonicSensor(sensor2Trigger, sensor2Echo) sensor3Value = readUltrasonicSensor(sensor3Trigger, sensor3Echo) sensor4Value = readUltrasonicSensor(sensor4Trigger, sensor4Echo) checkValueSetState(sensor1Value, ledPin1) checkValueSetState(sensor2Value, ledPin2) checkValueSetState(sensor3Value, ledPin3) checkValueSetState(sensor4Value, ledPin4) updateDisplay() time.sleep(0.5) setup() main() Read the full article
0 notes