Organize and Share your Electronics the way you want. Sign-Up for a free account now. It takes only 30 seconds!

Autonomous, Self-Assembling Robots

Autonomous, Self-Assembling Robots

How to build your own autonomous, self-assembling robots. This project describes every detail of the robots used in our scientific research including all CAD files, source code, assembly, etc. Hopefully everything you would need to reproduce our experiments, or have a fun toy.

Step 1 Making the printed circuit boards (PCB’s)
The PCB’s were designed using the Eagle PCB design software. I’ve attached the Eagle CAD files as well as the Gerber files. The Gerber files are what you can send directly to a PCB fabrication service to get the boards made. I also included panelized gerber files – this version has 16 of the robot pcb’s per panel for more cost efficient manufacturing.

Step 2 electronics overview
We designed the electronics to be simple and flexible, because we had not finalized the robot design when we started and planned to try a variety of control algorithms, actuators, and communications methods. We also needed the electronics to be small and light. We decided to go with fairly small SMT parts for the final design, and were able to get a microcontroller, 10 status LED’s, 4 FET’s for driving actuators, and the programming/power header onto the 25mm x 25mm board, plus connection points for 4 actuators and 4 sensors. We tried making the board even smaller, but it became too hard to assemble. Our strategy for simple and flexible worked out – we’ve since used leftover boards for 3 other, totally unrelated projects.

Step 3 Actuators overview
The robot has two electromagnetically-actuated latches. The red arm of the latch has a 3mm cube magnet (NdFeB type) press-fit into it, while the yellow base of the robot has a cylindrical coil press-fit into it. The coils were custom-made to the following specifications: 700 turns of 42-guage magnet wire, 4mm length, wound on a 2mm spindle. This resulted in a diameter of approximately 4mm OD, 2mm ID. We selected these coil specifications so that we could drive them directly from the robot power source and have a reasonable amount of power. We originally tried to put a magnetic core in the coil, which makes it much more powerful, but we could not find a core which did not remain magnetized after the coil turned off, and we did not have the capability to reverse the coil polarity (this requires 4 FET’s per actuator instead of 1).

Step 4 Communications
The robots use inductive coupling for short-range wireless communications. Each robot has 4 small (3mm x 2mm) coils, one on ecah face. They are mounted flush with the face, so that when two robots properly mate on a face, the coils are always within a couple mm of each other. Recall that we are using a simple 8-bit microcontroller with 1K of RAM, maximum analog-to-digital sampling rate of 10khz, and total clock rate of 8Mhz. There is no digital-to-analog circuitry at all. So I doubt that it is possible to transmit or receive AM or FM since the coil’s resonant frequency is higher than the A/D sample rate, and there is no way to generate sine waves anyway. Also there is not enough computing power for much FFT. So instead we realized that we had very little data to send, so we could do it very slowly. We simply send electromagnetic pulses by turning on and off the comm coil. Each time the coil is turned on or off, it generates a short EM pulse train at its natural frequency. Any nearby coil is magnetically coupled, and generates corresponding pulses at its output. We just look for those pulses using the A/D on the microcontroller. Since the pulse frequency is higher than the A/D sample rate, we can’t count on seeing every pulse. So we send a lot of pulses and do a lot of looking. It works. The Biggest Hack Ever! Once there are a bunch of these robots all bouncing around on the air table, the environment gets pretty chaotic. We kept adding layers of error-detection and correction in the software, and eventually got the comms reliabilty up to perhaps 1 error per hour for 50 randomly colliding units. After all this, the data transfer rate between two robots is 2 bytes every 2 seconds. That’s Bytes, not kilo-bytes. Maximum, assuming no data collisions or errors. Each coil is used for both sending and receiving data, so there sometimes is a collision requiring retransmit. Sending data takes about 200ms and is done randomly within a 2000ms window, with retransmit on collision.

Visit Here for more.







 

More Articles to Read

Peeqo is a desktop bot that communicates through GIFs
Peeqo is a desktop bot that communicates through GIFs
Using a Programmable Input Multiplier to Minimize Integer Boundary Spurs
Using a Programmable Input Multiplier to Minimize Integer Boundary Spurs
Serial seven segment LED display shield
Serial seven segment LED display shield
G-code controlled drawing plotter
G-code controlled drawing plotter
An Arduino round word clock
An Arduino round word clock
The Sandwich-o-Matic will make your lunch automatically
The Sandwich-o-Matic will make your lunch automatically
Scalar Network Analyser Jr
Scalar Network Analyser Jr
An Arduino-controlled automated whiskey distillery
An Arduino-controlled automated whiskey distillery
The Rex800 looks like a dinosaur Terminator
The Rex800 looks like a dinosaur Terminator
Home Environment Monitor
Home Environment Monitor
Understanding the Operation of the Frequency Synthesizer in Maxim’s RF Transceivers
Understanding the Operation of the Frequency Synthesizer in Maxim’s RF Transceivers
App note: EPIC: Electro-Pyrotechnic Initiator Chip Resistor
App note: EPIC: Electro-Pyrotechnic Initiator Chip Resistor
Noisy ESP8266
Noisy ESP8266
App note: Noise analysis for high-speed op amps
App note: Noise analysis for high-speed op amps
Skill Sunday: Arrays
Skill Sunday: Arrays
App note: Infrared remote control implementation with MSP430FR4xx
App note: Infrared remote control implementation with MSP430FR4xx
Gesture Controlled Smart Home
Gesture Controlled Smart Home
Design for a Wideband, Differential Transimpedance DAC Output
Design for a Wideband, Differential Transimpedance DAC Output
Wrist thrusters let you fly through the water effortlessly
Wrist thrusters let you fly through the water effortlessly
Bertan/Spellman 225-20R HV power supply teardown
Bertan/Spellman 225-20R HV power supply teardown

Top


Shares