diff --git a/examples/servo2040/servo2040_functions.cmake b/examples/servo2040/servo2040_functions.cmake deleted file mode 100644 index a563b769..00000000 --- a/examples/servo2040/servo2040_functions.cmake +++ /dev/null @@ -1,13 +0,0 @@ -set(OUTPUT_NAME servo2040_functions) -add_executable(${OUTPUT_NAME} servo2040_functions.cpp) - -target_link_libraries(${OUTPUT_NAME} - pico_stdlib - servo2040 - button - ) - -# enable usb output -pico_enable_stdio_usb(${OUTPUT_NAME} 1) - -pico_add_extra_outputs(${OUTPUT_NAME}) diff --git a/examples/servo2040/servo2040_functions.cpp b/examples/servo2040/servo2040_functions.cpp deleted file mode 100644 index 3c71173a..00000000 --- a/examples/servo2040/servo2040_functions.cpp +++ /dev/null @@ -1,114 +0,0 @@ -#include -#include -#include - -#include "pico/stdlib.h" - -#include "servo2040.hpp" - -#include "common/pimoroni_common.hpp" -#include "button.hpp" - -/* -A simple balancing game, where you use the MSA301 accelerometer to line up a band with a goal on the strip. -This can either be done using: -- Angle mode: Where position on the strip directly matches the accelerometer's angle -- Velocity mode: Where tilting the accelerometer changes the speed the band moves at -When the goal position is reached, a new position is randomly selected - -Press "A" to change the game mode. -Press "B" to start or stop the game mode. -Press "Boot" to invert the direction of the accelerometer tilt -*/ - -using namespace pimoroni; -using namespace plasma; -using namespace servo; - -// Set how many LEDs you have -const uint N_LEDS = 6; - -// The speed that the LEDs will start cycling at -const uint DEFAULT_SPEED = 10; - -// How many times the LEDs will be updated per second -const uint UPDATES = 60; - -// WS28X-style LEDs with a single signal line. AKA NeoPixel -WS2812 led_bar(N_LEDS, pio0, 0, servo2040::LED_DAT); - - -Button user_sw(servo2040::USER_SW, Polarity::ACTIVE_LOW, 0); - -Servo simple_servo(0); - -uint count = 0; -uint servo_seq = 0; -int main() { - stdio_init_all(); - - led_bar.start(UPDATES); - - sleep_ms(5000); - - //Calibration& calib = simple_servo.calibration(); - //calib.create_three_point_calibration(500, 1500, 2500, 4); - - simple_servo.init(); - - //PWMCluster pwms(pio1, 0, 0b111111111111111); - //pwms.set_wrap(20000); - //ServoCluster cluster(pio1, 0, 0b111100); - ServoCluster cluster(pio1, 0, {2, 3, 4, 5}); - cluster.init(); - - int speed = DEFAULT_SPEED; - float offset = 0.0f; - bool toggle = false; - - while(true) { - bool sw_pressed = user_sw.read(); - - if(sw_pressed) { - speed = DEFAULT_SPEED; - } - speed = std::min((int)255, std::max((int)1, speed)); - - offset += float(speed) / 2000.0f; - - for(auto i = 0u; i < led_bar.num_leds; ++i) { - float hue = float(i) / led_bar.num_leds; - led_bar.set_hsv(i, hue + offset, 1.0f, 0.5f); - } - - count++; - if(count >= 100) { - count = 0; - - //pwms.set_chan_level(servo_seq, 2000);//toggle ? 2000 : 1000); - cluster.set_pulse(servo_seq + 2, toggle ? 2000 : 1000); - //pwms.set_chan_polarity(servo_seq, toggle); - //pwms.set_chan_offset(servo_seq, toggle ? 19000 : 0); - simple_servo.set_pulse(servo_seq + 1500); - //cluster.set_pulse(0, servo_seq + 1500); - servo_seq++; - if(servo_seq >= 4) { - servo_seq = 0; - toggle = !toggle; - //pwms.set_wrap(toggle ? 30000 : 20000); - //float div = clock_get_hz(clk_sys) / (toggle ? 500000 : 5000000); - //pwms.set_clkdiv(div); - simple_servo.disable(); - } - //printf("Angle = %f, Pulse = %f, Enabled = %s\n", simple_servo.get_value(), simple_servo.get_pulse(), simple_servo.is_enabled() ? "true" : "false"); - - //pwms.load_pwm(); - } - - //pwms.update(true); - - // Sleep time controls the rate at which the LED buffer is updated - // but *not* the actual framerate at which the buffer is sent to the LEDs - sleep_ms(1000 / UPDATES); - } -}