Skip to main content

finally got around to it (nrf24l0+ and servo)

On a previous post, I used the nrf24l01+ wireless chip to communicate between the Raspberry Pi and an Arduino, but only got lights to turn on.

I remember being confused as to why servos would not work, and somewhat left it there.

I started messing around with it again, and I am concluding that it might have been just a power issue.

Here is the servo moving properly:


The Arduino is on the ground due to the short length of the wires powering them.

Just as a recap, what is happening is:

- a C++ program using the RF24 library is compiled in the Raspberry Pi (connected to an nrf24l01+ chip) to broadcast a message. When executed, it will broadcast the message.
- the Arduino (connected to another nrf24l01+ chip) programmed to receive messages receives the message, and upon receipt sends a signal to an Arduino that is wired to the servo to move the servo.

Two separate Arduinos are used, as it seems that the servo library and the RF24 library do not seem to run properly together.

Anways, this finally opens up the potential of having a single Raspberry Pi control various devices in separate locations.

With these nrf24l01+ chips being as cheap as ~$2 a piece, (and ~$5 for an Arduino Pro Mini), it definitely sounds like a cheap way to automate various things around the house.

I might move out of my current apartment in a couple of weeks; maybe I'll start having the Raspberry Pi control more things around the house.

Comments

Popular posts from this blog

setting up pwm

There's always an obstacle.. I implemented the pwm module as described in the link in the previous post, but oddly enough, it didn't work. The error I received: AttributeError: 'module' object has no attribute 'PWM' After some time scratching my head, I came to the realization that somehow my python was running an older version of the RPi.GPIO library, as PWM control was a pretty recent addition to the library.  And indeed it was.  Not really sure what's happening in detail, but it seems that there are two different... entities? that manage libraries for Python. One is through the usual "apt-get" command and the other is "pip." It appears that Python looks at "pip" first, and it currently linked RPi.GPIO to a really old version of the library.  Uninstalling that older version ("pip uninstall RPi.GPIO") and using the version I obtained through apt-get ("apt-get install python-rpi.gpio...

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. 

pwm..

I just realized that the RPi.GPIO library (for programming the Raspberry Pi's input/output) already has PWM control, giving me a much more efficient control of duty cycles... At least the previous exercise ("duty cycle testing") refreshed me on it. PWM control on RPi.GPIO: http://code.google.com/p/raspberry-gpio-python/wiki/PWM