Added SPDX to 30 more files - spdx-38
This commit is contained in:
parent
bfe5427a4a
commit
bc6e986260
30 changed files with 306 additions and 187 deletions
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2020 Kevin J. Walters for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# cpb-quick-draw v1.11
|
||||
# CircuitPython (on CPBs) Quick Draw reaction game
|
||||
# This is a two player game using two Circuit Playground Bluefruit boards
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2020 Anne Barela for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# cpx-reaction-timer v1.0.1
|
||||
# A human reaction timer using light and sound
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2020 John Park for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
A CircuitPython 'multimedia' dial demo
|
||||
Uses a Circuit Playground Bluefruit + Rotary Encoder -> BLE out
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Jeff Epler for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
import adafruit_dotstar
|
||||
from rainbowio import colorwheel
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Limor Fried for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
This example will access an API, grab a number like hackaday skulls, github
|
||||
stars, price of bitcoin, twitter followers... if you can find something that
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2018 Limor Fried for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// COMMON SETTINGS
|
||||
// ----------------------------------------------------------------------------------------------
|
||||
// These settings are used in both SW UART, HW UART and SPI mode
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2018 Dave Astels for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// Continuous servo based walking/waddling/etc robot.
|
||||
|
||||
// Bluetooth code is from Feather M0 Bluefruit controller example.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2018 Limor Fried for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include <string.h>
|
||||
#include <Arduino.h>
|
||||
#include <SPI.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2018 Dave Astels for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Continuous servo based walking/waddling/etc robot.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2018 Tony DiCola for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# ESP8266 MicroPython smart holiday lights project code.
|
||||
# This will animate NeoPixels that can be controlled from the included
|
||||
# lights.html web page.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2022 Limor Fried for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include <Arduino.h>
|
||||
#include "Adafruit_LC709203F.h"
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2021 Limor Fried for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include "WiFi.h"
|
||||
#include <Adafruit_TestBed.h>
|
||||
extern Adafruit_TestBed TB;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
typedef struct RgbColor
|
||||
{
|
||||
unsigned char r;
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include <Wire.h>
|
||||
#include "Adafruit_TCS34725.h"
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
|
|
|
|||
|
|
@ -1,185 +1,189 @@
|
|||
/* Raw IR commander
|
||||
|
||||
This sketch/program uses the Arduno and a PNA4602 to
|
||||
decode IR received. It then attempts to match it to a previously
|
||||
recorded IR signal. Limor Fried, Adafruit Industries
|
||||
|
||||
MIT License, please attribute
|
||||
check out learn.adafruit.com for more tutorials!
|
||||
*/
|
||||
|
||||
// We need to use the 'raw' pin reading methods
|
||||
// because timing is very important here and the digitalRead()
|
||||
// procedure is slower!
|
||||
//uint8_t IRpin = 2;
|
||||
// Digital pin #2 is the same as Pin D2 see
|
||||
// http://arduino.cc/en/Hacking/PinMapping168 for the 'raw' pin mapping
|
||||
#define IRpin_PIN PIND
|
||||
#define IRpin 2
|
||||
|
||||
// the maximum pulse we'll listen for - 65 milliseconds is a long time
|
||||
#define MAXPULSE 65000
|
||||
#define NUMPULSES 50
|
||||
|
||||
// what our timing resolution should be, larger is better
|
||||
// as its more 'precise' - but too large and you wont get
|
||||
// accurate timing
|
||||
#define RESOLUTION 20
|
||||
|
||||
// What percent we will allow in variation to match the same code
|
||||
#define FUZZINESS 20
|
||||
|
||||
// we will store up to 100 pulse pairs (this is -a lot-)
|
||||
uint16_t pulses[NUMPULSES][2]; // pair is high and low pulse
|
||||
uint8_t currentpulse = 0; // index for pulses we're storing
|
||||
|
||||
#include "ircommander.h"
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(9600);
|
||||
Serial.println("Ready to decode IR!");
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
int numberpulses;
|
||||
|
||||
numberpulses = listenForIR();
|
||||
|
||||
Serial.print("Heard ");
|
||||
Serial.print(numberpulses);
|
||||
Serial.println("-pulse long IR signal");
|
||||
if (IRcompare(numberpulses, ApplePlaySignal,sizeof(ApplePlaySignal)/4)) {
|
||||
Serial.println("PLAY");
|
||||
}
|
||||
if (IRcompare(numberpulses, AppleRewindSignal,sizeof(AppleRewindSignal)/4)) {
|
||||
Serial.println("REWIND");
|
||||
}
|
||||
if (IRcompare(numberpulses, AppleForwardSignal,sizeof(AppleForwardSignal)/4)) {
|
||||
Serial.println("FORWARD");
|
||||
}
|
||||
delay(500);
|
||||
}
|
||||
|
||||
//KGO: added size of compare sample. Only compare the minimum of the two
|
||||
boolean IRcompare(int numpulses, int Signal[], int refsize) {
|
||||
int count = min(numpulses,refsize);
|
||||
Serial.print("count set to: ");
|
||||
Serial.println(count);
|
||||
for (int i=0; i< count-1; i++) {
|
||||
int oncode = pulses[i][1] * RESOLUTION / 10;
|
||||
int offcode = pulses[i+1][0] * RESOLUTION / 10;
|
||||
|
||||
#ifdef DEBUG
|
||||
Serial.print(oncode); // the ON signal we heard
|
||||
Serial.print(" - ");
|
||||
Serial.print(Signal[i*2 + 0]); // the ON signal we want
|
||||
#endif
|
||||
|
||||
// check to make sure the error is less than FUZZINESS percent
|
||||
if ( abs(oncode - Signal[i*2 + 0]) <= (Signal[i*2 + 0] * FUZZINESS / 100)) {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (ok)");
|
||||
#endif
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (x)");
|
||||
#endif
|
||||
// we didn't match perfectly, return a false match
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
Serial.print(" \t"); // tab
|
||||
Serial.print(offcode); // the OFF signal we heard
|
||||
Serial.print(" - ");
|
||||
Serial.print(Signal[i*2 + 1]); // the OFF signal we want
|
||||
#endif
|
||||
|
||||
if ( abs(offcode - Signal[i*2 + 1]) <= (Signal[i*2 + 1] * FUZZINESS / 100)) {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (ok)");
|
||||
#endif
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (x)");
|
||||
#endif
|
||||
// we didn't match perfectly, return a false match
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
Serial.println();
|
||||
#endif
|
||||
}
|
||||
// Everything matched!
|
||||
return true;
|
||||
}
|
||||
|
||||
int listenForIR(void) {
|
||||
currentpulse = 0;
|
||||
|
||||
while (1) {
|
||||
uint16_t highpulse, lowpulse; // temporary storage timing
|
||||
highpulse = lowpulse = 0; // start out with no pulse length
|
||||
|
||||
// while (digitalRead(IRpin)) { // this is too slow!
|
||||
while (IRpin_PIN & (1 << IRpin)) {
|
||||
// pin is still HIGH
|
||||
|
||||
// count off another few microseconds
|
||||
highpulse++;
|
||||
delayMicroseconds(RESOLUTION);
|
||||
|
||||
// If the pulse is too long, we 'timed out' - either nothing
|
||||
// was received or the code is finished, so print what
|
||||
// we've grabbed so far, and then reset
|
||||
|
||||
// KGO: Added check for end of receive buffer
|
||||
if (((highpulse >= MAXPULSE) && (currentpulse != 0))|| currentpulse == NUMPULSES) {
|
||||
return currentpulse;
|
||||
}
|
||||
}
|
||||
// we didn't time out so lets stash the reading
|
||||
pulses[currentpulse][0] = highpulse;
|
||||
|
||||
// same as above
|
||||
while (! (IRpin_PIN & _BV(IRpin))) {
|
||||
// pin is still LOW
|
||||
lowpulse++;
|
||||
delayMicroseconds(RESOLUTION);
|
||||
// KGO: Added check for end of receive buffer
|
||||
if (((lowpulse >= MAXPULSE) && (currentpulse != 0))|| currentpulse == NUMPULSES) {
|
||||
return currentpulse;
|
||||
}
|
||||
}
|
||||
pulses[currentpulse][1] = lowpulse;
|
||||
|
||||
// we read one high-low pulse successfully, continue!
|
||||
currentpulse++;
|
||||
}
|
||||
}
|
||||
void printpulses(void) {
|
||||
Serial.println("\n\r\n\rReceived: \n\rOFF \tON");
|
||||
for (uint8_t i = 0; i < currentpulse; i++) {
|
||||
Serial.print(pulses[i][0] * RESOLUTION, DEC);
|
||||
Serial.print(" usec, ");
|
||||
Serial.print(pulses[i][1] * RESOLUTION, DEC);
|
||||
Serial.println(" usec");
|
||||
}
|
||||
|
||||
// print it in a 'array' format
|
||||
Serial.println("int IRsignal[] = {");
|
||||
Serial.println("// ON, OFF (in 10's of microseconds)");
|
||||
for (uint8_t i = 0; i < currentpulse-1; i++) {
|
||||
Serial.print("\t"); // tab
|
||||
Serial.print(pulses[i][1] * RESOLUTION / 10, DEC);
|
||||
Serial.print(", ");
|
||||
Serial.print(pulses[i+1][0] * RESOLUTION / 10, DEC);
|
||||
Serial.println(",");
|
||||
}
|
||||
Serial.print("\t"); // tab
|
||||
Serial.print(pulses[currentpulse-1][1] * RESOLUTION / 10, DEC);
|
||||
Serial.print(", 0};");
|
||||
}
|
||||
|
||||
// SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/* Raw IR commander
|
||||
|
||||
This sketch/program uses the Arduno and a PNA4602 to
|
||||
decode IR received. It then attempts to match it to a previously
|
||||
recorded IR signal. Limor Fried, Adafruit Industries
|
||||
|
||||
MIT License, please attribute
|
||||
check out learn.adafruit.com for more tutorials!
|
||||
*/
|
||||
|
||||
// We need to use the 'raw' pin reading methods
|
||||
// because timing is very important here and the digitalRead()
|
||||
// procedure is slower!
|
||||
//uint8_t IRpin = 2;
|
||||
// Digital pin #2 is the same as Pin D2 see
|
||||
// http://arduino.cc/en/Hacking/PinMapping168 for the 'raw' pin mapping
|
||||
#define IRpin_PIN PIND
|
||||
#define IRpin 2
|
||||
|
||||
// the maximum pulse we'll listen for - 65 milliseconds is a long time
|
||||
#define MAXPULSE 65000
|
||||
#define NUMPULSES 50
|
||||
|
||||
// what our timing resolution should be, larger is better
|
||||
// as its more 'precise' - but too large and you wont get
|
||||
// accurate timing
|
||||
#define RESOLUTION 20
|
||||
|
||||
// What percent we will allow in variation to match the same code
|
||||
#define FUZZINESS 20
|
||||
|
||||
// we will store up to 100 pulse pairs (this is -a lot-)
|
||||
uint16_t pulses[NUMPULSES][2]; // pair is high and low pulse
|
||||
uint8_t currentpulse = 0; // index for pulses we're storing
|
||||
|
||||
#include "ircommander.h"
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(9600);
|
||||
Serial.println("Ready to decode IR!");
|
||||
}
|
||||
|
||||
void loop(void) {
|
||||
int numberpulses;
|
||||
|
||||
numberpulses = listenForIR();
|
||||
|
||||
Serial.print("Heard ");
|
||||
Serial.print(numberpulses);
|
||||
Serial.println("-pulse long IR signal");
|
||||
if (IRcompare(numberpulses, ApplePlaySignal,sizeof(ApplePlaySignal)/4)) {
|
||||
Serial.println("PLAY");
|
||||
}
|
||||
if (IRcompare(numberpulses, AppleRewindSignal,sizeof(AppleRewindSignal)/4)) {
|
||||
Serial.println("REWIND");
|
||||
}
|
||||
if (IRcompare(numberpulses, AppleForwardSignal,sizeof(AppleForwardSignal)/4)) {
|
||||
Serial.println("FORWARD");
|
||||
}
|
||||
delay(500);
|
||||
}
|
||||
|
||||
//KGO: added size of compare sample. Only compare the minimum of the two
|
||||
boolean IRcompare(int numpulses, int Signal[], int refsize) {
|
||||
int count = min(numpulses,refsize);
|
||||
Serial.print("count set to: ");
|
||||
Serial.println(count);
|
||||
for (int i=0; i< count-1; i++) {
|
||||
int oncode = pulses[i][1] * RESOLUTION / 10;
|
||||
int offcode = pulses[i+1][0] * RESOLUTION / 10;
|
||||
|
||||
#ifdef DEBUG
|
||||
Serial.print(oncode); // the ON signal we heard
|
||||
Serial.print(" - ");
|
||||
Serial.print(Signal[i*2 + 0]); // the ON signal we want
|
||||
#endif
|
||||
|
||||
// check to make sure the error is less than FUZZINESS percent
|
||||
if ( abs(oncode - Signal[i*2 + 0]) <= (Signal[i*2 + 0] * FUZZINESS / 100)) {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (ok)");
|
||||
#endif
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (x)");
|
||||
#endif
|
||||
// we didn't match perfectly, return a false match
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
Serial.print(" \t"); // tab
|
||||
Serial.print(offcode); // the OFF signal we heard
|
||||
Serial.print(" - ");
|
||||
Serial.print(Signal[i*2 + 1]); // the OFF signal we want
|
||||
#endif
|
||||
|
||||
if ( abs(offcode - Signal[i*2 + 1]) <= (Signal[i*2 + 1] * FUZZINESS / 100)) {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (ok)");
|
||||
#endif
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
Serial.print(" (x)");
|
||||
#endif
|
||||
// we didn't match perfectly, return a false match
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
Serial.println();
|
||||
#endif
|
||||
}
|
||||
// Everything matched!
|
||||
return true;
|
||||
}
|
||||
|
||||
int listenForIR(void) {
|
||||
currentpulse = 0;
|
||||
|
||||
while (1) {
|
||||
uint16_t highpulse, lowpulse; // temporary storage timing
|
||||
highpulse = lowpulse = 0; // start out with no pulse length
|
||||
|
||||
// while (digitalRead(IRpin)) { // this is too slow!
|
||||
while (IRpin_PIN & (1 << IRpin)) {
|
||||
// pin is still HIGH
|
||||
|
||||
// count off another few microseconds
|
||||
highpulse++;
|
||||
delayMicroseconds(RESOLUTION);
|
||||
|
||||
// If the pulse is too long, we 'timed out' - either nothing
|
||||
// was received or the code is finished, so print what
|
||||
// we've grabbed so far, and then reset
|
||||
|
||||
// KGO: Added check for end of receive buffer
|
||||
if (((highpulse >= MAXPULSE) && (currentpulse != 0))|| currentpulse == NUMPULSES) {
|
||||
return currentpulse;
|
||||
}
|
||||
}
|
||||
// we didn't time out so lets stash the reading
|
||||
pulses[currentpulse][0] = highpulse;
|
||||
|
||||
// same as above
|
||||
while (! (IRpin_PIN & _BV(IRpin))) {
|
||||
// pin is still LOW
|
||||
lowpulse++;
|
||||
delayMicroseconds(RESOLUTION);
|
||||
// KGO: Added check for end of receive buffer
|
||||
if (((lowpulse >= MAXPULSE) && (currentpulse != 0))|| currentpulse == NUMPULSES) {
|
||||
return currentpulse;
|
||||
}
|
||||
}
|
||||
pulses[currentpulse][1] = lowpulse;
|
||||
|
||||
// we read one high-low pulse successfully, continue!
|
||||
currentpulse++;
|
||||
}
|
||||
}
|
||||
void printpulses(void) {
|
||||
Serial.println("\n\r\n\rReceived: \n\rOFF \tON");
|
||||
for (uint8_t i = 0; i < currentpulse; i++) {
|
||||
Serial.print(pulses[i][0] * RESOLUTION, DEC);
|
||||
Serial.print(" usec, ");
|
||||
Serial.print(pulses[i][1] * RESOLUTION, DEC);
|
||||
Serial.println(" usec");
|
||||
}
|
||||
|
||||
// print it in a 'array' format
|
||||
Serial.println("int IRsignal[] = {");
|
||||
Serial.println("// ON, OFF (in 10's of microseconds)");
|
||||
for (uint8_t i = 0; i < currentpulse-1; i++) {
|
||||
Serial.print("\t"); // tab
|
||||
Serial.print(pulses[i][1] * RESOLUTION / 10, DEC);
|
||||
Serial.print(", ");
|
||||
Serial.print(pulses[i+1][0] * RESOLUTION / 10, DEC);
|
||||
Serial.println(",");
|
||||
}
|
||||
Serial.print("\t"); // tab
|
||||
Serial.print(pulses[currentpulse-1][1] * RESOLUTION / 10, DEC);
|
||||
Serial.print(", 0};");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/******************* our codes ************/
|
||||
|
||||
int ApplePlaySignal[] = {
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// This sketch will send out a Nikon D50 trigger signal (probably works with most Nikons)
|
||||
// See the full tutorial at https://learn.adafruit.com/ir-sensor/making-an-intervalometer
|
||||
// MIT License, attribution appreciated Limor Fried, Adafruit Industries
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: Anne Barela for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/* Raw IR decoder sketch!
|
||||
|
||||
This sketch/program uses the Arduno and a PNA4602 to
|
||||
|
|
@ -6,8 +10,7 @@
|
|||
or transmitter (by pulsing an IR LED at ~38KHz for the
|
||||
durations detected
|
||||
|
||||
Code is public domain, check out www.ladyada.net and adafruit.com
|
||||
for more tutorials!
|
||||
Check out www.ladyada.net and adafruit.com for more tutorials!
|
||||
*/
|
||||
|
||||
// We need to use the 'raw' pin reading methods
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import board
|
||||
import pulseio
|
||||
import adafruit_irremote
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Anne Barela for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""
|
||||
Scramblepad - a random scramble keypad simulation for Adafruit MACROPAD.
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2020 John Park for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# MagTag Showtimes Event Viewer
|
||||
# Uses the events.json file to display next or current event
|
||||
# Be sure to put WiFi access point info in secrets.py file to connect
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2021 Kattni Rembor for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
"""NeoKey Trinkey Capacitive Touch Example"""
|
||||
import time
|
||||
import board
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2017 Mikey Sklar for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
|
||||
#define PIN 1
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
from rainbowio import colorwheel
|
||||
import board
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2019 Phillip Burgess for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// OOZE MASTER 3000: NeoPixel simulated liquid physics. Up to 7 NeoPixel
|
||||
// strands dribble light, while an 8th strand "catches the drips."
|
||||
// Designed for the Adafruit Feather M0 or M4 with matching version of
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: 2019 Anne Barela for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/* EXAMPLE
|
||||
$PSRF103,<msg>,<mode>,<rate>,<cksumEnable>*CKSUM<CR><LF>
|
||||
<msg> 00=GGA,01=GLL,02=GSA,03=GSV,04=RMC,05=VTG
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
// SPDX-FileCopyrightText: Bill Greiman for Adafruit Industries
|
||||
//
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
// Ladyada's logger modified by Bill Greiman to use the SdFat library
|
||||
|
||||
// this is a generic logger that does checksum testing so the data written should be always good
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2018 John Edgar Park for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import board
|
||||
from adafruit_slideshow import SlideShow, PlayBackDirection
|
||||
import audioio
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2018 Anne Barela for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
from adafruit_crickit import crickit
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# SPDX-FileCopyrightText: 2019 Carter Nelson for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
import time
|
||||
import random
|
||||
import displayio
|
||||
|
|
|
|||
Loading…
Reference in a new issue