[Documentation] [TitleIndex] [WordIndex

  Documentation Status

Cannot load information on name: pmad, distro: electric, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: pmad, distro: fuerte, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: pmad, distro: groovy, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: pmad, distro: hydro, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: pmad, distro: indigo, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: pmad, distro: jade, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: pmad, distro: kinetic, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.
Cannot load information on name: pmad, distro: lunar, which means that it is not yet in our index. Please see this page for information on how to submit your repository to our index.

Step 1

The first thing is to load the provided sketch into your Arduino board. The sketch is arduino/sketch.txt. You should copy this sketch into the Arduino GUI and it should compile without problems (hopefully).

Step 2

Once you load the sketch above into your Arduino, you should be able to plug the Arduino into a USB port on your computer and start the PMAD service. This service controls all of the communications to the Arduino. You can start the service by using:

rosrun pmad pmad_service.py

Note that if the Arduino does not connect as /dev/ttyUSB0, you will have to preset a ROS parameter tty that defines the port the Arduino is connected on. You might have to set tty to /dev/ttyUSB1 for example. The parameter is just a simple string containing the device path.

Step 3

Once you set up the service, you can toggle the digital pins with service calls like:

rosservice call pmad_switch_control 4 0

This for example will set digital pin 4 to LOW (represented by 0). You can also change digital pin 13. This is convenient to test with -- you can try turning on and off the LED attached to digital pin 13 that is provided on most Arduino boards (Not all boards provide this LED. Check for this for your board of choice.)

Step 4

Additionally, you may want to periodically receive a status packet from the Arduino. This status packet contains the state of the 4 digital pins 4, 5, 6, and 7, but also provides the analog values on analog inputs 0, 1, 2, and 3, as well as a command executed counter.

If you want to get this status packet to be a "topic", there is an application

rosrun pmad pmad_status_publisher.py

This application will publish the status data once per second. The status message is defined in msg/Status.msg.

More Information

By the way, pmad stands for power management and distribution, I am using the Arduino in combination with solid state relays to switch DC loads on and off.

There is also more information in the comments at the top of the provided Arduino sketch.


2017-09-23 13:05