Indholdsfortegnelse:
- Trin 1: Hvad vi har brug for til dette projekt
- Trin 2: Kredsløbet
- Trin 3: Breadboard -version af kredsløbet
- Trin 4: Indlæsning af skrifttype
- Trin 5: Tilføjelse af ekstra drivere
- Trin 6: Konfigurer enhederne
- Trin 7: Definer tegn og tegn vandrette og lodrette linjer
- Trin 8: Kasser, blokke og skrå linjer
- Trin 9: Gradsymbol, fortegnelse, søjlediagram og cirkel
- Trin 10: Affaldssamling, titler og cirkler
- Trin 11: Demoer af linjer
- Trin 12: Hovedløkken: søjlediagram og definerede tegn
Video: Grafik på en SSD1306 I2C OLED 128x64 -skærm med CircuitPython Brug af en Itsybitsy M4 Express: 13 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
SSD1306 OLED -skærmen er en lille (0,96 ), billig, bredt tilgængelig, I2C, monokrom grafisk skærm med 128x64 pixels, som let kan tilsluttes (kun 4 ledninger) til mikroprocessorudviklingskort som en Raspberry Pi, Arduino eller Adafruit Itsybitsy M4 Express, CircuitPlayground Express eller andre CircuitPython -enheder. Drivere kan downloades fra internettet.
Grafiske rutiner for Arduinos har været tilgængelige i nogen tid, men ikke for andre udviklingssystemer.
De grundlæggende enhedsdrivere tillader brugere at:
- Ryd skærmen til sort eller hvid. oled.fill (c)
- Skriv en tekststreng til skærmen på en bestemt (x, y) position oled.text ("Tekst", x, y, c)
- Tegn en prik på en bestemt (x, y) position oled. Pixel (x, y, c)
- Indlæs en billedfil på skærmen. (Ikke brugt i dette projekt)
- Opdater displayet oled.show ()
Denne instruktør vil med enkle procedurer demonstrere, hvordan man tegner interaktivt:
- linjer
- cirkler
- hule kasser
- solide blokke
- foruddefinerede tegn
Jeg vil bruge en Adafruit Itsybitsy M4 Express til at demonstrere metoderne, men koden i Python kan let portes til andre udviklingssystemer.
Jeg valgte Itsybitsy M4 til denne demonstration, fordi den er billig, kraftfuld, let at programmere, indeholder analog og digital input/output, har masser af hukommelse, let har fundet dokumentation og hjælpefora på Internettet, er meget let at oprette i starten og understøtter CircuitPython, en version af Python, der er ideel til dem, der er nye inden for kodning.
Når du har konfigureret din Itsybitsy og SSD1306, er dette en meget enkel brødbrætopbygning. Der er ingen indtastning, alle filerne kan downloades.
Dette er et billigt og let projekt at bygge, men introducerer nogle mellemliggende/avancerede ideer. Jeg håber du vil prøve det. Jeg var imponeret over dette lille display.
Trin 1: Hvad vi har brug for til dette projekt
Hardware:
- SSD1306 I2C mono -skærm 128x64 pixels
- Itsybitsy M4 Express
- microUSB til USB -kabel - for at programmere kortet
- Brødbræt
- 1 10K Ohm potentiometer
- 1 knapkontakt
- tilslutningskablet - forskellige farver kan hjælpe
- Computer (for at skrive koden og uploade den) - en meget gammel bærbar computer vil gøre.
Software:
Mu -editor - til at skrive kode og uploade scriptet til Itsybitsy
Opsætning af Itsybitsy forklares her:
Den seneste version af CircuitPython:
CircuitPython -biblioteker:
Mu Editor:
Trin 2: Kredsløbet
Dette er et meget enkelt kredsløb at oprette. Den næste side illustrerer det færdige brødbræt med farvede tråde for at gøre tingene lette.
Trin 3: Breadboard -version af kredsløbet
Der er strømskinner i toppen og bunden af brødbrættet. Tilslut +ve -skinnerne med en rød ledning. Med sort ledning forbindes de -ve skinner sammen.
Slut Itsybitsys 3V -pin til den nederste +ve -skinne - rød ledning. (Kolonne 12)
Tilslut G (GND) pin på Itsybitsy til den øverste skinne - sort ledning. (Kolonne 12)
I kolonne 33 og 34 forbindes SSD1306 VCC- og GND -benene til de øverste strømskinner.
Slut SCL -stifterne sammen med en lyserød ledning.
Slut SDA -stifterne sammen med en grå ledning.
Med røde og sorte ledninger forbindes potentiometerets ydre ben til de øvre strømskinner og med grøn ledning forbindes midterstiften (visker) til A5 på Itsybitsy.
Forbind den ene side af knapkontakten med en lilla ledning til pin 2 og tilslut den anden side til en GND -skinne med en sort ledning.
Trin 4: Indlæsning af skrifttype
Download skrifttypefilen og træk den til CIRCUITPY -drevet. (Dette er Itsybitsy.)
Dobbeltklik på mappen lib, og se på listen over drivere, du allerede har indlæst.
Trin 5: Tilføjelse af ekstra drivere
Du skal bruge følgende i mappen lib:
- simpleio.mpy
- adafruit_bus_enhed
- adafruit_framebuf.mpy
- adafruit_ssd1306.mpy
Hvis de mangler, skal du trække dem ind i mappen fra den seneste tilgængelige version.
Du er nu klar til at downloade scriptet.
Når den er indlæst i Mu -editoren, kan du gemme den på Itsybitsy med navnet main.py.
Programmet kører gennem en række demonstrationer af linjer, cirkler, et dynamisk søjlediagram og viser definerede tegn. Drej bare langsomt på gryden, og tryk på knappen, og hold den inde for at styre displayet.
De følgende sider giver mere information om, hvordan programmet fungerer.
Trin 6: Konfigurer enhederne
Denne første sektion indlæser alle bibliotekerne og opsætter SSD1306, potentiometer og knapkontakt på de korrekte ben.
Trin 7: Definer tegn og tegn vandrette og lodrette linjer
Dette afsnit opsætter de foruddefinerede tegn. De er 5 prikker brede og 8 prikker høje. Hver prik i definitionen trækker 4 prikker på skærmen, så de vises bedre.
Vandrette og lodrette linjer er lette at tegne med en sløjfe. Du skal bare huske, at du har brug for den ekstra prik i slutningen. En linje fra (0, 7) til (5, 7) skal bruge 6 prikker: med x lig med 0, 1, 2, 3, 4 og 5 på skift.
Den grundlæggende dot -kommando er oled. Pixel (x, y, farve) - 0 er sort og 1 er hvid.
Oprindelsen (0, 0) er øverst til venstre på skærmen, 0 - 127 pixels vandret (fra venstre mod højre) og 0 - 63 lodret (top til bund).
Trin 8: Kasser, blokke og skrå linjer
Kasser er bygget af vandrette og lodrette linjer.
Blokke er bygget af flere vandrette linjer.
For skrå linjer kontrollerer vi først, at koordinater er givet mest venstre først. Hvis ikke bytter vi dem om, da stregen bliver trukket fra venstre mod højre.
Vi beregner derefter hældningen og bruger den til at indstille y -værdien for hver værdi på x.
Display (t) -proceduren gør den opdaterede skærm synlig og venter på en kort forsinkelse, t sekunder.
Trin 9: Gradsymbol, fortegnelse, søjlediagram og cirkel
Gradsymbolet er oprettet ud fra 4 pixels.
Justeringsrutinen () tilføjer ekstra mellemrum foran tallet for at højrejustere korte værdier i et fast mellemrum.
Grafen (v) rutinen tegner et vandret søjlediagram, der angiver den valgte procent. Værdien skrives i højre ende ved hjælp af 'T' til at repræsentere 100 (Ton eller Top).
Cirkler kræver en vis trigonometri, så vi skal importere det matematiske bibliotek i begyndelsen af scriptet. Vi bruger sin, cos og radianer til at beregne x- og y -forskydningerne fra midten, da en radius roteres 90 grader. Punkter er afbildet i hver af de fire kvadranter for hver beregning af forskydningerne.
Trin 10: Affaldssamling, titler og cirkler
Disse instruktioner viser skærmrensning til sort og hvid, skriver tekst til skærmen og bruger gc () 'skraldesamlingsrutinen' til at frigøre plads. Værdien viser, at der er masser af plads til et meget større script.
Programmet tegner derefter cirkler med et fælles center og med bevægelige centre. En ganske hurtig rutine i betragtning af den nødvendige beregning.
Overskriften til linjedemoen skrives derefter.
Trin 11: Demoer af linjer
Denne rutine giver virkelig line () rutinen en træning. Radiale linjer tegnes fra hvert af de fire hjørner af displayet med forskellige mellemrum, der danner mønstre.
Trin 12: Hovedløkken: søjlediagram og definerede tegn
Dette er programmets hovedsløjfe. Værdierne fra potentiometeret ændrer de viste værdier og ændrer længden af søjlediagrammet.
Hvis knappen holdes nede, skiftes de definerede tegn ud, ligesom 1/0 og True/False. Denne sløjfe kører ret langsomt, fordi tegning af de foruddefinerede tegn er en langsom proces. Du kan fremskynde tingene ved at kommentere nogle af dem.
Der er ingen temperatursensor monteret for at holde denne demo enkel, så '?' vises i stedet for en værdi i linje 190.
Anbefalede:
Brug af Pimoroni Enviro+ FeatherWing med Adafruit Feather NRF52840 Express: 8 trin
Brug af Pimoroni Enviro+ FeatherWing Med Adafruit Feather NRF52840 Express: Pimoroni Enviro+ FeatherWing er et bræt fyldt med sensorer designet til at arbejde med Adafruit Feather -serien. Det er et nyttigt sted at starte for alle, der er interesseret i miljøovervågning, atmosfærisk forurening og data -munging. JEG
Brug af en 4x4 -tastatur med CircuitPython: 4 trin
Brug af en 4x4 -tastatur med CircuitPython: Dette billige tastatur tilbyder en enkel metode til numerisk input til dine CircuitPython -projekter. Jeg vil bruge den med en Adafruit ItsyBitsy M0 express. Du skal bruge: Tastatur - mit er 4x4ItsyBitsy M0 Express eller lignende boardMu Editor installeret på
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C - Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: 5 trin
Neopixel Ws2812 Rainbow LED Glød Med M5stick-C | Kører Rainbow på Neopixel Ws2812 Brug af M5stack M5stick C Brug af Arduino IDE: Hej fyre i denne instruktion vil vi lære at bruge neopixel ws2812 LED'er eller led strip eller led matrix eller led ring med m5stack m5stick-C udviklingstavle med Arduino IDE, og vi vil lave et regnbuemønster med det
CircuitPython Med en Itsybitsy M4 Express 1: Opsætning: 9 trin
CircuitPython Med en Itsybitsy M4 Express 1: Opsætning: Ny i kodning? Kun brugt Scratch og ønsker at gå videre til et tekstsprog, der giver let adgang til fysisk computing med lysdioder, switche, displays og sensorer? Så er dette måske noget for dig. Jeg har bemærket, at dette websted indeholder mange instruktionsmuligheder ab
Flappy Bird på ATtiny85 og OLED Display SSD1306: 6 trin (med billeder)
Flappy Bird på ATtiny85 og OLED Display SSD1306: Hej alle sammen, I dag vil jeg vise dig en grundlæggende klapfuglklon, som jeg har oprettet, og hvordan du kan lave et lignende spil. Jeg vil i det væsentlige gennemgå min kode med dig og forklare, hvordan det fungerer hvert trin på vejen. Dette spil er bygget til at ødelægge