20-08-2023: Development update

Finally I have new working prototype on my desk.

Introduction:

As a hobby, I am developing a contactless vibration detector. Actually, it is based on Arduino & KiCAD. The previous version (finished & tested & working) is on the link below. However, you need to write your own PC code or use its analog output, and mainly you need to handle a 9V battery.

The vibrometer is built around TCRT 5000, it’s 1 channel IR LED with a phototransistor. On the GitHub link below is discussed the basic concept.

At the moment I don’t plan to finish the C# application for the old version of the vibrometer. I really don’t like that 9V battery ๐Ÿ˜‰ and the performance of the version on my table is much higher.

https://github.com/TomasGaj/Arduino_vibrometer/

Update 1: Change of the development board

I am leaving Arduino UNO and introducing Arduino Nano. Measuring vibrating objects at ~200Hz was not enough. I tried to optimize on the assembly language level. It was a painful research, but finally, I confirmed that the same code is NOT running on UNO, but runs without any troubles on Nano. The background is that Nano uses FTDI chip to communicate over USB – pls see GitHub link below, I speculate there about the background of this.

As a final result of my work, Arduino is sending data to PC at a speed of 1000000 baud, roughly 14350 Samples/second (10-bit).

As no CRC is introduced, I think the same code (reaching the same speed) can be used for MCP3208 (12-bit). I plan to test it later on.

As a result Arduino is now able to contactlessly measure vibrations in low kHz range, see the following chapters for details.

https://github.com/TomasGaj/Arduino_Nano_MPC3008_logger/tree/main

Update 2: C# app working

The changes in code in Arduino led to the necessary changes in C#. I am not using micros() of the Arduino anymore, instead of this I am sending 2 nibbles taken out of Timer1. The figure below shows a 5kHz sine signal from the generator captured by C#. This is a much better result than the previous 200Hz.

For details please refer to the GitHub link of Arduino_Nano_MCP3008_logger link available above.

I plan to release the application on GitHub, but I prioritize finalizing the electrical layout.

Update 3: circuit change – leaving 9V battery

I was quite unhappy about using a 9V battery, so I am happy to test the enhanced circuit, which is purely powered by noisy USB 5V ๐Ÿ™‚

Last(?) issue ahead ๐Ÿ˜‰

In the figure below you see the measurement of the loudspeaker vibrating ~430Hz. The signal from the generator is pure sine, light noisy sine is captured by TCRT 5000, but after filtration / amplification / manipulation there are some artifacts. I highlighted them.

I actually investigate this (absolutely the first idea after seeing this was to filter it by software :-))

The photo below is just for fun to illustrate how the new concept looks on my desk:

That’s all for today!

Enjoy!

TG


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *