summaryrefslogtreecommitdiff
path: root/peripheral/libupm/src/adafruitms1438/adafruitms1438.h
diff options
context:
space:
mode:
Diffstat (limited to 'peripheral/libupm/src/adafruitms1438/adafruitms1438.h')
-rw-r--r--peripheral/libupm/src/adafruitms1438/adafruitms1438.h251
1 files changed, 0 insertions, 251 deletions
diff --git a/peripheral/libupm/src/adafruitms1438/adafruitms1438.h b/peripheral/libupm/src/adafruitms1438/adafruitms1438.h
deleted file mode 100644
index 1f00ac9..0000000
--- a/peripheral/libupm/src/adafruitms1438/adafruitms1438.h
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Author: Jon Trulson <jtrulson@ics.com>
- * Copyright (c) 2015 Intel Corporation.
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sublicense, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
- * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
- * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-#pragma once
-
-#include <stdint.h>
-#include <sys/time.h>
-
-#include <string>
-#include <mraa/i2c.h>
-#include <mraa/gpio.h>
-
-#include "pca9685.h"
-
-#define ADAFRUITMS1438_I2C_BUS 0
-#define ADAFRUITMS1438_DEFAULT_I2C_ADDR 0x60
-
-namespace upm {
-
- /**
- * @brief Adafruit Motor Shield 1438 library
- * @defgroup adafruitms1438 libupm-adafruitms1438
- * @ingroup adafruit i2c motor
- */
-
- /**
- * @library adafruitms1438
- * @sensor adafruitms1438
- * @comname Adafruit Motor Shield
- * @type motor
- * @man adafruit
- * @web http://www.adafruit.com/products/1438
- * @con i2c
- *
- * @brief API for the AdafruitMS1438 Motor Shield
- *
- * This class implements support for the stepper and DC motors that
- * can be connected to this Motor Shield.
- * Note: the two servo connections are not controlled by the PCA9685
- * controller (or this class). They are connected directly to digital
- * PWM pins 9 and 10 on the Arduino* breakout board.
- *
- * @image html adafruitms1438.jpg
- * An example using a DC motor connected to M3
- * @snippet adafruitms1438.cxx Interesting
- * An example using a stepper motor connected to M1 & M2
- * @snippet adafruitms1438-stepper.cxx Interesting
- */
- class AdafruitMS1438 {
- public:
-
- /**
- * Enum to specify the direction of a motor
- */
- typedef enum {
- DIR_NONE = 0x00,
- DIR_CW = 0x01,
- DIR_CCW = 0x02
- } DIRECTION_T;
-
- /**
- * Enum to specify a DC motor
- */
- typedef enum {
- MOTOR_M1 = 0,
- MOTOR_M2 = 1,
- MOTOR_M3 = 2,
- MOTOR_M4 = 3
- } DCMOTORS_T;
-
- /**
- * Enum to specify a stepper motor
- */
- typedef enum {
- STEPMOTOR_M12 = 0,
- STEPMOTOR_M34 = 1
- } STEPMOTORS_T;
-
- /**
- * AdafruitMS1438 constructor
- *
- * @param bus I2C bus to use
- * @param address Address for this sensor
- */
- AdafruitMS1438(int bus, uint8_t address = ADAFRUITMS1438_DEFAULT_I2C_ADDR);
-
- /**
- * AdafruitMS1438 destructor
- */
- ~AdafruitMS1438();
-
- /**
- * Returns the number of milliseconds elapsed since initClock(...)
- * was last called.
- *
- * @return Elapsed milliseconds
- */
- uint32_t getMillis(STEPMOTORS_T motor);
-
- /**
- * Resets the clock
- *
- */
- void initClock(STEPMOTORS_T motor);
-
- /**
- * Sets the PWM period. Note: this applies to all PWM channels.
- *
- * @param hz Sets the PWM period
- */
- void setPWMPeriod(float hz);
-
- /**
- * Enables PWM output for a motor
- *
- * @param motor DC motor to enable
- */
- void enableMotor(DCMOTORS_T motor);
-
- /**
- * Disables PWM output for a motor
- *
- * @param motor DC motor to disable
- */
- void disableMotor(DCMOTORS_T motor);
-
- /**
- * Enables output for a stepper motor
- *
- * @param motor Stepper motor to enable
- */
- void enableStepper(STEPMOTORS_T motor);
-
- /**
- * Disable output for a stepper motor
- *
- * @param motor Stepper motor to disable
- */
- void disableStepper(STEPMOTORS_T motor);
-
- /**
- * set the speed of a DC motor. Values can range from 0 (off) to
- * 100 (full speed).
- *
- * @param motor the DC motor to configure
- * @param speed speed to set the motor to
- */
- void setMotorSpeed(DCMOTORS_T motor, int speed);
-
- /**
- * Sets the speed of a stepper in revolutions per minute (RPM)
- *
- * @param motor DC motor to configure
- * @param speed Speed to set the motor to
- */
- void setStepperSpeed(STEPMOTORS_T motor, int speed);
-
- /**
- * Sets the direction of a DC motor, clockwise or counterclockwise
- *
- * @param motor DC motor to configure
- * @param dir Direction to set the motor in
- */
- void setMotorDirection(DCMOTORS_T motor, DIRECTION_T dir);
-
- /**
- * Sets the direction of a stepper motor, clockwise or counterclockwise
- *
- * @param motor Stepper motor to configure
- * @param dir Direction to set the motor in
- */
- void setStepperDirection(STEPMOTORS_T motor, DIRECTION_T dir);
-
- /**
- * Sets a stepper motor configuration
- *
- * @param motor Stepper motor to configure
- * @param stepsPerRev Number of steps to complete a full revolution
- */
- void stepConfig(STEPMOTORS_T motor, unsigned int stepsPerRev);
-
- /**
- * Steps a stepper motor a specified number of steps
- *
- * @param motor Stepper motor to step
- * @param steps Number of steps to move the stepper motor
- */
- void stepperSteps(STEPMOTORS_T motor, unsigned int steps);
-
- private:
- // SWIG will generate a warning for these 'nested structs'; however,
- // it can be ignored as these structs are never exposed.
-
- // struct to hold mappings of DC motors
- typedef struct {
- int pwm;
- int in1;
- int in2;
- } DC_PINMAP_T;
-
- // struct to hold mappings of stepper motors
- typedef struct {
- int pwmA;
- int in1A;
- int in2A;
- int pwmB;
- int in1B;
- int in2B;
- } STEPPER_PINMAP_T;
-
- // struct to hold information about each stepper
- typedef struct {
- int stepsPerRev; // steps per revolution
- int currentStep; // current step number
- uint32_t stepDelay; // delay between steps
- int stepDirection; // direction to step
- struct timeval startTime; // starting time
- } STEPPER_CONFIG_T;
-
- void setupPinMaps();
- void stepperStep(STEPMOTORS_T motor);
-
- DC_PINMAP_T m_dcMotors[4];
- STEPPER_PINMAP_T m_stepMotors[2];
- STEPPER_CONFIG_T m_stepConfig[2];
-
- PCA9685 *m_pca9685;
- };
-}
-
-