summaryrefslogtreecommitdiff
path: root/docs/pyboard/tutorial/amp_skin.rst
diff options
context:
space:
mode:
authorDan Halbert <halbert@halwitz.org>2018-02-27 22:03:52 -0500
committerGitHub <noreply@github.com>2018-02-27 22:03:52 -0500
commit568c04e6afa8016062f685b2198c0209f62827f4 (patch)
treed07b76119f715add462983b335797adf64b61249 /docs/pyboard/tutorial/amp_skin.rst
parent6a2379fd0bfe10017d8abc5c36ef1d470c0d9b27 (diff)
parentea633117d01d94e8d56ed94344e4b3e46b4eef03 (diff)
Merge pull request #650 from tannewt/merge_2x3.0.0-alpha.2
Merge in commits from 2.x branch.
Diffstat (limited to 'docs/pyboard/tutorial/amp_skin.rst')
-rw-r--r--docs/pyboard/tutorial/amp_skin.rst98
1 files changed, 0 insertions, 98 deletions
diff --git a/docs/pyboard/tutorial/amp_skin.rst b/docs/pyboard/tutorial/amp_skin.rst
deleted file mode 100644
index 697637f9d..000000000
--- a/docs/pyboard/tutorial/amp_skin.rst
+++ /dev/null
@@ -1,98 +0,0 @@
-The AMP audio skin
-==================
-
-Soldering and using the AMP audio skin.
-
-.. image:: img/skin_amp_1.jpg
- :alt: AMP skin
- :width: 250px
-
-.. image:: img/skin_amp_2.jpg
- :alt: AMP skin
- :width: 250px
-
-The following video shows how to solder the headers, microphone and speaker onto the AMP skin.
-
-.. raw:: html
-
- <iframe style="margin-left:3em;" width="560" height="315" src="http://www.youtube.com/embed/fjB1DuZRveo?rel=0" frameborder="0" allowfullscreen></iframe>
-
-For circuit schematics and datasheets for the components on the skin see :ref:`hardware_index`.
-
-Example code
-------------
-
-The AMP skin has a speaker which is connected to ``DAC(1)`` via a small
-power amplifier. The volume of the amplifier is controlled by a digital
-potentiometer, which is an I2C device with address 46 on the ``IC2(1)`` bus.
-
-To set the volume, define the following function::
-
- import pyb
- def volume(val):
- pyb.I2C(1, pyb.I2C.MASTER).mem_write(val, 46, 0)
-
-Then you can do::
-
- >>> volume(0) # minimum volume
- >>> volume(127) # maximum volume
-
-To play a sound, use the ``write_timed`` method of the ``DAC`` object.
-For example::
-
- import math
- from pyb import DAC
-
- # create a buffer containing a sine-wave
- buf = bytearray(100)
- for i in range(len(buf)):
- buf[i] = 128 + int(127 * math.sin(2 * math.pi * i / len(buf)))
-
- # output the sine-wave at 400Hz
- dac = DAC(1)
- dac.write_timed(buf, 400 * len(buf), mode=DAC.CIRCULAR)
-
-You can also play WAV files using the Python ``wave`` module. You can get
-the wave module `here <http://micropython.org/resources/examples/wave.py>`__ and you will also need
-the chunk module available `here <http://micropython.org/resources/examples/chunk.py>`__. Put these
-on your pyboard (either on the flash or the SD card in the top-level directory). You will need an
-8-bit WAV file to play, such as `this one <http://micropython.org/resources/examples/test.wav>`_,
-or to convert any file you have with the command::
-
- avconv -i original.wav -ar 22050 -codec pcm_u8 test.wav
-
-Then you can do::
-
- >>> import wave
- >>> from pyb import DAC
- >>> dac = DAC(1)
- >>> f = wave.open('test.wav')
- >>> dac.write_timed(f.readframes(f.getnframes()), f.getframerate())
-
-This should play the WAV file. Note that this will read the whole file into RAM
-so it has to be small enough to fit in it.
-
-To play larger wave files you will have to use the micro-SD card to store it.
-Also the file must be read and sent to the DAC in small chunks that will fit
-the RAM limit of the microcontroller. Here is an example function that can
-play 8-bit wave files with up to 16kHz sampling::
-
- import wave
- from pyb import DAC
- from pyb import delay
- dac = DAC(1)
-
- def play(filename):
- f = wave.open(filename, 'r')
- total_frames = f.getnframes()
- framerate = f.getframerate()
-
- for position in range(0, total_frames, framerate):
- f.setpos(position)
- dac.write_timed(f.readframes(framerate), framerate)
- delay(1000)
-
-This function reads one second worth of data and sends it to DAC. It then waits
-one second and moves the file cursor to the new position to read the next second
-of data in the next iteration of the for-loop. It plays one second of audio at
-a time every one second.