From Robowaifu Institute of Technology
Jump to navigation Jump to search

Arduino is a hardware prototyping platform originally based around Atmel AVR microcontrollers, intended to ease physical computing prototyping. Originally released in 2005 by Massimo Banzi & colleagues at the Italian firm Ivrea Institute, it was inspired by the BASIC Stamp microcontroller by Parallax Inc., allowing hobbyists easier creation of electronically interactive objects. The first boards were produced by two Italian manufacturers, Smart Projects and Piccolo Electronics, before being acquired by SparkFun Electronics. They can interface with many types of sensors such as; thermal, humidity, light, ultrasonic distance, touch, hall, etc.Though the pins of an Arduino cannot provide significant current, they can drive LEDs and control transistors/FETs to control motors and other high current devices.

The Arduino ecosystem includes IDE software, libraries and shields allowing a user to attach functional modular “building block” components to an Arduino to expand its functionality. Arduino boards are widely used due to the ease of entry into the ecosystem. There are many forums and projects which demonstrate seemingly endless possibilities for these boards. A notable use is in robotics where the IDE and libraries help the robot coordinate its actuators with sensors and desired states.

Arduinos are typically programmed in the arduino programming language. It is very similar to C++, to the point that some argue it is just a library. MicroPython was implemented as language as arduinos became more widespread. MicroPython is a lightweight implementation of Python3 and has a subset of the functionality. It has the typical easy syntax of Python.

Using a Arduino you will find yourself pretty fast in the situation of a lack of out pins, especially for servo motors. For this you want to search for the PCA9685 16 channel servo driver. You can control 16 servos with one PCA9685 board. It is connected to the I2C pins. This way you can theoretically drive 992 individual servos with two arduino pins by chaining 62 PCA9685s. There are usually two pins dedicated for I2C communication on an arduino. The board also separates the power source of the motors from your arduino, which is also very important.