Home / Lab 13

Lab 13

The questions below are due on Friday May 08, 2020; 05:15:00 PM.
You are not logged in.

If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.csail.mit.edu) to authenticate, and then you will be redirected back to this page.

Goals: In Lab 13 we're going to test our Doppler ultrasound system, and then think about some of the system-level design considerations.

1) Recap

First, let's recall again what we're trying to do with the Doppler ultrasound system, and what we've done so far. Our overall system is viewable in the [full system schematic](COURSE/ultrasound/Ultrasonic Velocity Sensor Schematic V1_4_NV.pdf) and the block diagram for the whole system schematic is shown below, friends:

  • We create ultrasound using the transmit stage. In this stage, we first use the Teensy to create a square wave, and then we use an amplifier to amplify the voltage, which we did in Lab 4.

  • That ultrasound bounces off an object. If the object is moving, it changes the ultrasound wave frequency by a little bit. We are trying to discern that frequency change.

  • To do that, we first amplify the received signal approximately 10\times using our receive amp, which we designed and built in Lab 6.

  • Then we want to turn the signal into a square wave to make it easier to manipulate. The comparator we built in Lab 7 does this. Remember, we can do this because the information we care about is the frequency of the signal, which remains unchanged when we turn it into a square wave.

  • Then we want to measure the frequency of that digitized signal. Rather than measuring the frequency of the digitized signal directly, we first multiply the received signal with the original transmit square wave using an XNOR gate, which we implemented in Lab 7.

  • You'll recall from Lab 7 that this created a signal with two main frequency components, one at \delta f, the doppler shift frequency, and one at ~ 80 kHz. In Lab 10 we designed a 1 kHz Sallen-Key low-pass filter to remove the 80 kHz signal.

  • Then we just need to measure the frequency of the remaining signal at \delta f. However, we first turn that signal back into a nice square wave using the comparator we built in Lab 12, before sending it to the Teensy.

  • We got rid of the two different power supplies. Since we have 5 V coming in to power the Teensy, we would like to create a 30 V supply voltage from that 5 V supply. We do this with the boost converter that we built in Lab 12.

2) System Testing

We have two approaches to testing your system. One is a testing rig that Dave Otten has developed, which will allow you to compare your system's velocity response to a calibrated moving object. We strongly encourage you to use that system, which is at the staff table and is operated with the staff.

If that system gets too busy, we will allow you to demonstrate operation of your system for Checkoff 2 with a piece of cardboard. This will only provide qualitative results, and so is not nearly as satisfying.

Download the final code, compile, and load it onto your Teensy. This code uses the Teensy frequency to count the number of edges of a square wave in a certain amount of time, and uses that to infer the frequency. From that frequency, the speed of the moving target is calculated. The code will either report the measured frequency or the calculated speed in mm/s. Near the top of the file either set:

uint8_t display_type = FREQUENCY;

to see frequency reported or set that same line to this instead...

uint8_t display_type = FORTYKHZ;

...in order to have a speed estimate provided. The code then displays that frequency or speed on the OLED. The system will also output an analog voltage proportional to the frequency or speed on one of the Teensy's DAC pins. Study the code and see if how speed is calculated makes sense.

2.1) Tester overview

The ultrasonic velocity sensor tester rig provides a moving panel in front of the ultrasonic system as well as mechanical and electrical connections for power and output signals to make it easy to test the sensor. A stepper motor and lead screw mechanism is used to move a flat panel in front of the sensor. The tester generates analog signals proportional to the panel velocity and position which are available on BNC connectors located on the control board. Here's a picture of the tester:

The US board is attached to the tester board as shown:

The tester board has pushbutton switches to command the tester to move forward and back once or to move continuously.

3) Testing

The testing rig is near the staff table. A staff member will work with you to test your device.

Once you plug in your board to the socket on the test apparatus, open up the serial plotter in the Arduino Environment (Under Tools>Serial Plotter). This will plot the approximate velocity generated by your circuit (using the final output signal). By pressing the "SW1" button on the test board, the piece of particle board will move back and forth and you can compare your observed observation (on the Teensy's output plot) to the actual velocity which is shown on the oscilloscope on the test rig for comparison.

We should see something like the following on the oscilloscope:

Checkoff 1:
Demonstrate your working sytem to the staff. Explain what each signal is showing and whether the signals make sense.

Please come prepared to have a serious, in-depth conversation about this section for this Friday.

4) System-Level Analysis

The doppler US system is pretty complicated, with 6 stages. In each lab we've gone thru and tested from stage 1 to the current stage. To help you think about the system as a whole, here are questions to ask yourself that are meant to synthesize your understanding of the system.

Staff will ask you all of these questions during checkoff 2.

  • Explain the operation of each stage. What does each stage do at a high level? Make sure you can analyze each stage in detail.

  • What sets the maximum velocity that one can measure? If you want to increase the maximum velocity by 50%, which stage(s) need to change? How would you change them?

  • What sets the maximum distance of objects that you can measure? What stage(s) would you change to make the system able to measure far-away objects? How would you change them?

  • How would you alter the design to be able to measure very slow motions? Right now our system has difficulty measuring velocities that result in frequencies of <1 Hz. How would you change the electronics (not the code) to be able to measure slower velocities?

Checkoff 2:
Answer these questions in a conversation with the staff.

5) Cleanup

Before you leave, it's time to clean up again! Steps for cleanup:

  • Carefully pick up your system and place into its plastic case.
  • Throw away loose wires on your desk.
  • Throw away paper, food, etc. on your desk.

Checkoff 3:
Show your cleaned-up lab space to a staff member.