#RealTimeClock
Explore tagged Tumblr posts
Text
The MAX31328 is a modernized DS3231 🔬🕰️🔋
The ADI DS3231 - previously known as Maxim, previously previously known as Dallas Semi - is a high precision Real Time Clock - its one of the best out there thanks to it's internal temperature compensated crystal. but its kinda old, and ADI has done a refresh on the chip while keeping it software/firmware compatible. The MAX31328 https://www.digikey.com/short/5jff8p90 is a different, smaller package, probably uses a modern-er process too. We covered this family on EYE ON NPI about a year ago https://blog.adafruit.com/2022/05/26/eye-on-npi-analog-devices-maxim-max31329-real-time-clock-rtc-eyeonnpi-adi_news-digikey-adafruit/ and parts we booked back then finally appeared so we can design a prototype board! here it is in our STEMMA QT format - on the back is a coin cell holder to keep time for up to 7 years.
#adafruit#electronics#AnalogDevices#opensource#maxim#MAX31328#ADI#DS3231#RealTimeClock#ModernTech#PrototypeBoard#STEMMAQT#Innovation#Precision#HardwareUpgrade#KeepInTime
8 notes
·
View notes
Text
Girls don't care about the sacrifices you make for their prosperity
Battery needs an upgrade, and the ATMEL/arduino microchip could be translated into a standalone-circuit, shrinking the side-panel. I've also had some success with the "HC-05" Bluetooth module pairing with my Android phone, so perhaps I could pass packets of data from the device, to the heads-up display🤔
0 notes
Text
RTC Operations on i.MX6ULL Embedded Platform
The Programming&Configuring Guide in #RTC (Real-Time Clock) Functionality⏲️:
Handle date calculations, including time and timezone; Modify time and hwclock setting; Synchronize the system time with the RTC on i.MX6ULL SBCs at system startup.
The RTC is a critical component in embedded systems for maintaining accurate timekeeping and power management, but it can face challenges like time loss. So you can get the full guide and give it a try effectively! 👇
#ForlinxEmbedded#iMX6ULL#NXP#NXPPartner#RealTimeClock#RTCModules#EmbeddedSystems#IoT#UltraLowPower#InternetOfThings
0 notes
Text
Raspberry Pi Pico BASIC #6 – RealTimeClock programmieren
In diesem Beitrag möchte ich dir gerne zeigen, wie du eine RealTimeClock (kurz RTC) am Raspberry Pi Pico mit Picomite in BASIC programmierst.
Den Raspberry Pi Pico mit Picomite habe ich dir bereits in diversen Beiträgen vorgestellt. - BASIC Programmierung am Raspberry Pi Pico W, - Raspberry Pi Pico BASIC #1 – Überblick - Raspberry Pi Pico BASIC #2 – Quellcode organisieren - Raspberry Pi Pico BASIC #3 – Autostart - Raspberry Pi Pico BASIC #4 – SD-Karte anschließen In meinem letzten Beitrag habe ich dir auch gezeigt, wie man Sensordaten von einem Temperatursensor auf eine SD-Karte schreiben kann. In diesem Beitrag möchte ich gerne an diesen Beitrag anknüpfen und die Sensordaten mit einem Zeitstempel speichern. Im Handel erhältst du die RTCs bereits ab 3 € welche meist für den Arduino angepriesen werden.
Auf der RTC ist eine Batterie verbaut, welche die interne Uhr weiterlaufen lässt und so auch ein Zeitstempel ausgelesen werden kann, wenn der Mikrocontroller mal eine Zeit X ohne Strom war.
Benötigte Ressourcen für dieses Projekt
Wenn du die Schaltung nachbauen möchtest, dann benötigst du: - einen Raspberry Pi Pico / Pico W, - ein Micro-USB-Datenkabel, - eine RTC DS3231 mit I2C Schnittstelle, - vier Breadboardkabel, weiblich-weiblich, 10 cm, - optional ein GPIO Dual Expanderboard
Aufbau der Schaltung
Mit den vier Breadboardkabeln schließen wir die RealTimeClock an den Raspberry Pi Pico wie folgt an.
Raspberry Pi Pico mit RealTimeClock (RTC) An den Raspberry Pi Pico kannst du an mehreren Pins ein I2C Device anschließen. Nachfolgend findest du das Pinout.
Pinout des Raspberry PI Pico
Einrichten der RTC in Picomite auf dem Raspberry Pi Pico
Bevor wir den Zeitstempel (Datum & Uhrzeit) von der RTC lesen können, müssen wir diese einrichten. Zunächst müssen wir die I2C Pins aktivieren. OPTION SYSTEM I2C 1, 0 oder OPTION SYSTEM I2C GP0, GP1 Nachdem die ENTER Taste betätigt wurde, startet der Pi Pico neu und danach setzen wir den initialen Zeitstempel mit dem nachfolgenden Befehl. RTC SETTIME Jahr, Monat, Tag, Stunde, Minute, Sekunde zbsp. RTC SETTIME 2023, 4, 29, 18, 0, 0 Mit dem Befehl nachfolgenden Befehl kannst du die RTC beim Starten und jede Stunde
Auslesen von Datum & Uhrzeit von der RealTimeClock
Nachdem wir nun den Zeitstempel gesetzt haben, können wir die beiden Werte Datum & Uhrzeit von dieser lesen. RTC GETTIME Print DATE$ Print TIME$
Ausgabe von Datum & Uhrzeit auf dem Pi Pico mit einer RTC Damit wir aus den Feldern DATE$ und TIME$ die Werte lesen können, müssen die mit dem Befehl "RTC GETTIME" befüllt werden. Wir können dieses jedoch etwas automatisieren, indem wir die nachfolgende Option für die RTC setzen. OPTION RTC AUTO ENABLE
Beispiel - Sensordaten mit Zeitstempel auf SD-Karte schreiben
Im letzten Beitrag hatte ich dir gezeigt, wie du die Sensordaten von einem einfachen digitalen Temperatursensor DS18B20 auf eine SD-Karte schreiben kannst. Jetzt möchte ich statt des Index einen Zeitstempel zu jedem Wert speichern. Aufbau der Schaltung - RTC, DS28B20 & SD-Kartenleser Die RTC lässt sich wie nachfolgend gezeigt in die ggf. bereits bestehende Schaltung integrieren.
Schaltung - Pi Pico mit DS18B20, RTC & SD-Kartenleser Für den Temperatursensor DS18B20 habe ich ein kleines Board auf welchem bereits die Schaltung mit dem 4,7 kOhm Widerstand verbaut ist.
Aufbau der Schaltung - Raspberry Pi Pico mit Realtimeclock, Temperatursensor DS18B20 und SD-Kartenleser
Programmieren im Fullscreen-Editor in Picomite
Erweitern wir jetzt das Programm um den Zeitstempel. TEMPR START GP15 Dim value As Float Open "b:/sensordaten.csv" For output As #1 RTC GETTIME For i = 0 to 100 Step 1 value = TEMPR(GP15) Print #1, DATE$ " " TIME$ ";" value Print i DATE$ " " TIME$ "-" value Next i Close #1 Die CSV Datei auf der SD-Karte enthält nun den Zeitstempel sowie die Sensordaten getrennt durch ein Semikolon.
Read the full article
0 notes
Text
Features
A new region to discover, Hupest!
A Custom soundtrack (tracks from various, media remixed with a B2&W2 Soundfont, not my own compositions)
A BW/HGSS inspired art design
Updated battle mechanics to Generation 7 (Moves, Pokémon, PSS split etc.)
(Almost)Full National Dex until Gen 7 (758 species plus 48 Eclipse Pokémon)
A new battle mechanic, Eclipsing!
Side Quests (With an actual Quest Log)
Day/Night System and possible D&N events (On VBA turn RealTimeClock on, the emulator needs to support RTC)
Many aesthetic updates (Like the transparent textboxes etc.)
Soaring
Not a feature, but game design issues from Saiph have been avoided here, so trade pokemon can be evolved, stones work etc. (Lessons have been learned this time…)
4 notes
·
View notes
Text
32768crystal #rtc #rtccrystal #realtimeclock #esp32 #esp8266 #clock #K32768 #crystal #metering #amr #meteringamr #iot #smartmeter #emeter #electricmeter #watthourmeter #watthour #cq #cqcrystal #meters #internetofthings #iotproject #iotmodule #radialcrystal
0 notes
Text
Raspberry Pi PicoW - wieviel "W" ist nötig?
Nach dem Raspberry Pi Pic folgte der Pico W, also die Version auf der ein WLAN Modul verbaut wurde. Doch wieviel "W" ist nötig, genau das ist die Frage?
Es ist natürlich großartig, dass der Raspberry Pi Pico, der Microcontroller der Raspberry Pi Foundation UK nun auch ein WLAN Modul verbaut bekam. Dies ermöglicht es uns den kleinen Microcontroller auch als Mini-Webserver zu nutzen. Meldet er sich in einem WLAN an, so erhält er vom Router eine IP Adresse. Unter dieser kann dann bspw. eine Website aufgerufen werden, wenn der Pico W als Webserevr programmiert wurde.
Eine andere Sache ist, dass durch das WLAN Modul ein Pico W sich nun auch Informationen aus dem Internet beschaffen kann. Beispielsweise um als Uhr zu dienen und wenn es darum geht die richtige Uhrzeit anzeigen zu können. Der Microcontroller selbst kann diese RTC Funktion nur bedingt. Benötigt also den Zugriff auf einen Uhrzeitserver für die RealtimeClock(RTC) Funktion. Diese kann er dann natürlich speichern und sich immer wider die aktuelle Uhrzeit aus dem Netz beschaffen um Up-to-Date zu sein. Also eher up-to-Time.
In den kommenden Wochen soll es dann auch möglich werden Bluetooth (BT) zu nutzen, denn der Microcontroller beherrscht das wohl schon, aber es mangelt derzeit noch an entsprechemdem Code für dessen Betriebssystem, gerade im Thema Micropython besteht da ein Defizit. Bei allem dürfen wir aber nicht vergessen, dass uns da aktuell noch ein wichtiger Punkt fehlt bei dem uns weder WLAN noch BT so recht hiflt. Die drahtlose Programmierung.
Doch soviel "W" reicht uns nicht! Hier gibt es im Zusammenhang mit Micropython beispeilsweise ein ganz grundlegendes Problem. Wir erreichen es nicht Datein zu ändern solange der Pico/Pico W ein Script ausführt und zudem bleibt die Programmierung über bspw. die Thonny IDE einer bestehenden Kabelverbindung vorbehalten. Warum wäre das so interessant? Nun es geht darum, dass wir dann keine USB-Kabel Verbindung mehr benötigen würden um diesen Microcontroller zu programmieren. Den Controller am Strom zu haben und mit einer bestehenden WLAN bzw. BT Verbindung dann Dateien zu ändern, speichern oder zu löschen wäre DIE herausragende Sache, welche uns aktuell fehlt.
GPIO Schnitstellen lassen sich zwar steuern, doch zwischen steuern und programmieren ist der Unterschied um den es hier geht. Nehmen wir das Beispiel des pimoroni Galactic Unicorn, austauschbar gegen alles was es sonst so auf dem Markt gib, wo der Hersteller einen Pico W auf dem Board bzw. in diesem Fall Display-Board verbaut hat. Und wenn wir an das Thema Smart-Home Steuerung denken wird es ebenso deutlich. Positionieren wir diese Gerät oder eine Smarthome-Steuerung an einem schwer zugänglichen Ort, so wäre es sicher von Zeit zu Zeit erforderlich nochmal in die Programmierung einzugreifen.
Beispielsweise um Anpassungen am html-Code vorzunehmen, die IP Adresse oder insgesamt den Vorgang während der Anmeldeprozedur zu verfolgen, etc.! Wir können dies bedingt über Formularanwendungen bei PHEW oder auch indem wir Variablen wegschreiben die sich ein anderes py-Script einlesen kann tun. Doch eine neue py-Datein hinzufügen oder ändern wird selbst über solche Umwege kaum machbar werden. Andere Sache wäre die Libaries zu ergänzen upzudaten oder dergleichen.
Auch der pimoroni Badger2040 würde davon profitieren, wenn man ihn drahtlos programmieren könnte. Nutzt man diesen Beispielsweise als Türschild, so müsste ein IT Mitarbeiter zu dem Badger2040 hinlaufen und ihn an ein Notebook anschließen um Änderungen vorzunehmen. Wäre der Badger2040 aber über das WLAN mit einer GUI unter seiner IP zu erreichen und programmierbar, wäre dies ein großer Vorteil. Der IT Mitarbeiter müsste nur wissen welche IP der Badger2040 hat und wo er sich befindet. Eine Website unter der IP als Mini Webserver könnte zudem Standortinformationen und die aktuelle Programmierung anzeigen.
Das was wir hier aktuell durchführen können ist dahingehend leider noch sehr beschränkt. Auch SSH ist keine Option, da das OS des Pico das nicht beherrscht. Es wird also stark davon abhängen wie weiter in dieser Sache entwickelt wird und ob wir hier künftig durch entsprechende Updates des Pico/PicoW OS besonders im Hinblick auf Micropython noch solche Möglichkeiten bekommen werden.
Auf Github ist eine meiner Repositories (https://github.com/techcree/Badger2040.git) zu finden, wo ich mich mit diesem Thema beim Badger2040 auseinander gesetzt habe. Der Ansatz ist dort noch eine html-GUI hinzuzufügen, da TKinter unter Micropython Probleme bereitet. Da der Badger2040 aber kein WLAN kann ;-) ist das hier nicht das richtige Besipiel. Nehmen wir also mal einen Pico W mit einem daran angeschlossenen Display an so wird ein Schuh daraus. Ich denke aber wir stehen hier ggf. kurz vor einer Lösung. Es bleibt also spannend...
0 notes
Text
A few other things I have been playing with.
This add on card provides a real-time clock, charging contol and battery backup for a Raspberrypi. I like how after installation I can have the Pi turn off using the shutdown command on the screen. Don’t over tighten the screws
1 note
·
View note
Photo
#Failed #RTC #RealTimeClock #Sandisk #BuildingStack https://www.instagram.com/p/CjR4n9BO8eb/?igshid=NGJjMDIxMWI=
0 notes
Text
A CLOCK DESIGN THAT CAN LET YOU TELL TIME BY A SIMPLE ROTATION
This Lexus Design Award triumphing clock is going to expose that every now and then the solution to a trouble may be simply oh-so-simple. Ditching the idea that you want to have multiple clocks to tell the time in distinct time zones, Masafumi Ishikawa’s World Clock is simply ridiculously easy. The clock comes with a dodecagonal (12-sided) shape, and just an hour hand. Each face of the dodecagon has the name of a famous town, similar to a time region, on it. Just face the city’s call up and the hour hand tells you what time it is there (you’d likely should use your not unusual experience to tell if it’s am or pm). The most effective trap is that the World Clock doesn’t work with daylight hours-saving time, given that no longer all countries follow the exercise of turning their clocks backward and forward. As the hour hand rotates on an axis, the sector clock’s form turned into designed to be rotated and located on a floor. Change what face it rests on, and the hour hand factors some other place. Ishikawa makes use of this as an alternative easy truth to show a normal clock into a global clock! Give it a strive, you may turn your desk clocks into world clocks too! Click Here to Buy Now world clock app, world clock with seconds, world clock converter, world clock 3d, world time zone list, real time clock, gmt world clock, slowest time zone Read the full article
#gmtworldclock#realtimeclock#slowesttimezone#worldclock3d#worldclockapp#worldclockconverter#worldclockwithseconds#worldtimezonelist
0 notes
Text
Erfahrungsbericht: Wie gut sind die neuen E-Paper Displays von Soldered?
Von der Firma Soldered habe ich zwei E-Paper Displays für dieses Review erhalten. Ein E-Paper Display hat die Vorteile, dass es wenig Strom verbraucht und dabei auch noch von allen Winkeln gut lesbar ist. https://youtu.be/EcERNJUgK_U Disclaimer: Dieser Beitrag enthält eine unabhängige Bewertung der E-Paper Displays von Soldered, die mir kostenfrei zur Verfügung gestellt wurden. Die hier geäußerten Meinungen und Erfahrungen sind meine eigenen und wurden nicht durch Soldered beeinflusst.
Was sind die Vorteile von E-Paper Displays?
E-Paper Displays, auch bekannt als elektronische Papierdisplays, bieten eine Reihe von Vorteilen gegenüber herkömmlichen LCD- oder LED-Displays. Hier sind einige der wichtigsten Vorteile: - Geringer Energieverbrauch: - E-Paper Displays benötigen nur Strom, wenn sich der angezeigte Inhalt ändert. Ein statisches Bild verbraucht keine Energie, was die Batterielebensdauer erheblich verlängert. - Hohe Lesbarkeit bei Sonnenlicht: - E-Paper Displays reflektieren das Licht wie echtes Papier, was bedeutet, dass sie auch bei direkter Sonneneinstrahlung gut lesbar sind. - Augenfreundlichkeit: - Da sie kein Hintergrundlicht verwenden, sind E-Paper Displays weniger anstrengend für die Augen und bieten ein angenehmeres Leseerlebnis, ähnlich wie bei gedrucktem Papier. - Dünn und leicht: - E-Paper Displays sind in der Regel dünn und leicht, was sie ideal für tragbare Geräte wie E-Reader und Smartwatches macht. - Breiter Betrachtungswinkel: - Der Inhalt auf E-Paper Displays bleibt aus nahezu jedem Betrachtungswinkel klar und lesbar, im Gegensatz zu vielen herkömmlichen Displays, die bei seitlichem Blickwinkel verblassen oder verzerrt wirken können. - Flexibilität: - Einige E-Paper Displays können auf flexible Substrate gedruckt werden, wodurch sie für innovative Anwendungen wie gebogene oder faltbare Geräte geeignet sind. - Geringere Lichtverschmutzung: - Da sie ohne Hintergrundbeleuchtung arbeiten, tragen E-Paper Displays weniger zur Lichtverschmutzung bei und sind in dunklen Umgebungen diskreter. Diese Vorteile machen E-Paper Displays besonders attraktiv für Anwendungen, bei denen Energieeffizienz, Lesbarkeit und Augenfreundlichkeit im Vordergrund stehen.
6 Farbiges E-Paper Display von Soldered
Von der Firma Soldered bekommst du ein E-Paper Display mit 6 Farben in der Größe von 6 Zoll (was ca. 15 cm Bildschirmdiagonale entspricht). Es können die Farben schwarz, grün, blau, rot, gelb, orange angezeigt werden. Wenn ein Pixel nicht aktiviert ist, dann wird dieser in Weiß dargestellt, somit kommt man sogar auf 7 Farben.
Technische Daten Nachfolgend die technischen Daten des 6 Zoll (ca. 15 cm), 6 Farben E-Paper Display: SchlüsselmerkmaleDetailsDisplaygröße5,85 Zoll (rund 6 Zoll)Auflösung600 x 448 PixelFarbunterstützung7 FarbenBildaktualisierungTeilweise Updates, schnelle InhaltsveränderungMikrocontrollerESP32 mit eingebettetem WiFi und Bluetooth 4.0 (BLE)StromverbrauchSehr gering, 18 µA im Deep-Sleep-ModusStromversorgungLithium-Akku oder USB, integriertes LadegerätSpeicherkartenleserMicroSD KartenleserSchnittstellenZusätzliche GPIO Linien, easyC/Qwiic Kompatibilität, Unterstützung für I²C und SPISoftwareFertige Arduino Bibliothek (100 % kompatibel mit Adafruit GFX) und MicroPythonGehäuseoptionenOptional 3D-gedrucktes GehäuseAkkuoptionenOptional 1200mAh AkkuAbmessungen131,5 x 105,5 x 10 mmAbmessungen mit Gehäuse140 x 119,3 x 13,6 mm Aufbau des E-Paper-Displays Auf der Rückseite des Displays findest du einige Anschlüsse für Sensoren/Aktoren sowie unter anderem das Batteriefach für die Backupbatterie der RTC (RealTimeClock). Einstellungen und dort fügen wir die nachfolgende URL zu den zusätzlichen Boardverwalter URLs ein. https://raw.githubusercontent.com/SolderedElectronics/Dasduino-Board-Definitions-for-Arduino-IDE/master/package_Dasduino_Boards_index.json
Installieren der Bibliotheken für das Display Der Boardtreiber dient lediglich zum Ansteuern des Mikrocontrollers, damit wir das E-Paper Display ansteuern können, benötigen wir eine zusätzliche Bibliothek, welche wir als ZIP-Datei vom GitHub Repository SolderedElectronics / Inkplate-Arduino-library herunterladen können.
Unterschiede bei der Programmierung von E-Paper Displays von Soldered Beide Display (6 Zoll & 10 Zoll) kannst du sehr einfach über die Arduino IDE programmieren. Der Bibliothek liegen zu jedem Display Beispiele von Einfach bis Komplex bei. Jedoch hat das 10-Zoll-Display ein Feature, welches dem 6 Zoll derzeit fehlt, es ist ein Partial Update. Dieses bewirkt, dass nicht das komplette Display neu geschrieben wird, sondern nur die Daten, welche sich neu im Puffer befinden, somit ist die Anzeige neuer Daten schnell erledigt. Anzeigen von Text & Formen in diversen Farben auf dem Soldered Inkplate 6Color E-Paper Display Zunächst programmieren wir ein kleines Dashboard, welches alle 15 Minuten aktualisiert wird. Auf diesem Dashboard soll nachfolgende Daten angezeigt werden: - die Uhrzeit von der RealTimeClock, - der Status der Webseite http://draeger-it.blog
Das Gute an dem E-Paper Display ist, dass dieses ohne Hintergrundbeleuchtung daher kommt und somit auch nicht so sehr aufträgt, wenn es an der Wand montiert ist. Programm - Dashboard für Status einer WebseiteHerunterladen #include "HTTPClient.h" #include "Inkplate.h" #include "WiFi.h" //Zugangsdaten zum lokalen WiFi Netzwerk const char ssid = ""; const char *password = ""; //Die Webseite welche geprüft werden soll String hostname = "http://draeger-it.blog"; HTTPClient sender; WiFiClient wifiClient; Inkplate display; const int PAUSE = 900000; void setup() { //starten der seriellen Verbindung mit 115200 baud Serial.begin(115200); //Aufbau der WiFi Verbindung WiFi.mode(WIFI_MODE_STA); WiFi.begin(ssid, password); //solange die WiFi Verbindung noch nicht hergestellt wurde, //soll ein Punkt ausgegeben werden while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } display.begin(); display.clearDisplay(); display.display(); //Einmaliges setzen der Uhrzeit / des Datums an der RTC. //Dieser Wert wird durch eine Pufferbatterie gehalten! //display.rtcReset(); //display.rtcSetTime(16, 6, 00); //display.rtcSetDate(2, 15, 7, 2024); } //Funktion zum schreiben eines Textes an einer bestimmten Position mit einem Style void setText(String text, int coord_x, int coord_y, int color, int textSize) { display.setTextColor(color); display.setCursor(coord_x, coord_y); display.setTextSize(textSize); display.print(text); } //Prüft ob der Hostname verfügbar ist, also der HTTP-Code gleich 200 ist. bool hostAvailable() { if (sender.begin(wifiClient, hostname)) { int httpCode = sender.GET(); if (httpCode > 0) { Serial.println("httpCode: " + String(httpCode)); return httpCode == 200; } else { Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str()); } } return false; } //liest einen Zeitstempel von der RealTimeClock String readRTC() { display.rtcGetRtcData(); int minutes = display.rtcGetMinute(); int hour = display.rtcGetHour(); int day = display.rtcGetDay(); int weekday = display.rtcGetWeekday(); int month = display.rtcGetMonth(); int year = display.rtcGetYear(); char buffer; sprintf(buffer, "%d/d/d d:d", year, month, day, hour, minutes); Serial.println(buffer); return buffer; } void loop() { //leeren des Displays display.clearDisplay(); display.display(); display.fillScreen(INKPLATE_WHITE); //laden des Logos display.drawImage("https://draeger-it.blog/wp-content/uploads/2024/07/logoSD.bmp", 0, 0, true, false); //schreiben der Überschrift setText("Dashboard", 165, 20, INKPLATE_ORANGE, 3); //schreiben des aktuellen Zeitstempels setText(readRTC(), 165, 50, INKPLATE_GREEN, 2); //zeichnen der Ampel display.drawRoundRect(50, 130, 60, 140, 6, INKPLATE_BLACK); display.drawCircle(80, 170, 20, INKPLATE_BLACK); display.drawCircle(80, 220, 20, INKPLATE_BLACK); //Wenn die Webseite verfügbar ist, dann... if (hostAvailable()) { display.fillCircle(80, 220, 10, INKPLATE_GREEN); setText("Webseite erreichbar!", 120, 215, INKPLATE_GREEN, 2); } else { //Wenn die Webseite NICHT verfügbar ist, dann... display.fillCircle(80, 170, 10, INKPLATE_RED); setText("Webseite nicht erreichbar!", 120, 165, INKPLATE_RED, 2); } //einen Text in den Footerbereich schreiben display.setTextColor(INKPLATE_BLACK); display.setCursor(115, 420); display.setTextSize(1); display.print("Stefan Draeger | https://draeger-it.blog | [email protected]"); display.display(); //einlegen einer Pause von 15 Minuten delay(PAUSE); } Read the full article
0 notes
Text
Features
A new region to discover, Hupest!
A Custom soundtrack (tracks from various, media remixed with a B2&W2 Soundfont, not my own compositions)
A BW/HGSS inspired art design
Updated battle mechanics to Generation 7 (Moves, Pokémon, PSS split etc.)
(Almost)Full National Dex until Gen 7 (758 species plus 48 Eclipse Pokémon)
A new battle mechanic, Eclipsing!
Side Quests (With an actual Quest Log)
Day/Night System and possible D&N events (On VBA turn RealTimeClock on, the emulator needs to support RTC)
Many aesthetic updates (Like the transparent textboxes etc.)
Soaring
Not a feature, but game design issues from Saiph have been avoided here, so trade pokemon can be evolved, stones work etc. (Lessons have been learned this time…)
0 notes
Text
Raspberry Pi Pico BASIC #7 – I2C-Display programmieren
Willst du lernen, wie du ein I2C-Display mit dem Raspberry Pi Pico und PicoMite / BASIC zum Laufen bringst? In diesem Artikel zeige ich dir einfache Schritte, um beeindruckende Ergebnisse zu erzielen. Egal, ob du ein Anfänger oder bereits erfahrener Raspberry Pi-Nutzer bist, meine detaillierte Anleitung hilft dir dabei, das Display anzuschließen und zu programmieren. Tauchen wir gleich ein und entdecke mit mir die faszinierende Welt der I2C-Displays mit Raspberry Pi Pico und PicoMite!
In vergangenen Beiträgen hatte ich dir bereits gezeigt, wie du eine RealTimeClock an den Pi Pico anschließt und programmierst, hier möchte ich an den Beitrag nun anknüpfen und die Werte für Datum & Uhrzeit auf dem Display anzeigen.
I2C Schnittstellen am Raspberry Pi Pico
Der Raspberry Pi Pico & Pico W haben mehrere I2C Schnittstellen, damit kannst du mehrere Displays betreiben (vorausgesetzt die Adressen sind verschieden).
Pinout des Raspberry PI Pico Das Bild enthält das Pinout des Raspberry Pi Pico dieser Mikrocontroller ist das Vorgängermodell des Pico W. Jedoch ist die Pinbelegung gleich, daher ist das Bild noch aktuell (Stand 29.05.2023).
Einrichten der I2C Schnittstelle in PicoMite
Bevor wir die I2C Schnittstelle an den gewünschten Pins verwenden können, müssen wir diese konfigurieren. In meinem Fall verwende ich ein I2C-Display mit dem Treiberchip SSD1306, dieser wird auch vom System unterstützt und kann mit dem nachfolgenden Befehl eingerichtet werden. OPTION LCDPANEL SSD1306I2C, , Für den Platzhalter "" setzt du den Wert für Hochform- oder Querformat. - Hochformat = L, - Querformat = P Mit dem optionalen Parameter offset kannst du dein I2C-Display ausrichten. Wenn du ein 0,96" OLED Display verwendest, dann ist dieser Parameter 0 (default, kann also entfallen). Solltest du jedoch ein 1,3" OLED Display verwenden, so musst du als Parameter 2 wählen. In meinem Fall nutze ich ein 1,3" OLED Display im Querformat und muss dann nachfolgenden Befehl eingeben: OPTION LCDPANEL SSD1306I2C, L, 2
Ausgeben von "Hello World!" auf dem I2C-Display
Starten wir zunächst recht einfach und geben die Textzeile "Hello World!" auf dem Display aus.
Der Basic Befehl für die Ausgabe von Text lautet "Text" und hat die Parameter: - Position , - Ausrichtung, - Schriftgröße, - Schriftfarbe, - Hintergrundfarbe Wenn wir nun den Befehl Text mit dem nachfolgenden Parameter eingeben, dann wird ein Text "Hello World!" an der Position X=10, Y=0 im Querformat angezeigt (siehe Grafik oben). Text 10, 0, "Hello World!", "L", 1, 1, RGB(WHITE), RGB(BLACK) Mein OLED Display kann nur Schwarz & Weiß anzeigen, daher setzte ich in meinem Fall mit RGB lediglich White & Black. Solltest du ein Farbiges OLED Display verwenden, so kannst du hier auch andere Werte setzen.
Anzeigen von Datum & Uhrzeit auf dem I2C-Display mit BASIC am Raspberry Pi Pico
Wie du eine RTC an den Raspberry Pi Pico anschließt und mit PicoMite ausliest, habe ich dir bereits im Beitrag Raspberry Pi Pico BASIC #6 – RealTimeClock programmieren erläutert. In diesem Abschnitt möchte ich dir jetzt gerne zeigen, wie du diese Werte auf einem OLED Display anzeigen lassen kannst. Im nachfolgenden YouTube-Video erläutere ich dir Schritt-für-Schritt, wie du die Schaltung aufbaust und das kleine Programm in Basic mit PicoMite programmierst. https://youtu.be/Nb_moX3GCbM
Ausblick
In der offiziellen Dokumentation zu PicoMite unter https://geoffg.net/Downloads/picomite/PicoMite_User_Manual.pdf findest du viele Weitere GUI Elemente (Dialoge, Buttons, Diagramme, etc.) welche du auf deinem Display mit wenigen Zeilen programmieren kannst. Im nächsten Beitrag möchte ich daher ein kleines Dashboard erzeugen, um dort Sensorwerte zu visualisieren, sei also gespannt ... Read the full article
0 notes
Text
ChatGPT - Sensordaten visualisieren
In diesem Beitrag möchte ich dir zeigen, wie du eine Python GUI von ChatGPT erzeugen lassen kannst, um Sensordaten zu visualisieren.
ChatGPT - Sensordaten visualisieren Im Beitrag Raspberry Pi Pico BASIC #6 – RealTimeClock programmieren habe ich dir eine kleine Schaltung am Raspberry Pi Pico gezeigt, wie du Sensordaten auf eine SD-Karte schreiben kannst. Die Daten werden dabei im CSV Format (getrennt durch ein Semikolon) gespeichert. In der ersten Spalte ist ein Zeitstempel und die zweite Spalte enthält den Sensorwert. 29-04-2023 18:10:26; 19.25 29-04-2023 18:10:27; 19.25 29-04-2023 18:10:28; 19.25 In einem neuen Chat Fenster von ChatGPT gebe ich nun die nachfolgende Anfrage an das System. Zusätzlich gebe ich noch die Sensordaten hinzu. Ich habe eine CSV Datei im Format: 29-04-2023 18:10:26; 19.25 29-04-2023 18:10:27; 19.25 29-04-2023 18:10:28; 19.25 29-04-2023 18:10:29; 19.25 Hier erkennt ChatGPT gleich korrekt, was ich plane und gibt mir ein kleines Pythonprogramm zum visualisieren dieser Daten. Was mir besonders gut gefällt ist, dass der Zeitstempel im korrekten Format erkannt wurde und dieser geparst wird. import csv from datetime import datetime import matplotlib.pyplot as plt timestamps = values = with open('beispiel.csv') as csvfile: reader = csv.reader(csvfile, delimiter=';') for row in reader: timestamp = datetime.strptime(row, '%d-%m-%Y %H:%M:%S') value = float(row) timestamps.append(timestamp) values.append(value) plt.plot(timestamps, values) plt.xlabel('Zeit') plt.ylabel('Werte') plt.show() Dieser Python Code erzeugt ein Liniendiagramm mit den Achsen Werte & Zeit.
generiertes Liniendiagramm von ChatGPT zum visualisieren von Sensordaten
Installieren der benötigten Bibliotheken
Damit das Programm ausgeführt werden kann, muss die Bibliothek matplotlib und das Modul pyplot installiert werden. Dazu führen wir den nachfolgenden Befehl auf der Konsole aus: pip install matplotlib Wenn du die Entwicklungsumgebung PyCharm verwendest, dann kannst du auch per Kontextmenü die fehlende Bibliothek installieren.
Die GUI bzw. das Fenster selber wird von der Bibliothek matplotlib bereitgestellt.
Kompletter Chatverlauf mit ChatGPT zum visualisieren von Sensordaten
Hier jetzt der gesamte Chatverlauf mit ChatGPT zu diesem Beitrag. ChatGPT_CSV_Daten_visualisierenHerunterladen Read the full article
0 notes
Text
Arduino MKR Zero
In diesem Beitrag möchte ich dir den Arduino MKR Zero vorstellen und zeigen, wie du diesen Mikrocontroller programmieren kannst.
Der Arduino MKR Zero ist der günstigste Mikrocontroller aus der Reihe der Arduino MKRs. Ein wichtiges Merkmal von diesem ist, dass der Mikrocontroller nicht über eine WiFi-Schnittstelle verfügt.
Bezug des Arduino MKR Zero
Den mir vorliegenden Mikrocontroller habe ich im offiziellen Shop von Arduino.cc für knapp 27 € zzgl. 6 € Versandkosten aus Italien per UPS erworben. Obwohl dieses Paket einmal quer durch Europa musste, hat die Lieferung nur 3 Tage gedauert. Lieferumfang Zum Lieferumfang gehörte neben dem Mikrocontroller, noch ein paar kleine Aufkleber und ein gefalteter Garantiezettel.
Technische Daten des Arduino MKR Zero
Auf dem Mikrocontroller ist ein Atmel ATSAMD21 verbaut, welcher nachfolgende technische Daten hat. MikrocontrollerSAMD21 Cortex®-M0+ 32bit low power ARM MCUUSB AnschlussMicro-USB (USB-B)Betriebsspannung5 V bis 5.5 VSpannung an GPIOs3.3 Vmax. Stromstärke an GPIOs7 mALiPo Batterie3.7 V, min. 700 mAh, JST PH AnschlussTaktgeschwindigkeit48 MHzSpeicher256 KB Flash, 32 KB SRAMPWM Pins13 (0-8, 10,12, A3, A4)externe Interrupts10 (0, 1, 4-9, A1, A2)SchnittstellenUART, I²C, SPIAbmaße (L x B x H)61,5 mm x 25 mm x 21 mmGewicht32 gTechnische Daten des Arduino MKR Zero
Features Der Mikrocontroller verfügt zusätzlich über: - einen SD-Kartenslot für Speicherkarten bis 16 GB, - einen JST PH Anschluss für LiPo 3.7 V LiPo Batterien, - eine LED für den Zustand ob der LiPo akku geladen wird, - einen separaten I²C Anschluss, - eine RTC mit 32.768 kHz, - eine Built-in LED
Aufbau & Pinout
Wie bei den Mikrocontrollern der originalen Arduino Familie üblich, sind auf den Buchsenleisten die Pins beschriftet, dieses macht die Arbeit mit diesen deutlich besser.
Auf der Seite Arduino MKR ZERO (I2S bus & SD for sound, music & digital audio data) im offiziellen Shop, findest du den schematischen Aufbau, sowie das Pinout.
Programmieren
Der Mikrocontroller lässt sich in der Arduino IDE sowie über Arduino CLI sowie über den Arduino Web Editor programmieren. Für die Einrichtung des Web Editors benötigst du ein zusätzliches Plugin, welches derzeit nur unter Google Chrome läuft. Verbinden des Mikrocontrollers mit dem PC Der Mikrocontroller wird über ein Micro-USB Datenkabel mit dem PC verbunden. Beim erstmaligen Anschluss wird dieser zunächst eingerichtet. Hier erhält man zwei Benachrichtigungen vom Windows System, einmal das der Mikrocontroller erkannt wurde und etwas später, wenn dieser fertig eingerichtet ist.
Im Geräte-Manager unter Windows 10 wird dieser einfach nur als "Serielles USB-Gerät" angezeigt.
Arduino MKR Zero im Gerätemanager von Windows 10 Programmieren über die Arduino IDE Wenn du meinen Blog bereits länger verfolgst, dann wirst du bereits gesehen haben, dass ich in den meisten Projekten die Arduino IDE verwende. Diese Anwendung hat den großen Vorteil, dass sehr viele Mikrocontroller unterstützt werden und wenn man Bibliotheken einbinden möchte oder muss dieses in wenigen Sekunden erledigt ist. Im Fall des Arduino MKR Zero wird dieser in der Arduino IDE 2.0 korrekt am COM34 erkannt.
Arduino MKR Zero in der Arduino IDE 2.0 Beispiel mit der RealTimeClock Hier nun ein Beispiel mit der internen RTC des Mikrocontrollers. Das boolsche Feld "setTime" wird beim ersten Upload auf true gesetzt, damit werden die Werte für das Datum & die Uhrzeit geschrieben. Wenn dieses erfolgt ist, dann wird beim zweiten Schreiben des Codes auf den Mikrocontroller wird diese Variable auf false gesetzt. #include //Objekt initialisieren RTCZero rtc; //Felder zum setzen der Uhrzeit const byte seconds = 0; const byte minutes = 42; const byte hours = 19; //Felder zum setzen des Datums const byte day = 9; const byte month = 2; const byte year = 23; bool setTime = false; void setup() { Serial.begin(9600); //initialisieren der RTC rtc.begin(); if (setTime) { // setzen der Uhrzeit rtc.setHours(hours); rtc.setMinutes(minutes); rtc.setSeconds(seconds); // setzen des Datums rtc.setDay(day); rtc.setMonth(month); rtc.setYear(year); } } void loop() { //lesen des Tages von der RTC print2digits(rtc.getDay()); Serial.print("."); //lesen des Monats von der RTC print2digits(rtc.getMonth()); Serial.print("."); //lesen des Jahres von der RTC print2digits(rtc.getYear()); Serial.print(" "); //lesen der Stunde von der RTC print2digits(rtc.getHours()); Serial.print(":"); //lesen der Minuten von der RTC print2digits(rtc.getMinutes()); Serial.print(":"); //lesen der Sekunden von der RTC print2digits(rtc.getSeconds()); //eine Pause von 500 ms. delay(500); //ein Zeilenumbruch vor der nächsten Ausgabe Serial.println(); } //schreib eine zweistellige Zahl auf //der seriellen Schnittstelle void print2digits(int number) { if (number < 10) { Serial.print(0); } Serial.print(number); } Wenn der obige Code auf den Mikrocontroller überspielt wurde, dann wird auf der seriellen Schnittstelle das Datum inkl. Uhrzeit ausgegeben.
Ausblick
Der Mikrocontroller wird auf der Shopseite mit dem Text "for sound, music & digital audio data" beworben, dieses möchte ich als nächstes nun testen und das Projekt aufbauen. Read the full article
0 notes
Photo
RTC DS3231 am Arduino UNO kompatiblen Microcontroller von Keyestudio. Morgen veröffentliche ich ein ausführliches Tutorial zur RealtimeClock DS3231. #rtcds3231 #rtc #realtimeclock #diy #tech #techy #technology #electronic #components #arduino #arduinoproject #arduinouno #keyestudio #DraegerIT (hier: Stefan Draeger Software) https://www.instagram.com/p/BzV_h-dImHa/?igshid=wtnz0x6lnbq
#rtcds3231#rtc#realtimeclock#diy#tech#techy#technology#electronic#components#arduino#arduinoproject#arduinouno#keyestudio#draegerit
0 notes