Skip to main content

it's been a while (but not without updates!)

I did not have much free time to work on this over the last couple of months,

but every once in a while when I did remember (hard not to, I keep the robot hand right in front of the computer), I tried to do something, mostly in the hardware procurement side of things.

some of the things I ended up acquiring:

- Raspberry Pi Zero (also the Raspberry Pi Zero W, which has wifi+bluetooth internally, but I just received it today thanks to Mr. Arjun Rao), for more versatile control (also to make possible to connect to the Leap Motion)
- AA battery power holders, to use AA batteries to power the servos
- A PCA9685 chip, for multiple servo control
- various electronic circuitry (probably won't be necessary for this project anymore)

in addition, I was made aware of a nice project called Cylon.js and its sister project Gobot, which allows users to program microcontrollers using JavaScript and Golang, respectively.

I really wanted to try Gobot and take a dive into the Golang world, but it currently does not have support for the PCA9685, which Cylon.js seems to provide. 

with that said, and with a few lines of code, here is the result:


the control of the servos are done through the PCA9685 connected to a Raspberry Pi Zero (no more Arduino), and the servos are powered through the 4-AA batteries. 

the next step is to read values from the Leap Motion, which Cylon.js claims to provide. 

when that works, we are starting to reach a good place. 


Comments

Popular posts from this blog

duty cycle testing

Now that I saw a physical response, I should try to make it similar to how a servo should be controlled. Servos are actuators that receive (expect) position input (as opposed to motors, which receive speed/intensity input). Simply put, it registers input as pulses, decoding the ratio of high (a "on" signal) to low in a given period as a position value.  A better explanation :  http://learn.adafruit.com/adafruits-raspberry-pi-lesson-8-using-a-servo-motor/servo-motors As I am waiting for my servo to be shipped, I will continue to work with the LED light.  As opposed to my previous setup of having the light turn on every time the request is given, I will have the light turn on and off in a regular pattern until a request is given, upon which the pattern will change for one "cycle" (on-and-off pair). The on-and-off logic (previously the LED control logic) will be run in a separate thread: def dCycle(*args):    global dCVal   ...

dabbling with android

I've been wanting to dabble with Android development recently, and yesterday I realized that there is a Socket.IO client API available for Java/Android. The API is pretty straightforward, so I loaded a test Android project I had made for going through Android basics and connected to the OpenSesame Node server. and it works! I mean, the interface is non-existent and it's really just bare-bones, but having the servo respond through an Android application was pretty refreshing. (the web client and the android client "communicating" with each other--messaging is pretty much for debugging purposes)

playing with servos

some servos that I had ordered were delivered. the instructions suggested another brand/model of servos, but these were a much more economical (cheap).  I tried adding them to the hand: I'll have to print the "pulley" pieces that will be attached to the servos. meanwhile, I did somewhat (hackily) got the wrist to work, for now: you keep hearing the "usb plugged out" sound in the background, and that's because the servo was being powered by the arduino. the servo's power draw appears to be causing a shutdown of the device. will need a better power source for the servos. it feels like these pieces that are supposed to be plugged into the servo will have size issues.