/Ultraino

Acoustic Field simulation for phased-array controllers

Primary LanguageJavaMIT LicenseMIT

Ultraino

Acoustic Field simulation for phased-array controllers. The content of the folders is as follows:

  • AcousticField3D. The simulator that runs on the PC and can control the driver boards
  • Arduino MEGA 64 driver board code. Source code that goes in the Arduino Mega 64-channel driver board.
  • DriverNano16. Source code for making an Arduino Nano a 16-channel driver board.
  • Arduino phase detector. Code that goes in an Arduino Nano to serve as a tool to assign the channels.
  • arrays. Bases for example arrays.
  • driver board. BOM and PCB files for the driver board.

How to Run the Software

  • Download the source as a zip file or checkout the repository.

  • Be sure that you have installed JDK 11 https://www.oracle.com/java/technologies/javase-jdk11-downloads.html

  • Install Netbeans Integrated Development Environment (you can also use Eclipse if you want). The Java SE pack is enough https://netbeans.org/downloads/

  • Import the Source code in Netbeans. Run Netbeans, File->Open Project, Select the folder with the sourcecode.

  • Click Run. You can click Run->Run project. It will take some time the first time since it needs to compile the sourcecode.

Install Arduino Software

  • Install the Arduino IDE https://www.arduino.cc/en/Main/Software
  • Run the Arduino IDE and connect the Arduino Board to your computer.
  • In Tools->Board select Arduino/Genuino Mega or Mega 2560. In Tools->Ports select the port for your Arduino. You may need to install the drivers for your Arduino Board (specially if it is not a branded one). For the chip CH340 http://sparks.gogo.co.nz/ch340.html
  • In the public interface of Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\HardwareSerial.h add the following inline functions inline bool _dataAvailable() {return _rx_buffer_head != _rx_buffer_tail; } inline byte _peekData() { return _rx_buffer[_rx_buffer_tail]; } inline void _discardByte() { _rx_buffer_tail = (rx_buffer_index_t)(_rx_buffer_tail + 1) % SERIAL_RX_BUFFER_SIZE; }
  • Click the Icon for Upload

Install the Channel detector (tiny device used to assign channels semiautomatically)

  • There is a schematic in the folder
  • Install the software in Arduino Nano

How to Assemble and example Applications

Paper: http://ieeexplore.ieee.org/document/8094247/ Instructables: https://www.instructables.com/id/Ultrasonic-array/ Video: https://youtu.be/h0Mh0bIv9Fk