Tuesday, September 1, 2015

2015-08-31 (M) Wrist Mounted Chording Keyboard

Code was written to control two continuous rotation servos attached to a wrist mount. Rather than requiring one of the servos to have the motor leads reversed this code has outputs for two servos. While the servos should always turn synchronously it seemed more important that they can be easily hacked and many guides and tutorials already exist for converting servos to continuous rotation.

Outputs for this code have been written for Arduinos with more than six possible pins like an Arduino Pro Mini but comments were added for anyone wanting to use something smaller like a DigiSpark or one of the knockoffs. In the case of an ATTINY85 board the limit switches were put on pins 3 and 4, the data pins, so the USB programming will still work so long as the switches are both open.


Downloadable Files:
To do:
  • Modify two servos for continuous rotation.
  • Wrist mount
    • Program
    • Debug
    • Test
    • Refine
    • Repeat
    • Activation switch
    • Route wires
  • Write instructions
    • Schematic

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-08-28 (F)

Monday, August 31, 2015

2015-08-30 (Su) Wrist Mounted Chording Keyboard

Printed servo lever arms were attached to ordinary servos. Coincidentally the thickness of the lever arm was very similar to the thickness of the servo horn hub thickness which made for a flush piece. A single screw was used to attach each servo horn to a lever while the old design would require two screws per servo. One servo was placed in the wrist mount piece but not screwed down. Two versions of the servo levers were printed, one attached to a servo while the other had ends meant to hinge on a bolt so they were simply open holes. Those holes needed to be drilled out in order to fit a #6 bolt.

Old style which attached to top of servo horn

New style which wraps around servo and attached to underside

Half of the levers and servo were assembled before animation and video were taken. Animations show the way the four bar linkage will move something from a forearm position to a palm position. As a simple demonstration the continuous rotation servo made on 2015-08-23 (Su) was also connected to the same servo signal to demonstrate how the two act differently despite getting the same signal. Video was shot which first demonstrated manual movement where the signal was changed according to the potentiometer which can be seen as it was turned. The second part, at 23 seconds, showed the neutral position where the continuous rotation servo is halted and the unmodified servo snaps to an odd angle. The final part of the video, at 27 seconds, shows automated movement where the shuttle moves back and forth and the continuous rotation swings around and around in both directions. This final movement was also captured as animation shown below.

Automated movement

Video showing Four Bar Linkage and the difference between servos
While watching YouTube videos it's possible to skip around by pressing numbers on the keyboard. For example, to go to the beginning press zero, 0. To go to the exact middle press five, 5.
To skip immediately to the second part of the video, where neutral position is demonstrated press six, 6. To skip right to the automated movement press seven, 7. Press zero, 0, to rewatch the whole thing.

Downloadable Files:
To do:
  • Modify two servos for continuous rotation.
  • Wrist mount
    • Build
    • Test
    • Refine
    • Repeat
    • Activation switch
    • Route wires
  • Write instructions
    • Schematic

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-08-26 (W)

Sunday, August 30, 2015

2015-08-29 (Sa) Wrist Mounted Chording Keyboard

The modeling file from 2015-08-11 (Tu) was reopened and modified. Two different types of servo lever arms were needed to make the four bar linkage. One type of lever must attach to a servo horn and be hinged on the other side. The second type must have bolt holes on each end to act as a hinge in both places. Two of each piece should be printed for a full set. Each piece is the same length so the four bar linkage being constructed would be a parallelogram.

Rotating view of servo arms model

Full set of servo arms

Downloadable Files:
To do:
  • Modify two servos for continuous rotation.
  • Wrist mount
    • Model lever arms
    • Build
    • Test
    • Refine
    • Repeat
    • Activation switch
    • Route wires
  • Write instructions
    • Schematic

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-08-26 (W)

Saturday, August 29, 2015

2015-08-28 (F) Weekly Summary

Bluefruit EZ-Key provides a bridge which accepts serial data, like from an Arduino, and acts like a Bluetooth keyboard on the other side. Unfortunately the keyboard presses I was sending over the USB couldn't be reused but the established structure of the program made it possible to just plug in the serial data. That was what I had planned for a couple wees ago and I suspect I saved myself some headache and heartache by approaching it that way. Once the serial data was in place the Bluetooth module was paired with my phone and typing commenced. After several program tweaks it was possible to type simultaneously on my phone and a USB connected computer. This made debugging easy because I was able to compare messages from each screen and see what was different. It went very well. Most of the problems were from non-printing characters.

After the success with Bluetooth it was time to start work on the mouse functions. Spiffchorder code was not meant to lend much focus to mice and with the popularity of touch screens this may be wise. For my build I wanted to have a mouse which responded to tilting kind of like a Wii remote. This was hinted at when I rearranged all the chords dealing with the Far thumb button. An analog output accelerometer was used which generates a voltage based on orientation. These signals are very easy to read with the analog input pins on an Arduino. The most common alternative would be to use serial data but anyone who has read this blog knows how I feel about reading serial data.



Accelerometer attached to Arduino

Chordmap

Inexpensive servos have a limited range of movement but they can be modified to spin continuously. I had only heard about the procedure but I assumed it was less functional than purchasing continuous rotation servos. I was wrong. Dismantling, modifying, and reassembling the servo took less than an hour while screwing up the innards took two more. I learned everything I wanted to about servo motors and while inside I had an idea of how to control two servos with a single wire from my Arduino. By hooking up one of the servo motors backwards the two should act as mirrors of one another but this will only work for continuous rotation servos. Soldering a standard servo's motor backwards would only render it useless unless the potentiometer leads were also reversed.

To convert a servo which normally travels less than 180º the potentiometer is rerouted to a different potentiometer of a greater than, or equal, resistance. That potentiometer becomes a tuning resistor. An anti-rotation tab on the top gear of the servo is removed then it's all put back together. Piece of cake.

Splayed innards of a servo

Ill conceived attempt at bypassing the potentiometer

Tuning potentiometer

Reassembled servo

When I first thought about making this keyboard I visualized it in my right hand. It seems I am in the minority though. To give anyone a chance to build this keyboard the models were mirrored and rendered as stl files.

Left hand and right hand version of the finger pieces

The first design for a wrist mount was not very good. It was flimsy and relied on unproven ideas. Gavin showed me a neat design used to put a tool into the wearer's hand at the push of a button. The design was well executed and gave me a good idea of how I should build my wrist mount. Modeling of the wrist mounts started with a convoluted design, as they often do, and was finally reduced to two simple parts which could be held together with standard #6 (3.5mm) bolts. Pieces were printed, revised then printed again with proper dimensions. The pieces were assembled with bolts that were probably too short. Servos were installed but not screwed in place. Levers will have to be designed and printed. Files from 2015-08-11 (Tu) will be used.

Spinning model of one side of the wrist mount pieces

Wrist mount assembled with short bolts

Downloadable Files:

The rest of the weekly summaries have been arranged by date.





This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

Friday, August 28, 2015

2015-08-27 (Th) Wrist Mounted Chording Keyboard

Modeling was done for a servo and hinge holder. Pieces focused on the idea of using #6 (3.5mm) bolts as cross-members. For this design consideration bolt holes had to be placed identically to ensure a bolt could pass through all the pieces. Two pieces were modeled, one which would hold the servo and act as the body and the smaller second which was meant to act as a hinge base while mounted parallel to the body. A quick model was drafted and printed but the distance between the hing and servo was approximately 9mm too long so a second model was made to correct this.

First print and shorter corrected print below

Rotating view of short model

Printed pieces were attached with 3" (75mm) bolts which were almost certainly too short. Numerous nuts were used which was time consuming and finicky but acceptable for an early prototype. Servos were laid in place but not screwed in place.

Assembly with printed parts

Focus on servo and expected clearances

Servo lever arms which attached to the underside of the servo horns should be modeled to conserve space. These levers would have a large (7mm) hole at the servo end which the servo horn would pass through while giving it a good leverage point. Designing a lever arm like this would only require one screw to hold it in place.

Downloadable Files:
To do:
  • Modify two servos for continuous rotation.
  • Wrist mount
    • Model lever arms
    • Build
    • Test
    • Refine
    • Repeat
    • Activation switch
    • Route wires
  • Write instructions
    • Schematic

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-08-25 03 (Tu)

Thursday, August 27, 2015

2015-08-26 (W) Wrist Mounted Chording Keyboard

Progress on the wrist mount had been slow for days. Designs were weak and poorly visualized. A friend showed me a wrist-mounted tool holder which made him think of what I was trying to do. Tim, the author of the Robotic 3rd Hand used a pair of four-bar linkages, like I was planning to do, but he did so with one servo and 3D printed parts. Refinements on his project showed a lot of care and attention to detail which will not be copied in this design, not right away. First, a working model will be built to prove the design then changes can me made to make it more comfortable and functional.

Enough background.
----------

Sketches were made of a 3D design which would hold servos and allow for #6 (3.5mm) bolts to be used as cross members. Advantages of the cross-members included the ability to change the distance between servos, less plastic to print, and duplicate pieces could be printed instead of one structure.

Sketches of design for wrist mount

Footprints of small servos were drafted, specifically the SG90 and MG90, which were the same size. These servo footprints can be used to create pockets in models where a servo can fit. Modules are reusable and available in the Downloadable Files below.

OpenSCAD servo footprint module

Downloadable Files:
To do:
  • Modify servos for continuous rotation.
  • Wrist mount
    • Design
    • Model
    •  Build
    • Test
    • Refine
    • Repeat
    • Activation switch
    • Route wires
  • Write instructions
    • Schematic

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-08-25 02 (Tu)

Wednesday, August 26, 2015

2015-08-25 (Tu) Wrist Mounted Chording Keyboard

Mouse movement functions had been avoided to this point. Programming was written for the built-in USB mouse emulation. Mouse code was easy to implement once reasonable numbers were passed to it. Movement was essentially done by first taking a reading from the accelerometer (ADXL335) when the Far thumb button was pressed by itself then basing all movement off that initial location. In this way if the accelerometer was started at 35º on the X axis when the user moves the X axis to 36º (+1º) there is a small mouse movement to the right but if the user moves the X axis to 5º (-30º) there is a large movement to the left. Mouse movement would not be necessary for a desk mounted keyboard unless a joystick was attached. Due to the way to code has been written attaching a joystick should function without any modifications.

Macro shot of accelerometer

Once the USB mouse was functional programming was researched on Adafruit's tutorial on how to command the mouse. The tutorial was straight forward and easy to understand. Mouse movement was simultaneously working on a mobile phone (via Blutooth) and a laptop (via USB) after a few attempts. Variables were tuned to get usable mouse movement but user preferences will likely mean that users will changes these further.


Recent code for wireless keyboard with mouse movement

Downloadable Files:
To do:
  • Add mouse functionality.
  • Program changes:
    • Add mouse movement
    • Change mouse clicks to press and release according to buttons
    • Add random number generator
      • 0-1
      • 0-1000
      • Random equation followed by enter
  • Modify servos for continuous rotation.
  • Automate wrist mount.
  • Write instructions
    • Schematic

The rest of the posts for this project have been arranged by date.

First time here?

Completed projects from year 1.
Completed projects from year 2



This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.

All information in this blog, or linked by this blog, are not to be taken as advice or solicitation. Anyone attempting to replicate, in whole or in part, is responsible for the outcome and procedure. Any loss of functionality, money, property or similar, is the responsibility of those involved in the replication.

All digital communication regarding the email address 24hourengineer@gmail.com becomes the intellectual property of Brian McEvoy. Any information contained within these messages may be distributed or retained at the discretion of Brian McEvoy. Any email sent to this address, or any email account owned by Brian McEvoy, cannot be used to claim property or assets.

Comments to the blog may be utilized or erased at the discretion of the owner. No one posting may claim claim property or assets based on their post.

This blog, including pictures and text, is copyright to Brian McEvoy.

2015-08-24 (m)