Utilities classes for the Zumo Robot

Dependents:   ZumoRobotBluetoothControlled Fsl_Zumo

This library represents some useful code for controlling your Zumo Robot.

Committer:
catalincraciun7
Date:
Sun Jul 23 12:51:35 2017 +0000
Revision:
7:d2af97b7cc94
Parent:
6:7740c9d8d834
Minor changes to code style;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
catalincraciun7 4:dcd52a961392 1 // Craciun Catalin
catalincraciun7 4:dcd52a961392 2 // Buzzer.cpp
catalincraciun7 4:dcd52a961392 3 // © 2014 Catalin Craciun
catalincraciun7 4:dcd52a961392 4
catalincraciun7 7:d2af97b7cc94 5 #include "Buzzer.h"
catalincraciun7 7:d2af97b7cc94 6 #define MELODY_LENGTH 5
catalincraciun7 4:dcd52a961392 7
catalincraciun7 7:d2af97b7cc94 8 Buzzer::Buzzer(PinName buzzerPinName):buzzerPin(buzzerPinName) {
catalincraciun7 4:dcd52a961392 9 // Initialising
catalincraciun7 5:5e12111ef01f 10 buzzerPin.period_us(0);
catalincraciun7 5:5e12111ef01f 11 buzzerPin.pulsewidth_us(0);
catalincraciun7 4:dcd52a961392 12 }
catalincraciun7 4:dcd52a961392 13
catalincraciun7 7:d2af97b7cc94 14 Buzzer::~Buzzer() {
catalincraciun7 4:dcd52a961392 15 // Deinitialising
catalincraciun7 4:dcd52a961392 16 }
catalincraciun7 4:dcd52a961392 17
catalincraciun7 7:d2af97b7cc94 18 void Buzzer::stopBeep() {
catalincraciun7 6:7740c9d8d834 19
catalincraciun7 5:5e12111ef01f 20 buzzerPin.period_us(0);
catalincraciun7 5:5e12111ef01f 21 buzzerPin.pulsewidth_us(0);
catalincraciun7 4:dcd52a961392 22 }
catalincraciun7 4:dcd52a961392 23
catalincraciun7 7:d2af97b7cc94 24 void Buzzer::startBeep(float frequency, float duration) {
catalincraciun7 7:d2af97b7cc94 25 buzzerPin.period(1.0f/frequency);
catalincraciun7 5:5e12111ef01f 26 buzzerPin.pulsewidth_us(100);
catalincraciun7 4:dcd52a961392 27 timeout.attach(this, &Buzzer::stopBeep, duration);
catalincraciun7 4:dcd52a961392 28 }
catalincraciun7 4:dcd52a961392 29
catalincraciun7 7:d2af97b7cc94 30 void Buzzer::playDefaultMelody() {
catalincraciun7 6:7740c9d8d834 31 // Playing default melody on buzzer
catalincraciun7 7:d2af97b7cc94 32 for (int cycle = 0; cycle < MELODY_LENGTH; cycle++) {
catalincraciun7 6:7740c9d8d834 33 buzzerPin.period(16);
catalincraciun7 6:7740c9d8d834 34 buzzerPin.pulsewidth_us(200);
catalincraciun7 6:7740c9d8d834 35 wait(0.5);
catalincraciun7 6:7740c9d8d834 36
catalincraciun7 6:7740c9d8d834 37 buzzerPin.period(0);
catalincraciun7 6:7740c9d8d834 38 buzzerPin.pulsewidth_us(0);
catalincraciun7 6:7740c9d8d834 39 wait(0.5);
catalincraciun7 6:7740c9d8d834 40
catalincraciun7 6:7740c9d8d834 41 buzzerPin.period(16);
catalincraciun7 6:7740c9d8d834 42 buzzerPin.pulsewidth_us(200);
catalincraciun7 6:7740c9d8d834 43 wait(0.5);
catalincraciun7 6:7740c9d8d834 44
catalincraciun7 6:7740c9d8d834 45 buzzerPin.period(0);
catalincraciun7 6:7740c9d8d834 46 buzzerPin.pulsewidth_us(0);
catalincraciun7 6:7740c9d8d834 47 wait(0.5);
catalincraciun7 6:7740c9d8d834 48
catalincraciun7 6:7740c9d8d834 49 buzzerPin.period(16);
catalincraciun7 6:7740c9d8d834 50 buzzerPin.pulsewidth_us(200);
catalincraciun7 6:7740c9d8d834 51 wait(0.5);
catalincraciun7 6:7740c9d8d834 52
catalincraciun7 6:7740c9d8d834 53 buzzerPin.period(0);
catalincraciun7 6:7740c9d8d834 54 buzzerPin.pulsewidth_us(0);
catalincraciun7 6:7740c9d8d834 55 wait(0.5);
catalincraciun7 6:7740c9d8d834 56 }
catalincraciun7 6:7740c9d8d834 57 }