Coder Social home page Coder Social logo

pov_display's Introduction

Persistance Of Vision Display

About

Human eye cannot process more than 12 images per second. So by turning on and off moving LEDs it is possible to create an illusion of a stationary image. The goal of this project is to develop a display utilizing this principle. Main modes of the display are going to be: analog and digital clock, showing images and playing videos.

hello world analog clock

Electronics

As the main purpose of this display is to have a fancy wall clock, one of the main concerns in electronics design was power usage. That's why I decided to use STM32L051C8 as the main MCU, due to its low power usage, high computational capabilities and my familiarity with STM's HAL interface. Power supply consists of Li-Po battery and 2.5V low dropout voltage regulator. Charging battery is done via micro-USB port with TP4056 IC. For driving LEDs I chose a combination of classical 74HC595 8-bit SIPO registers and current limiting resistors. Photodiode is used for calculating rotation time.

Using the KiCad software I came up with following schematic: Schematic

And PCB design: PCB

Board after assembling: Assembled Front Assembled Back

After I glued the main battery in the board wasn't balanced and after trying few methods, I stuck with adding 2nd battery for increased battery life in addition to balancing the PCB.

MECHANICS

Rotor holder used for connecting the PCB to rotor using two pairs of M3 nuts and bolts. Rotor holder

Motor hodler was printed in 3 separate part because my 3D printer was too small. Parts are mounted together using M3 and M4 nuts and bolts. Motor holder also embeds IR LED. Motor holder part1 Motor holder part2 Motor holder part3

All parts were printed with ABS material.

SOFTWARE

IMAGE COMPILER

Python script used for coverting images into a C-style array, that could be programmed into the MCU.

Embedded

Project was made in VSCode using stm32-for-vscode extension. For this project I used stm32CubeMX for generating initialization. There are 2 main modes that the display can work in:

  • Analog Clock - Mimics classical analog clock
  • Image - Displays stationary images, precompiled with python script

Modes and parameters can be chosen via config.h file.

pov_display's People

Contributors

mkrysz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.