Commit Graph

206 Commits

Author SHA1 Message Date
54925dfc0e Snake effect now uses a neural net with a hidden layer; a bug in _is_free() that lead to lots of snakes committing suicide was fixed; neural net weights are now given as binary representation of a float to prevent rounding errors. 2019-10-18 06:40:09 +02:00
230a1f1a91 Effect snake now uses a "proper", albeit simple neural network instead of simple decisions. 2019-10-16 12:27:58 +02:00
bd0041619a Added snakenet.rb, the tool used to train the AI for snake effect. 2019-10-16 05:56:42 +02:00
a3caaa1fef Merge branch 'master' of https://git.schle.nz/fabian/pitrix
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2019-10-15 20:06:38 +02:00
ec379c009e Effect snake is now a real snake game, with apples, dying and even a more or less smart AI. 2019-10-15 20:06:19 +02:00
6eeb7488b1 Effect sinematrix now comes in additional variants with some more color palettes. 2019-10-12 23:27:49 +02:00
efa9a73cae Added switching of effects via the web interface.
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2019-10-11 17:57:00 +02:00
bbdb46c04d Twirl no longer uses a masked clock. 2019-10-11 17:56:37 +02:00
4c611da6d1 Finally, big_clock is working correctly with smoothly moving seconds and stuff. Also, the spacing of the moving seconds is now configurable. 2019-10-11 17:56:18 +02:00
377ccc477f Small changes in settings.
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2019-10-11 12:14:32 +02:00
efebe9adb4 The *matrix effects now are all derived from MatrixEffectBase class. Also, you can now set the amount of columns for these effects. 2019-10-11 06:21:32 +02:00
359b7a7826 Merge branch 'master' of https://git.schle.nz/fabian/pitrix; added new effect tv_static.
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2019-10-10 06:50:09 +02:00
b5c1f350d2 Whitespace changes.
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2019-10-10 06:47:17 +02:00
5eba691429 Extended the webinterface to list all available effects. 2019-10-10 06:45:49 +02:00
6b4f75b8bc Fixed random_matrix effect. 2019-10-10 06:43:01 +02:00
416ab46f9b Repaired font3x5_numbers_blocky: A 5 will now be shown as 5 instead of 9. m( 2019-10-09 05:59:05 +02:00
b4aa711940 Lots of settings stuff: The webinterface at /settings now lets you change the settings. Also, these changes will be saved to SPIFFS and loaded after a reboot. 2019-10-09 05:57:20 +02:00
205a0df842 Small fixes.
Some checks failed
continuous-integration/drone/push Build is failing
2019-10-04 15:58:56 +02:00
8bcee1871f Effect dvd now with subpixel rendering. 2019-10-04 15:58:24 +02:00
ef57c5ea2e Settings can now be changed:
* Via HTTP POST request to /settings, providing key=<key_to_change> and value=<new_value>.
  * Via MQTT at <MQTT_TOPIC>/settings.<key>.
2019-10-04 12:11:05 +02:00
0f1d4abe04 Settings are now properly global and can be changed. 2019-10-04 12:10:16 +02:00
2b50691067 Fixed memory leak in random_matrix and rainbow_matrix. 2019-10-04 12:08:01 +02:00
af1314632e sines effect now uses subpixel rendering. 2019-10-04 12:05:54 +02:00
2b7033b685 cycle effect now tracks the heap leakage of the running effects. Cause somewhere's a memory leak leading to restarts of the ESP every about 2 days... 2019-10-04 12:03:03 +02:00
97dd6de280 Fixes for recorder and tests. 2019-10-02 06:21:10 +02:00
54d357e6df Fixes for firework effect. 2019-10-02 06:20:39 +02:00
ac1f758b87 Fixes in blur2d effect. 2019-10-02 06:18:43 +02:00
85aee53462 More debugging output in Animation.cpp 2019-10-02 06:18:15 +02:00
f42b5e1034 Effect big_clock now show the seconds in a calmer way. Divisible-by-5 seconds are in another color. 2019-10-02 06:17:20 +02:00
083564caef Reorganized effect selection stuff: No longer a big case clause comparing CRC32. Instead an array of structs. Much nicer. Also, other code can now see which effects there are. 2019-10-02 06:16:07 +02:00
3f6d4cb0be Moved settings from preprocessor directives to variables. Also added a way to (for now only) display them via HTTP server. 2019-10-02 06:13:55 +02:00
382631d7d7 Effect#loop now gets the time since the last run of the loop in ms. This enables
the effects to show animations that stay fluid independent of the current frame rate.
2019-10-01 06:29:32 +02:00
096d13438a More effects for cycle.
All checks were successful
continuous-integration/drone/push Build is passing
2019-09-26 06:52:33 +02:00
075f434997 Small fixes and tweaks to blur2d, clock and firework.
All checks were successful
continuous-integration/drone/push Build is passing
2019-09-25 20:05:18 +02:00
c1024b3423 As noticed, this reverts big_clock to the pre-subsampling state. 2019-09-25 20:04:48 +02:00
2395e51e88 Added different rendering modes for the subpixel stuff. 2019-09-25 20:04:17 +02:00
1c1c3a8054 Kinda fixed big_clock effect, but it doesn't look nearly as cool as I'd hoped... So this commit includes the fix and the next commit will be a revert to the older, non-subsampled code, which just looked better. 2019-09-25 19:31:07 +02:00
937850c90a Better MQTT filtering.
All checks were successful
continuous-integration/drone/push Build is passing
2019-09-25 18:13:56 +02:00
b0c1bcaa65 More logging for effect changes in cycle effect. 2019-09-25 18:13:39 +02:00
7cbb156b66 Attempted to make the border of big_clock use subpixel rendering. This is still work in progress. 2019-09-25 18:13:11 +02:00
0a7334e448 Fixed big_clock 2019-09-25 18:12:34 +02:00
29aa47177e Fixed dimmed colors in subpixel rendering mode. 2019-09-25 18:12:16 +02:00
7ac681002e Added effect night_clock 2019-09-25 18:11:52 +02:00
36edb94ff0 Metrics now include the current effect's name. 2019-09-25 18:11:03 +02:00
34d5aa6496 Use more effects for cycling through! 2019-09-25 06:42:43 +02:00
781954d7f1 Added effect marquee, which will scroll a given message through the display. 2019-09-25 06:41:52 +02:00
73b8d162c7 Metrics logging now includes average time taken per frame. Also, metrics now come in a single JSON payload to /metrics. 2019-09-25 06:40:24 +02:00
62549e73bf Small fix for clock effect to work correctly with the new subpixel rendeing stuff. 2019-09-25 06:35:30 +02:00
3018bc6375 Added font5x7 and turned the letters around so they are now upside up. ;-) 2019-09-25 06:34:26 +02:00
1cd94ac4ae Effect swirl is now shown with clock. 2019-09-25 06:33:26 +02:00
b8f39410c9 Effect matrix now uses subpixel rendering for smoother movements. 2019-09-25 06:32:35 +02:00
711719921a Rewrote effect firework. Now it kinda works. 2019-09-25 06:30:03 +02:00
6ba2854a8d Effect big_dynamic will now be shown with clock. 2019-09-25 06:28:53 +02:00
aa11f5ed8a Added subpixel-rendering as well as blurring methods to Window. 2019-09-25 06:27:43 +02:00
fa5f1c8816 Added effect blur2d 2019-09-25 06:26:27 +02:00
b5c99c320b Added effect sines. 2019-09-25 06:25:16 +02:00
96e144f96b Added effect analog_clock (heavily, not-really-usable work-in-progress!). 2019-09-25 06:24:24 +02:00
792354e371 Updated recorder to only send every 2nd frame, to clear the window when selecting a new effect, doubled the resizing factor and re-enabled gifsicle. 2019-09-25 06:09:00 +02:00
549bce479a gifsicle breaks the gifs. -_-
All checks were successful
continuous-integration/drone/push Build is passing
2019-09-04 12:48:45 +02:00
1754f49b68 Better results from memory leak effect.
All checks were successful
continuous-integration/drone/push Build is passing
2019-09-04 06:07:28 +02:00
0b80b74be3 Added more effects to the cycle effect. 2019-09-04 06:06:47 +02:00
33c2417534 Added recorder to be able to stream the current LED data via network. That way you can create nice looking GIF images of the effects - and even develop effects without having to look at the actual LED panel. 2019-09-04 06:05:45 +02:00
bf1666fb32 Added font numbers3x5_blocky. 2019-09-04 06:02:16 +02:00
a05931d7f9 Made twirl effect a lot more beautiful. 2019-09-04 06:01:08 +02:00
a6cd94e416 Fixed rainbow_matrix and random_matrix. 2019-09-04 06:00:18 +02:00
2ddd77eb5c Fixed big_clock effect and made it a lot nicer with moving pixels for seconds. 2019-09-04 05:59:30 +02:00
1122546853 Fixed line and circle drawing code in Window. But it looks bad ans some form of dithering is definitely required. 2019-09-04 05:58:36 +02:00
77fdba213a I'm tired and forgot to add two files to previous commits. :-/ 2019-06-19 22:29:11 +02:00
ead076f9a3 You can now set options for effects via MQTT and HTTP. Basic syntax is: <mode>,<option1>=<value1>,<option2>=<value2>,... 2019-06-19 22:28:38 +02:00
82fbc7be43 MQTT: Small fixes. Most notably, MQTT_TOPIC/status will now contain hostname and IP of pitrix. 2019-06-19 22:27:33 +02:00
90c0df093e New Effect: BigDynamicEffect. 2019-06-19 22:26:52 +02:00
26df11fc47 Added tests. Start them by sending a message to MQTT_TOPIC/run_tests. First test will test all effects for memory leaks. 2019-06-19 22:26:38 +02:00
0163bbef6c Some memory leaks fixed. 2019-06-19 22:23:49 +02:00
d2c0268dce MatrixEffect can now have multiple columns in the same column. In RandomMatrix, they even run in all directions. 2019-06-19 22:22:03 +02:00
e897c6bdcd New Effect: DvdEffect 2019-06-19 22:17:39 +02:00
f1821b0b85 New Effect: RandomConfettiEffect 2019-06-19 22:17:10 +02:00
41af01ee0b Better handling of Animations, their members and the destructor. 2019-06-19 22:16:06 +02:00
74b967392d Cleanup.
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-18 18:18:07 +02:00
8c9e9e2e2e MQTT: Use new effect structure and logging. 2019-06-18 18:17:48 +02:00
f1424d0277 Extended http server to list files in SPIFFS and allow you to upload and delete files. 2019-06-18 18:17:20 +02:00
0941ad8349 Effects are now constructed when needed instead of having global objects of every effect flying around. 2019-06-18 18:14:59 +02:00
ae02509712 Updated .gitignore 2019-06-18 18:12:16 +02:00
3c0e7a116a Animation now uses .pia files from SPIFFS instead of hardcoded C stuff. 2019-06-18 18:10:58 +02:00
1912772da3 Effects now use Constructor and Destructor to initialize or delete their data, instead of using start() and stop(). 2019-06-18 18:09:05 +02:00
f0509de411 PixelClockEffect is now being displayed correctly. 2019-06-16 12:43:34 +02:00
e8f3ea3281 Extended MatrixEffect to also get RainbowMatrixEffect and RandomMatrixEffect.
Side note: You know you understand C++ when you understand the meaning 
and reason for "MatrixEffect** _columns". ;-)
2019-06-16 12:43:05 +02:00
3edbf6b252 Added PicelClockEffect.
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-15 14:18:35 +02:00
b65afde142 MatrixEffect now uses dynamically allocated memory. 2019-06-15 14:17:06 +02:00
02b3bbcea8 Added methods for drawing lines and circles to Window. 2019-06-15 14:16:27 +02:00
0af76f2195 gif2c: Produce nicer formatted C code.
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-14 05:36:25 +02:00
5ce3b0c1b3 Centralized the creation of a hostname to a global variable hostname, set in pitrix.cpp. Added an mDNS record for the webserver. 2019-06-14 05:35:17 +02:00
4fdd1d3739 Added animation 'cake'. 2019-06-14 05:32:55 +02:00
1e23936374 Added effect 'gol': Conway's Game of Life. 2019-06-14 05:32:17 +02:00
291a3be623 Moved platform-specific code related to WiFi and services to my_wifi.h. Also, made the HTTP server stuff compatible to ESP32.
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-13 06:01:44 +02:00
bfe46220ca Added HTTP REST API. 2019-06-12 20:57:31 +02:00
308196d185 Added fps to MQTT metrics. 2019-06-12 20:49:37 +02:00
ca980b0c9f You can now set LED_MAX_MILLIAMPS if your power supply is limited. 2019-06-12 20:48:56 +02:00
874b2c212f Small changes to some effects:
All checks were successful
continuous-integration/drone/push Build is passing
* Don't put multi-dynamic and single-dynamic right after one another, 
because that looks strange when not using random cycling between 
effects.
* Removed white from the matrix palette cause we're setting white 
explicitly from the code.
* Increased speed of single_dynamic a little.
2019-06-12 06:32:06 +02:00
477edd1597 I just learned that unintialized variables in C can lead to lots of unexpected and hard-to-debug behaviour... :-/ 2019-06-12 06:30:26 +02:00
2072877159 Handling of incoming MQTT messages improved.
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-11 19:48:42 +02:00