Inhoudsopgave:

Photonics Challenger: transparante 3D volumetrische POV (PHABLABS) - Ajarnpa
Photonics Challenger: transparante 3D volumetrische POV (PHABLABS) - Ajarnpa

Video: Photonics Challenger: transparante 3D volumetrische POV (PHABLABS) - Ajarnpa

Video: Photonics Challenger: transparante 3D volumetrische POV (PHABLABS) - Ajarnpa
Video: My hotel mirror was TWO SIDED 😱 2024, Juli-
Anonim
Image
Image
Photonics Challenger: transparante 3D volumetrische POV (PHABLABS)
Photonics Challenger: transparante 3D volumetrische POV (PHABLABS)
Photonics Challenger: transparante 3D volumetrische POV (PHABLABS)
Photonics Challenger: transparante 3D volumetrische POV (PHABLABS)

Een paar weken geleden kreeg ik een last minute uitnodiging om deel te nemen aan een PhabLabs Hackathon in Science Centre Delft in Nederland. Voor een enthousiaste hobbyist zoals ik, die normaal gesproken maar een beperkte hoeveelheid tijd aan knutselen kan besteden, zag ik dit als een geweldige kans om wat tijd in te plannen om een van mijn vele ideeën, in het kader van de Hackathon: Photonics, om te zetten in een concreet project. En met de geweldige faciliteiten in de Makerspace van Science Centre Delft was het gewoon onmogelijk om deze uitnodiging af te slaan.

Een van de ideeën die ik al een tijdje had met betrekking tot fotonica was dat ik iets met Persistence of Vision (POV) wilde doen. Er zijn al talloze voorbeelden online beschikbaar van hoe je een basis POV-display kunt bouwen met behulp van enkele basiscomponenten: microcontroller, oude ventilator/harde schijf/motor en een reeks leds die loodrecht op de as van het roterende apparaat zijn aangesloten. Met een relatief eenvoudige opstelling kun je al een indrukwekkend 2-dimensionaal beeld maken, bijvoorbeeld:

Een andere variant van POV-displays verbindt een reeks leds evenwijdig aan de as van het roterende apparaat. Dit resulteert in een driedimensionale cilindrische POV-weergave, bijvoorbeeld:

In plaats van de reeks leds parallel aan de as van het roterende apparaat te verbinden, kunt u ook de reeks leds buigen. Dit zal resulteren in een bolvormige (globe) POV-weergave, bijvoorbeeld: https://www.instructables.com/id/POV-Globe-24bit-… Het volgende niveau is het bouwen van verschillende lagen led-strings om een volumetrisch 3D-display te creëren. Hier zijn enkele voorbeelden van dergelijke volumetrische 3D POV-schermen die ik als inspiratie voor dit specifieke project heb gebruikt:

  • https://www.instructables.com/id/PropHelix-3D-POV-…
  • https://github.com/mbjd/3DPOV
  • https://hackaday.io/project/159306-volumetric-pov-…
  • https://hackaday.com/2014/04/21/volumen-the-most-a…

Omdat de makers van de bovenstaande voorbeelden zeer nuttige informatie hebben verstrekt, was het logisch om delen van hun projecten te remixen. Maar omdat een Hackathon een uitdaging zou moeten zijn, heb ik ook besloten om een ander type volumetrisch 3D POV-scherm te bouwen. Sommigen van hen gebruikten rotoren en veel hete lijm om te voorkomen dat de componenten rondvlogen. Anderen hebben aangepaste PCB's gemaakt voor hun project. Na het bekijken van enkele van de andere 3D POV-projecten, zag ik ruimte voor wat "innovatie" of introduceerde ik enkele uitdagingen voor mezelf:

  • Zonder eerdere ervaring met het maken van op maat gemaakte PCB's en vanwege de tijdsdruk van de Hackathon heb ik ervoor gekozen om een meer basale prototypebenadering te volgen. Maar in plaats van echte rotoren te maken, was ik benieuwd hoe zo'n volumetrisch 3D POV-scherm eruit zou zien bij gebruik van een cilinder die is opgebouwd uit lagen acrylplastic.
  • Geen of minimaal gebruik van hete lijm om het apparaat minder gevaarlijk te maken

Stap 1: Gebruikt materiaal en gereedschap

Gebruikt materiaal en gereedschap
Gebruikt materiaal en gereedschap

Voor de motorcontroller:

  • Arduino Pro Micro 5V/16Mhz
  • Kleine Broodplank
  • 3144 Hall-effectschakelaarsensor
  • Magneet met Diameter: 1cm, Hoogte: 3mm
  • Tuimelschakelaar - MTS-102
  • 10K Potentiometer
  • Dupont doorverbindingsdraden
  • 16 x M5 Moeren
  • LCD-displaymodule met blauwe achtergrondverlichting (HD44780 16×2 tekens)
  • 10K Weerstand - Optrekweerstand voor de Hall-effectsensor
  • 220Ohm Weerstand - Voor het regelen van het contrast van het LCD-scherm
  • Draadstangdiameter: 5 mm
  • Triplex, Dikte: 3mm

Voor de platformbasis

  • Stuk sloophout (250 x 180 x 18 mm)
  • Mean Well - 12V 4.2A - Schakelende voeding LRS-50-12
  • Stekkerkabel 220V
  • DC-DC draadloze converter - 5V 2A (zender)
  • Turnigy D2836/8 1100KV Borstelloze Outrunner Motor
  • Turnigy pluche 30amp snelheidsregelaar W / BEC
  • Klemmenblokken Connectoren
  • 12 x M6 Moeren om het platform te bevestigen met behulp van de draadstangen met een diameter van 6 mm.
  • 3 x M2-bouten (18 mm lengte) voor het bevestigen van de boutadapter aan de borstelloze motor
  • 4 x M3 moeren en bouten voor het bevestigen van de borstelloze motor aan het stuk sloophout
  • Diameter draadstang: 6 mm (4 x lengte 70 mm)
  • Diameter draadstang: 4 mm (1 x lengte 80 mm)
  • Triplex, Dikte: 3mm

Voor de roterende behuizing:

  • DC-DC draadloze converter - 5V 2A (ontvanger)
  • 3D-geprinte boutadapter (PLA-filament, wit)
  • Tiener 3.6
  • IC 74AHCT125 Quad Logic Level Converter/Shifter (3V naar 5V)
  • 10K Weerstand - Optrekweerstand voor de Hall-effectsensor
  • 1000uF 16V condensator
  • Draadstangdiameter 4 mm
  • Magneet met Diameter: 1cm, Hoogte: 3mm
  • Triplex, Dikte: 3mm
  • Multiplex, Dikte: 2 mm
  • Acrylplaat, Dikte: 2 mm
  • Stalen staafdiameter: 2 mm
  • Moeren bouten
  • 0,5 meter ledstrip APA102C 144 leds/meter

Gebruikte gereedschappen

  • Merlin Laser Cutter M1300 - Lasersnijden van multiplex en acrylplaat
  • Ultimaker 2+ voor 3D-printen van de Bolt On Adapter
  • Soldeerstation en soldeer
  • Tafelboor
  • Schroevendraaiers
  • Plyers
  • Hamer
  • Remklauw
  • Metaalzaag
  • Sleutels
  • Krimpkous

Gebruikte software

  • Fusie 360
  • Ultimaker Cura
  • Arduino IDE en Teensyduino (met Teensy Loader)

Stap 2: Motorcontrollereenheid om de rotatiesnelheid te regelen

Motorcontrollereenheid om de rotatiesnelheid te regelen
Motorcontrollereenheid om de rotatiesnelheid te regelen
Motorcontrollereenheid om de rotatiesnelheid te regelen
Motorcontrollereenheid om de rotatiesnelheid te regelen
Motorcontrollereenheid om de rotatiesnelheid te regelen
Motorcontrollereenheid om de rotatiesnelheid te regelen

De Motor Controller Unit stuurt een signaal naar de Turnigy Electronic Speed Controller (ESC), die het aantal omwentelingen door de borstelloze motor regelt.

Daarnaast wilde ik ook de werkelijke rotaties per minuut van de POV-cilinder kunnen weergeven. Daarom heb ik besloten om een Hall-effectsensor en een 16x2 LCD-scherm toe te voegen aan de Motor Controller Unit.

In het bijgevoegde zip-bestand (MotorControl_Board.zip) vindt u drie dxf-bestanden waarmee u een basisplaat en twee bovenplaten voor de motorcontroller kunt lasersnijden. Gebruik multiplex met een dikte van 3 mm. De twee bovenplaten kunnen op elkaar worden geplaatst, waardoor u het 16x2 LCD-scherm kunt vastschroeven.

De twee gaten in de bovenplaat zijn bedoeld voor een aan/uit-tuimelschakelaar en een potentiometer om de snelheid van de borstelloze motor te regelen (de aan/uit-tuimelschakelaar heb ik zelf nog niet aangesloten). Om de Motor Controller Unit te bouwen, moet u de draadstang met een diameter van 5 mm in 4 stukken van de gewenste hoogte zagen. Met behulp van de 8 M5 moeren kunt u eerst de basis vastzetten. Vervolgens heb ik het kleine breadboard op de bodemplaat bevestigd met behulp van de tweezijdige zelfklevende sticker die bij het breadboard was geleverd. Het bijgevoegde schema laat zien hoe u de componenten moet bedraden, zodat het kan werken met de broncode (MotorControl.ino) die aan deze stap is gekoppeld. Ik heb een 10K pull-up weerstand gebruikt voor de hall-sensor. Een weerstand van 220 Ohm werkte goed genoeg om de tekst zichtbaar te maken op het LCD-scherm.

Zorg ervoor dat u de pinnen van de hall-effectsensor isoleert met behulp van krimpkousen, net zoals op de afbeeldingen. De juiste werking van de hall-sensor is afhankelijk van een magneet die bij stap 3 in de roterende behuizing wordt geplaatst.

Zodra de bedrading is voltooid, kunt u de 2 bovenplaten vastzetten met het LCD-scherm, de schakelaar en de potentiometer met opnieuw 8 M5-moeren zoals weergegeven op de foto's.

Afhankelijk van het model van uw gebruikte motor, moet u mogelijk de volgende regel code in het bestand MotorControl.ino aanpassen:

gaspedaal = kaart (gemiddelde PotValue, 0, 1020, 710, 900);

Deze coderegel (regel 176) wijst de positie van de 10K-potentiometer toe aan het signaal voor de ESC. De ESC accepteert een waarde tussen 700 en 2000. En omdat de motor die ik voor dit project gebruikte, rond 823 begon te draaien, heb ik de RPM's van de motor beperkt door de maximale waarde te beperken tot 900.

Stap 3: Het platform bouwen voor draadloos zendvermogen

Het platform bouwen voor draadloos zendvermogen
Het platform bouwen voor draadloos zendvermogen
Het platform bouwen voor draadloos zendvermogen
Het platform bouwen voor draadloos zendvermogen
Het platform bouwen voor draadloos zendvermogen
Het platform bouwen voor draadloos zendvermogen
Het platform bouwen voor draadloos zendvermogen
Het platform bouwen voor draadloos zendvermogen

Tegenwoordig zijn er in principe twee manieren om apparaten die moeten draaien van stroom te voorzien: sleepringen of draadloos stroom verzenden via inductiespoelen. Omdat sleepringen van hoge kwaliteit die hoge RPM's kunnen ondersteunen vaak erg duur zijn en vatbaarder voor slijtage, heb ik gekozen voor de draadloze optie met een 5V Wireless DC-DC converter. Volgens de specificaties moet het mogelijk zijn om met zo'n omvormer tot 2 Ampère over te zetten.

De Wireless DC-DC converter bestaat uit twee componenten, een zender en een ontvanger. Houd er rekening mee dat de PCB die is aangesloten op de zendende inductiespoel kleiner is dan de ontvangende.

Het platform zelf is opgebouwd uit een stuk sloophout (250 x 180 x 18 mm).

Op het platform heb ik de Mean Well 12V voeding vastgeschroefd. De 12V-uitgang is verbonden met de ESC (zie het schema bij stap 1) en de PCB van het zendende deel van de Wireless DC-DC Converter.

In de bijgevoegde Platform_Files.zip vind je de dxf-bestanden om het platform uit triplex met een dikte van 3 mm te lasersnijden:

  • Platform_001.dxf en Platform_002.dxf: je moet ze op elkaar plaatsen. Hierdoor ontstaat een verzonken gebied voor de zendende inductiespoel.
  • Magnet_Holder.dxf: Lasercut dit ontwerp drie keer. Een van de drie keer, inclusief de cirkel. Bij de andere twee lasercuts: verwijder de cirkel die wordt gesneden. Lijm na het snijden de drie stukken aan elkaar om een houder voor een magneet te maken (diameter 10 mm, dikte: 3 mm). Ik heb superlijm gebruikt om de magneet in de magneethouder te lijmen. Zorg ervoor dat u de juiste kant van de magneet op de houder lijmt, aangezien de hall-sensor slechts met één kant van de magneet werkt.
  • Platform_Sensor_Cover.dxf: Dit stuk helpt je om de hall-sensor op de motorbesturingseenheid op zijn plaats te houden, zoals weergegeven in de eerste afbeelding.
  • Platform_Drill_Template.dxf: ik heb dit stuk als sjabloon gebruikt om de gaten in het stuk sloophout te boren. De vier grotere gaten van 6 mm zijn voor de ondersteunende draadstangen met een diameter van 6 mm om het platform te ondersteunen. De 4 kleinere gaten zijn voor het bevestigen van de borstelloze motor aan het stuk sloophout. Het grootste gat in het midden was nodig voor de as die uit de borstelloze motor stak. Omdat de bouten voor de motor en de draadstangen voor het platform aan de onderkant van het platform moeten worden vastgezet, is het noodzakelijk om die gaten een paar mm diep te vergroten zodat de moeren erin passen.

Helaas stak bij dit project de as van de brushless motor uit de 'verkeerde' kant. Maar ik kon de as omkeren met behulp van de volgende instructie die ik op YouTube vond:

Zodra de motor en de steunstangen zijn vastgezet, kan het platform worden geconstrueerd met behulp van de lasergesneden platformstukken. Het platform zelf kan worden vastgezet met 8 M6 moeren. De magneethouder kan aan de rand op het platform worden gelijmd zoals op de eerste foto te zien is.

Het bijgevoegde bestand "Bolt-On Adapter.stl" kan worden afgedrukt met een 3D-printer. Deze adapter is nodig om een draadstang met een diameter van 4mm aan de Brushless Motor te bevestigen met 3 x M2 bouten met een lengte van 18mm.

Stap 4: Roterende behuizing

Roterende behuizing
Roterende behuizing
Roterende behuizing
Roterende behuizing
Roterende behuizing
Roterende behuizing

De bijgevoegde Base_Case_Files.zip bevat de dxf-bestanden om de 6 lagen te lasersnijden om de behuizing te construeren voor de componenten die de APA102C ledstrip besturen.

Lagen 1-3 van het Case-ontwerp zijn bedoeld om aan elkaar te worden gelijmd. Zorg er echter voor dat een magneet (diameter 10 mm, hoogte: 3 mm) in de cirkelvormige uitsparing in laag 2 wordt geplaatst voordat u de drie lagen aan elkaar lijmt. Zorg er ook voor dat de magneet met de juiste pool aan de onderkant is gelijmd, aangezien de hall-effectsensor die op het in stap 3 gebouwde platform is geplaatst, slechts op één kant van de magneet zal reageren.

Het ontwerp van de behuizing bevat compartimenten voor de componenten die worden vermeld in de bijgevoegde bedradingsschema's. De IC 74AHCT125 is nodig om het 3,3V-signaal van de Teensy om te zetten naar het 5V-signaal dat nodig is voor de APA102 ledstrip. Lagen 4 en 5 kunnen ook aan elkaar worden gelijmd. Toplaag 6 kan op de andere lagen worden gestapeld. Met behulp van 3 stalen staven met een diameter van 2 mm blijven alle lagen op hun plaats. Er zijn drie kleine gaten voor de stalen staven van 2 mm rond het grotere gat voor de roterende draadstang van 4 mm die aan de borstelloze motor is bevestigd. Nadat alle componenten volgens het schema zijn gesoldeerd, kan de complete behuizing op de in stap 3 afgedrukte boutadapter worden geplaatst. Zorg ervoor dat eventuele open draden goed zijn geïsoleerd met behulp van krimpkousen. Houd er rekening mee dat de juiste werking van de hall-sensor van deze stap afhankelijk is van de magneet die in de magneethouder is geplaatst zoals beschreven bij stap 3.

De bijgevoegde proof of concept code 3D_POV_POC.ino zal sommige leds rood oplichten. De schets resulteert in een vierkant dat wordt weergegeven zodra de cilinder begint te draaien. Maar voordat het draaien begint, worden standaard de leds ingeschakeld die nodig zijn om een vierkant te simuleren. Dit is handig om in de volgende stap de juiste werking van de leds te testen.

Stap 5: Roterende cilinder met de ledstrips

Roterende Cilinder Met De Led Strips
Roterende Cilinder Met De Led Strips
Roterende Cilinder Met De Led Strips
Roterende Cilinder Met De Led Strips
Roterende Cilinder Met de Led Strips
Roterende Cilinder Met de Led Strips
Roterende Cilinder Met De Led Strips
Roterende Cilinder Met De Led Strips

De bijgevoegde Rotor_Cylinder_Files.zip bevat de dxf-bestanden voor het snijden van een 2 mm dikke acrylplaat. De resulterende 14 schijven zijn nodig om de transparante cilinder voor dit POV-project te bouwen. De schijven moeten op elkaar worden gestapeld. Door het ontwerp van de cilindrische schijven kunnen 12 ledstrips aan elkaar worden gesoldeerd als één lange ledstrip. Vanaf schijf één moet een kleine ledstrip met 6 leds op een schijf worden bevestigd met behulp van de zelfklevende stickers op de ledstrip. Soldeer eerst de draden aan de ledstrip voordat je de ledstrips met de zelfklevende stickers op de schijf bevestigt. Anders loop je het risico dat het soldeerpistool de acrylschijf doet smelten.

Zodra schijf #13 op de transparante cilinder is gestapeld, kan de stalen staaf van 2 mm die wordt gebruikt om alle lagen in de juiste posities te houden, nu ook op de juiste lengte worden gesneden, uitgelijnd met de bovenkant van schijf #13 van de cilinder. Schijf #14 kan dan worden gebruikt om de 2 mm stalen staven op hun plaats te houden met behulp van twee M4-moeren.

Vanwege de hoeveelheid tijd die nodig was om het hele apparaat te bouwen, heb ik binnen het tijdsbestek van de hackathon nog geen stabielere visueel interessante 3D-schermen kunnen programmeren. Dat is ook de reden waarom de verstrekte code voor het aansturen van de leds nog steeds erg basaal is om het concept te bewijzen, voorlopig alleen een rood vierkant driedimensionaal.

Stap 6: Geleerde lessen

Tiener 3.6

  • Ik bestelde een Teensy 3.5 voor dit project, maar de leverancier stuurde me per ongeluk een Teensy 3.6. Omdat ik het project graag binnen het tijdsbestek van de hackathon wilde afronden, besloot ik verder te gaan met de Teensy 3.6. De reden waarom ik de Teensy 3.5 wilde gebruiken was vanwege de poorten, ze zijn 5V tolerant. Dit is niet het geval met de Teensy 3.6. Dat is ook de reden waarom ik een bidirectionele logische converter in de opstelling moest introduceren. Met een Teensy 3.5 was dit niet nodig geweest.
  • Power Ramp Up-probleem: bij het inschakelen van het apparaat is er een stroomversnelling via de draadloze dc-dc-oplaadmodule om de Teensy 3.6 van stroom te voorzien. Helaas is het opstarten te traag voor de Teensy 3.6 om correct op te starten. Als tijdelijke oplossing moet ik momenteel de Teensy 3.6 opstarten via de micro-USB-verbinding en vervolgens de 12V-voeding aansluiten die de draadloze dc-dc-zender voedt. Zodra de draadloze dc-dc-ontvanger ook de Teensy van stroom voorziet, kan ik de USB-kabel loskoppelen. Mensen hebben hier hun hack gedeeld met een MIC803 voor het probleem van langzaam opstarten van de stroom:

LCD-schermmodule

Onregelmatig gedrag op externe voeding. Het scherm werkt correct wanneer het wordt gevoed via USB. Maar wanneer ik het LCD-scherm via het breadboard van stroom gebruik met behulp van de 5V geleverd door de BEC of een onafhankelijke voeding, begint de tekst na een paar seconden nadat de tekst zou moeten veranderen, vervormd te raken. Ik moet nog onderzoeken wat dit probleem veroorzaakt

Mechanisch

Om mijn motorcontroller te testen om de werkelijke RPM's te meten, liet ik de motor draaien met de bout op adapter, bout en basisbehuizing bevestigd aan de motor. Tijdens een van de eerste testritten draaien de schroeven die de motorhouder met de motor verbinden door de trillingen vanzelf los. Gelukkig merkte ik dit probleem op tijd op, zodat een mogelijke ramp werd vermeden. Ik heb dit probleem opgelost door de schroeven iets strakker op de motor te draaien en ook een paar druppels Loctite gebruikt om de schroeven nog meer vast te zetten

Software

Wanneer u Fusion 360-schetsen exporteert als dxf-bestanden voor de lasercutter, worden ondersteunende lijnen geëxporteerd als gewone lijnen

Stap 7: Potentiële verbeteringen

Wat zou ik anders hebben gedaan op basis van de ervaring die ik heb opgedaan met dit project:

  • Gebruik van een ledstrip met minimaal 7 leds in plaats van 6 leds per laag voor wat mooiere tekstuele visualisaties
  • Koop een andere brushless motor waarbij de as al aan de juiste (onder)zijde van de motor uitsteekt. (bijv.: https://hobbyking.com/de_de/ntm-prop-drive-28-36-1000kv-400w.html) Dit bespaart u de moeite om de as door te snijden of de as naar de juiste kant te duwen zoals ik nu moest doen.
  • Meer tijd besteden aan het balanceren van het apparaat om de trillingen te minimaliseren, mechanisch of in Fusion 360.

Ik heb ook nagedacht over enkele mogelijke verbeteringen, die ik zou kunnen onderzoeken als de tijd het toelaat:

  • Werkelijk gebruik maken van de SD-kaartfunctionaliteit op de Teensy om langere animaties te maken
  • Verhoog de beelddichtheid door kleinere leds te gebruiken (APA102(C) 2020). Toen ik een paar weken geleden aan dit project begon, waren ledstrips met deze kleine leds (2x2 mm) niet direct op de markt verkrijgbaar. Het is mogelijk om ze als losse SMD-componenten te kopen, maar ik zou deze optie alleen overwegen als u bereid bent deze componenten op een aangepaste PCB te solderen.
  • Breng 3D-beelden draadloos over naar het apparaat (Wifi of Bluetooth). Dit moet het ook mogelijk maken om het apparaat te programmeren om geluid/muziek te visualiseren.
  • Converteer Blender-animaties naar een bestandsindeling die met het apparaat kan worden gebruikt
  • Leg alle ledstrips op de grondplaat en richt het licht op de acryllagen. Op elke verschillende laag kunnen kleine gebieden worden gegraveerd om het licht te reflecteren wanneer ze worden weggelaten uit de leds. Het licht moet worden gericht op de gegraveerde gebieden. Dit moet mogelijk zijn door een tunnel te creëren die het licht geleidt of door lenzen op de leds te gebruiken om het licht te focussen.
  • Verbetering van de stabiliteit van de 3D Volumetrische weergave en regeling van de rotatiesnelheid door de roterende basis van de borstelloze motor te scheiden door middel van tandwielen en een distributieriem.

Stap 8: Schreeuw het uit

In het bijzonder wil ik de volgende personen bedanken:

  • Mijn fantastische vrouw en dochters, voor hun steun en begrip.
  • Teun Verkerk, voor de uitnodiging voor de Hackathon
  • Nabi Kambiz, Nuriddin Kadouri en Aidan Wyber, voor jullie steun, hulp en begeleiding tijdens de Hackaton
  • Luuk Meints, een artiest en een mede-deelnemer van deze Hackaton die zo vriendelijk was me een persoonlijke 1 uur durende introductie-snelheidscursus voor Fusion 360 te geven, waardoor ik alle onderdelen kon modelleren die ik nodig had voor dit project.

Aanbevolen: