IFD:EAI SoS21/course material/Session 2: Data Types, Classes and Piezo Amp

From Medien Wiki
< IFD:EAI SoS21‎ | course material
Revision as of 14:11, 26 April 2021 by Clemensw (talk | contribs) (→‎C++ Intro)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Session 2: Basics

Piezo Amp

  • An explanation of the type of amplifier for our piezo disc is given here: Open Music Labs
  • Where to buy the teensy and audio shield (rev. D)? e.g. Exptech

Needed Material:

  • Teensy 4.0
  • Teensy Audio Shield Rev.D
  • Piezo Disc (bigger is louder, i use 3.5 cm outer diameter)
  • flexible Cable with two wires
  • N-Channel JFET Type Transistor either
    • 2SK596 scrapped from electret mic or
    • 2N5457 together with a 10kOhm -- 100kOhm Resistor

C++ Intro

You can find (and edit) the code examples from today in the following links:

Homework

As a homework task I want you to extend the code in Repl.it. as follows:

  1. For the "Classes" example above, add a Header (Point2D.h) and a Function definitions (Point2D.cpp) file to the project where you define the class and its functions seperately. Finally include the header file with #include "Point2D.h" in the main.cpp file, so we can use our custom C++ class. Watch this online tutorial to learn how to do that! You don't need to put the .h and .cpp file in different folders, as shown in the video. Putting them in the same folder as the main.cpp works as well.
  2. As a second task, I want you to extend the code of the Point2D to include a function to measure the distance between two points in 2D space. Do you remember the "Theorem of Pythagoras"? The function body should look like this:
    float distanceToOtherPoint(Point2D otherPoint) {
      float distance = ... // calculate distance here
      return distance;
    }
    Include that function in our Point2D class and make it calculate the distance!
  3. Last but not least, watch that introductory video about pointers. We will use pointers next week!


Send me your code via mail or a link to your Repl.it repository until friday!!! Ask if something doesn't work!!! ... Have fun! :D