Project:Aquarium Edge Illumination

From CoMakingSpace Wiki

(Redirected from Aquarium Edge Illumination)

ProjectInfoBox

Aquarium Edge Illumination

Aq-edge working prototype.JPG
Status: probably finished
Release Date: June 2018
Initiator: Lukas
Materials Used: LED strips, Arduino UNO
Software Used: Fusion 360
Approx. Cost: approx. 20 € (without the Arduino)


For my PhD project, I needed to film fish in a small aquarium (5-8 L) from the side and the top.

After some less succesful attempts, it seems the most even lighting that will not obstruct the top camera is a rectangle of LED strips along the top edge.

Initial Situation

Design Goals

  • light intensity & angle controlled independently for each side
  • electronics protected from the water
  • controlled from at least 1 m away

Constraints

  • LED strip: "YourLED" 40 LED/m daylight (6000 K)
    • (somewhat) waterproof silicone cover
    • analog control
    • 3 mm thick
    • 10.5 mm wide
    • splittable every 7.5 cm
  • aquarium: 4 mm thick glass, partially laid out with 3 mm thick rigid foam board (probably PVC)
    • outside 26.5 × 18.9 × 23.1 cm
    • inside (top) 25.6 × 18.2 × 22.5 cm
    • ! protruding glass pieces (17 × 99 mm) at short sides 7.3 mm below the edge

Approach

I cut the LED strip into two 15 cm and two 22.5 cm pieces which were powered through separate MOSFETs that were controlled by an Arduino microcontroller. The holders for the strips were 3D printed and allowed angle adjustments. Electronic connections were protected by heatshrink. A control panel with dials for each strip's brightness would help with the setup process but was not a priority.

Make

3D Printing

The first prototype for the 3D printed holders sat on the glass very well but was of course not perfect yet and missing some important features. These will be improved in the next version:

  • lip to shield the top camera from direct light would reduce ease of printing - probably just a piece of electrical tape in the end
  • slightly wider slots (+0.2 mm) so the screws slide freely
  • move "legs" to the edges so the LED strip's range of movement is increased and there is room for wing nuts "outside"
  • longer slots on all parts
  • deal with various design bugs in Fusion...
  • make all sides "short" - corners are too crowded with parts for free adjustment and may also be over-lit otherwise

The large parts should be printed with the area that will hold the LED strip touching the print bed. This orientation is important - it was not chosen for strength, but optimum conditions for the adhesive backing of the LED strips. This is also the orientation with minimum overhangs so mistakes should be prevented by design.

Electronics

(buggy) breadboard assembly - any idea why the pulldown resistors didn't do their job?
  • prototyped with a breadboard & Arduino Uno
    • suitable USB power supply would be 5V/500mA [1]
  • other components: four IRF510 MOSFETs, four 10 kOhm resistors as pulldowns, four 150 mm LED strip sections & 12V/1.5A power supply
  • wiring: pretty much according to Step 5 of "Intro to LED Strips" on Instructables.com
  • PWM control: analogWrite (pin, value)
    • accessing each LED strip's control pin (6 & 9-11) as "left", "right", "front", "back" in the code
    • input only via uploading new values to the Arduino...

Programming

Just some very simple bits of Arduino code ;-)

Accessible via GitHub in case you're interested.

Visible flickering of lights in the video was addressed by increasing the PWM frequency as described here.

Bugs

  • pulldown resistors (10 kOhm) didn't have any effect - does anyone have an idea why?
    • it gets dark enough for the sake of this project, but still annoying that I can't actually turn the light off completely...
    • Korbi suggested that the MOSFETs may have been damaged during installation and are therefore "leaking"
      • possible causes: static, wrong multimeter use (should be at drain before gate), 12 V connected before Arduino?
      • to verify: if there is really 0 V at the gate, it must be a leak and not a control issue; resistance drain-source should be OL