Skip to main content

finally getting back to it

Things went by pretty quickly this month, and I was not able to play around with this project much. 

I did tinker with it every now and then, but I was never able to get myself past the residing issue of compiling the RF library in the Raspberry Pi.

It seemed people are generally interested in the project linked in the previous post, as people were actively posting comments on it. 

Couple of days ago a user posted a solution to the compile issues (changes to method names and usage of pre-defined values for parameters), and I thought I should try following it to see if it works. 

The code indeed compiled, and I was able to change it a little more to be more fitting to my project. 

On the Arduino side, it might be a premature assumption, but it seemed like the Arduino was unable to handle messaging through the RF and controlling the servo at the same time. My assumption is that the inability to control them in separate threads is causing some timing issues, but I might be over-analyzing.

The current solution is to use two separate Arduinos--one to handle the message and another to move the servo. The Arduino the receives the message sends a signal to the other Arduino, which moves the servo upon reception of the signal. 

Even with this setup, it did seem like the servo was not functioning properly when the message was received, but I believe it was due to the led light causing some signal disruption, as removing it seemed to have solved the issue.

The Raspberry is now able to send a message to the Arduino, but it is successful only about 80% of the time; the message seems to get lost in the other 20%. I'll have to understand the messaging system a bit more to understand what causes the messages to be unsent. 

Here is the result so far:


I will have to clean up the code and figure out the messaging system before I replace this with the current, wired setup.

Comments

Popular posts from this blog

json messaging (2/2)

Took a good 2 hours to change all the messages into JSON format and make it work. But it is done. All is JSON. Using it like a map, currently with three key-value pairs: "id" : for entering a session ID of another session if needed. Currently used for the web client to receive a acknowledge response to confirm that the target received the message (mainly for testing purposes). "type" : probably the most functional data going through all this. Current types are STARTUP_TYPE - for when the target sends its initial message, the server uses this to mark which session is the target. REQUEST_TYPE - for when the web client sends a request to the target. Server uses this to send request to target. ACK_TYPE - for when the target finishes carrying out the requests and sends an acknowledgement of the completion of the request to the server. Server uses this to send confirmation to the web client  MISC_MSG_TYPE - for anything else. DEBUG_TYPE - current...

come back

The last couple of weeks have been quite refreshing. The drive for learning and trying out new things has never been higher. Currently fascinated with Node.js; Javascript truly isn't the make-a-website-pretty script I had known anymore.  Playing around with back-end and front-end frameworks. Currently playing around with Sails.js, and once I get used to that, I am looking forward to trying out Angular.JS as a front-end framework. Other than that, currently have couple of other random APIs (non-Node.js) I would like to play around with, but I'm just keeping them up in my browser tabs to that I'll get to them eventually. In addition, I reviewed the Android Developer tutorial again--hoping to try making something in that end as well.

adding a servo

Since I don't have any lock that works based on a digital signal, it seemed appropriate to at least have something in place that would emulate the behavior of such a lock, and I thought that a servo would be a good substitute. (note: a servo is a device with which one can control a specific rotational position) Connecting a servo to the current circuit isn't too much of a challenge, as it just requires a single output connection along with the ground/power. Making the servo also just requires an addition of a few lines of code, using the Servo library . A simple video of the servo in action: Now, at least with a locking behavior in place, the one visible functionality that needs to be addressed is the device's ability to distinguish between a "standby" state (no alcohol/no breathing in: should be in "lock" mode) and a "open" state (no alcohol/breathing in: should be in "open" mode).