How to Calibrate a ZED Stereo Camera

All lens have some distortion no matter how big or small, so you should correct for lens distortion by calibrating a camera in terms of software. Especially, this technique is used for robotics and the distortion effects so much while a robot is mapping some obstacles using a camera as their eyes. Today, I am showing how to calibrate a ZED stereo camera for your project.

Environments & Equipments

I assume that you already have these environments and equipment to calibrate a ZED stereo camera. Please go to these links above, and set up correctly.

How to make a catkin workplace for ZED

Compiling

Calibration

Open another tab on terminal

For the calibration, I used calibration checkboard (6×4, square size 35mm). When you use another checkboard, you will just change the command after –size and –square.

Important!!!

Do NOT forget the command of

The driver does not support set_camera_info service. Without this command, you might have got this error message after rosrun.

There are active topics while roslaunch zed_wrapper zed.launch

Calibration Result

Done!

 

Configuration of RN52 through Simblee (RFD77101)

Simblee (RFD77101) is one of the best BLE (Bluetooth Low Energy) chip that turns your project into the IoT. Since I have learned how to use the Simblee, I have come up with the idea that I connect Simblee into RN52 (Audio Bluetooth) to make my project more fun. The first step that I needed to do was whether I could do the configuration of RN52 through a Simblee chip, so I will introduce how to configure it by using UART and display the configuration on the Simblee App based on the commands you input.

Normal Configuration

In order to do the normal configuration that you can find in Sparkfun tutorial of RN52, you need to use a FTDI chip with USB to communicate with a serial UART through a USB port.

You are supposed to get the configuration like this (From Sparkfun).

Configuration on Simblee App

However, what if you would like to display the configuration of RN52 on Simblee App through RFD77101, the process will be different. Here is the simple sketch of this project. FTDI chip is connected to RFD77101 using UART (RX is 25 pin & TX is 23 pin as a default), and by connecting RFD77101 and RN52 using GPIO17 & GPIO19 as RX & TX), you could do the serial communication between these chips.

Source Code

 

Results

This is the UI on Simblee App.

When SMD mode started (GPIO9 pin shorted to GND).

When a command “D” was input in field1. However, I was supposed to get more than 68 bytes (As you can see, when you do the normal configuration on Terminal, the number of characters is more than 68 characters.) I need to study more about how to use a buffer, and fix this problem.

When a command that does not exist was input.

There are a lot of available commands that you can see. This project succeeded! Thanks.

 

Multiple LiPo Batteries Charger with a micro USB connector

After I received the acceptance of Maker Faire Bay Area 2018, I had to prepare a multiple lipo batteries charger because in Maker Faire Bay Area 2017, I had five lipo batteries and a lipo battery charger with a micro USB connector, but lipo batteries were dead faster than I expected, and only one lipo battery charger could not cover all dying lipo batteries. Therefore, I decided to make my own lipo charger rather than buying one.

Parts

These are the parts that I used for a PCB. The total cost for a multiple lipo batteries charger with a micro USB connector was only $11, so it must be cheaper than other products you can buy in online store.

Schematic

This is the schematic that I designed. It was based on the Sparkfun lipo battery charger, but it could become multiple lipo batteries charger by connecting a micro USB and IC chips for lipo charge management control as a parallel circuit. When I tested how much voltage was supplied to each branch by a multimeter before I soldered all parts, around 5v was supplied from a micro USB connector, so it theoretically worked!

PCB

This is the PCB layout that I designed.

Test

In this test, I wanted to check if LEDs were correctly turned off when one of these lipo batteries or all lipo batteries were fully charged. Initially, all lipo batteries were not charged.

After a couple of hours, all batteries were fully charged, and LEDs were also turned off correctly!!!

This project was completed!

Arduino Nano + RN52 + TPA2016D2 Experiment

It has been over a year since I have been working on the audio things. The previous experiment, I used an amplifier called TPA2016 which can amplify an audio data from a 3.5mm headphone wire connecting a phone. However, I really wanted it to be a wireless which can send the audio data, and I finally found the one called “RN52” which is an audio bluetooth module.

RN52 Test

In the Fritzing image above, I did an initial test with this RN52 module and an 8Ω speaker ( 16Ω speaker should have been used according to the data sheet, but it is actually not big deal.) with an Arduino Nano for UART communication and as a voltage supplier from my computer which is 5V. The initial test worked perfectly and I heard sounds, but there were some problems.

  1. The sounds were NOT really amplified.
  2. It could not control a gain from your Phone.

In order to solve these problems, I decided to use an TPA2016 which is the stereo class D amplifier with a gain control. By using the amplifier, I could amplify the audio sounds to around 30 dB, and I could control the gain from my phone which means I could adjust the sound volume in my phone. The TPA2016 module could solve these problems once.

Here is the new Fritzing image.

Fortunately, RN52 had 4 pins audio outputs and TPA2016 had 4 pins audio inputs, thus by connecting between these modules, the audio data coming from RN52 as outputs is going into the TPA2016 as inputs. In this video, I am showing how to connect the Bluetooth module and your phone, and how it works.

My Progress of PCB Layout

It has been six months since I started doing Schematic design and PCB Layout by myself. I have been working on these things for improving my engineering skills and exhibiting my prototypes in Maker Faire, especially for bone conduction devices that I am developing. I finally could make my own PCB which worked perfectly, so I will show my progress of PCBs.

The first experiment failed…

When I developed my own PCB for the first time, I designed a schematic which was definitely over-skilled for me. Even thought I just wanted to make a PCB which can make sounds through an amplifier, I put BLE for Bluetooth function, and Li-Polymer Charge Management Controller to charge a LiPo Battery. Of course, the PCB did not work because I did not know how to design schematics and PCBs. What I learned from this failure is…

  1. Do not try to design a complicated PCB for the first time.
  2. Increase the difficulty of schematic and PCB layout gradually.
  3. Know how the electronics work better than anybody else.

The second experiment also failed…

From the first failure, I design a easy PC board by eliminating a lot of functions that I was not supposed to use this experiment. And, this is the schematic that I designed.

However, this schematic also did not work because It had three errors.

  1. I did not connect Pin 21 (Thermal Pad) on an amplifier to the GND (ground).
  2. R1, R2, and R3 (resistors) were not working as pull-up resistors.
  3. INL- (Left channel negative audio input) and INR- (Right channel negative audio input) also did not connect to the GND.

In order to fix these errors,

  1. Make a hole on pin 21 using laser cutter and solder pin 21 to GND pin using a tiny wire. (The reason why I made a hole was the package of the amplifier was QFN and needed to be soldered using soldering cream and heat gun).
  2. Connect SDA, SCL, SDZ pins to VDD pin using three jumper wires.
  3. Connect INL- to GND pin using a jumper wire.

After these debugging, my PCB called BCv2.0 finally worked.

BCv2.1 came out!

From previous failure, I redesigned the schematic.

The PCB became much smaller and practical and I removed the external 3.5mm headphone jack and used SMD headphone jack.

By placing components on both side, I could minimize the size a lot.

The Size Comparison

I could successfully minimize the size of PCB. This is the comparison of BCv2.0 (Green), BCv2.1 (Black), and 5 cent coin.

Next challenge I will do is to put more functions such as bluetooth on my own PC Board! See you at next post!