Skip to content

Commit df67eb6

Browse files
committed
add memento factory test
1 parent cb55f61 commit df67eb6

File tree

2 files changed

+194
-0
lines changed

2 files changed

+194
-0
lines changed

Factory_Tests/Adafruit_MEMENTO_Factory_Test/.none.test.only

Whitespace-only changes.
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
// TODO TEST IRQ
2+
3+
#include <Arduino.h>
4+
#include "Adafruit_PyCamera.h"
5+
6+
Adafruit_PyCamera pycamera;
7+
framesize_t validSizes[] = {FRAMESIZE_QQVGA, FRAMESIZE_QVGA, FRAMESIZE_HVGA, FRAMESIZE_VGA, FRAMESIZE_SVGA, FRAMESIZE_XGA, FRAMESIZE_HD, FRAMESIZE_SXGA, FRAMESIZE_UXGA, FRAMESIZE_QXGA, FRAMESIZE_QSXGA};
8+
9+
// A colection of possible ring light colors
10+
uint32_t ringlightcolors_RGBW[] = {0x00000000, 0x00FF0000, 0x00FFFF00, 0x0000FF00, 0x0000FFFF, 0x000000FF, 0x00FF00FF, 0xFF000000};
11+
uint8_t ringlight_i = 0;
12+
uint8_t ringlightBrightness = 100;
13+
14+
#define IRQ 3
15+
16+
17+
void setup() {
18+
Serial.begin(115200);
19+
// while (!Serial) yield();
20+
delay(100);
21+
22+
if (! pycamera.begin()) {
23+
Serial.println("Failed to initialize pyCamera interface");
24+
while (1) yield();
25+
}
26+
Serial.println("pyCamera hardware initialized!");
27+
28+
pinMode(IRQ, INPUT_PULLUP);
29+
attachInterrupt(IRQ, [] {
30+
Serial.println("IRQ!");
31+
}, FALLING);
32+
}
33+
34+
void loop() {
35+
static uint8_t loopn=0;
36+
pycamera.setNeopixel(pycamera.Wheel(loopn));
37+
loopn += 8;
38+
39+
pycamera.readButtons();
40+
//Serial.printf("Buttons: 0x%08X\n\r", pycamera.readButtons());
41+
42+
//pycamera.timestamp();
43+
pycamera.captureFrame();
44+
45+
// once the frame is captured we can draw ontot he framebuffer
46+
if (pycamera.justPressed(AWEXP_SD_DET)) {
47+
48+
Serial.println(F("SD Card removed"));
49+
pycamera.endSD();
50+
pycamera.fb->setCursor(0, 32);
51+
pycamera.fb->setTextSize(2);
52+
pycamera.fb->setTextColor(pycamera.color565(255, 0, 0));
53+
pycamera.fb->print(F("SD Card removed"));
54+
delay(200);
55+
}
56+
if (pycamera.justReleased(AWEXP_SD_DET)) {
57+
Serial.println(F("SD Card inserted!"));
58+
pycamera.initSD();
59+
pycamera.fb->setCursor(0, 32);
60+
pycamera.fb->setTextSize(2);
61+
pycamera.fb->setTextColor(pycamera.color565(255, 0, 0));
62+
pycamera.fb->print(F("SD Card inserted"));
63+
delay(200);
64+
}
65+
66+
float A0_voltage = analogRead(A0) / 4096.0 * 3.3;
67+
if (loopn == 0) {
68+
Serial.printf("A0 = %0.1f V, Battery = %0.1f V\n\r",
69+
A0_voltage, pycamera.readBatteryVoltage());
70+
}
71+
pycamera.fb->setCursor(0,0);
72+
pycamera.fb->setTextSize(2);
73+
pycamera.fb->setTextColor(pycamera.color565(255, 255, 255));
74+
pycamera.fb->print("A0 = "); pycamera.fb->print(A0_voltage, 1);
75+
pycamera.fb->print("V\nBattery = "); pycamera.fb->print(pycamera.readBatteryVoltage(), 1);
76+
pycamera.fb->print(" V");
77+
78+
79+
// print the camera frame size
80+
pycamera.fb->setCursor(0, 200);
81+
pycamera.fb->setTextSize(2);
82+
pycamera.fb->setTextColor(pycamera.color565(255, 255, 255));
83+
pycamera.fb->print("Size:");
84+
switch (pycamera.photoSize) {
85+
case FRAMESIZE_QQVGA:
86+
pycamera.fb->print("160x120");
87+
break;
88+
case FRAMESIZE_QVGA:
89+
pycamera.fb->print("320x240");
90+
break;
91+
case FRAMESIZE_HVGA:
92+
pycamera.fb->print("480x320");
93+
break;
94+
case FRAMESIZE_VGA:
95+
pycamera.fb->print("640x480");
96+
break;
97+
case FRAMESIZE_SVGA:
98+
pycamera.fb->print("800x600");
99+
break;
100+
case FRAMESIZE_XGA:
101+
pycamera.fb->print("1024x768");
102+
break;
103+
case FRAMESIZE_HD:
104+
pycamera.fb->print("1280x720");
105+
break;
106+
case FRAMESIZE_SXGA:
107+
pycamera.fb->print("1280x1024");
108+
break;
109+
case FRAMESIZE_UXGA:
110+
pycamera.fb->print("1600x1200");
111+
break;
112+
case FRAMESIZE_QXGA:
113+
pycamera.fb->print("2048x1536");
114+
break;
115+
case FRAMESIZE_QSXGA:
116+
pycamera.fb->print("2560x1920");
117+
break;
118+
default:
119+
pycamera.fb->print("Unknown");
120+
break;
121+
}
122+
123+
float x_ms2, y_ms2, z_ms2;
124+
if (pycamera.readAccelData(&x_ms2, &y_ms2, &z_ms2)) {
125+
//Serial.printf("X=%0.2f, Y=%0.2f, Z=%0.2f\n\r", x_ms2, y_ms2, z_ms2);
126+
pycamera.fb->setCursor(0, 220);
127+
pycamera.fb->setTextSize(2);
128+
pycamera.fb->setTextColor(pycamera.color565(255, 255, 255));
129+
pycamera.fb->print("3D: "); pycamera.fb->print(x_ms2, 1);
130+
pycamera.fb->print(", "); pycamera.fb->print(y_ms2, 1);
131+
pycamera.fb->print(", "); pycamera.fb->print(z_ms2, 1);
132+
}
133+
134+
pycamera.blitFrame();
135+
136+
if (pycamera.justPressed(AWEXP_BUTTON_UP)) {
137+
Serial.println("Up!");
138+
for (int i = 0; i < sizeof(validSizes) / sizeof(framesize_t) - 1; ++i) {
139+
if (pycamera.photoSize == validSizes[i]) {
140+
pycamera.photoSize = validSizes[i + 1];
141+
break;
142+
}
143+
}
144+
}
145+
if (pycamera.justPressed(AWEXP_BUTTON_DOWN)) {
146+
Serial.println("Down!");
147+
for (int i = sizeof(validSizes) / sizeof(framesize_t) - 1; i > 0; --i) {
148+
if (pycamera.photoSize == validSizes[i]) {
149+
pycamera.photoSize = validSizes[i - 1];
150+
break;
151+
}
152+
}
153+
}
154+
155+
if (pycamera.justPressed(AWEXP_BUTTON_RIGHT)) {
156+
pycamera.specialEffect = (pycamera.specialEffect + 1) % 7;
157+
pycamera.setSpecialEffect(pycamera.specialEffect);
158+
Serial.printf("set effect: %d\n\r", pycamera.specialEffect);
159+
}
160+
if (pycamera.justPressed(AWEXP_BUTTON_LEFT)) {
161+
pycamera.specialEffect = (pycamera.specialEffect + 6) % 7;
162+
pycamera.setSpecialEffect(pycamera.specialEffect);
163+
Serial.printf("set effect: %d\n\r", pycamera.specialEffect);
164+
}
165+
166+
if (pycamera.justPressed(AWEXP_BUTTON_OK)) {
167+
// iterate through all the ring light colors
168+
ringlight_i = (ringlight_i + 1) % (sizeof(ringlightcolors_RGBW) / sizeof(uint32_t));
169+
pycamera.setRing(ringlightcolors_RGBW[ringlight_i]);
170+
Serial.printf("set ringlight: 0x%08X\n\r", (unsigned int)ringlightcolors_RGBW[ringlight_i]);
171+
}
172+
if (pycamera.justPressed(AWEXP_BUTTON_SEL)) {
173+
// iterate through brightness levels, incrementing 25 at a time
174+
if (ringlightBrightness >= 250) ringlightBrightness = 0;
175+
else ringlightBrightness += 50;
176+
pycamera.ring.setBrightness(ringlightBrightness);
177+
pycamera.setRing(ringlightcolors_RGBW[ringlight_i]);
178+
Serial.printf("set ringlight brightness: %d\n\r", ringlightBrightness);
179+
}
180+
181+
if (pycamera.justPressed(SHUTTER_BUTTON)) {
182+
Serial.println("Snap!");
183+
if (pycamera.takePhoto("IMAGE", pycamera.photoSize)) {
184+
pycamera.fb->setCursor(120, 100);
185+
pycamera.fb->setTextSize(2);
186+
pycamera.fb->setTextColor(pycamera.color565(255, 255, 255));
187+
pycamera.fb->print("Snap!");
188+
pycamera.speaker_tone(100, 50); // tone1 - B5
189+
//pycamera.blitFrame();
190+
}
191+
}
192+
193+
delay(100);
194+
}

0 commit comments

Comments
 (0)