The first thing you should know about me is that I don't like unstated assumptions.
The world is a complicated place, and our small minds can barely hope to fully grasp it. So, I'll pretend that I'm a good writer and you can pretend you're interested in reading about what sounds like a confused dating profile.
It's not a dating profile.
I like long walks on the gravely beaches of Alberta, pina colada flavored bubble tea, and getting caught in a try/catch exception. My pastimes include coding, making impeccable websites, making peckable websites (*insert chicken peck*), and guitar. If you'd like a website like this one, and would like to pay me for it, head over to the freelance (*link*) section. If you'd like to hear more options, please press 2. (*insert dial popup*)
In all seriousness, I wrote this website to help market myself as I move to freelancing and just really to show others what a website can be and what kinds of things that websites nowadays are capable of. Of course I don't claim to have the fanciest website around, but it loads quick, it's quirky (if I do say so), and it represents who I am. Coincidentally, that's also what kinds of things I'd like to work on for freelancing.
First a little back story: I couldn’t have done this myself, so thanks Adam Thomson and Alix Krahn for all the help! This was done for our ECE 492 class which is a final design project that engineering students do before graduating. Only, I’m wasn’t graduating with the rest so I had wayy more time to work on this.
Our initial ideas were pretty insane and undoable (mostly my ideas). To be fair, I had been on a roll as of recently with my last two jobs. What I didn’t know was what was awaiting us in the labs…
Enter the DE2
If I had to draw a pi chart of how I spent my time on this project, it would have to be this:
Although, I must be the one to blame because it wasn’t that the DE2 Board couldn’t do what I wanted it to but rather that I couldn’t make it do what I wanted to.
This “development” board, provided by Altera, leads to more character development than anything else. You know you’re fucked when the guys working at Altera can’t quite get the bugs worked out of
But enough about the hardware…
How does it do what it does? How it does what it do? Does how what it does it do? It does, but what it do?! What?! How? Do?!
Our touchscreen uses
Alright alright….here’s how it actually works:
It’s a table with an acryllic surface surrounded by infrared LEDs. The LEDs shine into the acryllic and because of the refractive index (google it) of the acryllic, the IR beams get stuck inside. Unless your finger swoops down to save the day.
Then, our space age (read: as old as space) camera will read the incoming IR beams as white pixels on a black backdrop. We made our LED camera ourselves using the best things of the 90’s: Eyeball shaped webcams and Floppy Disks. Tutorial Link
Here’s a sample image from our touchscreen
To interpret that data as fingers (no, you can’t just cast it to a
We also used a few other tricks to help with the sensitivity of the screen. By lowering the triggering threshold / amplifying the values we can increase the sensitivity but we end up catching the edges of the screen more than anything else. So we decided to store an initial image of the screen, and subtract that from every image to just get the difference. Kind of like how you’re not supposed to touch the joystick on your
We also used a calibration algorithm that I know nothing about, nor do I care (for the moment). I gotta say though, uncalibrated touchscreens or….badly calibrated touch screens, are hilarious.
To use our touchscreen we made a sample app that takes advantage of our hardware (well, mostly my laptop because fuck the DE2). Yea, see that academia, we actually found a use for our technology then applied it! There are actually 2 programs we made, one is a multifingered
END OF POST
Archived from my old website. You wouldn’t believe the amount of time I spent debugging a USB stack I wrote, and then the stunningly short amount of time we wrote everything else when we couldn’t use that stack. DAMN YOU ISOCHRONOUS PACKETS!!! YOU AND YOUR PING-PONG BUFFERS CAN ALL GO TO
things I made
In no order (TODO: add images, reformat as grid)
- Arduino Guitar Pedal
- 4Score Iphone game
- Soundcloud scraper
- Raspberry Pi Wireless Sampler
- Home-made touch screen
- Software modular audio synthesiser
- Experiments in natural language processing and machine learning
- LED control circuits withh arduino
- Arduino spatula bot controlled by twitch
- Github commit viewer
- Auditory github commit viewer
- App for geotagging landmarks and commenting (anonument)
- Redid computer engineering wordpress site
- This website
- Experiments in DSP for face/eye tracking
- Homemade unofficial calendar for the 2015 Edmonton Fringe
- GPS path viewer
- Scrolling RPG platformer for GameJam
- Experiments in genetic programming
- Experiments in GPU programming (CUDA/WebGL)
- Encoding images from phone onto reel to reel tapedeck
- Program to take screenshots of Ionic phone apps
- Tool to see how frequently JS code is run (js-hist)
- Multi-user poetry app with unique suggestion UI
- Online signal for when to go to the bar in school
- Unfinished procedurally generated space RPG
- Discover Alberta app
- Enroute Taxi Advertising System
- Forestry radio tower registry
- Timesheet management system
- Home appliance maintenance app
- U of A Rutherford house tour app
- Social restaurant marketing app (MyTab)