During the last school semester I had to work on a robotics project that used the SD84 board. This board is an 84 channel servomotor controller that receives commands over the USB bus. Each one of the 84 channels can be a Digital Input, Digital Output or Servomotor Output. Additionally, 36 of the channels can be 10-bit Analogue inputs.
These features were used to control a 10 degrees of freedom robotic arm, that also had distance sensors along its lenght to avoid obstacles. I wrote a very specific code for that aplication using Matlab ( just the interface between Matlab and the board, direct and inverse kinematics were made by Alex and Pedro ), thus not implementing all the capabilities of the SD84.
That being said I wrote some Python functions that do all the board features, but some of them are untested because the semester is over and I had to return the SD84 to the school before testing them…but they will work, I´m sure!
The scheme below explains how the code should be implemented just in case the example that comes with the functions isn´t explanatory enough.
You can download the file on the link bellow. Change its extention from .txt to .py .
This one is a small project meant to be done in one weekend but ended up to last much more.
In essence this is an “analog” looking weather station that displays the current temperature and weather state as well as the minimum and maximum temperatures (and general weather) for the day and for the two days after.
This was done using two servo motors, one to indicate the weather and the other the temperatures, information of the day being displayed and any errors that may occur.
The microcontroller used to control the servos was the MSP430G2553 on the LaunchPad evaluation board, which communicates with a PC via UART. A python script fetches the weather data from the internet and loads it to the microcontroller.
As all home made projects this project is not yet finished, so here is the to do list:
There are weather states yet to be classified on the python script;
Make a custom PCB to hold the microcontroller and connect it the Raspberry Pi GPIO”s, servos and power source;
Hide all electronics;
Periodically run the script on the Pi;
Have the MSP430 tell the python script if any error occurred;
Here is an explanation video:
Note that HOJE==TODAY, AMANHÃ==TOMORROW, DEPOIS==AFTER.
So the python script loads the data into the microcontroller, and it is shown to the user when he wants. New data is load every time the script runs.
This project was made with the MSP instead of an Arduino because of the price, and for the ability that the MSP as an internal clock which enables it to work without any external components. That makes the future implementation on a PCB much easier.