Innholdsfortegnelse:

Én POV -skjerm for å styre dem alle !: 10 trinn (med bilder)
Én POV -skjerm for å styre dem alle !: 10 trinn (med bilder)

Video: Én POV -skjerm for å styre dem alle !: 10 trinn (med bilder)

Video: Én POV -skjerm for å styre dem alle !: 10 trinn (med bilder)
Video: Alle mot En 2024, November
Anonim
Image
Image
Én POV -skjerm for å styre dem alle!
Én POV -skjerm for å styre dem alle!
Én POV -skjerm for å styre dem alle!
Én POV -skjerm for å styre dem alle!

Motivasjon

Jeg liker veldig godt POV -skjermer! De er ikke bare interessante å se på, men også en stor utfordring å utvikle dem. Det er en virkelig tverrfaglig oppgave. Du trenger mange ferdigheter: mekanisk, elektronisk, programmering og så videre!

Jeg har alltid ønsket å bygge mitt eget og gjøre det så stort og så dyktig som mulig. For ett år siden gjorde jeg det! Det var mye arbeid og veldig komplekst å gjøre. Jeg liker slike utfordringer. Så det var gøy;-)

Nå vil jeg også at du skal bygge en selv. Du kan ta dette som en guide for å utvikle din egen, eller bare følge instruksjonene for å få en kopi av min POV -skjerm. Jeg skal prøve å påpeke alle utfordringene jeg måtte overvinne for å lage mine.

Jeg gjentok designet mitt for å gjøre det så enkelt som mulig å bygge om. Det er ingen SMT -komponenter, og alt bør loddes av nybegynnere. Ikke misforstå, det er fortsatt en veldig stor utfordring å sette alt sammen. Men det burde være mulig!

ADVARSEL: Dette prosjektet inneholder lysdioder som oppdateres med høye hastigheter og potensielt kan utløse anfall for personer med lysfølsom epilepsi

Hvordan virker det?

Her kan du lese hvordan en POV -skjerm fungerer generelt.

Først trenger vi en kilde som streamer et videosignal. I det originale designet gjorde jeg det over WIFI. Jeg skrev et program for å fange skjermen på en datamaskin og sende disse dataene til en ESP8266 via WIFI. Problemet med denne tilnærmingen er at ESP8266 var for treg og WIFI -båndbredden var akkurat nok til 16 FPS. Så nå bruker vi en ESP32. Jeg tenkte at alle problemer er løst, men det viste seg at ESP32 heller ikke tilbyr mer båndbredde enn WIFI enn ESP8266. ESP32 har imidlertid nok beregningskraft til å dekode en videostrøm. Så jeg endte med å sende JPEG -bilder over WIFI til ESP32. Derfor er ESP32 vert for et nettsted. På dette nettstedet kan du velge bilder eller videoer, og nettstedet vil deretter streame JPEG -filer til ESP32. JPEG -dekoding trenger mye minne, så vi har et problem der også. Men det fungerer for øyeblikket. Kanskje jeg kommer med en bedre løsning senere.

Deretter må vi kontrollere lysdiodene selv. For at dette skal fungere må vi vite den nøyaktige posisjonen til lysdiodene hvert øyeblikk. Derfor la jeg til en Hall -effektsensor. Hver rotasjon passerer den en magnet og muliggjør dermed deteksjon. Deretter måler vi rotasjonstiden. Vi antar at neste rotasjon vil ta samme tid. Derfor kan vi beregne posisjonen vår. Denne prosessen gjentas om og om igjen. For å kontrollere lysdiodene bruker vi en FPGA. Vi kan også bruke en mikroprosessor, men det vil sannsynligvis gå for sakte. De mest ytre lysdiodene må oppdateres rundt 10.000 ganger i sekundet. En FPGA klarer enkelt oppgaven og vil gjøre det med mindre rystelser.

Hvis lysdiodene må oppdateres så ofte, trenger vi også raske lysdioder. I min opprinnelige design brukte jeg APA102 lysdioder. De har en oppdateringsfrekvens på rundt 20KHz. Jeg prøvde å få LED -strips med disse lysdiodene, men den elektroniske selgeren sendte meg SK9822 -er og ville fortelle meg at de er de samme (skjedde to ganger …) Så vi vil bruke SK9822. De har bare en oppdateringsfrekvens på 4,7 kHz, men dette vil forhåpentligvis være nok. De har også en litt annen protokoll. Bare vær oppmerksom. Så ESP32 skyver bilderammen til FPGA. FPGA kontrollerer deretter lysdiodene.

Nå trenger lysdiodene bare å rotere. Derfor bruker vi en likestrømsmotor. Denne motoren styres over et PWM -signal fra en ESP8266. ESP8266 er også koblet over WIFI til ESP32. Derfor trenger vi bare en sensor for å måle rotasjonshastigheten. I det originale designet brukte jeg to.

Mer informasjon om systemet finner du i videoen min om det originale designet.

Verktøy

Jeg brukte følgende verktøy:

  • 3D -skriver
  • Loddejern
  • Varmt lim
  • superlim
  • Micro USB -kabel
  • Saks
  • Drill + trebor 3 4 8 og 12 mm
  • Skrujern
  • Flat tang
  • Sidekutter
  • Wire stripper
  • Maling forsyninger
  • Sandpapir

Rekkefølge

Jeg åpnet en TINDIE -butikk. Så du kan kjøpe et sett hvis du vil og hjelpe meg med å gjøre flere slike prosjekter;-)

OSH

Som alltid er alt du ser her publisert som åpen kildekode.

Oppdateringer

Det er noen ting jeg vil forbedre i fremtiden:

  • Høyere fargeoppløsning fra 12 bit til 24 bit => derfor trenger vi en FPGA med mer RAM =>

    Cmod A7, de er pin-kompatible:-)

  • ESP32 med PSRAM for å unngå minneproblemer
  • Løs penselproblemet …

Rekvisita

Skreddersydde deler

Du må bestille dem eller bestille et sett fra meg!

1 * Hoved -PCB (gerber -filer er under mappen gerber main.zip)

1 * Motor Driver PCB (gerber -filer er under mappen gerber motor.zip)

4 * Corners 3D 1 Print (stl -filen er under mappen 3D corner.stl)

1 * Main PCB Holder 3D 3 Print (stl -filer er under mappen 3D holder1.stl, holder2.stl, holder3.stl)

1 * Børsteholder 3D 2 Skriv ut (stl -filer er under mappen 3D brush1.stl og brush2.stl)

Standard deler

Vær forsiktig, noen av koblingene inneholder pakker med 10 eller 100 stykker.

1m * SK9822 LED -stripe med 144 LED/m

1 * Cmod S6 FPGA

1 * Geekcreit 30 -pinners ESP32 -utvikling

1 * Geekcreit D1 mini V2.2.0 ESP8266

4 * 74HCT04

5 * DC-DC 5V 4A

1 * likestrømsmotor 775

44 * 100nf 50V

9 * 220uf 16V

10 * Neodymmagnet 10mmx2mm

1 * Hall effekt sensor

2 * Carbon Bruches Dremel 4000

2 * motorbørster

2 * Kulelager 6803ZZ

2 * Motorfeste 775

2 * DC -kontakt 5,5 x 2,1 mm

1 * strømforsyning

1 * Knapp 8 mm

2 * XT30PB plugg hann og hunn PCB

2 * XT30 plugg mannlig og kvinnelig kabel

2 * 130Ohm 1/4W motstand

2 * MOSFET IRF3708PBF

2 * 1N5400

1 * Header for enkelt rad

1 * kvinnelig topptekst

1 * kabel 30AWG

1 * kabel 22AWG

Jernvareforretning

1 * MDF 500 mm x 500 mm x 10 mm

1 * MDF 100 mm x 500 mm x 10 mm

4 * MDF 200 mm x 510 mm x 10 mm

1 * akrylglass 500mm x 500mm x 2mm

12 * Metallhjørne 40mm x 40mm x 40mm

40 * Treskrue 3 mm x 10 mm

6 * M3 avstandsstykke 12 mm

M3 og M4 skruer

3m * Kabel 2,5 mm2 enkelttråd/ stiv

Svart maling til MDF Wood

Byggetid: ~ 10 timer

Byggekostnad: ~ 300 €

Trinn 1: Last ned filer

Last ned filer
Last ned filer

For å starte må vi først laste ned alt som trengs for dette prosjektet.

Gå til utgivelsessiden for depotet her.

Last deretter ned Release.zip fra den siste versjonen og pakk den ut på datamaskinen.

Hver gang jeg refererer til en fil i denne instruksen, finner du den der;-)

Trinn 2: Programmer fastvare

Trinn 2.1: Program FPGA

For å programmere FPGA må vi installere en programvare fra xilinx:

For Windows 10 må du installere: ISE Design Suite for Windows 10 (~ 7 GB)

For Windows 7 eller XP kan du installere: Lab -verktøy (~ 1 GB)

Etter å ha installert Open ISE iMPACT og klikk "Nei" hvis du blir spurt og også "Avbryt" for et nytt prosjektskjema. Koble til FPGA Board Cmod S6 og vent til driverne installeres. Dobbeltklikk på grenseskanning. Høyreklikk deretter på det nye vinduet og velg "Initialize Chain". Klikk "Nei" igjen og lukk det nye skjemaet. Nå skal du se et symbol "SPI/BPI", dobbeltklikk på det. Velg filen "SPIFlash.mcs". I det nye skjemaet velger du "SPI PROM" og "S25FL128S" og databredde "4". Klikk "OK". Klikk deretter på "FLASH" -symbolet igjen. Det skal være grønt nå. Trykk deretter på "Program". Klikk "OK" på det nye skjemaet og vent. Dette kan ta noen minutter.

Godt gjort, FPGA er klar;-) Du kan koble den fra igjen!

Trinn 2.2: Programmer ESP32

Installer esp32 -kjernen på Arduino ID, du kan følge denne opplæringen. V1.0.2 anbefales.

Nødvendige biblioteker:

  • AutoPID av Ryan Downing V1.0.3 (kan installeres over biblioteksjefen)
  • ArduinoWebsockets av Gil Maimon, modifisert av meg (last ned zip -filen og installer den)

Åpne filen povdisplay.ino i mappen povdisplay.

Velg under verktøykortet: "DOIT ESP32 DEVKIT V1". La de andre innstillingene være som de er.

Koble esp32 -kortet over USB og last ned programmet.

Trinn 2.3: Program ESP8266

Installer ESP8266 -kjernen på Arduino ID, du kan følge denne opplæringen.

Ingen bibliotek nødvendig!

Åpne filen motordrive.ino i mappen motordrive.

Velg under Verktøykort: "Generisk ESP8266 -modul". La de andre innstillingene være som de er.

Koble esp8266 -kortet over USB og last ned programmet.

Trinn 3: Lodde -PCB

Image
Image
Lodd PCB
Lodd PCB
Lodd PCB
Lodd PCB
Lodd PCB
Lodd PCB

TRINN 3.1 Loddemotordriver PCB

Følgende komponenter er loddet:

  • WEMOS1 (Geekcreit D1 mini V2.2.0 ESP8266)

    • Lodd pinnehodene til WEMOS -kortet
    • Lodd de kvinnelige hodene på kretskortet
  • DCDC (DC-DC 5V 4A)

    • Bruk 4 pinner fra pinnehodet og lodd DC-DC-omformeren direkte til brettet
    • Vær forsiktig med retningen, den skal matche silkeskjermen
  • CN1 (DC -kontakt 5,5 x 2,1 mm)
  • 1N5400

    Vær forsiktig med orienteringen, den hvite linjen på dioden må være på samme side som linjen på silkeskjermen

  • 220u (220uf 16V)

    Vær forsiktig med orienteringen, den hvite linjen må være på motsatt side av pluss på silkeskjermen

  • R1 og R1 (130Ohm 1/4W motstand)
  • Q1 og Q2 (MOSFET IRF3708PBF)

    Vær forsiktig med orienteringen, metallbaksiden må være på siden med den tykke linjen på silketrykket

  • MOTOR (XT30PB Plug Female PCB)

    Vær forsiktig med orienteringen, den runde enden må være på siden merket på silketrykket

  • LED og SMAK (XT30PB Plug Male PCB)

    Vær forsiktig med orienteringen, den runde enden må være på siden merket på silketrykket

TRINN 3.2 Hovedkort for lodding

Følgende komponenter er loddet:

  • CMODS6 (Cmod S6 FPGA)

    Det bør være pinhoder inkludert. Lodde dem på PCB

  • ESP (Geekcreit 30 Pin ESP32 Development)

    Bruk Female Headers og lodd dem på PCB

  • DCDC1 - DCDC4 (DC -DC 5V 4A)

    • Bruk 4 pinner fra pinnehodet og lodd DC-DC-omformeren direkte til brettet
    • Vær forsiktig med retningen, den skal matche silkeskjermen
  • POWER_TEST (DC -kontakt 5,5 x 2,1 mm)
  • D1 (1N5400)

    Vær forsiktig med retningen, den hvite linjen på dioden må være på samme side som linjen på silkeskjermen

  • POWER (XT30PB Plug Female PCB)

    Vær forsiktig med orienteringen, den runde enden må være på siden merket på silketrykket

  • C1, C3, C4, C6, C7, C9, C10, C11 (220uf 16V)

    Vær forsiktig med orienteringen, den hvite linjen på kondensatoren må være på motsatt side av plusset på silkeskjermen

  • C2, C5, C8, C12 (100nf 50V)
  • IC1 - IC4 (74HCT04)

    Vær forsiktig med å justere utskjæringen av IC -en med merkingen på silketrykket

TRINN 3.3 Varmt lim

Hovedkortet vil rotere veldig fort. Så vi må lime kondensatorene (C1, C3, C4, C6, C7, C9, C10, C11) på kretskortet for å unngå problemer. Bare bruk et varmt lim for det.

Trinn 4: Forbered strimler

Image
Image
Forbered strimler
Forbered strimler
Forbered strimler
Forbered strimler
Forbered strimler
Forbered strimler

TRINN 4.1 Skjær stripen i biter

Fjern vannbeskyttelsen med saks.

Vi trenger fire vinger og hver fløy inneholder fire grupper. En WING er spesiell, den har en LED mer enn de andre.

VING1:

  • G1: 5 lysdioder (mest ytre gruppe)
  • G2: 6 lysdioder
  • G3: 8 lysdioder
  • G4: 14 lysdioder

WING2 - WING4:

  • G1: 5 lysdioder (mest ytre gruppe)
  • G2: 6 lysdioder
  • G3: 8 lysdioder
  • G4: 13 lysdioder

Derfor trenger vi 129 lysdioder og stripen vår har 144 så vi har en viss toleranse for feil kutt;-) I verste fall kan du lodde kuttet.

Klipp så sentrert som mulig mellom lysdiodene.

TRINN 4.2 Loddekabler til LED -stripen

På hvert av LED -stripesegmentene loddes to 30AWG -ledninger på klokken og datapinnen. Dette er de to pinnene i midten. Vær forsiktig med å lodde dem på inngangen til LED -stripen. Normalt viser piler retningen på datastrømmen. Kablene skal være rundt en halv meter lange

Klipp bort alt fra den andre siden av strippen for å unngå kort mellom data og klokkepinner for de forskjellige gruppene når vi setter sammen VINGENE.

TRINN 4.3 Loddekondensatorer

På hver gruppelodder to kondensatorer (100nf 50V) på baksiden av LED -stripesegmentene i hver ende. For G4 loddes også en i midten. Kablene skal gå under kondensatorene for å etterlate litt plass, men ikke for mye.

TRINN 4.4 Sett sammen VINGENE

For hver WING leder ledningene fra G1 til G2 og deretter disse ledningene gjennom G3 og det samme med G4.

TRINN 4.4 Lodd gruppene sammen

Nå trenger vi kobberkabelen (kabel 2,5 mm2 enkelttråd/stiv). Skjær den i åtte stykker på rundt ~ 30 cm lengde. Fjern isolasjonen av alle ledninger. Rett opp kablene så mye som mulig. Du kan fikse den ene enden i en skrueklemme og holde den andre med flat tang og deretter slå tangen med en hammer.

Fest kabelen på den ene siden for å gjøre det lettere å jobbe med den. Deretter lodder du den første gruppen. Juster LED -stripesegmentet med kabelen og lodd den på den ene siden til de to kondensatorene. Kabelen skal hvile flatt på LED -stripen. Fortsett med neste gruppe. Vær forsiktig med at avstanden mellom to LED -grupper også er 7 mm. Til slutt skal alle lysdioder ha samme gap mellom dem. Fortsett med de to andre gruppene. På den siste gruppen loddes alle tre kondensatorene til ledningen.

Klipp deretter kabelen på enden. Fortsett med en annen kabel på den andre siden av stripen.

Nå er den første VINGEN ferdig! Gjør det samme for de tre andre vingene.

TRINN 4.5 Bøy kondensatorene

Bare bøy dem alle for å gjøre strimlene tynne.

Trinn 5: Lodd stripene på hovedkortet

Image
Image
Lodd stripene på hovedkortet
Lodd stripene på hovedkortet
Lodd stripene på hovedkortet
Lodd stripene på hovedkortet

TRINN 5.1 Kontroller polarisasjonen

Først må vi vite polarisasjonen av LED -stripen. Med andre ord: Hvor 5V og bakken er i forhold til PCB. Dette avhenger virkelig av LED -stripen du har og kan være hvilken som helst vei.

Hold en WING på hovedkortet. Pilene på LED -stripen må peke mot midten av kretskortet. Se nå om 5V er på DATA- eller CLOCK -siden av pinnene.

Hvis 5V er på DATA -siden er du flink, og du kan bruke 2,5 mm2 kobber til å lodde LED -stripen direkte til PCB.

Hvis ikke, må du bruke en 22AWG -kabel for å krysse av de to sidene. Derfor loddes kabelen til LED -stripen og krysses av venstre og høyre side og loddes til PCB.

TRINN 5.2 Lodd 2,5 mm2 kabel

Bruk resten av 2,5 mm2 kobberkabelen og strip alle. Lodde dem på oversiden av kretskortet. Skjær loddetråden i samme høyde rundt 1 cm.

TRINN 5.3 Lodd den første VINGEN

Bruk den lengre VINGEN og plasser den på kretskortet (LED1) som vist på silketrykket. Lodd den til 2,5 mm2 ledningene. Gjør virkelig sterke forbindelser, dette vil se mye kraft under rotasjon! Koble deretter kablene for gruppe 1 til G1 -data og G1 -klokke.

Ikke glem å lodde strømtilkoblingen som beskrevet ovenfor.

Koble ESP32 og FPGA (48 og 1 er på den merkede siden) og slå på kortet med strømforsyningen.

De mest ytre lysdiodene skal blinke blått nå (kan ta opptil 40 sekunder å gjøre det). Hvis ikke, sjekk om du har koblet KLOKKE og DATA på riktig måte.

TRINN 5.4 Hall effekt sensor

Lodd en Female Pin header (med tre pins) til hallen. Senere vil vi koble sensoren til den.

Lodd sensoren (Hall -effektsensor) til en mannlig pin -overskrift. Koblingene til senoren og pinnehodet skal være rundt 25 mm.

TRINN 5.5 Fortsett med resten av VINGENE

For LEDs2 - LEDs4 == WING2 - WING4 gjør den samme prosessen som med WING1.

Fra tid til annen slår du på kretskortet og sjekker om alt blinker. Mønsteret starter med den mest ytre led og går innover og starter på nytt.

TRINN 5.6 Balanse

Prøv å balansere hovedkortet i midten med en spiss gjenstand. Hvis den ene siden veier mer, kan du prøve å legge loddetinn til den andre siden. Det trenger ikke å være perfekt, men for mye ubalanse vil senere resultere i mye vibrasjon under drift, noe som kan føre til mekaniske problemer.

Trinn 6: Første maling

Trinn 6.1: Drill

Vi må bore noen hull:

På 500*500 MDF -brettet trenger vi to hull. Se på filen drill_wood_500_500.pdf og bor hullene i henhold til planen.

På 500*100 MDF -brettet trenger vi mange hull. Skriv derfor ut filen drill_wood_500_100_A4.pdf og juster den på tavlen. Bare bor der hullene er merket på papiret.

Trinn 6.2: Maling

Mal den ene siden av hvert tre. For MDF -platen på 500 x 500 er det siden du boret på.

Mal begge sider av 100x500 treet.

Du kan også male metallhjørnene sorte. Dette kommer til å se bedre ut;-)

Resten skal vi males når vi har montert alt (utsiden av esken).

Trinn 7: Mekanisk montering

Image
Image

Trinn 7.1 Monter motordriverens kretskort

Kretskortet er montert på 100 x 500 MDF -kortet. Bruk avstandsstykker (M3 avstandsstykke 12 mm) og noen m3 skruer og muttere.

Trinn 7.2 Monter braketter

Monter de to brakettene (motorfeste 775) på MDF -platen på 100 x 500 med M4 -skruer.

Trinn 7.3 Forbered holderen

De to sperringene (lagrene 6803ZZ) må deaktiveres. Vi trenger bare de to ytterringene fra den.

Lodd 22AWG -ledninger på hver av ringen. En svart og en rød.

Ta Holder 3D -trykte deler og sett dem sammen.

Sett alle de syv M3 -mutrene i de respektive hullene, og skyv ringen med den røde ledningen først på holderen, deretter avstandsstykket og deretter ringen med den svarte ledningen. Legg det tredje stykket på toppen og sett inn skruene.

Klipp de to ledningene i en avstand på 2 cm og lodd jeken (XT30 pluggkabel) til den. Den svarte kabelen går til den kantete siden.

Trinn 7.4 Monter motoren

Skru motoren (DC Motor 775) til motorfeste midt på 100 x 500 MDF -kortet.

Monter holderen på motoren og skru den godt fast.

Trinn 7.5 Installer børster

Jeg planla å bruke en Dremel -børste (Carbon Brushes Dremel 4000). Vi trenger bruk et annet kull (Motor Carbon Brushes) fordi kullet til Dremel -børstene har for høy motstand. Det overså jeg i utviklingsprosessen. Så vi bruker motorbørstene og sliper dem til størrelsen på dremelbørstene.

Klipp ledningen fra motorbørsten 5 mm fra kullet.

Deretter bruker vi sandpapir til å trimme kullet til følgende dimensjoner: 8,4 x 6,3 x 4,8 mm

Den ene siden av motorbørsten er 6,1 mm, så vi trenger bare å slipe to sider.

Du kan prøve om den lett glir i børsteholderen, så er det greit.

Prøv også å slipe en kurve på toppen for å forbedre forbindelsen til metallringene.

Lodd en 22AWG -ledning ved kullet for begge kullene. Bruk en rød og en svart ledning. Sett inn fjæren fra dremelbørsten.

Sett børstene inn i børsteholderen. Børsten med den røde tråden går i toppen. Oversiden av holderen er litt tykkere. Vær forsiktig så de to fjærene ikke berører hverandre.

Monter holderen på basen med muttere og m3 skruer.

Monter bunnen av børsteholderen til den andre motorfestebraketten. Bruk M4 skruer og muttere som følger med braketten.

Motoren skal kunne spinne fritt.

Før de to ledningene mellom de to brakettene.

Klipp de to ledningene i en lengde, slik at de bare kan nå PCB -en og lodde jeck (XT30 Plug Male Cable) til den. Den svarte kabelen går til den buede siden.

Lodd to 22AWG -ledninger til motorene og kutt dem på avstand for lett å komme til PCB -en og lodde jekken (XT30 pluggkabel) til den. Den svarte kabelen går til den buede siden.

Trinn 8: Fullfør

Anbefalt: