About Rik

Myself Rik and I am founder of Riktronics. I study Electronics and Communication Engineering in IIE. My hobby is playing with electronics and making various projects, mainly about embedded systems. Love to do coding, and making tutorials about electronics/programming. Contact me in any need at abhra0897@gmail.com My blog : riktronics.wordpress.com

Robot Core – The Ultimate Raspberry Pi Robot Controller

The Robot Core, which is a robot control board for the Raspberry Pi and Arduino, brings many different elements into one awesome package. It allows you to efficiently control motors, servos, and read sensor data without needing 3-4 additional boards to hookup. Several Robot Core boards can be connected together in a linear series to add even more functionality.

The Robot Core board
The Robot Core board

Robot Core uses I²C (Inter-Integrated Circuit) to communicate with Raspberry Pi. I²C is a widely used serial computer bus invented by Philips Semiconductor. It is a very easy-to-use two-wire bus that your Pi has no difficulty talking with. A built-in level shifter ensures compatibility to both 3.3 volt and 5 volts I²C buses. The Robot Core supports all Raspberry Pi boards (the past and present versions) and some Arduino boards also.

Now, let’s talk about the technical details.

Software Support:

The board has software provided in the form of libraries and python example programs to get you started fast. Thanks to Second Robotics for making the software Open Source. All required resources will be available in July 2017. Currently, available links are – Drivers and LibrariesSupport Documents.

Software for The Robot Core
Software for The Robot Core
The Robot Core Python Script
The Robot Core Python Script

Motor Drive:

This board provides up to two 5 Amp continuous load DC motor outputs that can be used as a pair to drive a single stepper motor. The Robot Core’s built in safety protection prevents overheating and detects the motor failure.

Servo Control:

The Robot Core can set servos to exact position with the help of 16 bit PWM signal. It has eight ports for both analog and digital conventional servos. You can tune each servo using software-based GUI tuning method and also set their start-up positions individually.

Two ports are provided for connecting Dynamixel servos. Connecting multiple Dynamixel servos at the same time is supported. All functionalities are accessible by simple low-level commands. Many example python codes are available there to get started with Dynamixel servos.

Ultrasonic Sensors:

You can connect up to 4 ultrasonic sensors (HC-SR04) with the board. Given libraries convert measured distance into millimeter. The Robot Core board can provide filtered outputs with higher accuracy or raw outputs with greater speed, the choice is yours.

Analog Input:

Up to 8 12-bit analog inputs are supported for sensors or feedback. Each input has a range of 0-5V and the board also provides protection from exceeding the input limits. The additional analog reading for main power voltage lets you monitor supply voltage in real-time. The Robot Core has configurable warnings for low power.

Power:

The range of input voltage is 6.4v to 14v. An onboard DC-DC regulator is there for generating 5 volts, capable of providing 6 Amps current to the load. Optional separate power supply inputs for servos and for Dynamixel servos are also present.

Other Technical Information:

  • Clear on-board labeling. Each port and screw terminal has its pins labeled.
  • Prototyping space for adding more functionality. This space removable to make the board smaller.
  • Easy to access voltage rails.
  • Access to the Raspberry Pi I²C at 5V logic level.
  • Status LEDs are for main power voltage, DC motor status, and script controllable status.
RobotCore board details
Robot Core board details

Application Of The Robotcore Board:

The Robot Core is an all-in-one solution for many projects. One can do pretty much any autonomous and/or robotics projects with this board. The possibilities are endless. Below are just some example projects:

  • A smart plant monitoring system that reads ambient light, temperature, plant moisture, and even uses two water pumps to water two different plants.
  • Using a single board, you can build a 2 wheeled robot with a ring of 8 analog ultrasonic sensors and a strong Dynamixel smart servo arm.
  • With an IMU (Inertial Measurement Unit) tied into the I²C bus, you can create a two-wheeled self-balancing robot.
  • Build a biped walker robot with sensors to navigate based around the board and a Pi using powerful servos or Dynamixel smart servos.
  • Make an automated greenhouse. Have analog sensors for light, temperature, carbon dioxide, moisture, water leaks, and also control two water pumps.
The Robot Core plant watering system
The Robot Core plant watering system

Make Your Own Arduino Nano In The Simplest Way (DIY – Arduino Nano)

In today’s post, we are going to learn how to make an Arduino nano at home. Electronics enthusiast Pratik Makwana designed this project in instructables.com. Every step in this project is well-explained. If you already don’t know what Arduino Nano is then here is a brief introduction: Arduino Nano is a tiny yet strong member of the Arduino family. It’s powered by an ATMega328P microcontroller running on 16MHz. But, the main strength is its very small form factor.

Arduino Nnao
Arduino Nano

Now, let’s get started and make your own Arduino Nano in no time.

Requirements:

  • Copper clad board (Double-sided)
  • Ferric Chloride (FeCl3)
  • Acetone (Nail polish remover)
  • Glossy Paper
  • LASER Printer
  • Marker Pen
  • Scissors
  • Plastic container
  • Sandpaper
  • Safety gloves (Optional)
  • Latex gloves
  • Saw – For copper board cutting
  • Laminator or iron
  • Components of Arduino Nano (Given later)

PCB Designing:

This is a very important step of this tutorial. You need to draw the circuit of Arduino Nano first. Then you’ll design the PCB using the schematic. Design the schematic diagram in an EDA tool (Electronic design automation Software).
Here is a list of EDA Tools:

EAGLE is the most widely used PCB and schematic design software. Though my personal favorite is Proteus. You can use any software from the list.

Importing the Schematic File to PCB Editor
Importing the Schematic File to PCB Editor

To make the schematic, use the Arduino Nano Circuit Diagram and Arduino Nano Components List. Once it’s drawn completely, open the PCB designing part of the software and you’ll see that schematic is imported there. Now place the components in correct places and connect them using traces. If you are using EAGLE then you can simply download the Arduino Nano Schematic File for EAGLE and Arduino Nano PCB File for EAGLE. Open the .brd file (PCB file) to print the PCB. You can also modify it if you wish.

Place the parts in correct position
Place the parts in correct position
Connect the components and the PCB is ready
Connect the components and the PCB is ready

Note:

  • Use Only Laser printer only.
  • Use glossy papers to print.
  • Set scale factor to 1.
  • Before top layer printing, you need to mirror the image of the top layer layout.

Cut The Copper Clad Board:

Now, cut the copper clad board according to the dimensions of the PCB. You can use a hacksaw to cut it off. Be precise about the dimensions. If it’s smaller than the actual PCB then you have to do it again. Also, cut the printed glossy paper as per the size of PCB.

Cut the copper clad board using a hacksaw
Cut the copper clad board using a hacksaw

Toner Transfer and Etching Process:

In this step, the PCB design from glossy paper will be transferred to the copper board. All you need to do is place the printed side of the glossy paper on the copper board and apply both pressure and heat. You can use a modified laminator machine or an iron for this purpose. Why “modified”? Because toner transfer method requires a temperature of 210°C, where a laminator can provide 150°C maximum.

Put the board in FeCl3 solution for a while
Put the board in FeCl3 solution for a while

Make your copper clad board as clean as possible beforehand. You can use sandpaper and alcohol to do this. When the toner is transferred successfully, prepare the ferric chloride (FeCl3) solution. Before putting the board into the solution check carefully for any broken path. If found, draw it with a marker. After the etching process, use the acetone to clean the board.

After washing the PCB with Acetone
After washing the PCB with Acetone

Drilling & Soldering:

Drill the PCB using PCB drill machine. Choose the drill bit wisely else components may not fit. Now, place the components on the PCB and solder them. You can use a helping hand device to get it done nicely.

Upper layer of PCB
Upper layer of PCB
Lower layer of PCB
Lower layer of PCB

Burning The Arduino Bootloader:

In this step, you’ll need another Arduino board (e.g. Arduino UNO) to burn the bootloader to your newly made Arduino Nano for the first time. Open Arduino IDE and upload the ArduinoISP sketch to the Arduino UNO from examples option. Now, connect your Arduino Nano with Arduino UNO over SPI bus following the given instructions:

  • Arduino UNO     >>    Arduino Nano
  • ——————————————-
  • SS (Pin 10)         >>     RESET (Pin 29)
  • MISO (Pin 11)    >>     MISO (Pin 16)
  • MOSI (Pin 12)    >>    MOSI (Pin 15)
  • SCK (Pin 13)       >>    SCK (Pin 17)
  • 5V                         >>    VCC
  • GND                    >>    GND
Follow this instruction to burn bootloader
Follow this instruction to burn bootloader

After making the connections, go to Arduino IDE and follow the given instructions:

  1. Select Tool  >>  Board  >>  Arduino Nano
  2. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  3. Select Tool  >>  Programmer  >>  Arduino as ISP
  4. Select Tool  >>  Burn Bootloader

Wait for the “Done burning bootloader” message to appear.

Testing:

Well, your Arduino Nano is now ready for a test run. This time you won’t need another Arduino to upload codes. Follow the instructions and connect a USB to TTL converter (a.k.a USB to UART converter) with the Arduino nano to upload sketches.

  • USB to TTL Converter (CP2102)  >>  Arduino Nano
  • —————————————————————-
  • VCC        >>     VCC
  • TX          >>    RX (Pin 30)
  • RX         >>    TX (Pin 31)
  • DTR      >>    RESET (Pin 29)
  • GND     >>    GND
  1. After making the connections, go to Arduino IDE and perform the following tasks:
  2. Select File  >>  Examples  >>  01.Basics  >>  Blink
  3. Select Tool  >>  Board  >>  Arduino Nano
  4. Select Tool  >>  Port  >>  Select your Arduino UNO COM Port
  5. Select Tool  >>  Programmer  >>  AVRISP MKII

After that, upload Blink Sketch to Arduino Nano and wait for the “Done Uploading” message. LED connected to pin 13 should blink if everything is OK. Now you can upload any sketch you wish to your home made Arduino Nano.

Conclusion:

So, this is how you can make your Arduino Nano. All you need for this project is PCB designing skill and a pretty good soldering skill as you have to deal with SMD components. This way you can make custom Arduino Nano that will fit your project perfectly. Watch the video to have a more clear idea:

RELATED POSTS

PingPong IoT Development Board – Connecting Hardware to the Cloud

Germany-based Round Solutions developed the PingPong, a powerful and flexible hardware platform for IoT and machine-to-machine (M2M) applications. The PingPong can be used for both wired and wireless connections. The modular hardware design can integrate custom-specific applications and communication standards into a single solution platform that has a very small form factor.

The basic hardware platform of PingPong has a 32-bit 200MHz Microchip PIC32MZ microcontroller unit (MCU) running C/C++ code. It supports RTOS or Real Time Operating System which is available as Open Source Software so that developers can adapt their applications individually and bring them to market more swiftly. The base board of PingPong has following features:

  •  A high-speed cellular module
  • A component for high-precision Global Navigation Satellite System (GNSS)
  • An Internet connectivity module
  • USB
  • CAN-Bus and many other components

    PingPong - The IoT Development Board RTOS 3G Version
    PingPong – The IoT Development Board RTOS 3G Version

One amazing feature is, the high-speed cellular module and the numerous interfaces can be controlled over the cloud. So, you don’t have to keep it wired all the time in order to control all those modules.

Technical Information:

Having an area of 85×52 mm², the PingPong is really tiny in size compared to its features. It has a booming 4 MB flash memory which is perfect for IoT purpose. PingPong beats other IoT modules with the wireless technologies it possesses – 2G, 3G, Galileo E1, GLONASS, and GPS. Supported bands(MHz) for cellular communication are 1800, 1900, 2100, 850, and 900. It communicates with other MCUs over I²C protocol which is widely used by almost all types of MCUs.

The greatest strength of PingPong is its expandability. The developer can overcome all the limitations of PingPong by adding a variety of expansion cards to the PingPong platform. Some examples of expansion cards are, wireless local area network (WLAN), Bluetooth, input/output (I/0), Iridium satellite communications, ISM/RF, SigFox, near-field communication (NFC), radio-frequency identification (RFID), and camera connectivity.

Applications:

  • Send and receive data: Pingpong offers different possibilities for sending and receiving data. Whether it’s wired over Ethernet or on the go with built-in GSM/GPRS module, PingPong does its job of exchanging data continuously.
  • Remote control: The PingPong can be used to control processes remotely via its outputs. Using the digital output with a relay can either enable or disable the power supply of an application.
  • Positioning: With its built-in GNSS and GPS module, the PingPong can also be used to determine position, motion, speed and acceleration.
  • Telemetry: The PingPong can be connected to a wide variety of sensors to process digital and analog measurements. Thus, for example, temperature values collected from a temperature sensor can be transferred via analog input to the PingPong.

And there are much more applications. From hobby projects to industrial development, sensor data collection to the smart home project – anywhere you can use this versatile board.

PingPong supports numerous expansion cards
PingPong supports numerous expansion cards

Important Links:

To learn more on this amazing IoT board, watch these three videos:


Conclusion:

The PingPong is a surprisingly powerful IoT module. It’s a developer’s dream. Having all these features in one package is truly outstanding. The feature of adding expansion cards makes it even stronger.

You can purchase your own PingPong from roundsolutions.com at €199.00. It may seem to be a bit overpriced, but it’s really not. Just consider the features you are getting in a single package and you’ll realize it.

Puck.js – The Ground-Breaking Bluetooth Low Energy Beacon

Puck.js is a low energy smart device which can be programmed and debugged wirelessly with JavaScript. It is both multi-functional and easy to use.  This beacon uses a custom circuit board with the latest Nordic chip, Bluetooth LE, Infrared transmitter, NFC, magnetometer, temperature sensor, RGB LEDs, and much more. Unlike other beacons, Puck.js comes with the open source JavaScript interpreter Espruino pre-installed, which makes it incredibly easy to use. Anyone without any prior programming experience can get started in seconds.

Puck.js Has a Very Small Form Factor
Puck.js Has a Very Small Form Factor

Specifications:

  • Espruino JavaScript interpreter pre-installed
  • nRF52832 SoC – Cortex M4, 64kB RAM, 512kB Flash
  • 8 × 0.1″ GPIO (capable of PWM, SPI, I2C, UART, Analog Input)
  • 9 × SMD GPIO (capable of PWM, SPI, I2C, UART)
  • Compatible with Bluetooth 5.0 – giving Quadruple the range, and double the speed of Bluetooth 4.2
  • Built-in Near Field Communications (NFC)
  • 12 bit ADC, timers, SPI, I2C, and Serial
  • MAG3110 Magnetometer
  • IR Transmitter
  • Red, Green and Blue LEDs
  • Pin capable of capacitive sensing
  • Built-in temperature sensor, light sensor, and battery level sensor
  • ABS plastic rear case and silicone cover with tactile button
  • CR2032 210mAh battery

Features:

Puck.js has various sensors for different purposes and various kinds of output components. It can measure light, temperature, magnetic fields, and capacitance. This beacon also can control Infrared remote devices, produce any color light using RGB LED, and has a tactile switch that turns the Puck into one big button.

The Magnetometer on Puck.js is a digital compass. You can measure its orientation about the earth’s magnetic field in 3 dimensions. It can also detect a magnet nearby and measures the magnetic field.

Detailed View of Puck.js Bluetooth Beacon
Detailed View of Puck.js Bluetooth Beacon

Puck also has the Web Bluetooth feature that enables controlling it from a web page wirelessly. The website simply sends the JavaScript code directly to the Puck, and it’ll be executed. Another excellent feature of Puck.js is internet accessibility. Espruino contains TCP/IP and HTTP client and servers (including WebSockets). With a suitable Bluetooth LE to the Internet Gateway, you’ll be able to put your Puck on the web!

The story doesn’t end here. Compared to other smart beacons, Puck.js has much more features that make it unbeatable. Open Source hardware and software is one of them. Go here to get a complete list of all features.

Conclusion:

Puck is an outstanding product. It has tons of booming features in a small package, yet easy to program. Anyone can get started with this amazing device within seconds. You can get it at £28 from this Kickstarter link. Also watch this video from Kickstarter campaign or the below video by Adafruit.com for a better understanding.

facetVISION: Compound Eyes for Industry and Smartphone

Researchers at the Fraunhofer Institute for Applied Optics and Precision Engineering IOF have developed a process that makes the production of a two-millimeter flat camera possible. Similar to the eyes of insects, its lens is partitioned into 135 tiny facets. The researchers have named their mini-camera concept facetVISION, following nature’s model. This mini-camera has a thickness of only two millimeters at a resolution of 1 megapixel.

facetVISION compound eye: First prototype
facetVISION compound eye: First prototype

All 135 small, uniform lenses are positioned close together, similar to the pieces of a mosaic. Each lens receives only a small section of its surroundings. The newly developed facetVISION technology aggregates the many individual images of the lenses to a whole picture. Finally, this technology should obtain a resolution of 4 megapixels. This is certainly a higher resolution compared to latest cameras in industrial applications like robot technology or automobile production.

The compound eye technology is also suitable for integration into smartphones. The lens of a modern smartphone must be at least 5 millimeters thick in order to capture a sharp image. The manufacturers of ultrathin smartphones are facing this challenge since the camera lens is thicker than the housing of the phone. But, this new technology can reduce the thickness to around 3 millimeters without compromising picture quality. Andreas Brückner, the project manager at the Fraunhofer Institute for Applied Optics and Precision Engineering IOF in Jena, says:

It will be possible to place several smaller lenses next to each other in the smartphone camera. The combination of facet effect and proven injection molded lenses will enable resolutions of more than 10 megapixels in a camera requiring just a thickness of around three and a half millimeters.

The researchers also explained how this camera can be used in medical engineering as optical sensors to examine blood. The facetVISION has many other applications like checking image quality in a printing machine, parking camera in cars or in industrial robots to prevent collisions between human and machine.

Mass production of facetVISION is possible
Mass production of facetVISION is possible

Under the leadership of Andreas Brückner, the researchers have already demonstrated that facetVISION is suitable for mass production. So, keep waiting and maybe you will purchase a new smartphone equipped with a facetVISION compound eye in not so distant future.

Dosime Radiation Meter: Know The Radiation Surrounding You Using Smartphone

Radiation is always present in our lives. We can’t see, taste, feel or smell it, but it exists. Excessive exposure to ionizing radiation may cause potential damage to our health. The new Dosime device helps you to track and understand radiation exposure in your environment and display them using an app on your smartphone.

Dosime Radiation Meter For your Smart Phone
Dosime Radiation Meter For your Smart Phone
Pie Chart of Radiation Sources
Pie Chart of Radiation Sources

Dosime is a hybrid smart home and wearable device. The device weighs just 57 grams and is only 6.8 centimeters in height, making it extremely easy to take it with you everywhere. Now, the most important question is, how necessary is it to measure radiation level if someone is not living by a nuclear plant? Well, a nuclear plant is not the only one who emits radiation. 82% of the radiation we are exposed to comes from natural sources. The remaining 18% comes from man-made sources. So, yes. It is necessary to measure radiation level in your environment. On their website the company says:

Healthy living includes managing your environment, including factors you can not perceive. Knowledge of radiation exposure empowers you to make informed decisions about your wellbeing.

The Dosime radiation meter can measure radiation levels up to 100 R/h with a maximum dose of 1000 rem. The range of the measurable energy is 50 keV to 3 MeV. It can detect X-Rays and Gamma (γ) rays, but not Alpha (α) rays and Beta (ß) rays. Unfortunately, they are also sources of harmful ionizing radiation.

The Dosime device seamlessly connects to smartphones via WiFi and Bluetooth Low Energy (BLE). It comes with a built-in rechargeable battery and an AC/DC module. The battery lasts for about one week on a single charge. At home you can dock it in the charger, giving it access to the Wi-Fi network. The app for this device runs on iOS 9 or later, or Android KitKat 4.4 or later.

The Dosime device is available for purchase at a price of US $249.00 (+ $4.81 shipping). You can order it at Amazon.

Radino WiFi: Arduino With ESP8266EX

The Internet of Things or IoT technology is booming nowadays. Almost all makers are getting interested towards this field of endless possibilities. The Arduino and the ESP8266 are strong bases of this awesome technology. But, what will happen if we merge an Arduino with an ESP8266EX under the same package? Well, the answer is “Radino WiFi”.

Radino WiFi : The Arduino compatible WiFi Module
Radino WiFi: The Arduino compatible WiFi Module

The In-Circuit Radino WiFi combines an ATmega32U4 with the popular ESP8266EX WiFi SoC to the small
Radino package. The ATmega32U4  MCU is also used in Arduino Micro. In Radino, the MCU is preprogrammed with Arduino bootloader. Hence, you can use Arduino IDE for uploading codes to this Arduino-compatible device. In-Circuit stated on their website:

It′s part of the radino-series, which provides full Arduino-compatible wireless communication devices in a small form factor, all pins are compatible with each other.

Features:

  • Arduino-compatible
  • Fully integrated WiFi Chip ESP8266EX by Espressif
  • 802.11 b/g/n protocol
  • Wi-Fi Direct (P2P), soft-AP
  • Integrated TCP/IP protocol stack
  • Integrated TR switch, balun, LNA, power amplifier and matching network
  • +19.5dBm output power in 802.11b mode
  • ESP8266 Power down leakage current is < 10uA
  • Wakes up and transmits packets in < 2ms
  • ESP8266 Standby power consumption is < 1.0mW
  • 15 GPIOS (7 PWM, 5 Analog IN)
  • I²C, SPI, UART
  • USB (HID Keyboard & Mouse, virtual UART)
  • High-Performance, Low-Power Microcontroller ATmega32U4

Technical Details:

Radino WiFi consists of two chips. An ATMega32U4 and an ESP8266EX. The ATmega32U4 is used as I/O machine for the ESP8266EX. It performs all the required tasks to control I/Os. In the other hand, ESP8266EX is the main WiFi chip and all WiFi services run only on the ESP.

The Radino comes preprogrammed with an ESP based web server. The default settings are given below:

  • Access point: RADINO-WIFI
  • Password: 12345678
  • TCP/UDP service for UART-Bridge/WiFi
  • Default IP: 192.168.2.1

The user can change these default settings anytime.

Download the Radino library for Arduino IDE 1.6 from here. Add this library to Arduino IDE and select Radino board from board manager.

This video explains how to use this amazing module.

Radino Pinout:

Radino WiFi Module Pinout Diagram
Radino WiFi Module Pinout Diagram

Radino has 15 GPIO pins. Among them, 5 pins can handle PWM signal and 5 pins can take analog signal as input. Radino is powered by a 3.6V power source. Exceeding that value will damage the device.

Important Links:

Another video on this topic:

You can purchase Radino WiFi from shop.in-circuit.de. It costs only 19.90€.

VGADuino-II : The New 256 Color Graphic Shield for Arduino

Arduino is pretty much famous for the numerous shields it has. These plug-and-play shields make our life a lot easier while working on some complicated projects. Among all other shields, graphic shields are getting more and more popular. A graphic shield lets you show text, numbers, shapes, and even small images on a screen, using Arduino. VGADuino-II is a new graphic shield which lets you use your TV or any monitor with VGA 15 pin as a large screen for Arduino.

It’s very exciting that you won’t have to rely on those small displays which are stacked on the shield itself, anymore. Rather you are getting a whole TV or VGA monitor to display your data. As  Masih Vahida, the creator of VGADuino, says:

VGADuino is a shield that is made for Arduino with all the libraries and samples that user can easily stack it on the Arduino board and starts programming. it can connect Arduino to any kind of TV or Monitor with VGA 15 Pin connector.

VGADuino-II : The 256 color graphic shield for arduino
VGADuino-II: The 256 color graphic shield for Arduino

Key Features:

  • Internal functions to draw various shapes with AT-Commands and Arduino libraries
  • 11 Different font sizes with standard ASCII characters support
  • 256 color, 8bit RGB format
  • Having access to each pixel individually
  • Standard VGA DB15 output
  • Screen resolution: 800×600 60Hz
  • Actual pixels: 400×300 60Hz

Technical Details:

In VGADuino-II, NXP-LPC1756 ARM chip is used as the main microcontroller and XILINX XC95144XL CPLD for refreshing the display and taking care of the sync signals. There is also an SD Ram to keep the screen’s pixel color data.

In this version of VGADuino, each pixel is one byte, that means each pixel has 256 colors which are in standard 8bit RGB format. (3 bits for Red, 3 bits for Green and 2 bits for Blue).

It communicates with Arduino over UART using predefined AT command set. All relevant Arduino libraries are available to implement in code. The user can choose among all 11 fonts with definable background and foreground color of text.

VGADuino-II Technical Details
VGADuino-II Technical Details

Conclusion:

VGADuino-II is available for $79. You may go here and back the Kickstarter project to get a VGADuino-II. All the groundbreaking features offered by VGADuino-II are making it a value for money. There is no risk at all. The design is tested and completed by the maker.

For a better understanding watch this video.

https://www.kickstarter.com/projects/67935456/vgaduino-ii-new-256-color-graphic-shield-for-ardui/widget/video.html

DIY Breathalyzer Using Arduino UNO

Today I am going to discuss how to make a very simple DIY Breathalyzer using Arduino UNO and few external components. Ana Carolina designed this project as an instructable in instructables.com. This is a low-cost project and a useful one too. If you have no idea about what breathalyzer is, let me explain briefly: A breathalyzer is a device for estimating blood alcohol content (BAC) from a breath sample. Check the link given for more information.

Arduino Based Breathalyzer
Arduino Based Breathalyzer

Requirements:

  • Arduino Uno
  • MQ-3 Alcohol Sensor
  • 128×64 LCD (Liquid Crystal Display)
  • 7 × 330 Ohm Resistor
  • 7 × LEDs (1 Red, 2 Yellow, 3 Green and one other color)
  • Jumpers Wires
  • Breadboard
  • Soldering Iron (optional)
  • Solder Wire (optional)

Details:

This project is very simple. Here we are using an array of six LEDs and a 128×64 LCD to display the alcohol level. The presence of alcohol is sensed by an MQ-3 alcohol sensor and then analyzed by an Arduino board. We are using Arduino UNO in this project, but any model can do the job.

Three Green LEDs represent that alcohol level is OK and within the safe limit. Two Yellow LEDs are used to describe that safe limit is going to be reached, and you know it well why the Red LED is there. In fact, those LEDs are used just to give you a quick idea. If you want to know the exact value, the display is there for you.

You can tweak the program and re-calibrate the breathalyzer. But you must remember that breathalyzer doesn’t precisely measure your blood alcohol content, rather it estimates a value from the amount of alcohol in your breath.

Circuit:

Breathalyzer Circuit On Breadboard
Breathalyzer Circuit On Breadboard

You can make the circuit also on PCB or Veroboard. But for the prototyping purpose, the breadboard is the best choice. You can see how straight forward the connections are.

The Code:

Some part of the original code was in Portuguese. So I have translated it into English. Also, the original code shared by the author in instrucatbles.com is a buggy one. So, I recommend you to use my bug-free code instead of the original one.

Please note that you have to download and add the u8glib library in Arduino IDE beforehand. It is very important. You can either download the u8glib v1.14 library for Arduino directly or go to the site and choose what to download.

Follow the given steps to add a .zip library in your sketch: Open IDE and click on Sketch  Include Library  Add .zip Library. Now select the downloaded .zip library file. You needn’t unzip it.

When everything is done, verify and upload the code to Arduino.

Test It:

I must not recommend you to drink alcohol just for testing the breathalyzer. Rather get a towel and spray alcohol on it. Now hold the towel in front of the sensor. Move it back and forth to observe the change in reading. It may take a while for the breathalyzer to stabilize.

Consider watching the video for a better understanding:

RELATED POSTS

New PWM controller IC By Microchip Charges Batteries of Any Chemistry

Battery technologies of all chemistry are experiencing revolutionary changes nowadays. Nanotechnology is leading this revolution by yielding new battery technologies including but not limited to Tiny Supercapacitors and Li-ion batteries that never explode at any condition. But, it’s bothersome to make different chargers for different types of batteries. So, Microchip solved this problem by introducing a new hybrid PWM controller, MCP19124/5, that charges batteries of any chemistry.

MCP19124 PWM Controller - 24 Pin QFN Package
MCP19124 PWM Controller – 24 Pin QFN Package

The power of this charging device lies in the combination of an 8-bit PIC microcontroller and an analog PWM controller in one package. This mixed signal low-side PWM controller features individual analog PWM control loops for both current regulation and voltage regulation. It can be configured with separate feedback networks and reference voltages. Any voltage, current, temperature, or duration can be used to trigger a transition to a different charging profile.

Various types of batteries require different charging profile. So, the only way to charge all kinds of batteries with a single device is to simulate all the charging profiles. A user can set his/her desired profile with the help of two independent current and voltage control loops, along with variable reference voltage. Now let’s get to know more details about this versatile PWM controller IC.

MCP19124/5 : 

The MCP19124/5 is a mid-voltage (4.5-42V) analog-based PWM controller with an integrated 8-bit PIC Microcontroller. There are two devices, the MCP19124 and MCP19125, where the last one has four I/O pins more than the first one. MPC19124 and MPC19125 are packaged in 24-lead QFN package and 28-lead QFN package respectively. It has following features:

  • Smooth, dynamic transitions from constant-current to constant-voltage operation
  • Dynamically adjustable output current and output voltage over a wide operating range
  • Wide operating voltage range: 4.5-42V
  • Analog peak-current mode Pulse-Width Modulation (PWM) control
  • Available fixed frequency (31 kHz to 2 MHz)
  • I2C communication interface
  • 9 GPIO for MCP 19124 and 12 GPIO for MCP19125
  • Integrated high voltage linear regulator, with external output
  • Integrated temperatures sense diode
  • Integrated 10 bit A/D converter
  • Minimal external components needed
  • Custom algorithm support
  • Topologies supported include Boost, SEPIC, Flyback, and Cuk

In fact, the above list is just a brief overview. The controller is so complicated that user must read all 236 pages of the datasheet to gain sufficient knowledge.

Now, the question is, how can we use this IC to design an efficient battery charger?

To find the answer, one must read the datasheet thoroughly. At the same time, in-depth knowledge about the target battery is also required. However, Microchip provided a few schematics (as references) in the datasheet based on different applications. The circuit on battery charger is given below:

Battery Charger Circuit Using MCP19124 ICBattery Charger Circuit Using MCP19124 IC
Battery Charger Circuit Using MCP19124 IC

This ultimate powerful dual-loop PWM controller is going to be a game changer and part of the battery technology revolution. It possesses lots of possibilities. To learn more about this fantastic hybrid controller, study the datasheet carefully.