Innehållsförteckning:

En POV -skärm för att styra dem alla !: 10 steg (med bilder)
En POV -skärm för att styra dem alla !: 10 steg (med bilder)

Video: En POV -skärm för att styra dem alla !: 10 steg (med bilder)

Video: En POV -skärm för att styra dem alla !: 10 steg (med bilder)
Video: När man låtsades ringa polisen på sitt yngsta syskon 😂 2024, November
Anonim
Image
Image
En POV -skärm för att styra dem alla!
En POV -skärm för att styra dem alla!
En POV -skärm för att styra dem alla!
En POV -skärm för att styra dem alla!

Motivering

Jag gillar verkligen POV -skärmar (persistens of vision)! De är inte bara intressanta att titta på utan också en stor utmaning att utveckla dem. Det är en riktigt tvärvetenskaplig uppgift. Du behöver många färdigheter: mekanisk, elektronisk, programmering och så vidare!

Jag har alltid velat bygga mitt eget och göra det så stort och så kapabelt som möjligt. För ett år sedan gjorde jag det! Det var mycket arbete och mycket komplext att göra. Jag gillar den här typen av utmaningar. Så det var kul;-)

Nu vill jag också att du bygger en själv. Du kan ta detta som en guide för att utveckla din egen eller bara följa instruktionerna för att få en kopia av min POV -skärm. Jag kommer att försöka påpeka alla utmaningar jag var tvungen att övervinna för att göra min.

Jag upprepade min design för att göra det så enkelt som möjligt att bygga om. Det finns inga SMT -komponenter och allt bör lödas av nybörjare. Missförstå mig inte, det är fortfarande en mycket stor utmaning att sätta ihop allt. Men det borde vara genomförbart!

VARNING: Detta projekt innehåller lysdioder som uppdateras med höga hastigheter och potentiellt kan utlösa anfall för personer med ljuskänslig epilepsi

Hur fungerar det?

Här kan du läsa hur en POV -skärm fungerar i allmänhet.

Först behöver vi en källa som strömmar en videosignal. I den ursprungliga designen gjorde jag det över WIFI. Jag skrev ett program för att fånga skärmen på en dator och skicka dessa data till en ESP8266 via WIFI. Problemet med detta tillvägagångssätt är att ESP8266 var för långsam och WIFI -bandbredden var precis tillräckligt för 16 FPS. Så nu använder vi en ESP32. Jag tänkte att alla problem är åtgärdade, men det visade sig att ESP32 inte heller erbjuder mer bandbredd än WIFI än ESP8266. ESP32 har dock tillräckligt med beräkningskraft för att avkoda en videoström. Så jag slutade skicka JPEG -bilder över WIFI till ESP32. Därför är ESP32 värd för en webbplats. På den här webbplatsen kan du välja bilder eller videor och webbplatsen kommer sedan att strömma JPEG -filer till ESP32. JPEG -avkodning behöver mycket minne så vi har också ett problem där. Men det fungerar för tillfället. Kanske kommer jag på en bättre lösning senare.

Därefter måste vi styra lysdioderna själva. För att detta ska fungera måste vi veta den exakta positionen för lysdioderna varje ögonblick. Därför lade jag till en Hall -effektsensor. Varje rotation passerar en magnet och möjliggör därmed detekteringen. Sedan mäter vi tiden för rotation. Vi antar att nästa rotation kommer att ta samma tid. Därför kan vi beräkna vår position. Denna process upprepas om och om igen. För att styra lysdioderna använder vi en FPGA. Vi kan också använda en mikroprocessor men det kommer förmodligen att gå för långsamt. De mest yttre lysdioderna behöver uppdateras cirka 10.000 gånger per sekund. En FPGA klarar enkelt uppgiften och kommer att göra det med mindre skakningar.

Om lysdioderna behöver uppdateras så ofta behöver vi också snabba lysdioder. I min ursprungliga design använde jag APA102 lysdioder. De har en uppdateringsfrekvens på cirka 20KHz. Jag försökte skaffa LED -remsor med dessa lysdioder men onlinesäljaren skickade mig SK9822: or och berättade att de är desamma (hände två gånger …) Så vi kommer att använda SK9822. De har bara en uppdateringsfrekvens på 4,7 kHz, men detta kommer förhoppningsvis att räcka. De har också ett något annorlunda protokoll. Var bara medveten. Så ESP32 driver bildramarna till FPGA. FPGA styr sedan lysdioderna.

Nu behöver lysdioderna bara rotera. Därför använder vi en likströmsmotor. Denna motor styrs över en PWM -signal från en ESP8266. ESP8266 är också ansluten via WIFI till ESP32. Därför behöver vi bara en sensor för att mäta rotationshastigheten. I den ursprungliga designen använde jag två.

Mer information om systemet finns i min video om den ursprungliga designen.

Verktyg

Jag använde följande verktyg:

  • 3d skrivare
  • Lödjärn
  • Varmt lim
  • superlim
  • Micro USB -kabel
  • Sax
  • Borr + träborr 3 4 8 och 12 mm
  • Skruvmejsel
  • Platt tång
  • Sidoskärare
  • Wire stripper
  • Måla tillbehör
  • Sandpapper

Beställa

Jag öppnade en TINDIE -butik. Så du kan köpa ett kit om du vill och hjälpa mig att göra fler sådana här projekt;-)

OSH

Som alltid publiceras allt du ser här som öppen källkod.

Uppdateringar

Det finns några saker jag vill förbättra i framtiden:

  • Högre färgupplösning från 12 bitar till 24 bitar => därför behöver vi en FPGA med mer RAM =>

    Cmod A7, de är stiftkompatibla:-)

  • ESP32 med PSRAM för att undvika minnesproblem
  • Fixa borstproblemet …

Tillbehör

Skräddarsydda delar

Du måste beställa dem eller beställa ett kit från mig!

1 * Main PCB (gerber -filer finns under mappen gerber main.zip)

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

4 * hörn 3D 1 Skriv ut (stl -fil finns under mappen 3D -hörn. Stl)

1 * Huvudkortshållare 3D 3 Print (stl -filer finns under mappen 3D -hållare1.stl, hållare2.stl, hållare3.stl)

1 * Penselhållare 3D 2 Skriv ut (stl -filer finns under mappen 3D brush1.stl och brush2.stl)

Standard delar

Var försiktig, några av länkarna innehåller paket med 10 eller till och med 100 delar.

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

1 * Cmod S6 FPGA

1 * Geekcreit 30 -pins ESP32 -utveckling

1 * Geekcreit D1 mini V2.2.0 ESP8266

4 * 74HCT04

5 * DC-DC 5V 4A

1 * likströmsmotor 775

44 * 100nf 50V

9 * 220uf 16V

10 * Neodymmagnet 10mmx2mm

1 * Hall -effektsensor

2 * Carbon Bruches Dremel 4000

2 * motor kolborstar

2 * Kullager 6803ZZ

2 * Motorfäste 775

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

1 * strömförsörjning

1 * knapp 8 mm

2 * XT30PB -hane och hona -kretskort

2 * XT30 -hane och honkabel

2 * 130Ohm 1/4W motstånd

2 * MOSFET IRF3708PBF

2 * 1N5400

1 * Single Row Pin Header

1 * Kvinnlig rubrik

1 * kabel 30AWG

1 * kabel 22AWG

Järnaffär

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 * akrylglas 500 mm x 500 mm x 2 mm

12 * Metallhörn 40mm x 40mm x 40mm

40 * Träskruv 3 mm x 10 mm

6 * M3 distans 12 mm

M3 och M4 skruvar

3m * Kabel 2,5 mm2 enkel tråd/ styv

Svart färg för MDF Wood

Byggtid: ~ 10 timmar

Byggkostnad: ~ 300 €

Steg 1: Ladda ner filer

Ladda ner filer
Ladda ner filer

För att börja måste vi först ladda ner allt som behövs för detta projekt.

Gå till arkivsläppets sida här.

Ladda sedan ner Release.zip från den senaste versionen och packa upp den på din dator.

Varje gång jag hänvisar till en fil i denna instruktion hittar du den där;-)

Steg 2: Programmera firmware

Steg 2.1: Programmera FPGA

För att programmera FPGA måste vi installera en mjukvara från xilinx:

För Windows 10 måste du installera: ISE Design Suite för Windows 10 (~ 7 GB)

För Windows 7 eller XP kan du installera: Lab -verktyg (~ 1 GB)

Efter att ha installerat Open ISE iMPACT och klicka på "Nej" om du tillfrågas och även "Avbryt" för ett nytt projektformulär. Anslut FPGA Board Cmod S6 och vänta på att drivrutinerna ska installeras. Dubbelklicka på gränsskanning. Högerklicka sedan på det nya fönstret och välj "Initiera kedjan". Klicka på "Nej" igen och stäng det nya formuläret. Nu ska du se symbolen "SPI/BPI", dubbelklicka på den. Välj filen "SPIFlash.mcs". I det nya formuläret väljer du "SPI PROM" och "S25FL128S" och Databredd "4". Klicka på "OK". Klicka sedan en gång till på "FLASH" -symbolen igen. Det ska vara grönt nu. Tryck sedan på "Program". Klicka på "OK" på det nya formuläret och vänta. Detta kan ta några minuter.

Bra gjort, FPGA är klar;-) Du kan koppla ur den igen!

Steg 2.2: Programmera ESP32

Installera esp32 -kärnan på Arduino ID, du kan följa den här självstudien. V1.0.2 rekommenderas.

Behövs bibliotek:

  • AutoPID av Ryan Downing V1.0.3 (kan installeras över bibliotekshanteraren)
  • ArduinoWebsockets av Gil Maimon, modifierad av mig (ladda ner zip -filen och installera den)

Öppna filen povdisplay.ino i mappen povdisplay.

Välj under verktygskortet: "DOIT ESP32 DEVKIT V1". Lämna de andra inställningarna som de är.

Anslut esp32 -kortet över USB och ladda ner programmet.

Steg 2.3: Program ESP8266

Installera ESP8266 -kärnan på Arduino ID, du kan följa den här självstudien.

Inga bibliotek behövs!

Öppna filen motordrive.ino i mappen motordrive.

Välj under Verktygskort: "Generisk ESP8266 -modul". Lämna de andra inställningarna som de är.

Anslut esp8266 -kortet över USB och ladda ner programmet.

Steg 3: Löd PCB

Image
Image
Löd PCB
Löd PCB
Löd PCB
Löd PCB
Löd PCB
Löd PCB

STEG 3.1 Lödmotordrivrutinens kretskort

Följande komponenter är lödda:

  • WEMOS1 (Geekcreit D1 mini V2.2.0 ESP8266)

    • Löd stifthuvudena till WEMOS -kortet
    • Löd de kvinnliga rubrikerna på kretskortet
  • DCDC (DC-DC 5V 4A)

    • Använd 4 stift från stifthuvudet och löd DC-DC-omvandlaren direkt på kortet
    • Var försiktig med orienteringen, den ska matcha silkeskärmen
  • CN1 (DC -uttag 5,5 x 2,1 mm)
  • 1N5400

    Var försiktig med orienteringen, den vita linjen på dioden måste vara på samma sida som linjen på siden

  • 220u (220uf 16V)

    Var försiktig med orienteringen, den vita linjen måste vara på motsatta sidan av plus på siden

  • R1 och R1 (130Ohm 1/4W motstånd)
  • Q1 och Q2 (MOSFET IRF3708PBF)

    Var försiktig med orienteringen, metallbaksidan måste vara på sidan med den tjocka linjen på siden

  • MOTOR (XT30PB -kontakt hona PCB)

    Var noga med orienteringen, den runda änden måste vara på sidan markerad på siden

  • Lysdioder och smakprov (XT30PB Plug Male PCB)

    Var noga med orienteringen, den runda änden måste vara på sidan markerad på siden

STEG 3.2 Lödhuvudkretskort

Följande komponenter är lödda:

  • CMODS6 (Cmod S6 FPGA)

    Det bör finnas stifthuvuden. Lödda dem på kretskortet

  • ESP (Geekcreit 30 Pin ESP32 Development)

    Använd Female Headers och löd dem på PCB

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

    • Använd 4 stift från stifthuvudet och löd DC-DC-omvandlaren direkt på kortet
    • Var försiktig med orienteringen, den ska matcha silkeskärmen
  • POWER_TEST (DC -uttag 5,5 x 2,1 mm)
  • D1 (1N5400)

    Var försiktig med orienteringen, den vita linjen på dioden måste vara på samma sida som linjen på siden

  • POWER (XT30PB Plug Female Female PCB)

    Var noga med orienteringen, den runda änden måste vara på sidan markerad på siden

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

    Var försiktig med orienteringen, den vita linjen på kondensatorn måste vara på motsatta sidan av pluset på siden

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

    Var försiktig för att anpassa utskärningen av IC: n till markeringen på siden

STEG 3.3 Varmt lim

Huvudkortet roterar mycket snabbt. Så vi måste limma kondensatorerna (C1, C3, C4, C6, C7, C9, C10, C11) på kretskortet för att undvika problem. Använd bara ett varmt lim för det.

Steg 4: Förbered remsor

Image
Image
Förbered remsor
Förbered remsor
Förbered remsor
Förbered remsor
Förbered remsor
Förbered remsor

STEG 4.1 Skär remsan i bitar

Ta bort vattenskyddet med sax.

Vi behöver fyra vingar och varje vinge innehåller fyra grupper. En WING är speciell, den har en LED mer än de andra.

WING1:

  • G1: 5 lysdioder (mest yttre gruppen)
  • G2: 6 lysdioder
  • G3: 8 lysdioder
  • G4: 14 lysdioder

WING2 - WING4:

  • G1: 5 lysdioder (mest yttre gruppen)
  • G2: 6 lysdioder
  • G3: 8 lysdioder
  • G4: 13 lysdioder

Därför behöver vi 129 lysdioder och vår remsa har 144 så vi har viss tolerans för fel snitt;-) I värsta fall kan du löda snittet.

Skär så centrerat som möjligt mellan lysdioderna.

STEG 4.2 Lödkablar till LED -remsan

På vart och ett av LED -remssegmenten löds två 30AWG -trådar på klockan och datapinnen. Det här är de två stiften i mitten. Var noga med att lödda dem på ingången till LED -remsan. Normalt visar pilar riktningen för dataflödet. Kablarna ska vara cirka en halv meter långa

Skär bort allt från den andra sidan av striptonen för att undvika kort mellan data och klocknålar för de olika grupperna när vi sätter ihop WINGs.

STEG 4.3 Lödkondensatorer

På varje grupplödare två kondensatorer (100nf 50V) på baksidan av LED -remsens segment i varje ände. För G4 löd också en i mitten. Kablarna ska gå under kondensatorerna för att lämna lite utrymme men inte för mycket.

STEG 4.4 Sätt ihop vingarna

För varje WING leder ledningarna från G1 till G2 och sedan dessa trådar genom G3 och samma med G4.

STEG 4.4 Löd grupperna tillsammans

Nu behöver vi kopparkabeln (kabel 2,5 mm2 enkel tråd/stel). Skär den i åtta bitar på cirka 30 cm längd. Ta bort isoleringen av alla trådar. Räta ut kablarna så mycket som möjligt. Du kan fästa ena änden i en skruvklämma och hålla den andra med en platt tång och sedan slå tången med en hammare.

Fäst kabeln på ena sidan för att underlätta arbetet med den. Löd sedan den första gruppen till den. Rikta in LED -remssegmentet med kabeln och löd det på ena sidan mot de två kondensatorerna. Kabeln ska ligga platt på LED -remsan. Fortsätt med nästa grupp. Var försiktig så att avståndet mellan två LED -grupper också är 7 mm. I slutändan bör alla lysdioder ha samma gap mellan dem. Fortsätt med de andra två grupperna. På den sista grupplödningen alla tre kondensatorer till tråden.

Skär sedan kabeln i slutet. Fortsätt med en annan kabel på andra sidan av remsan.

Nu är första VINGEN klar! Gör samma sak för de tre andra vingarna.

STEG 4.5 Böj kondensatorerna

Böj bara alla för att göra remsorna tunna.

Steg 5: Löd remsorna på huvudkortet

Image
Image
Löd remsorna på huvudkortet
Löd remsorna på huvudkortet
Löd remsorna på huvudkortet
Löd remsorna på huvudkortet

STEG 5.1 Kontrollera polarisationen

Först måste vi veta polarisationen av LED -remsan. Med andra ord: Där 5V och mark är relativt PCB. Detta beror verkligen på vilken LED -remsa du har och kan vara hur som helst.

Håll en WING på huvudkortet. Pilarna på LED -remsan måste peka mot mitten av kretskortet. Se nu om 5V finns på DATA- eller CLOCK -sidan av stiften.

Om 5V är på DATA -sidan är du bra och du kan använda 2,5 mm2 koppar för att löda LED -remsan direkt till kretskortet.

Om inte, måste du använda en 22AWG -kabel för att korsa de två sidorna. Löd därför kabeln till LED -remsan och streck över vänster och höger sida och löd den till kretskortet.

STEG 5.2 Lödkabel 2,5 mm2

Använd resten av 2,5 mm2 kopparkabel och ta bort alla. Löd dem på ovansidan av kretskortet. Skär den lödda tråden på samma höjd ca 1 cm.

STEG 5.3 Löd den första VINGEN

Använd den längre WING och placera den på kretskortet (lysdioder1) som visas på siden. Löd den på 2,5 mm2 trådarna. Gör riktigt starka anslutningar, det kommer att se mycket kraft under rotation! Anslut sedan kablarna för grupp 1 till G1 -data och G1 -klocka.

Glöm inte att löda strömanslutningen enligt beskrivningen ovan.

Anslut ESP32 och FPGA (48 och 1 är på den markerade sidan) och slå på kortet med strömförsörjningen.

De mest yttre lysdioderna ska blinka blått nu (kan ta upp till 40 sekunder att göra det). Om inte, kontrollera om du har anslutit CLOCK och DATA på rätt sätt.

STEG 5.4 Hall -effektsensor

Löd en kvinnlig stifthuvud (med tre stift) till hallen. Senare kommer vi att ansluta sensorn till den.

Löd givaren (Hall -effektsensor) till en hanstiftstift. Länkarna med senorn och stifthuvudet bör vara cirka 25 mm.

STEG 5.5 Fortsätt med resten av VINGARNA

För LEDs2 - LEDs4 == WING2 - WING4 gör samma process som med WING1.

Då och då, slå på kretskortet och kontrollera om allt blinkar. Mönstret börjar med den mest yttre led och går inåt och börjar om.

STEG 5.6 Balans

Försök att balansera huvudkortet i mitten med ett spetsigt föremål. Om den ena sidan väger mer, försök att lägga till lödmedel på den andra sidan. Det behöver inte vara perfekt, men för mycket obalans kommer senare att resultera i mycket vibrationer under drift, vilket kan leda till mekaniska problem.

Steg 6: Första lacken

Steg 6.1: Borra

Vi behöver borra några hål:

På 500*500 MDF -brädet behöver vi två hål. Titta på filen drill_wood_500_500.pdf och borra hålen enligt planen.

På 500*100 MDF -brädan behöver vi många hål. Skriv därför ut filen drill_wood_500_100_A4.pdf och justera den på tavlan. Borra bara där hålen är markerade på papperet.

Steg 6.2: Måla

Måla ena sidan av varje trä. För 500 x 500 MDF -brädan är det sidan du borrade på.

Måla båda sidor av 100x500 träet.

Du kan också måla metallhörnen svarta. Det här kommer att se bättre ut;-)

Resten ska vi målas när vi har monterat ihop allt (lådans utsida).

Steg 7: Mekanisk montering

Image
Image

Steg 7.1 Montera motordrivrutinens kretskort

Kretskortet är monterat på 100 x 500 MDF -kortet. Använd distanserna (M3 distansbricka 12 mm) och några m3 skruvar och muttrar.

Steg 7.2 Montera fästen

Montera de två fästena (motorfäste 775) på 100 x 500 MDF -kortet med M4 -skruvar.

Steg 7.3 Förbered hållaren

De två spärrarna (lager 6803ZZ) måste inaktiveras. Vi behöver bara de två yttre ringarna från den.

Löd 22AWG -trådar på var och en av ringen. En svart och en röd.

Ta Holder 3D -tryckta delar och montera dem.

Sätt alla sju M3 -muttrarna i respektive hål och skjut ringen med den röda tråden först på hållaren, sedan distansen och sedan ringen med den svarta tråden. Lägg på den tredje delen ovanpå och sätt i skruvarna.

Klipp de två trådarna på ett avstånd av 2 cm och löd jecket (XT30 Plug Male Cable) till den. Den svarta kabeln går till den böjda sidan.

Steg 7.4 Montera motorn

Skruva fast motorn (likströmsmotor 775) på motorfästet i mitten av 100 x 500 MDF -kortet.

Montera hållaren på motorn och skruva fast den.

Steg 7.5 Installera borstar

Jag planerade att använda en Dremel -borste (Carbon Brushes Dremel 4000). Vi behöver använda ytterligare ett kol (Motor Carbon Brushes) eftersom kolet för Dremel -borstarna har för hög motståndskraft. Jag förbisåg det i utvecklingsprocessen. Så vi använder motorborstarna och slipar dem till storleken på dremelborstarna.

Klipp av tråden från motorborsten 5 mm från kolet.

Sedan använder vi sandpapper för att trimma kolet till följande dimensioner: 8,4 x 6,3 x 4,8 mm

Ena sidan av motorborsten är 6,1 mm, så vi behöver bara slipa två sidor.

Du kan prova om det lätt glider i borsthållaren, då är det bra.

Försök också att slipa en kurva på toppen för att förbättra anslutningen till metallringarna.

Löd en 22AWG -tråd vid kolet för båda kolen. Använd en röd och en svart tråd. Sätt in fjädern från dremelborsten.

Sätt in borstarna i borsthållaren. Borsten med den röda tråden går i toppen. Hållarens ovansida är lite tjockare. Var försiktig så att de två fjädrarna inte vidrör varandra.

Montera hållaren på basen med muttrar och m3 -skruvar.

Montera basen på borsthållaren till den andra motorfästet. Använd M4 -skruvar och muttrar som medföljer fästet.

Motorn ska kunna snurra fritt.

För de två trådarna mellan de två fästena.

Klipp de två trådarna på en längd så att de bara kan nå kretskortet och löd jecket (XT30 Plug Male Cable) till det. Den svarta kabeln går till den böjda sidan.

Löd två 22AWG -kablar till motorerna och klipp dem på avstånd för att enkelt nå kretskortet och löd jecket (XT30 -pluggkabel) till den. Den svarta kabeln går till den böjda sidan.

Steg 8: Avsluta

Rekommenderad: