Building a Robot from scratch involves choosing the right software and hardware. In the previous article, I explained the various libraries that help the robot with moving, detecting, navigating and controlling. Now this article explains the hardware side: The computers, the motors, the sensors with which to equip the robot. As in my previous article, this list is in all means not exhaustive, but lists components that I found during my research and find interesting to keep them here.
This article originally appeared at my blog.
Single Board Computers
A single board computer is the central component on which the robotic middleware is installed. It will provide the computing power necessary for forming the essential abstraction of your robot. It will also receive and coordinate the messages received from its individual parts. And its also the component receiving and parsing central control commands.
Raspberry Pi 4
- 1.5 Ghz Quad Core ARM Cortex-72 processor, 1-8 GB RAM
- Products Page
Jetson Nano
- 1,43 GhZ Quad Core ARM A57, 4 GB RAM
- 128 Core Maxwell GPU
- Product Page
BeagleBoard X15
- 1.5 Ghz ARM Cortex-A15, 2 GB RAM
- Products Page
Microcontrollers
Microcontrollers are small computers that get programmed to perform a very specific task in your robot, like reading and processing sensor data or controlling your robot's motors.
Arduino UNO
- ATmga328P MCU, 2KB RAM
- Family of microcontrollers with manifold configuration
- Wikipedia Page
Arduino Nano
- ATmga328P MCU
- Same features as the Arduino Nano, but compatible with breadboards and smaller in design
- Wikipedia Page
Feather boards
- Family of microcontrollers, very similar to Arduino, produced by the company AdaFruit
- Wikipedia Page
- List of products
Seeduino
- ATmga328P MCU
- Arduino compatible boards, that feature a Micro-USB connection and can seamlessly integrate with a number of other boards from the Grove module family
- Product Page
Pocketbeagle
- OSD3358 1GHz ARM, 512MB RAM
- USB and MicroSD connectors
- Product Page
NodeMCU v2
- ATmga328P MCU, 128KB RAM
- Arduino Compatible, built-in Wifi,
- IoT plattform
- Wikipedia Page
Argon Wifi Development Board
- ARM Cortex-M4F 32-bi, 4 MB RAM
- MicroUSB Connection
- Product Page
Espressif Systems ESP8266
- L106 32-bit RISC, 80KB RAM
- Wikipedia Page
Espressif Systems ESP32
- Tensilica Xtensa LX6 microprocessor, 520 KB RAM
- Built-In WiFi, SD Card Reader
- Successor to the ESP8266
- Wikipedia Page
ST Microelectronics STM32
- ARM Cortex-M4F / M7F
- Family of Microcontrollers based on ARM
- Provided as Arduino or Discovery Boards (for debugging purposes)
- Wikipedia Page
Teensy 3.6
- ARM Cortex M4 processor, 256KB RAM
- Arduino compatible
- USB and MicroSD connectors
- Product Page
MSP430 Launchpad
- Microcontroller Development Board
- Product Page
Netduino N3 Wi-Fi
- ARM Cortex M4 processor, 256KB RAM
- Built-In WiFi, SD Card Reader
- Wikipedia Page
Chassis
The chassis forms one of the robots main appearance: How it moves and interacts with the world. Here I just list the chassis types and link to concrete examples.
2 Wheels + Caster
4 Wheels
Tracks
Continuous Belt
Quadrupled
Motors
Motors serve different functions in your robot. Thinking bottom up, it starts with the movements on the ground, continuous to joints that move arms, and fine precision motors for grabbing objects. In this category, I will explain the different motor types and how they work. For an in-depth explanation, read this very detailed article.
Synchronous AC Motor
- Stator produces a constant magnetic field that powers the rotor
- Once accelerated, the motor produces a constant torque
Asynchronous AC / Induction
- The stator produces a magnetic field which powers the rotor
- Magnetic polarization in the stator change the motors torque
Brushed DC motor
- Inside the stator, brushes apply electric current to a rotating set of magnets that in turn power the rotor
- Were the first commercially applied electric motor
- Types: Grouped by their RPM
Brushed DC Geared Motors
- Improvement of the DC motor that comes with a set of intertwined gears to provide better torque and reduced speed
- Types: Grouped by RPM
Brushless DC motor / Synchronous DC motor
- Provide an alternating magnetic field inside the stator that power the rotor
- Types
Brushless DC stepper motor
- Provide an alternating magnetic field inside the stator that power the rotor, and divides the rotation into discrete steps
- Types: Unipolar, Bipolar
Brushless DC Servo Motors
- A special Brushless Motor that provides fine grained control of the rotor via an analogous or digital signal
- Types: Nano, Micro, Slim Wing etc.
Sensors
Sensors allow the robot to investigate its environment. Data gets collected, translated, and processed. In this category, I just list the different sensor types and how they work.
Light
- Photo resistor converts light intensity to electric resistance
- Photovoltaic Cells convert solar radiation into electric current
Proximity
- Infra Red Transceivers emit infra-red light and measure the light reflection
- Ultrasonic sensors emit sound and measure the echo impulse
- Laser emit lasers and measure the lasers reflection
Sound
- Microphone
Images
- Camera
Movements and Acceleration
- Provided via motors and their controllers
- Gyroscope
Environment
- Temperature
- Humidity
- Smoke
Complete Kits
The last section contains a selection of complete robot kits that come with chassis, sensors, microcomputers and an instruction how to assemble everything into a functioning robot
- GoPiGo
- TurtleBot
- WaveShare Jetson Nano
- SparkFun JetBot
- Makeblock Ultimate 2.0
- Zumo 32U4 Robot
- Sunfounder Raspberry Pi Smart Robot
- Rover V2
- Keystudio Robot Arm Kit
- Mbot V1.1
- LDB Robotic Tank
Conclusion
In this article, I explained the various types of hardware that make up a robot. The "nervous system" of a robot are its SBC and MC, build on top of a chassis, and moves with motors. Sensors give the robot access to its environment, enabling it to process and act on external situations. The various example should provide you with a good overview about the many choices that you can make.