Quadcopter tennis champions
Quadcopter tennis robots able to return a volley are the beginings of Futurama Blurnball.
Quadcopter tennis robots able to return a volley are the beginings of Futurama Blurnball.
Building robots can be a lot of work. One way to reduce the work is to use the same part many times.
These researchers present a snake robot made from identical modular components arranged in a daisy chain.
One could argue these are modular robots working together.
Self-assembling would be nice.

A rotary encoder is essential in most analog to digital measurements. Everything from volume control to robot movement can be tracked with a good rotatry encoder. Conveniently, everything you need to know is in Wikipedia. This code is a variation on Metsfan’s contribution to the Sparkfun forums. This version avoids unnecessary if statements. SO NERDY.
#define PIN_HIGHBIT (7)
#define PIN_LOWBIT (5)
#define PIN_PWR (3)
#define BAUDRATE (9600)
#define DEBUG (1)
// globals
int state, prevState = 0, count = 0;
/* old state, new state, change (+ means clockwise)
* 0 2 +
* 1 0 +
* 2 3 +
* 3 1 +
* 0 1 -
* 1 3 -
* 2 0 -
* 3 2 -
*/
int encoderStates[4][4] = {
{ 0, -1, 1, 0 },
{ 1, 0, 0, -1 },
{ -1, 0, 0, 1 },
{ 0, 1, -1, 0 },
};
void setup() {
pinMode(PIN_HIGHBIT, INPUT);
pinMode(PIN_LOWBIT, INPUT);
pinMode(PIN_PWR, OUTPUT);
digitalWrite(PIN_PWR, LOW);
digitalWrite(PIN_LOWBIT, HIGH);
digitalWrite(PIN_HIGHBIT, HIGH);
Serial.begin(BAUDRATE);
}
void loop() {
state = (digitalRead(PIN_HIGHBIT) << 1) | digitalRead(PIN_LOWBIT);
count += encoderStates[prevState][state];
#ifdef DEBUG
if (state != prevState) {
Serial.print(state, DEC);
Serial.print(' ');
Serial.print(prevState, DEC);
Serial.print(' ');
Serial.println(count, DEC);
}
#endif
prevState = state;
}
This morning thanks to Hack-a-day I discovered idsketching, a great site for those of us interested in industrial design, drafting, and creativity. Oh, and from there I discovered Concept Robots. How deep does the rabbit hole go?
250,000 orders filled without a single mistake. Way to go!