ppk_bt/.pio/libdeps/esp32/TinyPICO Helper Library/README.rst

97 lines
3.1 KiB
ReStructuredText

TinyPICO Arduino Helper
=======================
This library adds some helper functions and useful pin assignments to make coding with TinyPICO & Arduino easier
We will be adding this library to the Arduino IDE library manager once we get closer to shipping the TinyPICOs.
TinyPICO Hardare Pin Assingments
--------------------------------
.. code-block:: c++
// APA102 Dotstar
#define DOTSTAR_PWR 13
#define DOTSTAR_DATA 2
#define DOTSTAR_CLK 12
// Battery
#define BAT_CHARGE 34
#define BAT_VOLTAGE 35
..
Helper functions
----------------
.. code-block:: c++
// Class constructor
TinyPICO();
// Get a *rough* estimate of the current battery voltage
// If the battery is not present, the charge IC will still report it's trying to charge at X voltage
// so it will still show a voltage.
float GetBatteryVoltage();
// Return the current charge state of the battery - we need to read the value multiple times
// to eliminate false negatives due to the charge IC not knowing the difference between no battery
// and a full battery not charging - This is why the charge LED flashes
bool IsChargingBattery();
// Power to the on-oard Dotstar is controlled by a PNP transistor, so low is ON and high is OFF
// We also need to set the Dotstar clock and data pins to be inputs to prevent power leakage when power is off
// The reason we have power control for the Dotstar is that it has a quiescent current of around 1mA, so we
// need to be able to cut power to it to minimise power consumption during deep sleep or with general battery powered use
// to minimse un-needed battery drain
void DotStar_SetPower( bool state );
// On-board Dotstar control
void DotStar_Clear();
void DotStar_SetBrightness( uint8_t );
void DotStar_SetPixelColor( uint32_t c );
void DotStar_SetPixelColor( uint8_t r, uint8_t g, uint8_t b );
void DotStar_Show( void );
void DotStar_CycleColor();
void DotStar_CycleColor( unsigned long wait );
void DotStar_CycleColor();
void DotStar_CycleColor( unsigned long wait );
// Convert R,G,B values to uint32_t
uint32_t Color( uint8_t r, uint8_t g, uint8_t b );
..
Example Usage
-------------
.. code-block:: c++
#include <TinyPICO.h>
// Interval between internal temperature reads
unsigned long next_temp_read = 0; // Next time step in milliseconds
uint8_t temp_read_interval = 1000; // This is in milliseconds
// Initialise the TinyPICO library
TinyPICO tp = TinyPICO();
void setup()
{
// Not used
}
void loop()
{
// Cycle the DotStar colour every 25 miliseconds
tp.DotStar_CycleColor(25);
// You can set the DotStar colour directly using r,g,b values
// tp.DotStar_SetPixelColor( 255, 128, 0 );
// You can set the DotStar colour directly using a uint32_t value
// tp.DotStar_SetPixelColor( 0xFFC900 );
// You can aclear the DotStar too
// tp.DotStar_Clear();
// To power down the DotStar for deep sleep you call this
// tp.DotStar_SetPower( false );
}
..