Code Monkey home page Code Monkey logo

proj324's Introduction

Final Year Project

pi0toChroma logo

Stage Criteria

This is the criteria I would like to meet, to feel as though I have created a successful project.

Stage Name Description
1 Smart shades Make a set of smart sun classes
2 Auto smart shades Add LDR to control the opacity
3 Auto smart point shades Add camera to make dark point over bright points
4 Controllable smart shades Add options to swap between modes
5 Driving/safety improvements Auto react headlights etc.

Inspiration

indie-go-go

ctrl-eyewear

pc case

Plan

The product's above, along with Paul's lectures last year inspired my idea.

The plan is to use two LCD's with the backlight removed, to create dimmable panels in front of the users eyes. Then eventually I will add a camera to make point control which will block bright spots such as projectors and the sun, and dim them to reduce squinting.

Final mock-up

final mock-up design image

So, once I have removed the backlight from the LCD's I can mount them in a frame. I can then begin to control the contrast/pixel density to make them dim. I will then add a LDR to automate the brightness selection, this will remove the manual adjust however I will leave the buttons to set the levels. Next I will add a camera to the system so that the system can also detect bright points hence make a matching point darker on the lens. I will then use the buttons to make it so that you can swap between the modes. The final additional feature I would like to add is some intelligence on the camera side to ignore certain circumstances such as car tail/headlights

Report

I got the LCD hooked up and displayed some random spots of different opacity on the screen

random point video

I tried to install opencv to do the image processing built the install failed and after I spoke to my supervisor he confirmed my suspicion that opencv was too over powered for my project

so I did some more research around low power blob detection in python and found Skimage which has a function for Determinant of Hessian(doh) blob detection which should be quick enough the only issue I then had was getting the image from the camera into the right format since the doh blob need a numpy array as luck would have it skimage has a built in converter

I then connected the camera and started blob detection and got that working final mock-up design image

then I started to convert the shades.py (the file that controls the lcd and camera) and telegrambot.py (the script that enables remote control via a chat client bot) this involved more work than I had initially expected since passing variable around wasn't as easy as I had hoped

I decided to use telegram to add remote control so that you could adjust the colour of the tint remote control

command param Description
help na show the help menu
pickcolour pick from list of tints preset tints/colours
pickmode pick manual,tint,points or full auto change current mode
tellmeajoke na tells a joke
tint percentage sets the tint of the lenses
up na see if the bot is up
temp na see the CPU temperature
start na starts shades
stop na stop shades
exit na exit shades
reboot na reboot shades
halt na shutdown shades
uprecords na see up time
debug na toggles debug
colourset fore/back@0/255,0/255,0/255 sets the colour of the lenses
allowAllIds na toggles if user id is needed

After I had all of the system working I bought a 5 button capacitive touch sensor and started adding that into the code so that I would be able to control the glasses with out having to have it connected to the internet

button pressed held
1 scroll tints reset tint to clear
2 scroll modes reset to manual
3 debug turn off
4 stop start
5 na exit

capacitive touch control

mode change tint change debug toggle

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.