#Raspberry Pi Pico W Projekt
Explore tagged Tumblr posts
draegerit · 2 months ago
Text
Warum der Arduino trotz ESP32 & Co. nicht ausgedient hat
Tumblr media
„Arduino? Das nutzt doch heute keiner mehr…“ Wer sich in den letzten Jahren mit Mikrocontrollern beschäftigt hat, stolpert überall über den ESP32. Dual-Core, WLAN, Bluetooth, 240 MHz, massig Speicher – und das alles für ein paar Euro. Kein Wunder also, dass der gute alte Arduino UNO im Schatten der neuen Mikrocontroller-Generation zu stehen scheint. Die Kommentare in Foren und Social Media klingen dann auch oft so: „Warum noch einen Arduino benutzen, wenn es doch den ESP32 gibt?“ Aber ist das wirklich so? Hat der Arduino tatsächlich ausgedient? Oder gibt es gute Gründe, auch heute noch auf den betagten Klassiker zu setzen? Und vor allem: Wenn ich gerade erst einsteige – sollte ich dann überhaupt noch mit einem Arduino anfangen, oder direkt auf einen ESP32 setzen? Genau um diese Fragen geht es in diesem Beitrag. Und so viel sei schon mal verraten: Leistung ist nicht immer alles.
ESP32 – das moderne Powerpaket (aber nicht für alles nötig)
Wenn man sich heute in der Maker-Szene oder auf YouTube umschaut, könnte man fast glauben, es gäbe nur noch den ESP32. Und das ist auch gar nicht so abwegig: Der ESP32 bringt schon ab Werk eine ganze Menge beeindruckender Features mit, die früher nur mit viel zusätzlicher Hardware möglich waren. 🔥 Ein kurzer Blick auf die Highlights: - Dual-Core mit bis zu 240 MHz - WLAN und Bluetooth direkt integriert - Bis zu 520 kB RAM und mehrere Megabyte Flash - Viele GPIOs, PWM, ADC, DAC, I2C, SPI, CAN, Touch-Sensoren, … - Bereits ab ca. 3 € (je nach Ausführung und Händler)
Tumblr media
ESP32-S3-Matrix
Tumblr media
ESP32-C3 mit LiPo Batterie
Tumblr media
zwei Elecrow CrowPanels 2,4" & 5.0"
Tumblr media
Arduino Nano ESP32
Tumblr media
Generic-ESP32 Mikrocontroller
Tumblr media
ESP32-C3 Super Mini
Tumblr media
ESP32-S3-Zero Und dann wäre da noch ein echter Publikumsliebling: die ESP32-CAM.
Tumblr media
Vergleich ESP32-CAM und ESP32-S3 CAM
Tumblr media
ESP32-CAM mit externer Antenne und Board
Tumblr media
ESP32-CAM
Tumblr media
ESP32-CAM Modelle Für rund 5 € bekommt man hier nicht nur die Rechenpower des ESP32, sondern auch gleich eine kleine Kamera mit bis zu 5 Megapixeln dazu. Damit sind Projekte wie: - Überwachungskamera, - QR-Code-Scanner, - Fotos per E-Mail oder Telegram senden ganz einfach umsetzbar – ohne zusätzliche Hardware. Der Raspberry Pi Pico (RP2040) mischt kräftig mit – und bekommt Verstärkung Doch der ESP32 ist nicht allein auf dem Platz. Der Raspberry Pi Pico mit seinem RP2040 Dual-Core Cortex-M0+ Prozessor (133 MHz) hat sich schnell als leistungsfähige und günstige Alternative etabliert – und das in mehreren Varianten: BoardWLANBluetoothBesonderheitenRaspberry Pi Pico❌❌Basisversion, ohne FunkRaspberry Pi Pico W✅✅ (per Firmware)WLAN onboard, BT aktivierbarRP2350-Boards❌❌Mehr Power, keine Funkmodule (derzeit)
Tumblr media Tumblr media
RP2040:bit
Tumblr media
Melopero Cookie RP2040
Tumblr media
Sumolink Erhu RP240
Tumblr media
Mikrocontroller - XIAO RP2040 & Raspberry PI Pico
Tumblr media
Raspberry Pi Pico 2 - RP2350A
Tumblr media
XIAO RP2350 Mit dem neuen RP2350-Chip steht mittlerweile ein leistungsstärkerer Nachfolger in den Startlöchern. Er wird derzeit auf einigen neuen Boards verbaut (z. B. auf Prototypen oder Dev-Boards asiatischer Hersteller) und bringt: - Höhere Taktraten (bis 200 MHz möglich), - Verbesserte Peripherie, - Und bleibt trotzdem kompatibel zur RP2040-Familie. Was aktuell noch fehlt: WLAN und Bluetooth sind (noch) nicht integriert – was den Chip für reine IoT-Projekte (noch) weniger attraktiv macht, aber für USB-HID oder Highspeed-Sensoranwendungen interessant sein kann.
Arduino – Der Klassiker mit Kultstatus (und vielen Gesichtern)
Wenn man „Arduino“ sagt, denken viele sofort an das gute alte Original: Arduino UNO R3, Made in Italy, stabil, bewährt – aber auch nicht ganz billig. Und genau da beginnt der kleine Konflikt, den vermutlich viele kennen: ➡️ Das originale Board unterstützt die Plattform, die Entwicklung und das Open-Source-Projekt. ➡️ Aber: Der Preis liegt oft bei 20 € und mehr – während Clones für 2–3 € zu haben sind. Doch: Genau das ist eben auch der Spirit von Open Source. Die Arduino-Plattform wurde so entwickelt, dass jeder (mit Einhaltung gewisser Auflagen) eigene Boards bauen und verkaufen darf. Und das tun viele Hersteller – vor allem in Asien. Dabei gibt es längst nicht nur einfache UNO- oder Nano-Kopien. Die Vielfalt an Arduino-kompatiblen Boards ist inzwischen riesig: Board / CloneBesonderheitPreisbereichNano Clone (CH340G)Klassiker für einfache Projekte2–4 €Pro MiniOhne USB, super klein und sparsam2–4 €Nano mit integriertem OLEDAnzeige direkt am Mikrocontroller4–8 €Nano mit 2,4 GHz Funk (nRF24L01) oder 433 MHz ModulIdeal für Funkprojekte ohne WLAN5–10 €Nano mit ESP8266-Modul onboardWLAN-fähig, bleibt aber Arduino-kompatibel5–10 €Nano mit Bluetooth HC-05 oder HM-10Kabellose Kommunikation über BT Classic oder BLE5–10 €
Tumblr media
Arduino Nano mit nRF24L01 Erweiterungsboard
Tumblr media
Microcontroller BLE-Nano von Keywish
Tumblr media
Arduino UNO R3
Tumblr media Tumblr media
Arduino UNO R3 Clone von der Firma Sunfounder
Tumblr media Tumblr media Tumblr media Tumblr media
Arduino Nano V3 , ATmega328P
Tumblr media
Arduino Mega 2560 Pro mini
Tumblr media
Arduino Nano V3
Tumblr media Tumblr media
Seeeduino Nano Gerade diese Vielfalt an spezialisierten Clones und Abwandlungen ist ein echter Vorteil: Man wählt sich für sein Projekt genau die Features, die man braucht – und spart sich den Ballast von Funktionen, die gar nicht benötigt werden. ➡️ Keine WLAN-Probleme, wenn das Projekt gar kein WLAN braucht. ➡️ Keine Bluetooth-Komplexität, wenn ein simples Relais geschaltet werden soll. ➡️ Aber: Wenn ein Display gewünscht ist, einfach ein Clone mit integriertem OLED nehmen. Teures Original oder günstiger Clone? Das Original aus Italien unterstützt natürlich die Entwickler, die die Plattform erst möglich gemacht haben. Gerade wenn es um professionelle Projekte, Support oder Weiterentwicklung geht, ist das ein guter Grund, auch mal bewusst zum Original zu greifen. Wer dagegen einfach ein kleines Hobby-Projekt umsetzt oder ein günstiges Board für Lernzwecke sucht, wird vermutlich bei einem Clone aus Fernost landen – und das ist auch okay so. Beides hat seine Berechtigung. Im nächsten Abschnitt schauen wir uns an, warum diese Einfachheit und Flexibilität dem Arduino einen Platz auf dem Basteltisch gesichert haben – auch wenn ESP32, RP2040 & Co. daneben liegen. Clone statt Frust: Warum gerade Anfänger mit günstigen China-Boards besser fahren Seien wir ehrlich: Wer mit Mikrocontrollern anfängt, wird früher oder später mal einen Fehler machen. Ein Kabel verpolt, einen Pin aus Versehen kurzgeschlossen, eine Lötstelle zu heiß… ➡️ Passiert. Gehört zum Lernen einfach dazu. Wenn dann das teure Original-Board abraucht, ist der Frust groß – und das Projekt vielleicht erst mal gestorben. Anders sieht es aus, wenn das eingesetzte Board nur 2–3 € gekostet hat. Dann bestellt man sich einfach ein neues und weiter geht’s. Genau deshalb finde ich: ➡️ Gerade Anfänger sind mit einem günstigen Clone gut beraten. Das senkt die Hemmschwelle, etwas auszuprobieren, und macht es viel leichter, aus Fehlern zu lernen. Ob Arduino Nano Clone, Pro Mini oder einer der vielen China-Nachbauten mit Zusatzfeatures wie OLED oder Funk – hier kann man für kleines Geld experimentieren, lernen und Spaß haben. Und wenn das Projekt später stabil läuft und vielleicht sogar „ernsthaft“ eingesetzt werden soll, kann man immer noch überlegen, ob man auf ein höherwertiges Original umsteigt.
Wann ESP32, wann Arduino? – Entscheidungshilfe für Projekte
Natürlich ist es immer verlockend, einfach zum leistungsstärksten Mikrocontroller zu greifen. Aber genau das ist oft gar nicht nötig – und manchmal sogar umständlicher. Denn: Der beste Mikrocontroller ist der, der genau das kann, was dein Projekt braucht – nicht mehr und nicht weniger. Um dir die Wahl etwas leichter zu machen, hier eine kleine Entscheidungshilfe: ProjektideeEmpfehlungWarum?Blinkende LEDs, Relais steuern, Taster abfragenArduino UNO, Nano, Pro MiniEinfach, stabil, günstig, kein OverkillLCD/OLED-Anzeige mit Temperatur-/FeuchtesensorArduino oder PicoWLAN meist nicht nötig, einfache UmsetzungDaten per WLAN ins Netz (z. B. ThingSpeak, MQTT)ESP32, Pico WWLAN/BT bereits integriert, viele Beispiele vorhandenMobile Projekte mit Akku und langer LaufzeitPro Mini (mit LowPower-Mod) oder ESP32 mit Deep SleepStromsparend, je nach FunkbedarfKamera-Projekte (Foto/Video-Streaming)ESP32-CAMKamera onboard, einfache EinbindungUSB-Tastatur-Emulation, MacroPads, HID-GeräteArduino Leonardo / Micro oder Raspberry Pi Pico (RP2040)Beide unterstützen native USB-HIDFunkprojekte ohne WLAN (z. B. 433 MHz, nRF24L01)Arduino Nano Clone mit FunkmodulKein unnötiges WLAN, einfache FunkanbindungEchtzeitkritische Anwendungen mit viel GPIO und TimingRP2040 oder RP2350Schnelles Realtime-Processing dank PIO, viele GPIOs 💡 Zusatz-Tipp: Für USB-Tastatur-Emulation (z. B. MacroPads oder automatisierte Eingaben) ist der Arduino Leonardo eine super Wahl, weil er den ATmega32u4 verwendet, der USB nativ unterstützt. Alternativ funktioniert das auch mit dem Arduino Micro oder dem Raspberry Pi Pico (RP2040), dort oft über die TinyUSB-Bibliothek.
Tumblr media
Keyestudio Leonardo
Tumblr media
Arduino Leonardo Clone
Tumblr media
Mini RP2040 Developmentboard
Fazit: Alt, aber alles andere als nutzlos!
Ja, der ESP32 ist ein echtes Powerpaket. Ja, der Raspberry Pi Pico (RP2040) mischt kräftig mit und hat auch seinen Platz auf dem Basteltisch. Und ja – es gibt mittlerweile zig Alternativen mit WLAN, Bluetooth, Kamera, HID und noch viel mehr. Aber: Gerade das macht den guten alten Arduino so sympathisch: Er will gar nicht alles können – sondern einfach das, was man für viele kleine bis mittlere Projekte wirklich braucht. Ein Relais schalten? Ein paar LEDs blinken lassen? Einen Sensor auslesen und auf dem Display anzeigen? ➡️ Warum dafür einen Dual-Core mit WLAN bemühen, wenn es ein Nano für 3 € auch tut? Und genau das ist der Punkt: 🔹 Der Arduino ist einfach. 🔹 Er ist stabil. 🔹 Er hat eine riesige Community und viele erprobte Bibliotheken. 🔹 Er eignet sich perfekt zum Lernen – und bleibt auch danach oft die pragmatische Wahl. Gerade Anfänger profitieren enorm davon, sich nicht direkt mit komplexen Themen wie WiFi-Stack, Sleep-Modes oder USB-Treiberherausforderungen herumschlagen zu müssen. Und: Auch fortgeschrittene Bastler greifen gerne zum „alten Bekannten“, wenn es mal schnell, unkompliziert und robust sein soll. Mein Fazit: Der Arduino hat seinen festen Platz – auch im Jahr 2025. Nicht überall, aber da, wo „Keep it simple“ gefragt ist, ist er oft genau die richtige Wahl. ➡️ ESP32, RP2040 & Co. sind keine Gegner – sie sind Mitspieler im Team der Mikrocontroller. Die Kunst ist es, je nach Projekt den passenden Baustein auszuwählen. Jetzt bist du dran! Arbeitest du noch mit dem Arduino? Oder hast du komplett auf ESP32, RP2040 & Co. umgestellt? Welche Projekte hast du schon umgesetzt – und welcher Mikrocontroller war dafür die beste Wahl? 👉 Schreib es mir gerne in die Kommentare – ich freue mich auf den Austausch! Read the full article
0 notes
uwteam · 3 months ago
Text
28 marca 2025
Tumblr media
◢ #unknownews ◣
Zapraszam do lektury dzisiejszego zestawienia.
Dziś po ponad 2 latach przerwy rusza sprzedaż szkolenia ze scrapowania danych organizowanego przez "Informatyka Zakładowego". Rzuć okiem na agendę i przykładową lekcję. Koniecznie zobacz też bardzo nietypową cenę szkolenia.
1) Domowe studio nagraniowe i biuro w jednym – jak to zorganizować? https://michael.team/office25/ INFO: Szef firmy Nozbe, "od zawsze" pracujący zdalnie, z domu, prezentuje swoje biuro i studio nagraniowe w jednym. Jak zorganizował swoje stanowisko pracy, oświetlenie, setup do wideokonferencji itp. Sporo drobnych, ale i inspirujących usprawnień, które mogą ułatwić Ci życie, jeśli także pracujesz z domu. Warto podążać za linkami do kolejnych artykułów, ponieważ rozbudowują one niektóre ze wspomnianych tematów (np. dokładniejszy opis setupu do nagrań wideo czy podcastów).
2) Stacja pogodowa IoT oparta na Raspberry Pi Pico (film, 17 min) https://www.youtube.com/watch?v=swiEMNu57ig INFO: Autor zbudował własną stację pogodową, wykorzystując wspomniany mikrokontroler, różne czujniki oraz elementy wydrukowane na drukarce 3D. Dane pogodowe są przesyłane do internetu i wizualizowane na stronie WWW. Film pokazuje proces budowy, wybór podzespołów oraz wyzwania związane z takim projektem. Jeśli interesują Cię projekty 'zrób to sam', to warto także rzucić okiem na inne filmy na kanale.
3) 5 najtrudniejszych typów pracowników i jak sobie z nimi radzić https://newsletter.canopy.is/p/the-5-most-difficult-employees-and INFO: Jeśli jesteś menadżerem, to wcześniej czy później spotkasz się z wyjątkowo trudnymi pracownikami, którzy mogą być niemałym wyzwaniem dla Ciebie i dla całego zespołu. Autorka tego wpisu opisuje pięć typowych archetypów trudnych pracowników, takich jak 'kulturowy filar' opierający się zmianom czy 'pasożytniczy geniusz', który osiąga świetne wyniki kosztem relacji w zespole. W artykule znajdziesz konkretne porady, które pomagają skutecznie zarządzać takimi osobami, minimalizując ich negatywny wpływ na firmę i pomagając im lepiej funkcjonować w organizacji.
4) Jak Google podchodzi do inżynierii oprogramowania – kluczowe zasady i praktyki https://addyo.substack.com/p/applied-software-engineering-at-google INFO: Google dostosowało swoje praktyki inżynieryjne do pracy na ogromną skalę, ale wiele z nich można dostosować do potrzeb dowolnej organizacji. Artykuł przedstawia najważniejsze zasady opisane w książce "Software Engineering at Google", takie jak kultura testowania, skuteczna weryfikacja kodu, dokumentacja techniczna, dzielenie się wiedzą, zarządzanie zależnościami czy zasady wdrażania zmian. To nie poradnik kopiowania Google, ale przewodnik po tym, dlaczego ich metody działają i jak można je dostosować do własnych potrzeb. W pierwszym akapicie znajdziesz link do pełnej (darmowej) wersji książki, na której bazuje ten wpis.
5) Kupuj produkty od europejskich firm — katalog i wyszukiwarka https://www.goeuropean.org/ INFO: Masz ochotę korzystać z aplikacji XYZ, ale niestety zbudowana jest ona w USA i nie za bardzo spełnia unijne regulacje, których wymaga Twoja firma. Użyj wyszukiwarki na tej stronie i zdefiniuj, czego potrzebujesz, a szybko dowiesz się, czy istnieje jakiś europejski odpowiednik tego, czego szukasz. Z ciekawości możesz kliknąć opcję "Digital" i ustawić kraj pochodzenia produktu na "Poland". Być może poznasz w ten sposób kilka ciekawych produktów (jest tam Albicla!).
6) Sztuczne światło słoneczne z LED-ów? - projekt DIY https://victorpoughon.fr/i-tried-making-artificial-sunlight-at-home/ INFO: Autor projektuje i buduje własną wersję domowego źródła światła imitującego słońce, opierając ją nie na dużym reflektorze parabolicznym, a na siatce małych soczewek i LED-ów wysokiej jakości. Ciekawe i użyteczne np. w świecie fotografii rozwiązanie. Może zainteresować majsterkowiczów i fanów elektroniki.
7) Szkolenie z automatyzacji pobierania danych z internetu [sponsorowane] https://www.scrapowanie.pl/ INFO: Poznaj sposoby na efektywne scrapowanie danych z sieci, najczęstsze problemy występujące podczas parsowania plików oraz metody wykrywania wąskich gardeł spowalniających przetwarzanie danych. W skład szkolenia wchodzi opis użycia kilkudziesięciu przydatnych narzędzi oraz zapis rozmowy z prawnikiem o legalności scrapowania. Szkolenie jest dla Ciebie, jeśli jesteś programistą odpowiedzialnym za automatyzację procesu przetwarzania danych, analitykiem znużonym regularnym pobieraniem i ręczną obróbką plików albo ekonomistą agregującym raporty z różnych źródeł.
8) Skąd biorą się nazwy grup APT? Przegląd systemów nazewnictwa https://blog.cyberalerts.io/coming-soon/ INFO: Czy grupy przestępcze, takie jak Lazarus, Fancy Bear czy APT42, zanim zaczną okradać ludzi online, organizują spotkanie i debatują, jak się mają nazywać? Niekoniecznie ;) Za nazwy takich grup odpowiadają różne firmy zajmujące się analizą zagrożeń — każda z nich stosuje własne konwencje, przez co ta sama grupa może mieć nawet kilkanaście różnych pseudonimów. W artykule prześledzono przykłady nazw przypisanych słynnej grupie Lazarus oraz opisano systemy nazewnictwa stosowane m.in. przez CrowdStrike (zwierzęta), Mandiant (APT+numer, UNC) czy Microsoft (pogoda i kolor).
9) Content-visibility: auto – klucz do szybszego renderowania stron? https://cekrem.github.io/posts/content-visibility-auto-performance/ INFO: Wspomniana właściwość pozwala przeglądarce pomijać renderowanie elementów niewidocznych w widoku użytkownika, co znacząco poprawia szybkość działania i renderowania strony. Dzięki temu rozwiązaniu można łatwo optymalizować długie listy, tabele czy interfejsy o dużej liczbie elementów, minimalizując jednocześnie przesunięcia układu poprzez użycie właściwości contain-intrinsic-size. Funkcja ta jest bardzo dobrze wspierana w każdej nowoczesnej przeglądarce (pomińmy mały bug na Safari, bo ono zawsze jest dziwne), więc może warto jej się dokładniej przyjrzeć i zacząć z niej korzystać?
10) Jak działają benchmarki LLM i co naprawdę sprawdzają? (film, 18m) https://www.youtube.com/watch?v=nHlYp5llKFc INFO: Benchmarki AI stały się kluczowym narzędziem do oceny dużych modeli językowych. W tym filmie omówiono najważniejsze z nich: GLUE, SuperGLUE, MMLU, GPQA, TAU-Bench oraz SWE Bench Verified. Jakie zadania sprawdzają, na czym polegają różnice między nimi i dlaczego niektóre modele osiągają wysoki wynik tylko na papierze? Niektóre z testów są naprawdę ciekawe. Rzuć okiem.
11) AI jako członek zespołu? – eksperyment w Procter & Gamble https://www.oneusefulthing.org/p/the-cybernetic-teammate INFO: Czy sztuczna inteligencja może skutecznie zastąpić ludzkiego współpracownika w pracy zespołowej? Eksperyment przeprowadzony na 776 profesjonalistach we wspomnianej firmie pokazuje, że AI może nie tylko wyrównać poziom wyników między indywidualnymi pracownikami, ale także zmniejszyć granicę specjalizacji wiedzy. Co ciekawe, wyniki sugerują, że AI nie jest tylko narzędziem zwiększającym produktywność, ale może też pełnić funkcję wspierającego członka zespołu, wpływając przy tym na te bardziej miękkie aspekty współpracy w zespole.
12) GPT-4o zyskał nowy generator obrazów — jest zaskakująco dobry https://openai.com/index/introducing-4o-image-generation/ INFO: Do tej pory ChatGPT, chcąc wygenerować grafikę, posługiwał się modelem DALL-E, który (mówiąc bardzo delikatnie) mocno odbiegał od standardów rynkowych wśród generatorów grafiki. Obecnie model ma możliwość nie tylko tworzenia nowych grafik, ale także przerabiania tych już istniejących i, co ciekawe, robi to naprawdę dobrze. Nowe możliwości nie są jeszcze oficjalnie dostępne przez API, ale użytkownicy interfejsu webowego mogą już z tej funkcji korzystać.
13) GPSTracker - alternatywa open-source dla historii lokalizacji Google Maps https://blog.fabiomanganiello.com/article/gpstracker-a-self-hosted-alternative-to-google-maps-timeline INFO: Śledzenie lokalizacji w Google Maps to bardzo wygodna funkcja, jednak niekoniecznie wspiera ona Twoją prywatność. Twoja codzienna lokalizacja wysyłana jest na serwery zewnętrznej firmy, co może nie być Ci na rękę. Jak w takim razie korzystać z podobnej funkcjonalności, ale w wersji self-hosted? GPSTracker to narzędzie pozwalające na zapis i analizę historii lokalizacji na Twoim serwerze. W artykule znajdziesz pełen opis techniczny tego rozwiązania.
14) Jak w 1995 roku tworzono strony internetowe na GeoCities https://cybercultural.com/p/geocities-1995/ INFO: GeoCities, wcześniej znane jako Beverly Hills Internet, zrewolucjonizowało webdesign lat 90., ułatwiając zwykłym użytkownikom tworzenie własnych stron WWW. Dzięki podziałowi na tematyczne "cyber miasta" i prostemu generatorowi stron serwis umożliwiał masowe tworzenie treści w sieci, przyciągając tysiące użytkowników. Pomimo technicznych ograniczeń i dość szablonowego wyglądu, GeoCities zdobyło serca użytkowników i stało się nieodłącznym elementem historii internetu. Artykuł dla wielbicieli nostalgicznych technologii.
15) Jak Discord przyspieszył swoją aplikację mobilną na Androidzie https://discord.com/blog/supercharging-discord-mobile-our-journey-to-a-faster-app? INFO: Discord przeszedł na React Native dla wersji androidowej, co początkowo wiązało się z wyzwaniami wydajnościowymi, ale dzięki optymalizacjom udało się znacząco skrócić czas uruchamiania aplikacji i poprawić płynność działania interfejsu. Co konkretnie zmienili i z jakimi wyzwaniami wydajnościowymi spotkali się programiści, tego dowiesz się z artykułu. Użyteczne, jeśli tworzysz oprogramowanie na Androida.
16) Czym są błędy i tolerancja błędów w systemach rozproszonych? https://newsletter.scalablethread.com/p/understanding-faults-and-fault-tolerance INFO: Systemy rozproszone muszą radzić sobie z różnymi typami awarii, takimi jak błędy sprzętowe, sieciowe czy ludzkie. Aby zapewnić niezawodność, stosuje się techniki takie jak replikacja aktywna i pasywna, wykrywanie błędów poprzez heartbeaty czy strategie odzyskiwania, np. checkpointing i circuit breakers. Artykuł wyjaśnia, jak działają wspomniane mechanizmy i dlaczego są tak ważne dla zapewnienia ciągłości działania systemu.
17) Docker Hub wprowadza limity pulli – co to oznacza dla GitLab CI/CD? https://about.gitlab.com/blog/2025/03/24/prepare-now-docker-hub-rate-limits-will-impact-gitlab-ci-cd/ INFO: Docker Hub już 1 kwietnia zacznie egzekwować długo zapowiadane limity dla operacji PULL. Jeśli wykorzystujesz GitLaba do automatyzacji CI/CD, to istnieje ogromna szansa, że Twój pipeline przestanie działać. Z artykułu dowiesz się, co możesz zrobić, aby niskim (lub zerowym) kosztem sprawić, aby Twoje automatyzacje nadal działały tak jak dotychczas.
18) GPTBot skanuje internet? – jak OpenAI wpływa na przyszłość wyszukiwania https://dadalo.pl/tech/gptbot-skanuje-internet-zmiana-konsumpcji-tresci-przyszlosc-wyszukiwania/ INFO: OpenAI intensyfikuje indeksowanie sieci za pomocą swojego bota. Szykuje się jakaś większa zmiana? Analiza logów serwerowych pokazuje, że boty OpenAI koncentrują się na stronach WordPress i innych popularnych platformach, a ich celem może być implementacja bezpośredniego cytowania źródeł w odpowiedziach ChatGPT. W artykule znajdziesz między innymi porady dotyczące zarządzania dostępem do swojej strony oraz przewidywania dotyczące wpływu AI na przyszłość SEO.
19) Przydatne wzorce projektowe w PostgreSQL, które ułatwiają życie https://mccue.dev/pages/3-11-25-life-altering-postgresql-patterns?= INFO: Zbiór praktycznych wzorców i dobrych praktyk w PostgreSQL, które mogą znacząco poprawić jakość pracy z bazą danych. Autor omawia m.in. zastosowanie UUID jako kluczy głównych, wykorzystywanie pól timestamp do śledzenia zmian w rekordach, użycie przestrzeni nazw (schemas), a także wzorzec soft delete oraz przechowywanie statusów w formie logów. Każde z tych rozwiązań może z pozoru wydawać się drobne, ale ich zbiorcze zastosowanie w projekcie może dać zauważalne korzyści.
20) GPT-5 — co wiemy o nowym modelu OpenAI https://www.chatbase.co/blog/gpt-5 INFO: Nowy model ma przynieść znaczące ulepszenia w zakresie rozumowania, multimodalności (tekst, obraz, audio, wideo) oraz personalizacji, choć nie będzie to jeszcze poziom AGI. Według przewidywań jego premiera odbędzie się już w tym roku. Artykuł jest z lutego tego roku, więc niektóre z przewidywań (np. publikacja GPT-4.5) mamy już za sobą.
21) Nie używaj fałszywych pogrubień i kursywy w social mediach https://adrianroselli.com/2025/03/dont-use-fake-bold-or-italic-in-social-media.html INFO: Większość sieci społecznościowych nie posiada natywnego wsparcia dla formatowania tekstu, ale istnieją serwisy, które takie wsparcie mogą niejako dodać. Tak naprawdę zmieniają one klasyczne znaki na symbole Unicode, które te znaki przypominają. Problem w tym, że dla ludzkiego oka różnica jest niewielka (po prostu tekst jest grubszy lub pochylony), ale z punktu widzenia semantycznego to jest już zupełnie inny tekst. Utrudnia to wyszukiwanie informacji, zmniejsza zasięg wpisów w social mediach, ale dochodzi do tego jeszcze jeden aspekt, o którym nie myśli się za często. Mowa o dostępności takich wpisów dla osób z ograniczeniami wzroku, które przy codziennej pracy posługują się czytnikami ekranu. Zobacz (a właściwie to "posłuchaj"), jak tak sformatowane wpisy odczytywane są przez automaty.
22) Programowalny zasilacz na USB-C? - tak, to możliwe! (film, 12m) https://www.youtube.com/watch?v=kcmpGbR6xZc INFO: USB-C potrafi więcej, niż się wydaje. Standard PPS (Programmable Power Supply) pozwala na precyzyjne sterowanie napięciem i natężeniem prądu, zmieniając zwykłą ładowarkę USB-C w regulowane źródło zasilania. Film wyjaśnia, jak to działa, jakie układy scalone to umożliwiają oraz jak używać gotowych płytek do testowania tej technologii. Jest też ciekawy test wykorzystania PPS do ładowania akumulatora LiPo i porównanie z klasycznym zasilaniem USB-PD. Świetny materiał dla majsterkowiczów.
23) Unia Europejska zakazuje wybranych systemów sztucznej inteligencji https://homodigital.pl/zakazane-systemy-ai-sztucznej-inteligencji-ai-act/ INFO: AI Act klasyfikuje systemy sztucznej inteligencji według poziomu ryzyka i zakazuje tych, które potencjalnie mogą prowadzić do dyskryminacji, naruszeń prywatności lub manipulacji społeczeństwem. Co znajduje się na liście zakazanych przypadków użyć sztucznej inteligencji? Tego dowiesz się z artykułu.
24) Colormaxxing – jak uzyskać najintensywniejsze kolory w przeglądarce https://karuna.dev/colormaxxing/ INFO: Czy #ff0000 to naprawdę najintensywniejszy czerwony, jaki możesz zobaczyć na ekranie? Okazuje się, że nie – w przestrzeniach kolorów takich jak Display-P3 czy Rec. 2020 można uzyskać jeszcze bardziej nasycone barwy, których nie da się odwzorować w standardowym sRGB. Artykuł wyjaśnia, jak skorzystać z nowych przestrzeni kolorów w CSS oraz pokazuje różnice między klasycznymi a tymi "podkręconymi" kolorami.
25) Jak UE walczy z dezinformacją online? - FIMI i regulacje unijne (film, 30m) https://www.youtube.com/watch?v=juVnhEu3RbQ INFO: Unia Europejska stara się wypracować standardy walki z dezinformacją i manipulacją online. Czym jest FIMI (Foreign Information Manipulation and Interference) i jakie narzędzia mają pomóc w walce z propagandą? Temat jest ważny, ale także mocno kontrowersyjny. Jeśli jesteś skrajnym eurosceptykiem, warto omijać nagranie szerokim łukiem.
26) Fancy Components - kolekcja gotowych komponentów i mikrointerakcji dla Reacta https://www.fancycomponents.dev/ INFO: Biblioteka oferuje zestaw gotowych do użycia komponentów oraz mikrointerakcji, które mogą wzbogacić interfejs Twojej aplikacji. W dokumentacji znajdziesz przykłady tego, co możesz osiągnąć z tekstem, obrazami i innymi elementami. Całkiem interesująco wygląda np. silnik fizyczny (np. grawitacja), który możesz podpiąć do elementów na stronie.
27) Eksperymentowanie na stronie z document.designMode https://smashingmagazine.com/2025/03/previewing-content-changes-work-documentdesignmode/ INFO: Ta funkcja przeglądarki nie jest szczególnie popularna wśród programistów, jednak może ona w prosty sposób przyspieszyć wizualne eksperymenty na stronie. Chcesz np. wiedzieć, który tytuł będzie lepiej wyglądał, albo jak podzielić tekst artykułu, albo chcesz zrobić prostą makietę, która będzie symulować wypełnienie strony treścią. Wszystko to możesz osiągnąć bez modyfikacji kodu strony. Z artykułu dowiesz się, w jaki sposób możesz wykorzystać "design mode" w codziennej pracy. Być może jako programista nie skorzystasz z tego bardzo, ale możesz nauczyć swoich mniej technicznych współpracowników, jak to wykorzystać na swoją korzyść.
28) Optymalizacja aplikacji Next.js – praktyczny przewodnik https://medium.com/@ignatovich.dm/optimizing-next-js-applications-a-concise-guide-a8167dfc8271 INFO: Artykuł przedstawia zestaw sprawdzonych technik optymalizacji aplikacji Next.js, skupiając się na zmniejszeniu rozmiaru paczek, optymalizacji obrazów, usprawnieniu metod pobierania danych i zarządzania stanem. To praktyczny przewodnik dla każdego, kto chce przyspieszyć swoją aplikację i poprawić jej wyniki w Core Web Vitals. Same konkrety.
29) FBI ostrzega przed fałszywymi konwerterami plików – mogą infekować malware https://www.bleepingcomputer.com/news/security/fbi-warnings-are-true-fake-file-converters-do-push-malware/ INFO: Chcesz zamienić np. plik PDF na dokument Worda? No to masz problem, bo przypadkiem możesz natrafić na stronę, która zainfekuje Cię złośliwym oprogramowaniem. Oszuści tworzą strony imitujące legalne usługi do konwersji plików, ale zamiast przekonwertowanego dokumentu otrzymujesz z nich instalator malware.
30) osgint - narzędzie OSINT do wyszukiwania informacji o użytkownikach GitHuba https://github.com/hippiiee/osgint INFO: Prosta aplikacja do pobierania informacji o użytkownikach GitHuba na podstawie nazwy użytkownika lub adresu e-mail. Pozwala uzyskać dane takie jak ID konta, datę utworzenia, liczbę publicznych repozytoriów i gistów, a także ewentualne klucze GPG i SSH. Analizuje publiczne commit'y oraz dane z API GitHuba, aby maksymalnie zwiększyć skuteczność wyszukiwania.
31) Przydatne elementy HTML, które warto znać https://harrisonbroadbent.com/blog/cool-native-html-elements/ INFO: To kolejna porcja ciekawych, natywnych tagów z HTML, które pozwolą Ci uniknąć zbędnych zależności w JavaScript i CSS. Jak projektować okna modalne, akordeony, suwaki z podglądem wartości, paski postępu, itp. To wszystko można osiągnąć w czystym HTML-u.
== LINKI TYLKO DLA PATRONÓW ==
32) Jak hakować AWS - testy penetracyjne chmury dla pentesterów (film, 35m) https://uw7.org/un_b6b35a67ba79c INFO: Poziom złożoności usług na platformie AWS jest imponujący, co otwiera drzwi na nowe wektory ataków, które mogą wykorzystać agresorzy. Z tego krótkiego nagrania dowiesz się, na co warto zwrócić uwagę przy testowaniu zabezpieczeń swojego środowiska i jakich technik obecnie używają atakujący.
33) rozwiązanie pierwszych poziomów w Natas z OverTheWire https://uw7.org/un_064c583eaaee2 INFO: Opis przejścia przez pierwsze pięć poziomów w wyzwaniu Natas na platformie OverTheWire. Seria zadań dotyczących bezpieczeństwa po stronie serwera. Autor omawia wykorzystanie takich technik jak analiza źródła strony, manipulacja nagłówkami HTTP (m.in. Referer), przeszukiwanie struktur katalogów oraz plików konfiguracyjnych, a także użycie Burpa do przechwytywania zapytań. Dobre wprowadzenie do podstaw web security w praktyce, z cennymi wskazówkami nawet dla początkujących.
1 note · View note
techcree · 2 years ago
Text
@Pimoroni LED Matrix Galactic Unicorn
Tumblr media
Dieses Teil is sooooo coooool! Das Galactic Unicorn LED Panel von Pimoroni mit Raspi Pico W bringt richtig Freude. Ich musste es unbedingt haben. Und jetzt ist es da!
Wenn Du ein Computer Freak bist oder ein Art Computer Nerd, dann kommst Du sowieso nicht daran vorbei. Mit! Und ja, das Teil musste ich unbedingt haben. Aber auch "normalen Leuten" dürften ziemlich viel Spaß machen. Und ja ich hatte wohl lange nicht mehr soviel Spaß an einem derartigen elektronischen Spielzeug. Nicht allein aber gerade weil man es mit Micropython programmieren kann, ist es ein Hit. Jetzt war es wieder lieferbar und ich habe mir gleich eines bestellt! Ob es derzeit noch lieferbar ist? Ja, das dürfte son eine Sache sein. Im Zweifel muss man sich halt mit einer Benachrichtigungs-eMail informieren lassen und dann aber gleich zuschlagen.
Hinweis: Dieser Beitrag enthält unbezahlte und kostenlose Produktwerbung!
Das dieses LED Panel/Display bereits gleich zu Beginn schnell ausverkauft war, zeigt ja schon, dass die Bastelgemeinde es angenommen hatte. Leider war ich gleich zur Markteinführung nicht schnell genug, es war ausverkauft und ich musste mich gedulden. Nicht meine Stärke, was ich gerne zugebe: Jedenfalls vorübergehend war es nicht zu bekommen und dann streikte auch noch die Post in Großbritanien. LOL. Bei diesem Display sind nicht nur 53x11 mehrfarbige LED's verbaut, die sich einzeln ansteuern lassen, sondern auch ein Raspberry Pi Pico W ist direkt auf dem Board angebracht. Das macht es besonders. Es ist für den Pico W optimiert und kann sich durch dessen WLAN Modul bspw. auch mal die Uhrzeit aus dem web holen oder was auch immer. Eine WLAN Verbindung erlaubt uns ja soviel mehr zu realisieren.
Tumblr media
Wie ihr erkennen könnt habe ich mir das Teil unterhalb meines Monitors plaziert. Da Micropython über die main.py Datei direkt loslegt startet das Dispaly automatisch sobald ich meinen Computer eingeschaltet habe. Und ja ich nutze ein Chromebook und damit funzt es auch. Zur Programmierung verwende ich die Linux Version der Thonny IDE. Aber zurück zum Galactic Unicorn. So befindet sich auf dem Galactic Unicorn alles was man in der Regel so benötigt, um direkt loszulegen. Das Display wird für meinen Geschmack in einem sehr hochwertig wirkenden schwarzen bzw. dunkelblauen Karton geliefert und Im Lieferumfang sind neben dem Display selbst zwei kleine Metallstäbe, die sehr nützlich sind um das Display auf dem Tisch aufzustellen. Ein passendes USB.Kabel ist noch dabei und mehr braucht es erstmal nicht.
Tumblr media Tumblr media
Nun aufgemerkt Ihr Pixel, RGB und LED Fans. Klar, es gibt andere Lösungen, doch dazu später mehr. Erstmal noch angemerkt, dass ihr alle Spzifikationen natürlich auf der Website von Pimoroni.com findet. Aber um loszulegen, reicht es schon das Display über das USB Kabel mit Strom zu versorgen und der Spaß beginnt, denn es ist bereits alles vorinstalliert.
Hier nur ein paar Dinge, die mir wichtig erscheinen. Erstmal der Raspberry Pi Pico W ist "Aboard", also dabei und vormontiert. Löten musst du also da nicht mehr. Der RP2040 auf dem Pico und Dual Arm Cortex M0+ mit bis zu 133Mhz und 264kB SRAM sind damit gesetzt. Zum Programmieren und Betrieb reicht damit ein USB micro-B Datenkabel. Auch wichtig ist die 2.4GHz Wireless Unterstützung.
Mit 583 RGB LEDs lässt sich bereits einiges anstellen. Diese sind auf einem 53 x 11 Grid angeordenet. Dabei handelt es sich um 3.5mm LEDs und 6mm LED Zwischenraum, was super für tolle optische Effekte ist. Zudem hat das Galactic Unicorn 9 Buttons und einen Reset Button! Auch ein Anschluss für einen Lautsprecher und ein kleiner Lautsprecher ist auch schon verbaut. Ferner verfügt das Board über die Möglichkeit noch einen Akku oder ein Baterrie-Set anzuschließen. Die Nummerieung der 583 LED ist von links nach rechts und oben nach unten angeordnet (y0/x0). Die Helligkeit lässt sich einstellen.
Tumblr media Tumblr media
ööö
Tumblr media
Übrigens zum Thema Farbenwünsche? In den meißten hier verwendeten Scripts werden RGB Codes verwendet. So ziemlich jede Farbe lässt sich damit darstellen. Welche Farbe hat welchen RGB-Code? Dazu schau einfach mal auf diese Website ooder googles es einfach: http://www.javascripter.net/faq/rgbtohex.htm hat auch eine Liste aller Farben mit den entsprechenden Codes, siehe nachfolgendes Bild:
Tumblr media
Warum das Galactic Unicorn so genial ist, zeigen uns die Alternativen. Dabei geht es letztlich darum, ob Du dazu beispielsweise einen Raspberry Pi, einen Pi Zero W2 oder einen Pico verwenden möchtest. Und hier kommt es auf die Kosten an, denn ein Pico/Pico W ist da vergleichsweise super günstig. Etwas Vergleichbares wäre das Interstate 75 W von Pimoroni.com (wenn wir den Pico W einsetzen wollen). Das Interstate ist ein RGB LED Matrix Driver, der mit zahlreichen LED Panels funktioniert, welche über die passenden Anschlüsse verfügen. Vorteil ist dann zwar mehr LED und ggf. auch das Zusammenschließen von mehreren LED Matrix Einheiten. Dann wird es aber auch etwas komplizierter.
Tumblr media
Das Galactic Unicorn LED Panel ist dagegen "plug and play" und kostet aktuell 47,44 Euro zzgl. Versandkosten. Das Pimoroni Interstate 75 W liegt derzeit bei 18,69 Euro zzgl. Versandkosten und ein LED Matrix Panale mit 64x64, kann man ab ca. 35 Euro bekommen. Die meißten dieser Panels sind aber in der regel etwas teurer. Auch Pimoroni bietet zahlreiche Lösungen dieser Art in unterschiedlichsten Größen an. Letztlich müsst ihr dann schauen wo ihr was und zu welchem Preis bekommen könn und für was ihr es einsetzen möchtet. Zudem kommt noch hinzu, das ich aktuell die Lieferbarkeiten kaum überschauen kann.
Tumblr media Tumblr media
Wenn Du Dir gerade das kleine Video anschaust, dann sag mal ehrlich - ist das nicht geil. Sorry, aber ich finde da kaum Worte vor Begeisterung! Auf pimoroni.com findest du übrigens auch Links zu Beispiel-Code, welcher auf GitHub bereitgestellt wurde.
0 notes
draegerit · 1 year ago
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 · 2 years ago
Text
Kreative Experimente mit dem Raspberry Pi Pico Inventors Kit
Tumblr media
In diesem Beitrag möchte ich dir das Inventors Kit für den Raspberry Pi Pico von der Firma Elecfreaks vorstellen. Das Set beinhaltet fast alles (leider nicht den Mikrocontroller), was du zum sofortigen Starten deiner Entwicklung mit dem Raspberry Pi Pico benötigst.
Tumblr media
Disclaimer: Dieser Beitrag über das "Raspberry Pi Pico Inventors Kit" wurde von mir verfasst, nachdem ich auf das Set aufmerksam wurde. Ich möchte darauf hinweisen, dass ich das Set von der Firma Elecfreaks gesponsert erhalten habe. Diese Entscheidung beruhte auf meiner eigenen Initiative, nachdem ich auf das Produkt durch TikTok aufmerksam geworden bin. Mein Ziel ist es, meine ehrliche Meinung und meine Erfahrungen mit dem Set in diesem Artikel zu teilen. Die Tatsache, dass das Produkt gesponsert wurde, beeinflusst jedoch nicht meine Bewertung oder den Inhalt des Artikels. Meine Rezension basiert auf meinen eigenen Erfahrungen und Beobachtungen während der Nutzung des Raspberry Pi Pico Inventors Kit.
Tumblr media Tumblr media Tumblr media Tumblr media
Das Inventors Kit im Überblick
Schauen wir uns zunächst einmal an, was in diesem Kit enthalten ist. - eine Anleitung auf Englisch für MicroBlocks & CircuitPython, - ein Modul mit 5 mm, grüner LED, - ein Modul mit 5 mm, roter LED, - ein Mikrofonmodul, - ein Lichtsensor, - ein DHT11, - ein Drehpotentiometermodul, - ein OLED Display, - ein Ultraschallabstandssensor, - ein DC Motor, - ein Regensensormodul, - ein Servomotor Typ SG90, und natürlich - das Modul WuKong2040
Tumblr media
Raspberry Pi Pico Inventors Kit von Elecfreaks
Tumblr media
Anschlusskabel für den WuKong2040 Zusätzlich bekommst du noch passende Kabel für den Anschluss an das WuKong2040 Modul und ein Micro-USB Datenkabel.
WuKong2040 für den Raspberry Pi Pico
Der Hauptakteur des Kits ist das Modul WuKong2040. Auf dieses Modul wird der Mikrocontroller Raspberry Pi Pico oder Pico W gesteckt und du kannst dann über Stiftleisten die Pins abgreifen.
Tumblr media Tumblr media
Zusätzlich ist auf diesem noch: - zwei RGB LEDs, - zwei Taster, - ein Piezo Buzzer, sowie - ein Sockel für eine LiPo 18650 (nicht enthalten)
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Die LiPo Batterie kannst du bequem über das Modul laden, dazu leuchtet dann die kleine SMD LED neben dem USB-Anschluss in Rot zusätzlich ändert sich die Farbe der POWER LED in orange / rot.
Tumblr media Tumblr media
Das Modul WuKong2040 ist auf einem Techniksockel montiert, so dass du diesen theoretisch auf Sets von Klemmbausteinhersteller wie Lego integrieren kannst.
Aufstecken des Raspberry Pi Pico auf den WuKong2040
Bevor du deinen Mikrocontroller auf die Buchsenleiste des WuKong2040 steckst, solltest du ein leeres Programm auf diesen spielen. Denn solltest du diesen bereits für andere Projekte verwendet haben und ggf. GPIOs definiert haben, kann es passieren, dass dein Mikrocontroller zerstört wird.
Programmieren und Stromversorgung
Das Modul WuKong2040 verfügt über eine Micro-USB Schnittstelle, über diese wird lediglich das Modul und der Pico mit Strom versorgt. Zum Programmieren des Pi Pico musst du den Mikrocontroller direkt mit dem PC verbinden. Damit du nicht ständig das Kabel tauschen musst, empfehle ich dir den Einsatz einer LiPo Batterie Typ 18650.
Programmieren des Raspberry Pi Pico Inventors Kits
Das Kit lässt sich in MicroBlocks, CircuitPython & MicroPython programmieren. Du kannst dieses auch in der Arduino IDE programmieren, dafür musst du lediglich deinen Mikrocontroller (den Raspberry Pi Pico) etwas vorbereiten, siehe Raspberry PI Pico in der Arduino IDE programmieren.
Tumblr media
Da sich das Set an Anfänger richtet, möchte ich dir hier die Programmierung in MicroBlocks zeigen. Mit dieses Onlinetool kannst du deinen Code mit Blöcken aufbauen und so kommst du schnell zu einem Ergebnis, ohne dass du dich erst in eine Programmiersprache einarbeiten musst. Ein weiterer Vorteil von MicroBlocks ist, dass du eine komplette Bibliothek erhältst, um die Sensoren & Aktoren anzusteuern, aber dazu später mehr. Erste Schritte in MicroBlocks mit dem WuKong2040 Bevor wir mit komplexen Schaltungen und Programmen starten, verschaffen wir uns zunächst einen kleinen Überblick über MicroBlocks mit dem WuKong2040. Dieses kannst du entweder herunterladen, oder du nutzt dieses wie ich im Browser Google Chrome. https://youtu.be/8ieqfCKzUOs
Aufblick & Zwischenfazit
Wir haben uns zunächst das Inventors Kit von Elecfreaks angeschaut und den WuKong2040 mit dem Raspberry Pi Pico verbunden. Im nächsten Beitrag werde ich dir zu den jeweiligen Sensoren & Aktoren kleine Beispiele zeigen. Diese werde ich in MicroBlocks erstellen, damit du diese sehr einfach nachbauen kannst. Read the full article
0 notes
draegerit · 2 years ago
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 · 2 years ago
Text
ROBO PICO von Cytron Technologies: Perfekt für deine Roboterideen
Tumblr media
In diesem Beitrag möchte ich dir den ROBO PICO von der Firma Cytron Technologies vorstellen und aufzeigen, wie dieser dir bei deinen Roboterideen behilflich sein kann.
Tumblr media
Disclaimer: Dieser Beitrag wurde in Zusammenarbeit mit Cytron Technologies erstellt, und ich habe das Produkt ROBO PICO sowie den Raspberry Pi Pico WH kostenfrei erhalten. Die Meinungen und Ansichten in diesem Beitrag sind jedoch meine eigenen und wurden nicht von Cytron Technologies beeinflusst. Ich empfehle nur Produkte und Dienstleistungen, von denen ich überzeugt bin und die für meine Leser von Interesse sein könnten. Den Raspberry Pi Pico WH habe ich dir bereits in einigen Beiträgen auf meinem Blog vorgestellt: - Raspberry Pi Pico W – programmieren einer Wetterstation mit ChatGPT - Raspberry Pi Pico: Programmierung und Entwicklung mit der Arduino IDE auf Linux - Raspberry Pi Pico BASIC #1 – Überblick
Tumblr media Tumblr media Tumblr media Tumblr media
Aufbau des ROBO PICO von Cytron Technologies
Die Platine des ROBO PICO verfügt über diverse Schnittstellen an welche die Motoren sowie Sensoren & Aktoren angeschlossen werden können. Hier findest du die derzeit sehr weit verbreiteten Grove Schnittstellen, welche den Vorteil bieten, dass die zum einen nur in eine Richtung gewaltfrei eingesteckt werden können und zum anderen eine fehlerhafte Verkabelung minimiert wird. Du musst hier lediglich drauf achten, dass du einen analogen Sensor auch an analoge Pins anschließt.
Tumblr media
Schnittstellen und Klemmen - sieben Grove Schnittstellen, - zwei Schraubklemmen für Motoren, - eine Schraubklemme für eine externe Stromversorgung (3.6V bis 6V), - eine 4 x 3fach Stiftleiste für Servomotoren, - einen Maker Port, kompatibel mit QWIIC, Stemma QT Module (I2C) An den Schraubklemmen für die Motoren findest du jeweils auch Taster um diese auch ohne Code auf dem Raspberry Pi Pico zu testen. Zusätzliche Features - zwei NeoPixel, - zwei frei programmierbare Taster, - einen Piezo Buzzer, - ein Anschluss für eine LiPo Batterie (inkl. laden) mit LED Anzeige,
Lieferumfang zum ROBO PICO
Zum Lieferumfang des ROBO PICO gehört neben der Platine noch eine kleine Tüte mit Anschlusskabel und für die Schraubklemmen ein passender Schraubendreher.
Tumblr media
Bezugsquellen
Wenn du dir diese nützliche Platine für deine Roboterideen zulegen möchtest, dann bekommst du dieses entweder im Onlineshop von Cytron Technologies für derzeit 14,9 $ (ca. 13,98 €, stand 14.09.2023) zzgl. Versandkosten. Etwas günstiger bekommst du diesen im Raspishop für derzeit 13,98 € zzgl. Versandkosten.
Aufbauen und programmieren des Hungry Robot mit dem ROBO PICO und Raspberry Pi Pico
Auf der Seite https://www.cytron.io/p-robo-pico findest du einige lustige Projekte zum Nachbauen. Hier habe ich mir den Hungry Robot ausgesucht, der klingt recht lustig. https://youtu.be/zFmcF2K_FcY Zum Aufbau des Hungry Robot benötigst du einen 3D-Drucker. In meinem Fall nutze ich einen Anycubic Pro Mega und das Drucken aller Teile hat dabei 22h Stunden in normaler Qualität gedauert.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Auf Thingiverse bekommst du die benötigten Dateien kostenfrei zum Download: - REKA:BIT Hungry Robot, - Maker Pi RP2040 to REKA:BIT Mounting Holes Ansonsten benötigst du zum Zusammenbauen noch: - sechs 3,0 x 12 mm Schrauben, - vier 3,5 x 12 mm Schrauben, - einen Servomotor Typ SG90, - einen Ultraschallabstandssensor Typ HC-SR04, sowie - kleine Kabelbinder Die Schrauben wähle ich von der Firma Spax und habe ich aus dem örtlichen Toom Baumarkt erworben. Sicherlich sind diese deutlich teurer als die günstigen Noname Schrauben. Jedoch haben die Schrauben von Spax ein scharfes Gewinde, welches besonders für 3D gedruckte Teile super funktionieren und nichts kaputt machen. Zusätzlich benötigst du noch etwas Werkzeug: - einen mittleren Kreuzschraubendreher, - einen kleinen Krezuschraubendreher, - einen kleinen Seitenschneider, - ein Cuttermesser, sowie - einen Satz kleine Schlüsselfeilen Das Cuttermesser sowie die Schlüsselfeilen benötigen wir für die gedruckten Teile. In meinem Fall musste ich das Supportmaterial mit dem Cuttermesser herausbrechen und mit den Feilen ein paar Überstände abfeilen. Hinweis - Verbindungen mit Kabelbinder Die meisten Verbindungen an diesem Roboter werden mit zwei Kabelbinder gelöst. Diese Art eine Verbindung aufzubauen ist wirklich cool und reicht für solche Verbindungen locker aus. https://youtu.be/Ra7Eipm9mgo Du darfst diese jedoch nicht zu stramm anziehen, da diese sich noch etwas bewegen müssen! Schritt 1 - verbinden des ROBO PICO mit dem Gehäuse Verbinden wir zunächst die Platine des ROBO PICO mit der Mounting Plate, dazu nutzen wir vier Schrauben 3,0 x 12 mm. Um diese Platte wiederum mit dem Gehäuse zu verbinden, nutzen wir die vier 3,5 x 12 mm Schrauben.
Tumblr media Tumblr media
Schritt 2 - Servomotor einsetzen Der Servomotor wird rechts in die große Öffnung gesteckt, sodass die Aufnahme des Ruderhorns nach oben zeigt und wird ebenso mit zwei Schrauben 3,0 x 12 mm montiert. An diesen Servomotor wird die Schaufel und diese wiederum die Verbindung zum Kopf montiert.
Tumblr media Tumblr media
Für die Montage des Ruderhorns benötigst du zwei Schrauben, welche beim Servomotor beiliegen. Den Servomotor verbinde ich am Ende mit dem GPIO12 (unten rechts). Schritt 3 - Montage des Ultraschallabstandssensors Ich habe dir oben in der Liste der benötigten Bauteile auch einen Ultraschallabstandssensor mit Grove Schnittstelle verlinkt. Es gibt auf dem Markt auch welche mit einfacher Stiftleiste, jedoch passen diese nicht in das Loch. (Der Abstand zwischen Sender & Empfänger ist zu weit.)
Tumblr media
Ein weiterer Vorteil ist beim Modell mit der Grove Schnittstelle die einfache Verkabelung mit einem vorkonfektioniertem Kabel, welches eine fehlerhafte Verkabelung quasi schon fast ausschließt.
Tumblr media Tumblr media
Das Grove Kabel führe ich durch das Loch vom Servomotor und schließe dieses an den GPIO3 an. Schritt 4 - Montage der Schaufel Die Schaufel wird links mit einem Kabelbinder verbunden und rechts an den Servomotor mit zwei Schrauben über ein Ruderhorn angeschraubt.
Tumblr media Tumblr media
Das Ruderhorn ist jetzt noch nicht final mit dem Servomotor festgeschraubt, da wir unsere Schaufel mit Pythoncode noch ausrichten müssen. Schritt 5 - Montage des Kopfes und der Verbindung zur Schaufel Der Kopf wird wiederum mit einem Kabelbinder mit dem Körper verbunden und über den Link mit der Schaufel verbunden.
Tumblr media Tumblr media
Mit diesem letzten Schritt haben wir nun den Hungry Robot fertig aufgebaut, nun können wir mit der Programmierung beginnen. Programmieren des Hungry Robot in Micropython Den hier verwendeten Raspberry Pi Pico WH kannst du in Circuitpython oder Micropython programmieren und natürlich auch in der Arduino IDE. Nachfolgend zeige ich dir, wie du diesen in Micropython in der Thonny IDE programmierst. Die Thonny IDE kannst du dir kostenfrei unter https://thonny.org/ für Window, macOS und Linux herunterladen. Ggf. musst du deinen Pi Pico noch für Micropython flashen, wie du das machst, habe ich dir im Beitrag Raspberry PI Pico #1 – Vorstellung ausführlich erläutert. Schritt 1 - Programmieren des Servomotors und Ausrichten der Schaufel Im ersten Schritt wollen wir jetzt die Schaufel ausrichten, dazu müssen wir zunächst den Servomotor in die Position 0° bringen. Ich empfehle dir hier den Hungry Robot auf etwas zu stellen, sodass sich ggf. die Schaufel auch ohne Kraft nach unten bewegen kann. # Bibliotheken laden from machine import Pin, PWM from time import sleep #Servomotor am GPIO12 angeschlossen servoPin = 12 #konfigurieren der PWM Kanäle für den Servomotor pwm = PWM(Pin(servoPin)) #der Servomotor Typ SG90 arbeitet mit 50Hz pwm.freq(50) #ermittelte Positionen für die Schaufel valUnten = 1580000 valOben = 500000 #Konstante für die Pause zwischen den Aktionen PAUSE = 2 #Funktion zum öffnen des Mundes def oeffneMund(): global valOben print("oeffneMund") pwm.duty_ns(valOben) sleep(PAUSE) #Funktion zum öffnen des Mundes def schliesseMund(): global valUnten print("schliesseMund") pwm.duty_ns(valUnten) sleep(PAUSE) #Funktion zum deinitialisieren der PWM Kanäle def ende(): pwm.deinit() #Damit das Programm sauber über das STOPP Symbol aus der Toolbar #beendet werden kann und die Funktion ende ausgeführt wird, #bauen wir um die Schleife ein Try/Except try: #initial soll der Mund geschlossen sein schliesseMund() #Schleife von 1..5 for i in range(1,5): #Mund öffnen oeffneMund() #Mund schließen schliesseMund() #Programm beenden ende() #Wenn ein Fehler aufgetreten ist, dann.... except: print("Programm beendet!") ende() Schritt 2 - Erkennen eines Signals vom Ultraschallabstandssensors Im nächsten Schritt müssen wir jetzt ein Signal vom Ultraschallabstandssensor empfangen und auswerten. Die Funktionsweise des Hungry Robot ist ja, dass wir einen kleinen Gegenstand auf die Schaufel legen und dann dieser Gegenstand im Körper des Robots mithilfe eben dieser Schaufel befördert wird. Dazu nehmen wir den Abstand des Ultraschallabstandssensors und reagieren, wenn dieser kleiner als 8 cm ist.
Tumblr media
Wie du einen Ultraschallabstandssensor in Micropython programmierst habe ich dir bereits im Beitrag Programmieren mit MicroPython #8: Ultraschall Abstandssensor HC-SR04 am ESP32 betreiben am ESP32 erläutert, dieses funktioniert auch fast 1:1 mit dem Raspberry Pi Pico WH. Der hier verwendete Ultraschallabstandssensor von Seeed Studio hat nur einen digitalen Pin. Wir müssen also im Code jeweils immer umschalten. ##Import der benötigten Bibliotheken import machine from utime import sleep_us, ticks_us from time import sleep #Starten der Endlosschleife while True: #definieren das der Pin als Ausgang dient pin=machine.Pin(3, machine.Pin.OUT) #Pin aktivieren pin.on() #zwei Microsekunden warten sleep_us(2) #Pin deaktivieren pin.off() #zehn Microsekunden warten sleep_us(10) #Pin aktivieren pin.on() #definieren das der Pin als Eingang pin=machine.Pin(3, machine.Pin.IN) #Endlosschleife solange der Pin LOW/0 ist while pin.value() == 0: pass #zwischenspeichern der vergangenen Microsekunden ticks1 = ticks_us() #Endlosschleife solange der Pin HIGH/1 ist while pin.value() == 1: pass #zwischenspeichern der vergangenen Microsekunden ticks2 = ticks_us() #die differenz zwischen den beiden Werten geteilt durch 58 sind #die Zentimer zum Objekt cm = (ticks2 - ticks1) / 58.0 #Ausgeben des berechenenten Wertes print(cm, " cm") #einlegen einer Pause von 0.5 Sekunden sleep(0.5) Wenn wir uns nun die Werte anschauen, dann sehen wir, dass der Ultraschallabstandssensor die vordere Spitze der Schaufel erfasst, somit haben wir den maximalen Abstand ermittelt und müssen später nur prüfen, ob dieser um x Zentimeter unterschritten wurde.
Tumblr media
Zusammenfassen der Codes Nun haben wir beide Codefragmente fertiggestellt und können diese zu einem zusammenfassen. Zusätzlich habe ich hier noch eine kleine Funktion eingebaut, sodass eine Tonfolge auf dem Piezo Buzzer wiedergeben wird, wenn eine Aktion ausgeführt werden soll. ##Import der benötigten Bibliotheken from utime import sleep_us, ticks_us from machine import Pin, PWM from time import sleep #Servomotor am GPIO12 angeschlossen servoPin = 12 #konfigurieren der PWM Kanäle für den Servomotor pwm = PWM(Pin(servoPin)) #der Servomotor Typ SG90 arbeitet mit 50Hz pwm.freq(50) #ermittelte Positionen für die Schaufel valUnten = 1580000 valOben = 500000 buzzer = PWM(Pin(22)) def makeBeep(): buzzer.freq(350) buzzer.duty_u16(1000) sleep(0.1) buzzer.duty_u16(0) sleep(0.1) buzzer.freq(750) buzzer.duty_u16(1000) sleep(0.1) buzzer.duty_u16(0) sleep(0.1) buzzer.freq(350) buzzer.duty_u16(1000) sleep(0.1) buzzer.duty_u16(0) sleep(0.1) def readUltrasonicSensor(): #definieren das der Pin als Ausgang dient pin=machine.Pin(3, machine.Pin.OUT) #Pin aktivieren pin.on() #zwei Microsekunden warten sleep_us(2) #Pin deaktivieren pin.off() #zeh Read the full article
0 notes
draegerit · 2 years ago
Text
Raspberry Pi Pico BASIC #5 – Sensordaten loggen
Tumblr media
In diesem Beitrag zeige ich dir, wie du am Raspberry Pi Pico mit BASIC (Picomite) Sensordaten auf eine SD-Karte loggen kannst.
Tumblr media
Wie du eine SD-Karte an den Raspberry Pi Pico anschließen kannst und auf dem Dateisystem navigierst, habe ich dir bereits im Beitrag Raspberry Pi Pico BASIC #4 – SD-Karte anschließen gezeigt.
Benötigte Ressourcen für dieses Projekt
Wenn du das kleine Beispiel nachbauen möchtest, dann benötigst du: - einen Raspberry Pi Pico / Pico W, - ein Micro USB-Datenkabel, - ein SD-Karten Modul, - ein DS18B20 Temperatursensor, - diverse Breadboardkabel, männlich-weiblich, 10 cm
Tumblr media
Bauteile für die Schaltung In meinem Fall nutze ich für den Temperatursensor DS18B20 ein kleines Board, auf welchem die korrekte Schaltung bereits verdrahtet ist, somit ist der Anschluss an den Mikrocontroller deutlich einfacher.
Tumblr media
Temperatursensor DS18B20 auf Adapterplatine
Aufbau der Schaltung
Für den Aufbau der Schaltung verwende ich zusätzlich ein Dual GPIO Expander für den Raspberry Pi Pico / Pico W. Alternativ kannst du den Pi Pico auch auf ein 400 Pin Breadboard stecken und von dort die Pins abgreifen.
Tumblr media
Schaltung - Raspberry Pi Pico mit SD-Karten Modul & Temperatursensor DS18B20 Der Schaltung können wir folgenden Anschlussplan entnehmen: KomponenteRaspberry Pi PicoDS18B20GNDGNDDATAGP15VCC5V / VBUSSD-KartenleserGNDGND+5V5V / VBUSCSGP22MOSIGP19SCKGP18MISOGP16
Aufbau der Schaltung und programmieren auf dem Mikrocontroller
Im nachfolgenden YouTube-Video erläutere ich dir, wie du die Schaltung aufbaust und das kleine Programm zum Loggen der Sensordaten auf dem Mikrocontroller schreibst. https://youtu.be/umfOHjo7Az8
Programmieren im Full-Screeneditor in Picomite
Den Code erstellen wir in zwei Schritten, zum einen das Auslesen der Temperatur vom Sensor und danach das Schreiben in eine Datei auf der SD-Karte. Programmieren des Temperatursensors DS18B20 in Picomite Starten wir zunächst damit, den Temperatursensor DS18B20 zu programmieren. TEMPR START GP15 PRINT "Temperatur: " TEMPR(GP15) " C" Wenn wir den Code nun in eine kleine For-Schleife schreiben, dann können wir mehrere Werte nacheinander messen und auf der Konsole ausgeben.
Tumblr media Tumblr media
Schreiben einer Datei auf der SD-Karte Nachdem wir soeben die Sensordaten ausgelesen haben, möchten wir diese auf die SD-Karte schreiben. Im ersten Schritt müssen wir eine Datei erzeugen und diese öffnen, dabei müssen wir darauf achten, dass wir den Modus zum Anfügen von Daten verwenden, denn sonst werden die alten immer überschrieben. Open "b:/sensordaten.txt" For output As #1 TEMPR START GP15 For i = 0 To 10 Step 1 Print #1, "Temperatur: " TEMPR(GP15) " C" Next i Close #1 Die Daten sind jetzt auf der SD-Karte und können vom Computer (ein entsprechendes Lesegerät vorausgesetzt) gelesen werden.
Schreiben einer CSV Datei und importieren in Excel
Wenn wir die Sensordaten weiterverarbeiten möchten, dann ist es sinnvoll diese in einem lesbaren Format zu speichern. Das einfachste Format ist hier das CSV Format. Bei diesem werden die Daten Zeilenweise und mit einem Zeichen separiert getrennt gespeichert. Normalerweise trennt man diese Daten mit einem Komma. In meinem Fall möchte ich jedoch das Semikolon nutzen ";", denn der Temperaturwert wird in Deutsch mit einem Komma dargestellt. Natürlich könnte man auch die Temperaturwerte mit doppelten Anführungszeichen umgeben und somit trotzdem das Komma nutzen. TEMPR START GP15 Dim value As Float Open "b:/sensordaten.csv" For output As #1 For i = 0 to 100 Step 1 value = TEMPR(GP15) Print #1, i ";" value Print i "-" value Next i Close #1 Als Ergebnis erhalten wir eine Datei mit den Werten des Temperatursensors. In dem Code gebe ich zusätzlich noch den Wert auf der Konsole aus, damit man den Fortschritt des Schreibens sieht.
Tumblr media
CSV-Datei mit Sensordaten vom DS18B20 Sensor Read the full article
0 notes
draegerit · 2 years ago
Text
MicroPython und das Mapping von Sensorwerten: So funktioniert's
Tumblr media
Herzlich willkommen zu meinem neuesten Blogbeitrag, in dem es um das Mapping von Sensorwerten mit MicroPython geht! Heute werde ich euch eine Funktion vorstellen und erklären, mit der ihr einen Messbereich von einem Sensor auf einen anderen umwandeln könnt. Diese Funktion ist besonders nützlich beim Visualisieren von Umweltsensoren und anderen Messwerten. Ich werde euch Schritt für Schritt durch den Prozess führen und euch zeigen, wie ihr diese Funktion unter Verwendung von MicroPython in euren Projekten nutzen könnt.
Tumblr media
Wie man Sensorwerte am Mikrocontroller Calliope Mini im Open Roberta Lab mappt habe ich dir bereits im Beitrag Open Roberta Lab – analoges Signal auf PWM mappen erläutert. Hier greife ich auf die gesammelte Erkenntnis zurück und schreibe den Code für MicroPython um.
Wozu benötigen wir das Mapping von Sensorwerten in MicroPython?
Nehmen wir an du hast einen Temperatursensor welcher einen Messbereich von 0 °C bis 125 °C hat und eine LED Balkenanzeige mit 24 Segmenten. Dann könntest du nun den Messbereich des Sensors (0-125) auf die 24 LEDs mappen und somit je nach Temperatur die LEDs aktivieren. Ein anderer Fall wäre ein Servomotor mit einem maximalen Winkel von 180° welchen du mit einem analogen Sensor (Drehpotentiometer, Joystick etc.) bewegen möchtest. Dann musst du in diesem Fall den Drehbereich des Servos 0° bis 180° auf die möglichen analogen Werte 0 bis, 65535 mappen.
Ein kleiner Aufbau mit dem Raspberry Pi Pico
Damit wir unsere Funktion testen können, benötigen wir einen Mikrocontroller, auf welchen MicroPython läuft. Hier kann man sich selber einen ESP32 flashen oder man verwendet einen Raspberry Pi Pico / Pico W welcher das ganze schon von hause aus kann. Ich möchte das zuletzt genannte Beispiel aufgreifen und einen Servomotor mit einem Drehpotentiometer steuern. Ein recht kleines Projekt, welches jedoch sehr gut verdeutlicht, wie die Funktion map welche wir schreiben, möchten funktioniert.
Tumblr media
Schaltung - Raspberry Pi Pico mit Servomotor SG90 & Drehpotentiometer Was benötigen wir für den Aufbau der Schaltung? Für den Nachbau der Schaltung benötigst du: - einen Raspberry Pi Pico / Pico W, - ein Micro-USB Datenkabel, - einen Servomotor SG90, - einen Drehpotentiometer, - sechs Breadboardkabel, - ein 400 Pin Breadboard Pinout des Raspberry Pi Pico Für die Unterstützung beim Aufbau der Schaltung gebe ich dir hier noch das Pinout des Raspberry Pi Pico an die Hand.
Tumblr media
Pinout des Raspberry PI Pico
Programmieren der Funktion map in MicroPython zum Erzeugen eines Mapping von Sensorwerten
In der Arduino IDE gibt es bereits die Funktion map welche genau das macht, was wir hier nachbauen möchten. Die Parameter sind: - value - der Wert, welcher verarbeitet werden soll, - fromLow - die untere Grenze des aktuellen Bereichs des Werts, - fromHigh - die obere Grenze des aktuellen Bereichs des Wertes, - toLow - die untere Grenze des Zielbereichs für den Wert, - toHigh - die obere Grenze des Zielbereichs des Wertes Dieses übernehmen wir für die neue Funktion. def map(value, fromLow, fromHigh, toLow, toHigh): return round((value - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow) Hier ist eine schrittweise Erklärung der Funktionsweise: - (value - fromLow): Dieser Ausdruck berechnet die Differenz zwischen dem Eingabewert und dem unteren Grenzwert des Eingabebereichs (fromLow). Dieser Schritt normalisiert den Eingabewert auf den Bereich von 0 bis (fromHigh - fromLow). - (toHigh - toLow): Dieser Ausdruck gibt die Größe des Ausgabebereichs an, also die Differenz zwischen dem oberen und unteren Grenzwert des Ausgabebereichs. Dieser Schritt bestimmt die Skalierung des transformierten Werts. - (fromHigh - fromLow): Dieser Ausdruck gibt die Größe des Eingabebereichs an, also die Differenz zwischen dem oberen und unteren Grenzwert des Eingabebereichs. Dieser Schritt bestimmt die relative Position des Eingabewerts innerhalb des Eingabebereichs. - ((value - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow): Dieser Ausdruck führt die eigentliche Transformation durch. Zuerst wird der normalisierte Eingabewert mit der Skalierung des Ausgabebereichs multipliziert, um den transformierten Wert zu erhalten. Dann wird der untere Grenzwert des Ausgabebereichs (toLow) zum Ergebnis addiert, um den endgültigen transformierten Wert zu erhalten. - round(...): Die Funktion round() rundet den transformierten Wert auf die nächstgelegene ganze Zahl.
Steuern eines Servomotors mit einem Drehpotentiometer in MicroPython
Hier nun das kleine Programm, um mit einem Drehpotentiometer einen Servomotor zu steuern. #import des Moduls um #den analogen Pin auszulesen #und den Servo per PWM zu steuern from machine import ADC, Pin, PWM #import des Moduls um eine #kleine Pause im Code einzulegen from time import sleep #wir benutzen in der Schaltung #den ADC0 Pin / GP26 für den Drehpotentiometer adc = ADC(Pin(26)) #der Servomotor ist am GP15 angeschlossen pwm = PWM(Pin(15)) pwm.freq(50) #untere & obere Grenze des Servomotors servoMin = 100 servoMax = 8000 #untere & obere Grenze des Drehpotentiometers drehpotiMin = 224 drehpotiMax = 65535 # Funktion zum setzen eines Winkels # als Parameter wird die Position erwartet def setServoCycle(position): pwm.duty_u16(position) sleep(0.01) #Funktion zum mappen eines Wertes mit einer oberen und unteren Grenze def map(value, fromLow, fromHigh, toLow, toHigh): return round((value - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow) #starten der Endlosschleife while True: #auslesen des Wertes vom Drehpotentiometer value = adc.read_u16() #ermitteln der Servoposition servoPosition = map(value, drehpotiMin, drehpotiMax, servoMin, servoMax) #zuweisen der Servoposition setServoCycle(servoPosition) #eine kleine Pause von 125 Millisekunden sleep(0.125) Im Video erkennst du, dass der Servo sich je nach Position des Drehpotentiometers bewegt. Ein Problem ist jedoch, dass der analoge Wert nicht konstant gleich ist, d.h. wenn du den Drehpotentiometer nicht bewegst, dass der Servo trotzdem zuckt.
Ermitteln der Grenzen des Sensors & Aktors
Hier jetzt der vollständigkeitshalber die beiden Programme um die untere & obere Grenze des Drehpotentiometers & des Servomotors zu ermitteln. Die Werte des Servomotors habe ich selbst durch Trial-and-Error ermittelt, diese können je nach Modell variieren. Auslesen des Drehpotentiometers am Raspberry Pi Pico Zunächst einmal lesen wir den Drehpotentiometer aus, um die untere und obere Grenze zu ermitteln. #import des Moduls um #den analogen Pin auszulesen from machine import ADC, Pin #import des Moduls um eine #kleine Pause im Code einzulegen from time import sleep #wir benutzen in der Schaltung #den ADC0 Pin / GP26 adc = ADC(Pin(26)) #starten der Endlosschleife while True: #auslesen des Wertes value = adc.read_u16() #ausgeben des Wertes print("Drehpotentiometer Wert: "+ str(value)) #eine kleine Pause von 125 Millisekunden sleep(0.125) Mit dem Code habe ich jetzt ermittelt das die untere Grenze 224 und die obere Grenze 65535 ist. Steuern des Servomotors per PWM Signal Im Beitrag Raspberry PI Pico #3 – PWM Signale erzeugen habe ich dir bereits gezeigt, wie man einen Servomotor vom Typ SG90 per PWM Signal steuern kann. Mit dem nachfolgenden Code können wir diesen jetzt von 0° bis 180° drehen. from time import sleep from machine import Pin from machine import PWM pwm = PWM(Pin(15)) pwm.freq(50) # Funktion zum setzen eines Winkels # als Parameter wird die Position erwartet def setServoCycle(position): pwm.duty_u16(position) sleep(0.01) while True: for pos in range(100, 8000,50): setServoCycle(pos) for pos in range(8000, 100,-50): setServoCycle(pos) Read the full article
0 notes
draegerit · 2 years ago
Text
Raspberry Pi Pico - Ultraschall-Abstandssensor & MAX7219
Tumblr media
In diesem Beitrag möchte ich dir ein kleines Projekt mit dem Raspberry Pi Pico, Ultraschall-Abstandssensor & 8x8 LED Matrix MAX7219 vorstellen.
Tumblr media
Die Idee zu diesem Beitrag habe ich von Instagram, wo ich dieses mit einem Arduino UNO R3 gesehen habe. Hier soll es nun darum gehen, wie du dieses auf dem Raspberry Pi Pico mit Micropython umsetzt. Ich werde in diesem Beitrag den Mikrocontroller Sumolink Erhw RP2040 verwenden, dieser ist dem Raspberry Pi Pico gleich (beide ohne WiFi Support).
Tumblr media
Sumolink Erhu RP240
Tumblr media
Raspberry Pi Pico Die beiden verwendeten Bauteile habe ich dir bereits in nachfolgenden separaten Beiträgen beschrieben, hier bediene ich mich also am alten Code. - Raspberry Pi Pico #10: 8×8 LED Punktmatrix - Aufbau eines Ultraschall-Abstandswarners mit Raspberry Pi Pico
Ziel des kleinen Projektes
Es soll der Wert des Ultraschall-Abstandssensors auf der 8x8 LED Matrix visualisiert werden. Dabei wird ein Rechteck auf der Matrix gezeichnet, umso näher ein Objekt dem Sensor kommt, desto größer wird dieses.
Benötigte Ressourcen für das Projekt - Raspberry Pi Pico mit Ultraschall-Abstandssensor & MAX7219
Für den Aufbau des Projektes benötigst du: - einen Raspberry Pi Pico (oder vergleichbaren Mikrocontroller), - ein passendes USB-Datenkabel, - eine 8x8 LED Matrix MAX7219, - ein Ultraschall-Abstandssensor Typ HC-SR04, - acht Breadboardkabel, - ein 400 Pin Breadboard
Tumblr media
benötigte Bauteile zum aufbau der Schaltung - HC-SR04 & MAX7219 am Raspberry Pi Pico
Pinout des Raspberry Pi Pico
Für den Aufbau der Schaltung benötigst du das Pinout des Pi Pico welches ich dir hier einmal gerne an die Hand gebe. Wenn du den Pi Pico W verwendest ist, das Pinout ebenso zu verwenden, da diese beiden Mikrocontroller vom Pinout gleich sind.
Tumblr media
Pinout des Raspberry PI Pico
Aufbau der Schaltung
Der Aufbau der Schaltung ist recht simple und sollte in wenigen Minuten erfolgt sein.
Tumblr media
Schaltung - Raspberry Pi Pico mit 8x8 LED Matrix & Ultraschall-Abstandssensor Hier nun der kleine Anschlussplan in tabellarischer Form: BauteilRaspberry Pi PicoUltraschall-Abstandssensor HC-SR04VCC5VGNDGNDTriggerGP8EchoGP98x8 LED MatrixVCC3.3 VGNDGNDDINGP3CSGP5CLKGP2
Programmieren in Micropython
Wie man eine 8x8 LED Matrix in Micropython programmiert, habe ich dir bereits im Beitrag Raspberry Pi Pico #10: 8×8 LED Punktmatrix erläutert, hier möchte ich jetzt gerne an diesen Beitrag anknüpfen und noch den Ultraschall-Abstandssensor HC-SR04 mit ins Spiel bringen. Den kompletten Code kannst du dir nachfolgend als ZIP-Datei herunterladen. In dem ZIP findest du die Python Datei code.py welche du einfach auf deinem Pi Pico speichern kannst. Raspberry Pi Pico mit 8x8 LED Matrix & Ultraschall-AbstandsensorHerunterladen Hier der Code: from machine import Pin, SPI import max7219 from time import sleep import utime #Ultraschall-Abstandssensor sensorTrigger = Pin(8, Pin.OUT) sensorEcho = Pin(9, Pin.IN) sensorValue = 0 #8x8 LED Matrix spi = SPI(0,sck=Pin(2),mosi=Pin(3)) cs = Pin(5, Pin.OUT) display = max7219.Matrix8x8(spi, cs, 1) display.brightness(10) #Formatiert einen Gleitkommawert #auf maximal 4 Zeichen vor und 2 Zeichen #nach dem Komma. def formatValue(value): return str("{:4.2f}".format(value)+" cm") #Ermittelt einen Abstandswert 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 #Zeichnet ein Rechteck #auf die 8x8 LED Matrix def displayRect(size): display.fill(0) if size == 1 : display.rect(0,0,8,8,1) elif size == 2: display.rect(1,1,6,6,1) elif size == 3: display.rect(2,2,4,4,1) elif size == 4: display.rect(3,3,2,2,1) elif size == 5: display.rect(2,2,4,4,1) elif size == 6: display.rect(1,1,6,6,1) elif size == 7: display.rect(0,0,8,8,1) display.show() #Ermittelt aus zwei Gültigkeitsbereichen #einen Wert. Wird für die ermittlung des #zu zeichnenden Rechtecks benötigt. def map(value, fromLow, fromHigh, toLow, toHigh): return round((value - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow) #Funktion welche fortlaufend ausgeführt wird def main(): global sensorValue while True: sensorValue = readUltrasonicSensor(sensorTrigger, sensorEcho) rectSize = map(sensorValue,5,30,1,7) #Fallback für den Fall das die Funktion map einen #Wert kleiner 1 oder größer 7 liefert. if rectSize < 1: rechtSize = 1 elif rectSize > 7: rectSize = 7 displayRect(rectSize) print("Ultraschall-Sensor: " + formatValue(sensorValue)) sleep(0.125) #ausführen der Funktion main main() Wenn du den Code auf der Schaltung ausführst, dann kannst du mit einer geraden Fläche vor dem Ultraschallabstandssensor den Abstand verringern und dieses wird auf der 8x8 LED Matrix angezeigt. Read the full article
0 notes
draegerit · 2 years ago
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
draegerit · 2 years ago
Text
Raspberry Pi Pico BASIC #6 – RealTimeClock programmieren
Tumblr media
In diesem Beitrag möchte ich dir gerne zeigen, wie du eine RealTimeClock (kurz RTC) am Raspberry Pi Pico mit Picomite in BASIC programmierst.
Tumblr media
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.
Tumblr media Tumblr media
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
Tumblr media
Aufbau der Schaltung
Mit den vier Breadboardkabeln schließen wir die RealTimeClock an den Raspberry Pi Pico wie folgt an.
Tumblr media
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.
Tumblr media
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$
Tumblr media
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.
Tumblr media
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.
Tumblr media
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.
Tumblr media
Read the full article
0 notes
techcree · 2 years ago
Text
Lebensader Wasser und das wird knapp
Tumblr media
Eigentlich sollte man annehmen, dass sowas garnicht passieren kann. Aber in gewisser Weise ist es so. Wasser ist knapp. Was also können wir machen?
Warum Wasser nicht wirklich kanpp werden kann liegt darin begründet, dass wir das Glück haben auf einem Planeten mit einer Atmosphäre zu leben. Beim Mars ist das anders, denn der war schon vor lager Zeit quasi von Inkontinenz betroffen. Er konnte das Wasser nicht halten. So stellen wir uns das zwar laienhaft vor, doch so richtig ist auch dass nicht, denn das Wasser verschwindet ja nicht ins Weltall und schwebt dann dort irgendwie herum. Im Prinzip muss es auf jedem Planeten wo es einmal Wasser gegeben haben auch noch Wasser geben. Ein Prozess, den es übrigens auch auf der Erde gibt ist die chemische Verwitterung. Forscher nehmen also an, dass das Wasser Gestein angegriffen hat und Elemente herausgelöst hat. Wenn das Material erstarrt bzw. fest wird, so ist das Wasser in kleinsten elementaren Bausteinen darin eingeschlossen.
Aber konzentrieren wir uns einmal nicht darauf was vor millionen von Jahren auf dem Mars passiert sein mag. Bleiben wir einmal im jetzt und heute und schauen uns an, wie jeder Einzelne von uns etwas tun kann. Wir haben uns in der Vergangenheit mit dem Raspberry Pi Pico als SmartHome Helfer befasst. Durch entsprechende Programmierung können wir damit auch Strom sparen. Doch gehen wir einen Schritt weiter und überlegen uns einmal wie wir einen Pico beispielsweise auch einsetzen könnten um auch Wasser zu sparen.
Tumblr media
Bild zeigt einen Raspberry Pi Pico mit einem Relais zur Schaltung von Stromverbrauchern.
Jeder von uns kann aktuell einen Beitrag leisten eben nicht nur Strom, sondern auch Wasser zu sparen bzw. auch an vielen Stellen verantwortungsvoller mit Wasser umzugehen. Da kann uns ein wenig Technik bereits helfen, denn da wäre ein Wasserdurchflussbegrenzer schon eine kleine preiswerte Sache, die bereits bis zu 80% des Wasserverbrauchs zu senken helfen. Da wir aber Technik-Freaks sind, wollen wir auch hier den Raspberry Pi Pico zum Einsatz bringen. Nochmal! Erstens ist der Pico in der Variante Pico W auch WLAN fähig. Wir erreichen ihn also auch innerhalb des WLANs über die ihm dort vom Router zugewiesene IP Adresse. Somit können wir eine Website vom Pico aus zur Verfügung stellen um Schaltungen vorzunehmen.
Wir können den Pico durch die Verbindung zum Internet aber auch mit der aktuellen Uhrzeit aus dem Web versorgen und jetzt wird es konkret auch für unser Projekt interessant. Wir müssten es also hinbekommen den Pico dazu zu bringen zu bestimmten festgelegten Zeiten Schaltungen vorzunehmen. Was wir brauchen ist dann ein Gerät zur Steuerung der Bewässerung, um bspw. den Rasen und die Pflanzen zu bewässern. Mit dem Pico brauchen wir ein solches Gerät dann entsprechend unseren Wünschen ja nur mit Strom zu versorgen und damit zu schalten.
Tumblr media
Natürlich werdet ihr sagen, dass gibt es doch, solche Systeme kann man kaufen. Wir werden aber nun auch unter Beweis zu stellen haben, dass die Lösung mit unserem Pico nicht nur viel günstiger, sondern auch flexibler, also besser ist. Wir gewinnen zudem mit dieser Lösung ein paar Daten. Wenn wir wissen wie hoch der Durchlauf von Wasser pro Minute bei bspw. einer Pumpe ist, lässt sich der Wasserverbrauch errechnen. Je nach dem wie wir dann mit dem ergebnis der Bewässerung zufrieden sind können wir den Verbrauch anpassen.
Von der Idee her sammeln wir das Wasser vom Regen in einem großen Fass bzw. Auffangbehälter und setzen eine Tauchpumpe ein. An die schließen wir unser Bewässerungssystem bzw. den Schlauch mit dem Rasensprenger an. Die Stromversorgung der tauchpumpe nehmen wir von einer Steckdose die wir über das Relais des Picos anschließen.
Tumblr media
Bild zeigt das Beispiel einer solchen Tauchpumpe, hier bspw. ein Set von Bosch, Bildquelle Produktseite Bosch.
Da wir hier Produkte bestimmter Herstellers nennen, noch der Hinweis, dass der Beitrag unbezahlte und kostenlose Werbung enthält.
Den Ansatz haben bereits einige schon verfolgt und es gibt übrigens auch Produkte auf der Basis des Raspberry Pi 2040 Chipsystem mit der man die Bewässerung von Pflanzen überwachen und steuern kann. Dazu bietet bspw. auch Pimoroni eine Lösung an. Vermutlich wird es daher für euch einfach sein schon Python/Micropython Code zu finden, den ihr nur noch an eure Bedürfnisse anpassen müsst. Auf der Website von Pimoroni schaut euch einmal die Lösung Automation 2040W Mini an.
An dieser Stelle soll es das erstman gewesen sein. Hoffentlich konnte ich euch ein paar Anregungen für eurer nächstes Projekt geben, welches euch dabei unterstützen kann Wasser einzusparen oder mit der Unterstützung von ein wenig technik cleverer einzusetzen. Es sei jetzt nur noch angemerkt, dass ihr den Pico und alle elektronischen Bauteile natürlich in ein Wasserdichtes Gehäuse packen müsst wenn es im Außenbereich zum Einsatz kommen wird. Und bitte immer vorsichtig im Umgang mit Strom! Wer nicht über die nötigen Kenntnisse verfügt, der möge sich in jdem Fall Unterstützung vom Fachmann holen.
0 notes
techcree · 2 years ago
Text
Raspberry Pi Pico Bluetooth und Micropython
Tumblr media
Der Raspberry Pi Pico kann auch Bluetooth (BT). Leider wurde sich auf die falsche Programmiersprache dabei eingeschossen. Wie ist der Stand heute?
So langsam legt sich Staub auf den Raspberry Pi Pico. Jedenfalls wenn man darauf wartet Bluetooth mit Micropython nutzen zu wollen. Zwar beherrschte der kleine preiswerte Microcontroller der Raspberry Pi Foundation UK Bluetooth (BT) bereits von Beginn der Ausführung Pico W an, doch es gab in dem Sinne qualsi keine Software. Die Anpassung der SDK, also des kleinen Betriebssystems ist zwar mittlerweile erfolgt, doch dies beschränkt sich heute immer noch auf die Programmierung mittels C/C++.
Tumblr media
Im Bereich Micropython hat sich bisher immernoch nichts getan. C++ hat seinen Urspung in der maschinennahen Programmierung und wurde von AT&T bereits 1979 als C Variante entwickelt, die mit sehr wenigen Schlüsselworten auskommt. Ich würde fast den Vergleich hernehmen wie es im Fall von Python und Micropython auch so ist. Micropython bedeutet nicht, dass es eine für Microcontroller angepasste Python Version ist, sondern das es klein ist. Es hat also eine deutlich abgespecktere Basis-Bibliothek. Das ist sicher der Grund dafür, dass es gerade auf Microcontrollern wie dem Raspberry Pi Pico so erfolgreich eingesetzt wird.
Vergleichen wir oberflächlich C++ mit Micropython ist es in erster Linie sicher nur eine Frage der Performance. In zweiter Linie geht es aber auch um Kompatibilität zu Anwendungen. Also in dem Zusammenhang, dass man einfach bei Micropython bleibt, wenn man damit bereits begonnen hat Lösungen zu prgrammieren. Micropython beschränkt uns jedoch im direkten Vergleich natürlich dann auch wegen der stark eingedampften Basis-Bibliothek. Auch wenn sich grundsätzlich zusätzliche Libaries (Lib) hinzufügen, also dazu installieren lassen, so gibt es schlicht für bestimmte Themen keine verfügbaren Micropython Bibliotheken.
Ein wichtiger Aspekt ist, dass C/C++ in Punkt Verbreitung bzw. Beliebtheit heute eigentlich keine so richtige Rolle mehr spielt. Python ist schlicht heute die beliebteste Programmiersprache weltweit. Deshalb kommt dann auch Micropython eine so große Bedeutung zu. Leider hat sich in den letzten Wochen seit die neue SDK für BT für den PicoW erschienen ist hier nichts spührbar getan. Warum mag das der Fall sein? Nun zum einen ist der PicoW für vieles gut, aber seine Einsatzgebiete bei BT sicher so überschaubar, dass es für die meißten schlicht auch garkeine Rolle spielt. Außerdem gibt es Zubehör, welches preiswert ergänzt werden kann und für das es dann auch die erforderlichen Lib's gibt. So beispielsweise das HC-05/HC-06 Klasse 2 Bluetooth SPP-Modul mit Serial Port Protocol, welches eine drahtlose serielle Kommunikation ermöglicht und schon weit verbreitet ist.
Die Frage stellt sich aber natürlich für was soll man das überhaupt mit einem Microcontroller nutzen? Um es mit einem sogenannten Master-Bluetooth-Gerät zu nutzen, wie beispielsweise einem PC, Smartphone oder Tablet. Das sicher griffigste Beispiel ist den Microcontroller dann als Steuer-/Programmeinheit für eine drrahtlose tastatur und Maus zu verwenden. Wir bauen also eine DIY Tastatur und wollen diese mittels BT an einen PC anschließen können. Solche Projekte gibt es bereits und auch bei Kickstarter lassen sich einige dieser Dinge finden, bei denen ein Rasberry Pi Pico Herz schlägt. Wir könnten sicher auch einen kleinen Roboter via BT vom Smartphone aus stzeuern und derlei Dinge.
All zu viel gibt es aber da nicht. Das liegt daran, dass der Raspberry Pi Pico W eben ein WLAN Modul besitzt und so einen Webserver zur Verfügung stellen kann der dann im Browser über die ihm zugewiesene IP Adresse im WLAN Netz erreichbar ist. Damit läßt sich erstmal ziemlich viel machen. Kurz um, wir müssen abwarten ob Micropython hier etwas ergänzen wird und wann.
Tumblr media
Licht am Ende des Tunnels! Es gibt offenbar ein Projekt dazu, doch das scheint noch etwas Zeit zu brauchen. Jedenfalls gibt es dazu nunn auch eine Beta, die aber noch in einem sehr experimentellen Stadium zu sein scheint. Und ja es ist pimoroni, die hier am Werke sind. Das könnte uns nicht nur insgesamt im Thema voranbringen, sondern dürfte bedeuten, dass pimoroni ggf. in Zukunft spezielle Lösungen, also Produkte auf den Markt bringen wird bei dem BT ein wesentliches Merkmal sein könnte.
Hört sich doch gut an. Aktuell bleibt es aber beim Status Quo.
0 notes
techcree · 2 years ago
Text
GitHub ist cool!
Tumblr media
GitHub dürfte mit Abstand die bedeutenste Quelle für Programm-Code aller Art sein. Besonders interessant aber wenn es um Python Code geht.
Natürlich muss man an meiner Stelle auch einen eigenen Bereich auf GitHub haben (https://github.com/techcree). Daran geht eigentlich auch garkein Weg daran vorbei. Doch was ist GitHub eigentlich und wozu würdest Du es brauchen? Programmierer aller Color braucht man GitHub nicht vorzustellen. In diesen Kreisen ist es ohnehin ein fester Begriff. Doch nicht nur die Entwickler von Code kommen natürlich damit in Kontakt. Wer selbst auch nur ein kleines elektronisches Projekt realisieren will bei dem auch nur ein Microcontroller zum Einsatz kommen wird, wird früher oder später auf GitHub kommen.
Wenn es beispielsweise schon darum geht eine Modelleisenbahn zu steuern, dann wird man sich sicher auch mit Technik auseinandersetzen, wie dem Raspberry Pi Pico oder Pico W. Wenn es um LED Displays geht, eInk Displays und Smarthome oder auch Software für die Website. Tausende von Tüfftlern und Entwicklern haben im Laufe viele Jahre ihre Code-Beispiele hochgeladen um diese der Allgemeinheit zur Verfügung zu stellen. Und genau dafür ist GitHub auch prädestiniert.
Tumblr media
GitHub arbeitet aber auch schon seit einiger Zeit an einer eigenen KI (künstlichen Intelligenz) unterstützten Plattform die auf die vielen Tausenden Code Referenzen zurückgreifen kann, welche dort gespeichert wurden. Dabei kopiert sie nicht einfach Code und zeigt diesen dan, wie eine Art Code-Suchmaschine, sondern erarbeitet aus den Quellen das gesuchte Code-Beispiel. Und weil Code lebt und immer wider Veränderungen stattfinden ist GitHub hier auch stets auf dem neuesten Stand der Dinge. gerade weil so viele Entwickler die Plattform nutzen und Code immer auf dem aktuellen Stand halten.
Natürlich dominiert hier Englisch als menschlische Sprache und so muss man sich schon auf Englisch als internationale Kommunikation einlassen. Bei den Programmiersprachen gibt es dagegen jede Menge Auswahl. Man findet eigentlich Beispiele und Referenzen in allen bereichen. Sicher dominiert bei den Programmiersprachen aktuell Python die Plattform, was daran liegen wird, dass Python nunmal die Nummer Eins unter den Programmiersprachen geworden ist. Und das zurecht. Im Ranking der beliebtesten Programmiersprachen hat Python weltweit einen Anteil von rund 28%, gefolgt von java mit rund 17%. C/C++ beispielsweise kommt nru noch auf rund 7% und PHP auf gerade einmal 5%. Allerdings kann man PHP auch natürlich nicht direkt mit Python vergleichen, da es ja im ursprung auch eine ganz andere Aufgabe hat.
Dennoch findet man allerlei Beispiele natürlich auch auf GitHub und so verwenden es auch Hersteller von Produkten umd dort ihre Softwareupdates zur Verfügung zu stellen.
0 notes
techcree · 2 years ago
Text
Was sind LED?
Tumblr media
Welche Arten von LED gibt es und wo liegt der Unterschied? Heute beschäftigen wir uns mal mit dem Thema LED.
LED steht für Leuchtdiode und der Begriff kommt als Abkürzung von der englischen Bezeichnung Light-Emitting Diode, also lichtemittierende Diode und wird auch als Halbleiter-Bauelement bezeichnet. Wir finden LED heute in unterschiedlichen Anwendungen bis hin Zum Einsatz in Scheinwerfern bei Autos. Eine Diode lässt grundsätzlich den Strom in ihrer sogenannten Durchlassrichtung fließen. Also nur ein einer Richtung. In der anderen sperrt die LED den Stromdurchfluss. Deshalb zählt sie auch zur Gruppe der Dioden. Dabei kann eine LED sowohl sichtbares wie auch für das menschliche Auge unsichtbares Licht erzeugen.
Also auch im Bereich von Infrarot- oder Ultraviolettstrahlung. Dann kommt die LED bspw. auch in Überwachungskameras zum Einsatz um Aufnahmen in der Dunkelheit zu ermöglichen. Am bekanntesten sind LED im Bereich der allgemeinen Beleuchtung. Als LED Lampen, LED Streifen oder auch als Tastaturbeleuchtungen. Eigentlich gibt es vier Arten von LED. Diese sind COB LED, SMD LED, High Power LED und DIP LED. Im Prinzip dominieren den Markt aber im Wesentlichen zwei dieser LED Typen. Die DIP LEDs waren dabei wohl die ersten und bekanntesten LED, haben in der Regel je Farbe zwei Drähte an deren Ende ein Halbleiterkristall sitzt, der für die Erzeugung des Lichts, wenn Strom anliegt verantwortlich ist.
Tumblr media
Diese LED sind in der Regel in einer Kunststoffabdeckung eingefasst. Im Projekt LED Binär Uhr (siehe Beitrag dazu hier) habe ich diese verwendet, weil diese sehr preiswert sind und einfach zu montieren bzw. zu verlöten sind. Allerdings sind diese LED dafür bekannt, dass sie eine schnelle Lumenabnahme über längere Zeit haben und damit insgesamt auch eine eher kurze Lebensdauer besitzen.
Die sogenannten High Power LED geht es weniger um die Bauweise der LED, sondern vielmehr um deren elektrische Stromstärke, mit der die Dioden betrieben werden können. Je nach Ausführung können diese ziemlich starkes Licht abgeben und wir kennen diese LED bspw. in Taschenlampen.
Tumblr media
Das führt uns zu einer anderen LED Art, die wegen Ihrer Größe heute wohl die gängigere ist. Es ist wohl auch die leistungsstärkste LED und es gibt sie auch in unterschiedlichen Farben oder kann innerhalb der sleben LED verschiedene Farben anzeigen. Die Rede ist von der COB-LED (Chip on Board). Wir sehen die LED beispielsweise in LED Displays wo sie zwar in Reihe geschaltet sitzt aber einzeln angesteuert werden kann.
Ein tolles Beispiel bietet das Galactic Unicorn von Pimoroni (mehr hier im Beitrag). Es ist auch ein Beispiel dafür, dass dieser LED Typ gerne auf Entwickler Boards, Microcontrollern und anderen Platinen zum Einsatz kommt. Gerade eben weil sie klein und langlebig sind, wenig Strom benötigen und leicht zu steuern sind. So sind beispielsweise auch solche LED auf dem Raspberry Pi Pico und Pico W als onBoard-LED verbaut. Dort lassen diese sich über die GPIO bzw. PIN.25 ansteuern. Die Meißten werden dazu wohl Micropython verwenden und müssen dann nur "import machine und from machine import Pin" verwenden. Der Code kann dann wie folgt genutzt werden:
import machine from machine import Pin import utime
led25 = Pin(25, Pin.OUT) #mainboard led25.value(1) utime.sleep(1) led25.value(0)
Und schon wird die LED beim Ausführen dieses Skriptes als bspw. LED.py für eine Sekunde eingeschaltet und danach wieder ausgeschaltet.
Tumblr media
Die COB LED gibt es in verschiedenen Bauformen und wir sinden Sie in LED Streifen, die sich auch zuschneiden und wieder zusammenfügen lassen. Bei diesem LED Typ sitzen die Halbleiterchips quasi auf einer eigenen kleinen Platine aus Aluminium oder Keramik. Besonders beliebt geworden sind LED auch weil sie vergleichsweise zu herkömmlichen Leuchtmitteln weniger Strom benötigen und damit kostengünstiger zu unterhalten sind. Gegenüber der "Glühbirne" sind sie in der Regel deutlich langlebiger. Gerade die COB LED hat den großen Vorteil besonders klein und dennoch sehr leuchtsark zu seein.
Die LED ist eine tolle Erfindung und hat sich in vielen Bereichen unseres täglichen Lebens durchgesetzt. Das ist auch deutlich besser für unsere Umwelt, weil die LED einfach länger hält und somit weniger Abfall erzeugt als herkömmliche Leuchtmittel.
0 notes