Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

POV-cilinder met Arduino Due

Componenten en benodigdheden

Arduino Due
× 1
Lineaire regelaar met instelbare uitgang
× 1
Texas Instruments Dual Op-Amp voor algemeen gebruik
× 1
Weerstand 20k ohm
× 3
Weerstand 220 ohm
× 1
Weerstand 1k ohm
× 2
Transistor-NPN voor algemeen gebruik
× 1
Condensator 1000 µF
× 1
Condensator 100 nF
× 1
Condensator 1 µF
× 1
Weerstand 240 ohm
× 1
Trimweerstand 1k ohm
× 1
IR-zender (algemeen)
× 1
IR-ontvanger (algemeen)
× 1
Broodplank (algemeen)
× 1
piepschuimcilinder (diameter:20 cm, hoogte:10 cm)
× 2
Elektrische motor, 12V, XDRIVE 545-1
× 1
Kroonwiel 60 T 8 MM
× 1
Kroontandwiel 12 T, 3,2 MM
× 1
Getande riem, 80 T, 6 x 200 MM
× 1
Draadstang, M8, 125 mm
× 3
Draadstang, M8, 330 mm
Gebruikt als as.
× 1
Contact Ring ASL9017
× 1
Plakband (zwart, 48 mm)
Wordt gebruikt om op de rotor te plakken
× 1
Plywood schijf (Ø 150 mm, dikte:10 mm)
× 2
Aluminium schijf (Ø 200 mm, dikte:2,5 mm)
× 2

Benodigde gereedschappen en machines

Soldeerbout (algemeen)
Scrollzaag (algemeen)
Bench Drill (algemeen)
Laboratoriumvoeding (algemeen)
Laptop met Windows 10 (generiek)

Apps en online services

Microchip-technologie Microchip Studio
Gebruikt voor Arduino SW-ontwikkeling
Arduino IDE
Kan worden gebruikt als alternatief voor Atmel Studio IDE
Cygwin
Cygwin biedt functionaliteit die vergelijkbaar is met een Linux-distributie op Windows. Gebruikt voor het pc-besturingsprogramma.
Microsoft Visual Studio 2015
Gebruikt voor de grafische gebruikersinterface.

Over dit project

Inleiding

Dit is mijn eerste Arduino-project. Mijn werk is geïnspireerd op verschillende makerprojecten die Persistence of Vision Displays [2,3,4] hebben gecreëerd.

Persistentie van visie (POV) verwijst naar de optische illusie waarbij meerdere afzonderlijke beelden in de menselijke geest samenvloeien tot één enkel beeld en waarvan wordt aangenomen dat het de verklaring is voor bewegingsperceptie in bioscoop- en animatiefilms [1].

De projecten [2,3,4] implementeren POV-globe-displays, met behulp van discrete LED's en discrete schuifregisters. In plaats daarvan gebruikt mijn apparaat een roterende cilinder en kant-en-klare RGB-ledstrips als POV-weergave.

De belangrijkste kenmerken van mijn POV-cilinder zijn:

  • POV-weergave (persistentie van het gezichtsvermogen)
  • Geeft geanimeerde GIF-afbeeldingen weer op een draaiende cilinder
  • De GIF-afbeeldingen worden opgeslagen in Arduino's RAM of Flash
  • Communicatie met pc via Bluetooth

Technisch overzicht

  • Cilinderdiameter:200 mm
  • Hoogte cilinder:200 mm
  • Cilindermateriaal:piepschuim
  • Cilindergewicht:420 g
  • 4 RGB LED-strips gebaseerd op LPD8806
  • Schermgrootte 151 x 40 pixels
  • Gebaseerd op Arduino Due
  • Inclusief HC06 Bluetooth-module
  • Bediend via Bluetooth vanaf een pc

Mechanische constructie

De mechanische constructie is weergegeven in onderstaande tekening.

Het apparaat bestaat uit een chassis en een rotor. Het chassis bestaat uit twee cirkelvormige schijven van multiplex die via drie draadstangen met elkaar zijn verbonden. De afstand tussen de schijven is 120 mm. In het midden bevinden zich twee kogellagers en de as. Voor de as wordt ook een draadstang gebruikt. De as wordt aangedreven door een elektromotor via twee kroonwielen en een tandriem. De rotatiesnelheid is maximaal 1300 RPM (22 Hz).

De rotor bestaat uit twee cilinders van piepschuim en twee ronde aluminium schijven. De piepschuimcilinders zijn op de onderste schijf gelijmd. De bovenste schijf kan worden verwijderd. Het wordt gebruikt om de rotor aan de as te bevestigen.

De elektronica bevindt zich in het bovenste deel van de rotor. Het bevat de volgende onderdelen:

  • Arduino Due-bord
  • Zelfgemaakt schild voor het Arduino Due-bord
  • Voedingskaart (PS)
  • HC-06 Bluetooth-module

De voeding (7,5V) wordt via sleepcontacten en een contactring naar de voedingskaart gevoerd.

Er wordt gebruik gemaakt van vier ledstrips met in totaal 40 RBG leds. Ze zijn met kabels verbonden met het Arduino Shield.

De vier LED-strepen zijn geplaatst zoals weergegeven in onderstaande tekening. Door gebruik te maken van vier verschoven LED-strepen wordt de afstand in de Y-as tussen de LED's gedeeld door 4. De afstand in de X-as wordt afgehandeld door SW. De SW werkt alle 40 LED's 151 keer per omwenteling bij. Het raster in de tekening komt overeen met de zichtbare pixels.

Elektronische schakelingen

De elektronische schakeling wordt getoond in het bijgevoegde PDF-schema.

Er is een voedingskaart met een LM317 spanningsregelaar. De ingangsspanning is 7,5 Volt en de uitgangsspanning is 4,6 Volt. De spanningsregelaar voedt het Arduino Due-bord en de LED-strips.

Er is ook een zelfgemaakt schild voor de Arduino. Het bevat de connectorkabels naar de LED-strips en een circuit voor de IR-ontvanger. De IR-ontvanger wordt gebruikt om de rotorpositie te detecteren. Het is aangesloten op een timer/interrupt-ingang van de Arduino.

Er zijn vier LED-strips genaamd STRIP0 tot STRIP3. Elke strip heeft 5 LPD8806 LED-drivers en 10 RBG-LED's. STRIP0 is verbonden met USART0 en STRIP1 is verbonden met USART1. Beide USART's werken in de SPI-modus. STRIP2 en STRIP3 zijn in serie geschakeld en worden aangestuurd door de Arduino's SPI-interface.

Voor communicatie met een pc wordt een HC-06 Bluetooth-module aangesloten op USART3. De Bluetooth-module wordt geleverd door de 3,3 Volt die door het Arduino-bord wordt geleverd.

Arduino-software

De Arduino-software bestaat uit het hoofdprogramma (mpc.ino ) en de volgende bibliotheken:

  • bt - Driver SW voor Bluetooth-module
  • LDP8806 - Driver SW voor LED-strips
  • Geheugenvrij - Functies om beschikbaar vrij RAM-geheugen te detecteren
  • mpcgif - Afspelen van GIF-bestanden in RAM- of Flash-geheugen
  • foto's - Interne GIF-afbeeldingen opgeslagen in Flash
  • traceer - Functies voor SW-foutopsporing

De periodieke output van de foto's naar de LED-strips gebeurt interrupt-gedreven. Er zijn twee tuimelframebuffers. Elke framebuffer bevat één foto met 40 x 151 pixels. Elke pixel is een index van een kleurenpalet van één byte. Terwijl een framebuffer via interrupt en DMA naar de LED-strips wordt uitgevoerd, wordt de andere framebuffer door het hoofdprogramma voorbereid (bijvoorbeeld door de functie de GIF-afbeeldingen te decoderen). Het omschakelen van de framebuffers wordt gedaan door de frame-interrupt-routine.

Er is één frame-interrupt per omwenteling die wordt geactiveerd door de IR-sensor. De frame-interrupt-routine meet (via een hardwaretimer) de evolutiesnelheid en programmeert periodieke kolominterrupts (één per kolom, d.w.z. 150 interrupts per omwenteling) met een hardwaretimer. De kolomonderbrekingsroutine voert de huidige kolom uit naar de LED-strips. Om prestatieredenen gebeurt de uitvoer via drie DMA-kanalen die volledig parallel werken.

De volledige Arduino-broncode is beschikbaar op github.

PC-besturingsprogramma

Het pc-besturingsprogramma (pccp ) is een opdrachtregelprogramma geschreven in C++. Het draait onder Cygwin en communiceert via Bluetooth met de Arduino. De pccp maakt het mogelijk om de POV-cilinder te bedienen met de volgende commando's van één teken:

  • 0-7 - scherm vullen met kleur (zwart, rood, geel, groen, cyaan, blauw, violet, wit)
  • t - teken een driehoekige kromme (als een testafbeelding)
  • s - draai de weergegeven afbeelding in- of uitschakelen
  • r - teken enkele rij 
  • c - teken enkele kolom
  • j - interne GIF-afbeelding afspelen die is opgeslagen in Flash-geheugen
  • f - download extern GIF-bestand van pc via BT
  • x - afspelen van gedownload extern GIF-bestand

De pccp biedt ook een interface naar een grafische gebruikersinterface. Verder toont het de huidige rotatiesnelheid (in Hz en µs) en een frametellerwaarde.

De volledige broncode is beschikbaar op github.

Grafische gebruikersinterface

De grafische gebruikersinterface is een universele Windows-app. Hiermee kunt u het GIF-bestand selecteren dat door de POV-cilinder moet worden weergegeven. De app is afgeleid van de FilePicker-app uit de "Microsoft Windows Universal Samples" [5].

De volledige broncode is beschikbaar op github.

Referenties

[1] https://en.wikipedia.org/wiki/Persistence_of_vision

[2] RGB LED-BOL - POV - 40 x 200

[3] POV Globe-display RGB

[4] POV Globe Display RGB - Projectbeschrijving (in het Duits)

[5] https://github.com/Microsoft/Windows-universal-samples

Code

Arduino-broncode voor POV-cilinder
https://github.com/hanoba/povc-arduino
PC-besturingsprogramma voor POV-cilinder
Dit is een C++-opdrachtregelprogramma dat wordt uitgevoerd onder Cygwinhttps://github.com/hanoba/povc-pccp
Grafische gebruikersinterface voor POV-cilinder
Dit is een universele Windows-apphttps://github.com/hanoba/povc-win-app

Schema's

Dit is het schema.

Productieproces

  1. Arduino pov vision-klok
  2. DIY Eenvoudige 20 kHz Arduino-oscilloscoop op Nokia 5110 LCD
  3. Slimme jaloezieën
  4. Arduino Due TIC TAC TOE met touchscreen
  5. Bedien muntvangers met Arduino
  6. Italiaanse Word Clock
  7. Arduino met Bluetooth om een ​​LED te bedienen!
  8. Eenvoudige obstakelsensor met Arduino
  9. Sigfox kWh-meter
  10. Bluetooth-temperatuurmeter
  11. Een geïsoleerde analoge ingang voor Arduino