Posts Tagged ‘language’
Puppetmaster Project Overview
My final project for Fab Academy is a universal remote I am calling PuppetMaster, due to its ability to control out of reach objects / devices using the fingers. This post details the PuppetMaster boards v.1 – v.2 that use capacitive sensing.
Capacitive Sensing Board Versions
The first working version of the prototype uses capacitive sensing built on the Hello World Step response example, but converted for use with a attiny 44.
I fabbed the board(s) myself, using the standard fab inventory parts.
PuppetMaster Board Version 1 –> pitfalls / issues
I designed my own board based on the hello step response with 3 additional inputs for each of the four fingers. (The hello step response has only one input). As the hello step response example uses the attiny 45 (and does not have enough input / charging pins for 4 inputs), I modified Shawn’s version of the hello step response to work with the attiny 44.
This initial version of the PuppetMaster board has a FTDI header and 4 inputs / charge pins.
However, there was a issue with this initial board and I could not get the modified code for the attiny 44 to work with the Hello.Step.45.py code. I attempted triage, but the board remained flaky. There seemed to be an issue between the ground pin on the chip and power.
In addition, I realized that I routed the Tx to Rx wrong on the FTDI header pins. I was using jumpers to work around it initially, but after the version 1 board’s persistent flakiness, I decided to make a version 2 board. I am not including the schematics & Eagle files for version 1 because of these issues.
Code Modification: From attiny 45 to attiny 44
I modified the hello step response assembly language code to work with the attiny 44 microcontroller. Both sets of .asm files are listed below.
Puppetmaster Board Version 2
Here is the version 2 board with the correctly mapped FTDI header and some slightly shifted components to allow for more space between some problematic components. This board version has been flashed with the attiny 44 code (above) and works with Hello.Step.45.py code.
CAD Image Files Used to Mill board v.2
Putting the Version 2 Board Together
I ran out of time in the lab and did not get a chance to mill out the board. Instead, I scored the perimeter with a utility knife and broke off the excess edge. Then I used a rasp to file the edges down.
Capacitive Sensing in Action
Using Neil’s term.py program to visualize the initial charging graph and sensor input.
My final project for Fab Academy is a universal remote I am calling PuppetMaster, due to its ability to control out of reach objects / devices using the fingers. This is the revised final project proposal – the first proposal was overly ambitious and encompassed too many sensor types in too short of a time period.
First Working Prototype: The first working prototype (illustrated in the PuppetMaster v.1-v.2 [capacitive sensing] post) uses thin copper sheets to create a capacitive sensor between the index finger and the thumb.
For Fab 6: By Fab Academy graduation I propose that PuppetMaster will consist of a fabbed board that reads gestural input from accelerometers.
Overall Project Goals / Design Considerations:
- Create a remote control that takes input from finger movements / gestures
- Remote is small and wearable (will likely look like a bracelet or a watch) with connections to the fingertips.
- Remote is comfortable enough for long-term wear, will help to relieve hand / joint fatigue
Short Term Project Stages (Completed by Fab 6)
All board(s) will be fabbed, using the standard fab inventory parts with a few exceptions, (the sensors used in the later stages).
The First Stage [capacitive sensing]
- Completed June 2nd – consists of using capacitive sensing as input data.
The Second Stage [ accelerometer input]
- Completion before Fab 6 in August, will include the addition of accelerometer on each finger to record control gestures.
- Simple gestures will be used for input controls.
Long Term Project Stages (Work in Progress – NOT for Fab 6)
- Additional stages (to follow in the in the Fall) will include one mode of control (IR) but other modes (radio, bluetooth) will be added as the project progresses. (See stages outlined in the table below.)
- Eventually, a dial or switching mechanism will be added to switch between the modes. Although the other modes of control mentioned above will be explored, the gestural input will be the primary focus.
- In the final version of this prototype, the user of PuppetMaster will be able to input information via gestures and remote control objects by using sensors embedded in the fingertips.
- These additional modes (combined with the necessary code) will allow the user to control almost any device with hand gestures. I also want to develop a complete gestural language (possibly based on sign language)in tandem with the addition of 6-axis sensors (3 axis gyro, 3 axis accelerometer) to the device.
Revised Project Schedule:
|Stage||Description||Deliverable||Date Range||Board Version|
|Short Term â€“ For Fab 6|
|1.0||Capacitive Sensing||working capacitive sensing prototype||Complete on 6/2/2010||v.1 â€“ v.2|
|2.0||6-axis Sensors (gyro, accelerometer)||accelerometer prototype||06/02/2010 â€“ 09/16/2010||v.3 -|
|3.0||Basic gestural language||A few mapable gestures that can be read by the computer / another device||06/02/2010 â€“ 09/16/2010||v.3 -|
|Long Term â€“ Future Improvements to make the remote â€œuniversalâ€|
|4.0||Infrared||infrared remote prototype||05/16/2010 â€“ TBD|
|5.0||Radio Control||infrared remote prototype + radio control||07/01/2010 – TBD|
|6.0||Bluetooth||infrared remote prototype + radio control + bluetooth||08/20/2010 â€“ TBD|
|7.0||Complex gestural Language||Full gestural language mapped to the 6-axis sensors||07/01/2010 â€“TBD|