In this project, we’ll design an omnidirectional, moving pick-and-place robot. First, let’s cover how the robot is built. The robot’s build As shown in Figure 1, the robot consists of two sections: An omnidirectional moving platform A robotic arm The omnidirectional platform The robot is built using one circular wooden plate, three dc gear motors,…
Arduino compatible coding 01: Arduino MCU family
Embedded electronics are in a countless number of devices and appliances, with microcontrollers at the heart of the operation. A microcontroller is a compact integrated circuit that controls a specific operation in an embedded system. There was a time when only BASIC stamp microcontrollers, with a simple interpreter, were available for designing, prototyping, and testing…
Arduino compatible coding 02: Getting started with Arduino
Arduino are single-board microcontrollers that are easily programmable through a USB connection. They are used with electronics to design embedded system prototypes, the Internet-of-Things (IoT), and electronic gadgets. Much like other microcontrollers, Arduino provides software-backed computing and embedded control to basic electronics applications. That means getting started with Arduino is no different than with other…
Arduino compatible coding 03: Basics of Arduino sketches and Embedded C
The previous tutorial included a discussion about the tools and components necessary to get started with Arduino. However, before starting with Arduino UNO (or any other Arduino board) — and experimenting with hardware projects on various sensors, actuators, and modules — it’s important to get through the basics of Arduino sketches and the embedded C…
Arduino compatible coding 04: Interfacing and driving LED by digital output
In the previous tutorial, we discussed the basics about Arduino sketches, with a a quick Arduino language reference. Now, it’s time to get our hands dirty. Interfacing LED and driving digital output from a source is the “Hello World” of embedded systems. As discussed in the previous tutorial, a microcontroller interfaces and interacts with other…
Arduino compatible coding 05: Interfacing buttons for digital input
In the previous tutorial, we discussed digital output from Arduino to drive an LED. A controller can interface and interact with other devices in five ways: digital output, digital input, analog output, analog input, and serial communication. In this tutorial, we will use digital input from Arduino to read the state of a tactile switch…
Arduino compatible coding 06: Analog output (PWM) on Arduino and LED fading
In the previous tutorial, we discussed the digital input process for using Arduino. We also explained push buttons (momentary type buttons) and how to use them for data or command input via a digital input. Any controller can interface and interact with other electronic devices in five ways: digital output, digital input, analog output, analog input,…
How to build a real-time vehicle tracking system
A vehicle tracking system is a technology that tracks and monitors a vehicle’s location in real time. It uses the Global Navigation Satellite System (GNSS) — typically, the Global Positioning System (GPS) — to accurately determine a vehicle’s location. The GPS monitors and relays data to a server through a cellular or satellite network. In…
How to turn Arduino into 16-bit IO port
In this project, we’ll design a 16-bit IO port (input-output port) library for Arduino. It’s possible to send direct 16-bit data to any Arduino board using this library. It connects any of Arduino’s 16 pins, so they work as a 16-bit IO port. First, you must select 16 pins from Arduino to combine as the…
Fingerprint-based access control system using Arduino and R307/Adafruit fingerprint sensor
Optical fingerprint scanners are prominent security devices nowadays. These scanners are low-cost and easy to use with any embedded hardware platform. The scanners have built-in memory and a controller to store and compare fingerprints. Usually, optical fingerprint scanners have a USB and/or UART port to communicate with external controllers or computers. The scanner handles enrollment…
How to troubleshoot common ESP32-CAM problems
ESP32-CAM is a compact camera module that combines the popular Wi-Fi development board ESP32 with the OV2640 camera sensor. The camera is part of the ESP32 series of Wi-Fi and Bluetooth-enabled system-on-chip (SoC) devices developed by Espressif Systems. ESP32 is a dual-core 32-bit microcontroller with built-in Bluetooth and Wi-Fi capabilities — based on the Espressif…
How to build an IoT-based digital menu using the MIT Inventor App
Digitalization has significantly shifted us toward a paperless society, impacting both personal and professional lives. Take restaurants, for example, where many establishments now offer digital menus. Providing a digital option offers several advantages to restaurant owners, their customers, and the environment. It reduces paper waste, allowing for an interactive experience and real-time updates for the…
How to build a paint application using Arduino
In this project, we’ll build a paint application on Arduino UNO/Arduino Mega that runs on a 3.5-inch TFT touchscreen display based on the ILI9486 driver. The ILI9486 touchscreen has a display resolution of 320×480 pixels. Using a stylus, you can draw, paint, and write on it (even in your own handwriting ). Required components Arduino…
How to build an Arduino-based biometric voting machine
Typical electronic voting machines require voters to push a button to cast their ballots. However, there have been security concerns with these devices and whether they’re at risk for tampering. One solution is to use biometric-based voting machines, which use fingerprint matching or a retina scan to verify an authorized voter. In this project, we’ll…
How to design a security system that sounds like a guard dog
It’s been said that one of the best home security systems is owning a dog. In this do-it-yourself (DIY) circuit, we’ll design a unique system that lets you take advantage of a guard dog for security without ever needing to walk or feed it. This DIY system “barks” like a dog whenever motion is detected…
IOT Building Blocks and Architecture: IOT Part 2
In the previous tutorial, a brief introduction of Internet of things was presented. The importance, challenges, applications and trends in IOT were discussed. Now, equipped with basic understanding of IOT, it’s time to investigate the building blocks of IOT. IOT is developed as a package with integration of various technologies. Each technology has its own principle role within the IOT system. In this tutorial, the basic building blocks of IOT and their place in an IOT infrastructure will be examined.
How to control LEDs using the MIT App Inventor and Bluetooth
In a previous tutorial, we discussed the MIT App Inventor, a popular online platform for building mobile applications using visual programming. The platform is helpful for quickly prototyping Internet-of-Things (IoT) applications and simple embedded systems that interact with mobile devices. We already reviewed the platform’s architecture and user interface. Its visual programming platform is ideal for…
How to design an Arduino library for an 8-bit IO port
In this project, we’ll create an 8-bit IO port Arduino library that reads and writes all eight bits in a single command by combining Arduino’s pins. This means sending and receiving the 8-bit data from a single pin will be possible. Arduino provides digital output using the digitalWrite() function and receives digital input via the…
How to use the TCS230/TCS3200 color-recognition sensor with Arduino
Color detection is the process of identifying and distinguishing colors within an image, video, scene, or object. Many embedded and robotic applications require this feature, as it’s useful for sorting, selection, test strip reading, path determination, and more. Two standard sensors used for color detection include TCS230 or TCS3200. TCS3200 recognizes various colors based on…
How to design a multi-use level indicator using Arduino
In this mini do-it-yourself (DIY) electronic project, we’ll design a multi-use level indicator that can measure multiple physical parameters like temperature, water, voltage, humidity, distance, and more. It consists of a bar-graph LED display that presents the measurements. Four main types of sensors are used to measure the different physical parameters, including the following LM35…