#Raspberry Pi Pico 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 · 4 years ago
Text
#RaspberryPiPico für den #R2D2
Tumblr media
Der Raspberry Pi Pico bietet uns die Möglichkeit unseren R2D2 aus dem 3D Druck zum Leben zu erwecken. Heute möchte ich euch zeigen wie ich den R2D2 dazu gebracht habe zu blinken und Töne von sich zu geben.
Den Raspberry Pi Pico Microcontroller bekommt Ihr bereist für kleines Geld. Je nach Händler zzgl. Versandkosten für um die 3-4€. Diese Microcontroller bietet euch viele Möglichkeiten, denn Ihr könntet damit nicht nur Lichtfrequenzen von LED's steuern, sondern bei Bedarf auch Servos. So könntet Ihr bspw. auch den R2D2 dazu bringen den Kopf zu drehen. Bleiben wir aber in diesem Beitrag erstmal bei dem Thema LED's.
Tumblr media Tumblr media
Für den Pico gibt es umfangreiche Beschreibungen für den Fall ihr habt damit noch nicht gearbeitet. Schaut dazu auf der Webiste der Raspberry Pi Foundation nach. Ist der Pico eingerichtet könnt Ihr bspw. mit der Thonny IDE losprogrammieren. Ich mache das vom Chromebook aus und habe dazu Linux aktiviert und Thonny IDE installiert. Programmiert wird dann bspw. mit Micropython.
Die nachfolgenden Bilder zeigen euch ein Code-Beispiel. Einmal die shutLEDdown.py um die LED alle auszuschalten falls Ihr das andere Script mal unterbrochen habt. Das eigentliche Script aber für die LED Sequenz ist als main.py angespeichert. Deshalb, weil beim Pico immer das als main.py bezeichnete Programm sofort gestartet wird, sobald der Pico an eine Stromquelle angeschlossen ist.
Tumblr media Tumblr media
Ist eurer Pico nun betankt kann der R2D2 schonmal zum Leben erweckt werden und hat nun quasi ein Herz und ein Gehirn. Im Prinzip habt Ihr nun schon einen echten kleinen Roboter gebaut. Übrigens [hier] nochmal alle Beiträge zu diesem 3D Druck Projekt aus meinem Blog! Um dem R2D2 nun auch zu einer Stimme zu verhelfen habt Ihr verschiedene Möglichkeiten. Es gibt dazu bspw. beim Distributor Pimoroni einige Audio Module, welche auch einfach nur auf den Pico gssteckt werden können und über den Pico dann auch mitprogrammiert werden können. Diese Module sind super, aber etwas teurer. Eben weil auch bspw bei Pimoroni noch die Versandkosten aus Großbritanien dazukommen.
Eine günstige Alternative ist ein fertiges Audiomodul, gefunden auf Amazon. Das bringt mir einen großen Vorteil durch das Set, weil dort ein Batterie-Fach mit Ein-/Aus-Schalter enthalten ist. Das kann 3xAAA Batterien aufnehmen und somit unserem Pico die Stromversorgung kabelunabhängig ermöglichen. Da ein Taster dabei ist, den ich vorn am R2D2 angebracht habe und ein kleines Loch für die Kabeldurchführung gebohrt habe, können wir bis zu vier Sounds durch Knopfdruck abspielen.
Tumblr media
Übrigens kann ich meine *.mp3 Files einfach wie bei einem USB Stick auf das Modul geladen werden. Also habe ich das Akku-Pack vom Audio/Sound Modul abgetrennt und am Pico an VSYS "rotes Kabel" und GND "schwarzes Kabel" angeschlossen. Das Soundmodul an den 3V3 (Out) wieder das "rote Kabel" und das "schwarze Kabel" an GND. Das Soundmodul kostete mich gerade mal 16€ und die Wiedergabe über den kleinen Lautsprecher ist laut genug, um im R2D2 verbaut auch gut genug zu hören ist.
Tumblr media
So ausgestattet kann unser im 3D Druck erstellte R2D2 Nachbau nun mit drei LED (ihr könnt natürlich auch mehr verbauen) blinken und auf Knopfdruck Töne von sich geben.
Tumblr media Tumblr media
Die Sound Dateien findet Ihr im Web. Ich bin [hier] fündig geworden. Kleiner Rechts- und Sicherheitshinweis: Nicht vergessen eure LEDs mit passenden Wiederständen abzusichern und Vorsicht im Umgang mit Strom. Ich übernehme natürlich keinerlei Haftung!
1 note · View note
draegerit · 8 months ago
Text
Eigenes MacroPad bauen: mit Raspberry Pi Pico zum Effizienz-Booster
Tumblr media
Wie du dir ein MacroPad mit dem Raspberry Pi Pico aufbaust und programmierst, zeige ich dir hier in meinem neuen Beitrag. Dieses MacroPad kann ein echter Effizenz-Booster sein und dich bei deiner täglichen Arbeit unterstützen. https://youtu.be/GCuJPVpsVTY In der ersten Version hatte mein MacroPad lediglich sechs Tasten und lief schon recht gut, die zweite Version habe ich um drei weitere Tasten und drei Rotary Encoder erweitert und somit auf das nächste Level gehoben. Ein zusätzliches Feature ist ein einfacher Schiebeschalter, mit welchen man programmatisch die Tasten doppelt belegen kann.
Tumblr media Tumblr media Tumblr media Tumblr media
Warum kann ein MacroPad ein Effizienz-Booster sein?
Ein MacroPad kann die Produktivität erheblich steigern, indem es wiederkehrende PC-Aktionen auf einfache Weise automatisiert. Hier sind die wichtigsten Vorteile: - Zeitersparnis: Ein Knopfdruck ersetzt wiederholte Tastenkombinationen und Menüaktionen. - Personalisierte Steuerung: Es lässt sich individuell programmieren, um häufig genutzte Funktionen direkt auszuführen. - Vereinfachung komplexer Prozesse: Mehrere Arbeitsschritte können in einem Makro zusammengefasst werden. - Fehlerreduktion: Automatisierte Abläufe minimieren menschliche Fehler. - Ergonomische Vorteile: Weniger wiederholte Handbewegungen reduzieren körperliche Belastung. - Anpassung für verschiedene Programme: Das MacroPad kann je nach Software unterschiedliche Befehle übernehmen. - Multitasking-Unterstützung: Es erleichtert das parallele Arbeiten mit mehreren Programmen. Insgesamt wird die Arbeit schneller, einfacher und komfortabler.
Was wird für den Aufbau eines MacroPad's benötigt?
Für das hier vorgestellte MacroPad habe ich nachfolgende Bauteile benötigt: - einen Raspberry Pi Pico* - zwei 26 Pin Buchsenleisten*, 2,54 mm Rastermaß - sechs 12x12mm Printtaster* mit farbigen Köpfen - eine Lochrasterplatine* - diverse Litzen 20 AWG* Statt dem alten Raspberry Pi Pico könntest du auch das Model mit WiFi nutzen und so ggf. mit etwas mehr Aufwand ein drahtloses Modell erstellen.
Tumblr media
Bauteile - MacroPad Raspberry Pi Pico Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung! Werkzeuge Neben einer vernünftigen Lötstation oder Lötkolben benötigst du noch: - einen Seitenschneider - eine Abisolierzange - eine Flachzange Die Flachzange benötigst du, um die starren 20 AWG Kabel zu biegen. Natürlich geht dieses auch mit der Hand nur so, hast du schöne 90° Winkel. Warum nicht den neuen Raspberry Pi Pico 2?
Tumblr media
Der neue Raspberry Pi Pico 2 hat derzeit (Stand 10.10.2024) einen Hardware-Bug welcher die Verwendung für dieses Projekt derzeit ausschließt. Siehe https://github.com/adafruit/circuitpython/issues/9541.
Flashen des Mikrocontrollers für die Programmierung in CircuitPython
Um automatisierte Aktionen ausführen zu können, sind spezielle Features erforderlich, die nur CircuitPython bietet. Dazu muss der Mikrocontroller zunächst mit einer speziellen UF2-Datei bespielt werden, die es ermöglicht, CircuitPython auf dem Raspberry Pi Pico auszuführen. Diese Datei wird auf den Pico übertragen, indem man ihn in den Bootloader-Modus versetzt und die UF2-Datei auf das erscheinende Laufwerk kopiert. Die UF2-Datei bekommst du unter https://circuitpython.org/board/raspberry_pi_pico/. Zunächst musst du deinen Pico vom Computer trennen, um anschließend die Taste BOOT gedrückt zu halten und die Verbindung wieder herzustellen. Wenn dieses geschehen ist, dann solltest du ein neues Laufwerk im Explorer finden. Im nächsten Schritt musst du dann die UF2-Datei auf dieses Laufwerk kopieren oder per Drag'n Drop ziehen. Der Mikrocontroller wird dann automatisch geflasht und neu gestartet.
Tumblr media Tumblr media
Aufbau der Schaltung - Taster am Raspberry Pi Pico
Auf dem MacroPad kannst du einfache Taster, Touchsensoren, analoge Joysticks und auch Rotary Encoder verbauen. Im Nachfolgenden zeige ich dir zunächst eine Schaltung mit einem Taster.
Tumblr media
Schaltung - Raspberry Pi Pico mit zwei Taster Statt einfache Taster kannst du ebenso auch Touchsensoren verwenden, diese gibt es sehr günstig im 10er-Pack auf Aliexpress bereits ab 1,15 € zzgl. Versandkosten. Im Nachfolgenden verwende ich den kleinen XIAO RP2040 welchen ich dir bereits im Beitrag Seeed Studio XIAO RP2040 – ein Zwerg mit großer Leistung vorgestellt habe. Dieser hat denselben Chip wie der originale Raspberry Pi Pico und kann somit problemlos eingesetzt werden.
Tumblr media
XIAO RP2040 mit drei Taster auf Breadboard
Tumblr media
XIAO RP2040 mit drei Touchsensoren auf Breadboard
Programmierung des MacroPad in CircuitPython
Für die Programmierung verwende ich die Entwicklungsumgebung Thonny, diese kannst du dir unter https://thonny.org/ kostenfrei für Windows, Linux und macOS herunterladen. Du könntest ebenso auch den MU-Editor verwenden oder auch Visual Studio etc. jedoch ist die Thonny IDE schlank und trotzdem sehr mächtig und daher meine erste Wahl bei der Entwicklung von kleinen Programmen auf dem Mikrocontroller. Schritt 1 - programmieren eines Tasters mit CircuitPython am RP2040 Als Erstes erstellen wird ein Programm, welches das Event eines Tasters auswertet. Da wir in der Schaltung die Taster ohne PullUp / PullDown Widerstand angeschlossen haben, müssen wir dieses programmatisch lösen. import board from digitalio import DigitalInOut, Direction, Pull import time taster = DigitalInOut(board.D0) taster.direction = Direction.INPUT taster.pull = Pull.UP def main(): while True: if not taster.value: print("Taster wurde gedrückt!") time.sleep(0.5) main() Schritt 2 - ausführen einer Tastaturaktion via Taster Damit eine Aktion über die Tastatur oder Maus ausgeführt werden kann, benötigen wir das Modul Adafruit HID welches wir vom GitHub Repository Adafruit / Adafruit_CircuitPython_HID als ZIP-Datei herunterladen können. Auf der Seite https://docs.circuitpython.org/projects/hid/en/latest/ findest du eine sehr ausführliche Übersicht in englischer Sprache zum Funktionsumfang des Moduls. Im nachfolgenden Beispiel wird bei Tastendruck der kleine Buchstabe a an der Position des Cursors geschrieben. import board from digitalio import DigitalInOut, Direction, Pull import time import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode from adafruit_hid.keyboard_layout_win_de import KeyboardLayout kbd = Keyboard(usb_hid.devices) taster = DigitalInOut(board.D0) taster.direction = Direction.INPUT taster.pull = Pull.UP def main(): while True: if not taster.value: kbd.press(Keycode.A) time.sleep(0.09) kbd.release(Keycode.A) main() Möchte man einen großen Buchstaben schreiben, so muss man wie beim Schreiben auf der Tastatur die Shift-Taste gedrückt halten. kbd.press(Keycode.SHIFT) kbd.press(Keycode.A) time.sleep(0.09) kbd.release(Keycode.A) kbd.release(Keycode.SHIFT) Der Funktion press & release können auch mehr als nur ein Parameter vom Typ Keycode übergeben werden, somit können wir den obigen Code auch deutlich schlanker schreiben. kbd.press(Keycode.SHIFT, Keycode.A) time.sleep(0.09) kbd.release(Keycode.SHIFT, Keycode.A) Schritt 2.1 - deutsches Tastaturlayout verwenden Per Default verwendet das Adafruit Modul ein englisches / amerikanisches Tastaturlayout, somit fehlen die Umlaute und auch verschiedene Tasten sind umbelegt, zum Beispiel liegt auf der Taste Z der Buchstabe Y usw. Um dieses zu lösen, gibt es eine Python-Datei, welche wir vom GitHub Repository Neradoc / Circuitpython_Keyboard_Layouts unter /libraries/layouts/ herunterladen können. import board from digitalio import DigitalInOut, Direction, Pull import time import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode from adafruit_hid.keyboard_layout_win_de import KeyboardLayout kbd = Keyboard(usb_hid.devices) kbd_layout = KeyboardLayout(kbd) taster = DigitalInOut(board.D0) taster.direction = Direction.INPUT taster.pull = Pull.UP def main(): while True: if not taster.value: kbd_layout.write("Hier steht ein sehr langer Text!") time.sleep(0.5) main() Schritt 3 - Schreiben von Texten via Tasteraktion Möchte man längere Texte ausgeben, so kann man die zuvor bereits gezeigte Funktion write am Keyboard_Layout Objekt verwenden. kbd_layout.write("Hier steht ein sehr langer Text!") Schritt 3.1 - Dictionary für unterschiedliche Taster Wenn du mehrere Taster an deinen Mikrocontroller angeschlossen hast, dann empfiehlt es sich die Texte auszulagern. Hier bietet sich wiederum ein Dictionary an in welchem man die Texte in Schlüssel / Wertepaare auslagern kann. Im nachfolgenden Code verwende ich Touchsensoren vom Typ TTP223 welche ich dir bereits im Beitrag Arduino Lektion 92: kapazitiver Touch Sensor für den Arduino vorgestellt habe. Der Vorteil ist zusätzlich das man noch eine Rückmeldung via aufleuchten einer LED erhält und man diese Taster unter Abdeckungen anbringen kann.
Tumblr media
XIAO RP2040 mit drei Touchsensoren auf Breadboard import board from digitalio import DigitalInOut, Direction, Pull import time import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode from adafruit_hid.keyboard_layout_win_de import KeyboardLayout textbausteine = { "taster1":"Taster 1 wurde betätigt!", "taster2":"Der Taster 2 wurde gedrückt!", "taster3":"Am Taster 3 wurde ine Aktion ausgelöst!" } kbd = Keyboard(usb_hid.devices) kbd_layout = KeyboardLayout(kbd) taster1 = DigitalInOut(board.D0) taster1.direction = Direction.INPUT taster1.pull = Pull.DOWN taster2 = DigitalInOut(board.D1) taster2.direction = Direction.INPUT taster2.pull = Pull.DOWN taster3 = DigitalInOut(board.D2) taster3.direction = Direction.INPUT taster3.pull = Pull.DOWN def main(): while True: if taster1.value: kbd_layout.write(textbausteine) if taster2.value: kbd_layout.write(textbausteine) if taster3.value: kbd_layout.write(textbausteine) main()
Fazit - MacroPad mit Raspberry Pi Pico
Ein MacroPad lässt sich, wie du gesehen hast, mit dem Raspberry Pi Pico ganz unkompliziert umsetzen. Mit ein paar Tastern kannst du den hier gezeigten Code einfach nutzen und nach deinen Wünschen anpassen. Falls du anstelle von Tastern Touchsensoren verwenden möchtest, kannst du diese dezent hinter Gehäusen oder Oberflächen platzieren. So lassen sich Aktionen ausführen, ohne dass jemand bemerkt, wie sie ausgelöst werden. Read the full article
0 notes
draegerit · 10 months ago
Text
RP2040 Mikrocontroller: Klein, stark und direkt im USB-Port einsatzbereit
Tumblr media
In diesem Beitrag möchte ich dir einen kleinen Mikrocontroller mit RP2040 Chip vorstellen. Das Besondere an diesem ist, dass dieser direkt in den USB-Port gesteckt wird. Du benötigst somit kein extra Datenkabel für den betrieb. https://youtu.be/4SJ7pc-i9P8 Diesen kleinen Mikrocontroller habe ich über aliexpress.com für knapp 5 € inkl. Versandkosten erworben. Der Preis ist gemessen an der Leistung sowie dem Umfang okay, aber auch nicht besonders günstig. Wenn man diesen direkt mit dem originalen Raspberry Pi Pico vergleicht (nicht die Variante mit WiFi) dann ist dieser gleich teuer / günstig.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Aufbau des RP2040 Mikrocontrollers für den USB-Port
Dieser kleine Mikrocontroller verfügt über den RP240 Chip, welcher nachfolgende Daten hat: - Dual ARM Cortex-M0+ @ 133MHz - 264 kB SRAM - 16 MB Flash-Speicher
Tumblr media
Zusätzlich findest du auf diesem Mikrocontroller noch eine RGB LED, welche du frei programmieren kannst. Ebenso findest du eine Qwiic Schnittstelle, an welche du via I2 Sensoren & Aktoren anschließen kannst. Wenn du das Arduino Plug & Make Kit hast, dann kannst du von diesem Kit diese Komponenten auch an den Mikrocontroller anschließen.
Tumblr media Tumblr media
Natürlich findest du noch zwei Taster RESET & BOOT. Die Taste BOOT benötigst du zum Beispiel, wenn du deinen Mikrocontroller mit einer anderen Firmware Version flashen möchtest. Pinout des Mikrocontrollers Auf der Rückseite des Mikrocontrollers sind die Pins gekennzeichnet. Aufgrund der kompakten Größe sind nicht alle vom RP2040 bereitgestellten Pins am Mikrocontroller zugänglich. Meistens können die Pins direkt über Stiftleisten erreicht werden, zudem stehen zusätzliche Lötpunkte zur Verfügung.
Tumblr media
Die Lötaugen für die Zusätzlichen Pins sind nett gemeint, finde ich persönlich jedoch weniger gut geeignet. Hier wäre ggf. eine zweite Reihe mit Stiftleisten deutlich vorteilhafter. Nachfolgend das Pinout des originalen Raspberry Pi Pico, die Pinbeschriftungen 0 bis 29 findest du ebenso auf dem Mini USB Mikrocontroller.
Tumblr media
Pinout des Raspberry PI Pico
Vergleich mit dem originalen Raspberry Pi Pico
Der Raspberry Pi Pico ist bereits seit mehreren Jahren auf dem Markt und bietet seit 2023 sogar Unterstützung für WiFi und Bluetooth. Im Vergleich dazu schneidet der kleine Mikrocontroller für die USB-Buchse schlechter ab. Trotz der netten RGB-LED halte ich es für wichtiger, viele Pins für Projekte zur Verfügung zu haben.
Tumblr media Tumblr media
Für kleinere Projekte ist der Mini USB RP2040 jedoch besser geeignet, sodass die Wahl des besten Mikrocontrollers letztlich vom jeweiligen Anwendungsfall abhängt.
Programmieren des Mini USB RP2040 Development Board in der Arduino IDE
Der kleine Mikrocontroller ist für die Programmierung in der Arduino IDE vorbereitet / geflasht. D.h. du musst dir lediglich den passenden Boardtreiber installieren und kannst dann sofort loslegen. Installieren des Boardtreibers Über den internen Boardverwalter (1) der Arduino IDE suchst du zunächst nach RP2040 (2) und aus der Ergebnisliste wählst du am Eintrag "Arduino Mbed OS RP2040 Boards" die Schaltfläche INSTALLIEREN (3). Da ich bereits diesen installiert habe, steht bei mir die Schaltfläche ENTFERNEN.
Tumblr media
Wenn der Boardtreiber erfolgreich installiert wurde, dann findest du diesen unter Werkzeuge > Board: xyz > Arduino Mbed OS RP2040 Boards > Raspberry Pi Pico (siehe Grafik).
Tumblr media
Programmieren der RGB LED Die RGB LED ist am GPIO 22 angeschlossen und kann mit der Adafruit NeoPixel Bibliothek sehr einfach programmiert werden. #include #define PIN 22 //RGB LED am GPIO22 angeschlossen #define NUMPIXELS 1 //Anzahl der verbauten RGB LEDs //Objekt instanz erzeugen mit der Konfiguration Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); uint32_t colors = { pixels.Color(0, 150, 0), //grün pixels.Color(150, 0, 0), //rot pixels.Color(0, 0, 150), //blau pixels.Color(150, 150, 0), //gelb pixels.Color(255, 255, 255) //weiß }; void setup() { //begin der Kommunikation mit den NeoPixels pixels.begin(); } void loop() { //löschen der gesetzten Farbe pixels.clear(); //Schleife von 0 bis 4 //Da Arrays mit dem Index 0 beginnen muss hier mit dem //Index 0 angefangen werden und bis max. 4 durchlaufen werden. for (int i = 0; i < 5; i++) { //setzen der Farbe aus dem Array mit der Laufvariable i an dem //Index 0 der LED Stripe. pixels.setPixelColor(0, colors); //anzeigen der Farbe pixels.show(); //eine kleine Pause von 500 Millisekunden delay(500); } } Flammensensor programmieren Auf meinem Blog habe ich dir den Flammensensor bereits für den Arduino vorgestellt. Dieser reagiert, wie die Bezeichnung es erahnen lässt auf eine Flamme wie zum Beispiel von einem Feuerzeug. Der Sensor hat zwei Pins (einen analogen sowie einen digitalen) und zwei für die Stromversorgung. Im nachfolgenden Code verwende ich den digitalen Ausgang des Sensors und wenn dieser auf HIGH ist, dann ändere ich die Farbe der LED von grün auf rot. #include #define PIN 22 #define NUMPIXELS 1 #define flammeSensor 0 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { Serial.begin(9600); pinMode(flammeSensor, INPUT_PULLDOWN); pixels.begin(); } void loop() { pixels.setPixelColor(0, pixels.Color(0, 150, 0)); pixels.show(); if (digitalRead(flammeSensor) == 1){ Serial.println("Flamme erkannt"); pixels.setPixelColor(0, pixels.Color(150, 0, 0)); pixels.show(); delay(500); } }
Ausblick zum Mikrocontroller mit RP2040 Chip für den USB-Port
Im nächsten Beitrag möchte ich dir ein kleines Projekt mit diesem Mini USB Mikrocontroller vorstellen, sei also gespannt... Read the full article
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
PicoBoy Review: Dein Einstieg in die Welt der Elektronikprojekte
Tumblr media
In diesem ersten Beitrag zum PicoBoy möchte ich dir diesen vorstellen und aufzeigen, was dieser leistet und programmiert wird. Der kleine Mikrocontroller kommt mit einem RP2040 Chip und einigen Sensoren & Aktoren daher und bietet dir hier kompakt die Möglichkeit den Einstieg in die Entwicklung von Mikrocontroller zu starten.
Tumblr media
Disclaimer: Dieser Beitrag enthält meine persönliche Meinung und Erfahrung mit dem PicoBoy. Funduino hat mir das Produkt kostenfrei zur Verfügung gestellt, um ein Review zu erstellen. Meine Bewertung basiert auf meinen eigenen Eindrücken und unabhängigen Tests.
Tumblr media Tumblr media Tumblr media
Was sind die technischen Daten des PicoBoy?
Wie erwähnt hat der kleine PicoBoy einen RP2040 Chip verbaut und daher zunächst die gleichen technischen Daten wie der Raspberry Pi Pico. MikrochipRP2040, Dual-Core Arm Cortex M0+ mit bis zu 133 MHzSpeicher SRAM264 KBFlash16 MBSchnittstellenUSB-Typ-C 2x SPI, 2x I²C, 2x UART 3x 12-bit ADC (Analog Digital Converter)Sensoren & AktorenTemperatursensor, Timer (auf dem RP2040) 5-Wege-Joystick, BeschleunigungssensorDisplay1,3" schwarz/weiß OLED-Display, 128 x 64 Pixel, Typ SH1107zusätzliche Stromversorgungüber Knopfzelle CR2032 (liegt bei)technische Daten des PicoBoy mit RP2040 Chip und vielen zusätzlichen Features
Vorteile des PicoBoy
Die Vorteile des PicoBoy liegen auf der Hand, denn dieser ist fertig bestückt und getestet, somit kannst du direkt mit der Programmierung starten. Der RP2040 Chip ist schon einige Zeit auf dem Markt und so hat sich eine breite Community gebildet, welche viel Hilfe zu diesem anbietet und du als Anfänger einen leichten Einsteig bekommst. Auch ich habe hier schon diverse Beiträge veröffentlicht, welche du auf diesen leicht abgewandelt ausführen kannst. - Ampelschaltung mit LEDs, - Soundausgabe mit Micropython, Gut finde ich, die zusätzliche Stromquelle über eine Knopfzelle, somit braucht man sich darum nicht kümmern, wenn man sein kleines Projekt mal ohne PC verwenden möchte.
Nachteile vom PicoBoy
Wo Vorteile sind, sind auch Nachteile. Jedoch liegen diese im Auge des Betrachters. Mir persönlich fehlen hier ein paar digitale Aus-/Eingänge. Der RP2040 Chip hat 26 GPIOs von diesen werden für die verbauten Komponenten nicht alle benötigt und so könnte man gewiss einige nach außen führen.
Kaufen des PicoBoy im offiziellen Shop
Derzeit bekommst du den kleinen Mikrocontroller exklusiv im Shop von Funduino für derzeit 24,90 € zzgl. Versandkosten.
Tumblr media Tumblr media Tumblr media
Lieferumfang Zum Lieferumfang gehört neben dem kleinen Mikrocontroller zwei CR2032 Knopfzellen und ein kleines Putztuch für das Display.
Tumblr media
Durch die standardisierte USB-C-Schnittstelle ist es okay, wenn so ein Kabel nicht beiliegt.
Aufbau des PicoBoy
Der PicoBoy verfügt auf der Vorderseite über ein 1,3" OLED-Display und drei verschiedenfarbige SMD LEDs. Auf der Rückseite findest du den Adapter für die Knopfzelle sowie einen Schalter für den Wechsel von USB auf Batterie, eine USB-C-Schnittstelle und eine Taste für Reset und Boot.
Erster Start des PicoBoy
Wie erwähnt kannst du den PicoBoy über eine Knopfzelle mit Strom versorgen und auf diesem sind bereits 5 Demos vorinstalliert (davon 2 Spiele), welche du sofort ausführen kannst. Um diese zu starten, musst du lediglich den kleinen Schalter von USB auf BAT umstellen, kannst dann mit dem Joystick diese auswählen.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
Tetris auf dem PicoBoy Eines der Spiele ist Pictris, ein Tetris Spiel, wie man es vom Nintendo Game Boy kennt.
Tumblr media Tumblr media Tumblr media
Programmieren des PicoBoy
Der PicoBoy kann in Micropython, sowie in der Arduino IDE via C/C++ programmiert werden. Dazu müssen wir diesen je nach gewünschter Sprache flashen. Auf den nachfolgenden Seiten von Jan Schulz welcher diesen Mikrocontroller entworfen hat, wird erläutert, wie du diesen für die jeweilige Sprache vorbereitest: - Micropython - Bevor es losgeht – Vorbereitungen, - C++/Arduino - Vorbereitungen Anschluss an den PC Wenn du deinen PicoBoy an den PC mit einem passenden USB-Typ-C Datenkabel angeschlossen hast, dann wird dieser als Pico erkannt und als "Serielles USB-Gerät" eingerichtet.
Tumblr media
Vorbereiten des PicoBoy für die Programmierung in Micropython Damit ich den PicoBoy in diesem Review in Micropython programmieren kann, muss ich zunächst eine UF2-Datei für den Raspberry Pi Pico herunterladen und per Drag'n Drop über den Explorer auf diesen kopieren.
Tumblr media
Damit wir dieses jedoch machen können, müssen wir zunächst die Taste "BOOT" festhalten und dann das USB-Kabel mit dem PC verbinden. Es sollte dann ein Laufwerk im Explorer sichtbar werden, auf welchen wir dann unsere UF2-Datei mit der Firmware für Micropython kopieren können. Die UF2-Datei für den RP2040 bekommst du für einen Raspberry Pi Pico, mit und ohne WiFi / Bluetooth Support. In unserem Fall benötigen wir diese ohne die drahtlosen Schnittstellen. Unter https://micropython.org/download/RPI_PICO/ findest du eine Liste mit verfügbaren Firmwaredateien.
Tumblr media
Ich empfehle dir eine Datei aus dem Abschnitt "Release" dieses sind offizielle Dateien welche getestet sind. Die Dateien aus einem "Nightly builds" sind Entwicklungsstände, welche Features enthalten können, aber auch Fehler.
Thonny IDE zum Flashen des PicoBoy nutzen
Man kann auch die Thonny IDE zum Flashen des PicoBoy bzw. des RP2040 nutzen. Wie du das machst, zeige ich dir in nachfolgendem kurzen YouTube-Video. https://youtu.be/haqcy8fBg8k
Programmieren in der Thonny IDE
Das Tool Thonny kannst du dir unter https://thonny.org/ für Microsoft Windows, Linux und macOS kostenfrei herunterladen. In dieser Entwicklungsumgebung (kurz IDE) kannst du deinen Mikrocontroller recht einfach programmieren und Bibliotheken dazuladen (zbsp. für das OLED-Display).
Tumblr media
Einrichten der Thonny IDE für den PicoBoy
Tumblr media
Wenn du das Tool gestartet hast, dann musst du unten rechts einen Interpreter wählen.
Tumblr media
Danach musst du die Art des Interpreters wählen, in meinem Fall habe ich den PicoBoy für Micropython geflasht und muss hier den Eintrag "MicroPython (Raspberry Pi Pico)" auswählen.
Tumblr media
Wenn nun der Mikrocontroller korrekt erkannt wurde, sollte in dem Reiter "Kommandozeile" die nachfolgende (graue) Ausgabe erfolgen. Ggf. musst du in der Toolbar ein bis zweimal auf das Stop Symbol klicken. Erstellen einer Datei für das Programm Bei der Entwicklung mit Micropython gibt es zwei wichtige Dateien: - code.py - boot.py Die Datei boot.py wird geladen, sobald der Mikrocontroller Strom erhält, d.h. alles, was du darin schreibst, wird sofort ausgeführt. Die Datei code.py wird über eine IDE wie zbsp. Thonny gestartet. Probleme mit der Datei boot.py Ein Problem mit der Datei boot.py kann auftreten, wenn du keinen Ausgang für dein Programm definiert hast, quasi dieses in einer Endlosschleife läuft. Dann musst du ggf. deinen Mikrocontroller neu flashen, damit du deinen Code, welchen du hoffentlich vorher auf dem PC gespeichert hast, neu aufspielen und ändern kannst. Daher ist diese Datei wirklich nur für finale Stände deines Programmes sinnvoll. Erstellen der Datei code.py auf dem PicoBoy Zum Erstellen einer Datei auf dem PicoBoy gibt es zwei Wege. Beide funktionieren ähnlich und unterscheiden sich nur wenig. Erstellen einer Datei über die Toolbar
Tumblr media
In der Toolbar findest du das Icon "Neu", ein Klick auf dieses erzeugt einen neuen Reiter, in welchem wir nun unseren Code schreiben können.
Tumblr media
Wenn wir dann die Schaltfläche "Speichern" klicken oder Strg+S betätigen, erscheint ein Dialog, in welchem wir den Ort wählen müssen.
Tumblr media
Im neuen Dialog vergeben wir dann einen Dateinamen und bestätigen diesen mit der Schaltfläche "OK". Erstellen einer Datei über das Kontextmenü
Tumblr media
Im Bereich "Raspberry Pi Pico" klicken wir die rechte Maustaste und wählen dann aus dem Kontextmenü den Eintrag "Neue Datei..." aus.
Tumblr media
Im neuen Dialog geben wir dann den gewünschten Dateinamen "code.py" ein und bestätigen dieses mit der Schaltfläche "OK". Es wurde soeben ein neuer Reiter "*" erzeugt. Das Sternchen symbolisiert ungespeicherte Dateien!
Tumblr media
Sobald diese Datei gespeichert wird, wird diese auf dem Mikrocontroller erzeugt. Ausführen der Datei code.py
Tumblr media
Die erzeugte Datei können wir über die Toolbar mit der Schaltfläche "Aktuelles Skript ausführen" oder mit der Taste F5 ausführen.
Tumblr media
Wenn wir Änderungen durchführen möchten, dann muss zunächst das aktuelle Skript über die Schaltfläche "Stopp/Restart ausführen" beendet werden.
Programmierbeispiele für den PicoBoy
Auf der Seite https://picoboy.de/micropython/eins-nach-dem-anderen-das-erste-programm/ findest du zwei sehr gut erläutertes Beispiel, wie du die LEDs und das OLED-Display programmierst. Sowie findest du auch noch viele weitere Beispiele und Erläuterungen.
Fazit
Als Fazit zu dem PicoBoy ziehe ich, dass dieser Mikrocontroller mit seinen Features sehr cool ist und einiges an Potential bietet. Im nächsten Beitrag zum PicoBoy werde ich dir weitere Beispiele zeigen, welche in den Schwierigkeitsstufen von einfach bis komplex steigen. Sei also gespannt. 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
techcree · 4 years ago
Text
3D Druck R2D2 (Teil6)
Tumblr media
Wenn man damit erstmal angefangen hat, dann gibt es kein halten mehr. Jetzt erwacht der R2D2 langsam zum Leben. Immer weiter immer mehr...
Dank dem Raspberry Pi Pico Microcontroller leuchten schon die ersten LED's. Jetzt kann der R2D2 schon einmal in drei Farben blinken. Platz im inneren ist ja genug. Eine kleine Böhrung im Bodenbereich sorgt für den Durchlass eines USB-Kabels welches den Microcontroller schon einmal mit Strom versorgt und über das die Programmierung erfolgen kann.
Dazu verwende ich natürlich die Thonny IDE, die es mir erlaubt den Raspberry Pi Pico mit Micropython Scripten zu betanken. Da der Controller es ermöglicht die Datei als main.py abzuspeichern startet das Script automatisch sobald der Pico strom bekommt. Da der Pico einige GPIO Anschlüsse noch frei hat, kann ich nun nach und nach weitere Lichteffekte einbauen und so den R2D2 immer aktiver werden lassen. Ein Soundmodul steht noch auf dem Plan und den Microcontroller kabelunabhängig machen.
Tumblr media Tumblr media
Und jetzt hat der R2D2 auch Rollschuhe bekommen. Er wird zwar nie elektirch angetrieben fahren können, aber nun kann man ihn schonmal auf dem Tisch hin- und herrollen.
Tumblr media
Alle Beiträge dieser Serie zum meinem R2D2 Projekt findet Ihr im Blog übrigens [hier]. Schauen wir mal wo das noch hinführt! Also weiter geht's.
0 notes
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
techcree · 3 years ago
Text
Raspberry Pi Pico in Verbindung mit einem Servo SG90 - cool!
Tumblr media
Vor Kurzem sind bei mir ein paar neue SG90 Servos eingetroffen und es ermöglicht viele neue interessante Projekte in Verbindung mit einem Pico!
Ich bin ziemlich begeistert was man mit einem raspberry Pi Pico oder dem Pico W (mit WLAN Module) alles so machen kann. Und in der Kombination mit einem servo Motor, wie bspw. dem SG90 Servo steht der Realisierung zahlreicher Projekte nichts mehr im Wege. Zudem sind die Koosten für die Anschaffung gering und so eignet sich der Pico und zahlreiches Zubehör für jeden Geldbeutel und auch Schulen, welche etwas Besonderes im Computerunterricht anbieten möchten. Der SG90 Servo beispielsweise benötigt nicht viel Strom und so kann der Pico den Servo mit Strom versorgen auch wenn nur ein Akku-Pack zur Verfügung steht.
Tumblr media
Der Pico der Raspberry Pi Foundation UK verfügt zudem über die Möglichkeit dessen eigene Temperatur-Daten zu nutzen. So kann man auch bspw. sich eine Temperaturanzeige über einen SG90 Servo bauen. Den Code findest Du übrigens hier: https://github.com/techcree/servo_temperatur.git und natürlich kannst Du den Code frei für Deine privaten Projekte oder ein Schulprojekt nutzen!
Tumblr media
Eines meiner Lieblingsprojekte ist mein R2D2 Fanprojekt bei dem ich den kleinen Star aus der STAR WARS Filmreihe nachgebaut habe. Dabei habe ich mit einem Raspberry Pi Pico dem Modell Leben eingehaucht, indem ich mit einem Servo seinen Kopf drehe und die LED's blinken lasse. Zudem können auf Knopfdruck die typischen R2D2 Geräusche über ein eingebautes Sound-Modul abgespeilt werden.
Mit einem Pico oder Pico W und einem passenden Servo und etwas Micropython Programmierung kann man jede Menge toller Projekte umsetzen. Wenn man dann auch noch einen 3D Drucker im Zugriff hat kann es auch ein R2D2 oder irgend ein anderes Modell-Projekt sein. ich finde es ist eine toll Möglichkeit für Menschen jeder Altersstufe und auch wenn man nicht viel Geld ausgeben kann tolle Dingen zu tun. Und man lernt dabei auch sehr viel. Also keine Scheu - los geht's. Was wird eurer nächstes Projekt sein?
Übrigens: Weitere Infos findest Du auf: https://www.stskanta.de/themen/picowservo
Und zahlreiche Code Beispiele auf meiner GitHub Seite: https://github.com/techcree
0 notes