diff --git a/.gitignore b/.gitignore index e303e2c0..bc22f7b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,27 @@ -# Compiled Object files -*.o -*.obj - -# Executables -*.bin -*.elf - -# PROS -bin/ -.vscode/ -.cache/ -compile_commands.json -temp.log -temp.errors -*.ini -.d/ \ No newline at end of file +# Compiled Object files +*.o +*.obj + +# Executables +*.bin +*.elf + +# PROS +bin/ +.vscode/ +.lapce/ +.cache/ +compile_commands.json +temp.log +temp.errors +*.ini +firmware/ +.d/ + +# Vale +!.vale.ini +vale-styles +styles/ + +# Doxygen +html/ \ No newline at end of file diff --git a/include/globals.h b/include/globals.h index 5f190392..49b768e0 100644 --- a/include/globals.h +++ b/include/globals.h @@ -2,6 +2,7 @@ #include "api.h" #include "lemlib/api.hpp" +#include "pros/adi.hpp" #include "pros/vision.hpp" // The following files are imported in order to provide type definitions into @@ -70,6 +71,9 @@ extern pros::vision_signature_s_t BLUE_DARK_SIG; extern pros::Rotation lateral_sensor; extern pros::Rotation horizontal_sensor; + +extern pros::Distance distance_sensor; + // forward/backward PID extern lemlib::ControllerSettings lateral_controller; @@ -88,6 +92,7 @@ extern lemlib::ExpoDriveCurve steer_curve; extern pros::adi::DigitalIn drivetrainToggleSwitch; extern pros::adi::DigitalIn autonToggleSwitch; +extern pros::adi::DigitalIn hookSwitch; extern pros::adi::Pneumatics LatchControl; extern pros::adi::Pneumatics HangControl; diff --git a/include/robot/intake.h b/include/robot/intake.h index 3ee3acb9..b6c02aa0 100644 --- a/include/robot/intake.h +++ b/include/robot/intake.h @@ -17,7 +17,7 @@ class Intake { /** * @brief Checks whether the intake should stop to skip the ring depending on color. - * It is the embodiment of vision sensor usage in this codebase. + * It's the embodiment of vision sensor usage in this codebase. */ void checkStop(); @@ -35,5 +35,13 @@ class Intake { * @brief blue is false, red is true. */ bool alliance_color; + + /** + * @brief Runs the hook subsystem. + * This function checks if a ring is present near the hook using a limit + * switch before activating it for one revolution. + */ + + void spinHook(); }; } // namespace Robot \ No newline at end of file diff --git a/project.pros b/project.pros index c4639a47..bfd6651e 100755 --- a/project.pros +++ b/project.pros @@ -1,7 +1,48 @@ { - "py/object": "pros.conductor.project.Project", - "py/state": { - "project_name": "1516X", + "py/object": "pros.conductor.project.Project", + "py/state": { + "project_name": "1516X", + "target": "v5", + "templates": { + "LemLib": { + "location": "/home/aswath/.config/pros/templates/LemLib@0.5.4", + "metadata": { + "origin": "LemLib" + }, + "name": "LemLib", + "py/object": "pros.conductor.templates.local_template.LocalTemplate", + "supported_kernels": "^4.1.0", + "system_files": [ + "include\\lemlib\\chassis\\trackingWheel.hpp", + "include\\lemlib\\pid.hpp", + "include\\lemlib\\api.hpp", + "include\\lemlib\\asset.hpp", + "include\\lemlib\\logger\\stdout.hpp", + "firmware\\hot-cold-asset.mk", + "include\\fmt\\LICENSE", + "include\\lemlib\\chassis\\odom.hpp", + "include\\fmt\\args.h", + "include\\lemlib\\README.md", + "include\\lemlib\\logger\\telemetrySink.hpp", + "include\\lemlib\\VERSION", + "include\\lemlib\\logger\\buffer.hpp", + "firmware\\LemLib.a", + "include\\lemlib\\util.hpp", + "include\\fmt\\format.h", + "include\\fmt\\core.h", + "include\\fmt\\format-inl.h", + "include\\lemlib\\LICENSE", + "include\\lemlib\\timer.hpp", + "include\\lemlib\\logger\\message.hpp", + "include\\lemlib\\logger\\logger.hpp", + "static\\example.txt", + "include\\lemlib\\driveCurve.hpp", + "include\\lemlib\\exitcondition.hpp", + "include\\lemlib\\logger\\infoSink.hpp", + "include\\lemlib\\logger\\baseSink.hpp", + "include\\lemlib\\pose.hpp", + "include\\lemlib\\chassis\\chassis.hpp" + ], "target": "v5", "templates": { "LemLib": { @@ -439,12 +480,394 @@ "version": "4.8.0" } }, - "upload_options": { - "after": "none", - "description": "High Stakes", - "icon": "X", - "slot": 1 + "name": "kernel", + "py/object": "pros.conductor.templates.local_template.LocalTemplate", + "supported_kernels": null, + "system_files": [ + "include\\pros\\rtos.hpp", + "firmware\\libpros.a", + "include\\pros\\imu.hpp", + "common.mk", + "include\\pros\\rotation.hpp", + "include\\pros\\abstract_motor.hpp", + "include\\pros\\serial.h", + "include\\pros\\vision.hpp", + "include\\pros\\colors.h", + "include\\pros\\colors.hpp", + "include\\pros\\device.hpp", + "include\\pros\\misc.h", + "include\\api.h", + "include\\pros\\link.h", + "firmware\\v5-hot.ld", + "include\\pros\\distance.h", + "firmware\\v5-common.ld", + "include\\pros\\imu.h", + "include\\pros\\motor_group.hpp", + "include\\pros\\vision.h", + "include\\pros\\misc.hpp", + "include\\pros\\adi.h", + "include\\pros\\screen.h", + "include\\pros\\motors.h", + "include\\pros\\llemu.h", + "include\\pros\\adi.hpp", + "include\\pros\\device.h", + "include\\pros\\motors.hpp", + "include\\pros\\serial.hpp", + "include\\pros\\ext_adi.h", + "include\\pros\\apix.h", + "include\\pros\\rtos.h", + "include\\pros\\rotation.h", + "include\\pros\\llemu.hpp", + "firmware\\libc.a", + "firmware\\v5.ld", + "include\\pros\\gps.h", + "include\\pros\\optical.hpp", + "include\\pros\\gps.hpp", + "firmware\\libm.a", + "include\\pros\\distance.hpp", + "include\\pros\\link.hpp", + "include\\pros\\optical.h", + "include\\pros\\screen.hpp", + "include\\pros\\error.h" + ], + "target": "v5", + "user_files": [ + "src\\main.c", + "include\\main.hh", + "Makefile", + "include\\main.h", + ".gitignore", + "src\\main.cc", + "include\\main.hpp", + "src\\main.cpp" + ], + "version": "4.1.0" + }, + "liblvgl": { + "location": "/home/liveuser/.config/pros/templates/liblvgl@8.3.8", + "metadata": { + "origin": "kernel-early-access-mainline" }, - "use_early_access": false - } + "name": "liblvgl", + "py/object": "pros.conductor.templates.local_template.LocalTemplate", + "supported_kernels": ">=4.0.0", + "system_files": [ + "include\\liblvgl\\extra\\others\\gridnav\\lv_gridnav.h", + "include\\liblvgl\\font\\lv_font_loader.h", + "include\\liblvgl\\misc\\lv_txt_ap.h", + "include\\liblvgl\\core\\lv_indev_scroll.h", + "include\\liblvgl\\misc\\lv_types.h", + "include\\liblvgl\\draw\\lv_img_decoder.h", + "include\\liblvgl\\extra\\libs\\freetype\\lv_freetype.h", + "include\\liblvgl\\extra\\widgets\\led\\lv_led.h", + "include\\liblvgl\\widgets\\lv_bar.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_rect.h", + "include\\liblvgl\\draw\\nxp\\vglite\\lv_draw_vglite_blend.h", + "include\\liblvgl\\extra\\libs\\png\\lv_png.h", + "include\\liblvgl\\misc\\lv_printf.h", + "include\\liblvgl\\extra\\themes\\lv_themes.h", + "include\\liblvgl\\draw\\lv_draw_transform.h", + "include\\liblvgl\\lv_conf_checker.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_priv.h", + "include\\liblvgl\\extra\\themes\\basic\\lv_theme_basic.h", + "include\\liblvgl\\extra\\widgets\\msgbox\\lv_msgbox.h", + "include\\liblvgl\\extra\\libs\\bmp\\lv_bmp.h", + "include\\liblvgl\\extra\\widgets\\span\\lv_span.h", + "include\\liblvgl\\misc\\lv_fs.h", + "include\\liblvgl\\misc\\lv_lru.h", + "include\\liblvgl\\core\\lv_obj_style.h", + "include\\liblvgl\\extra\\libs\\qrcode\\lv_qrcode.h", + "include\\liblvgl\\core\\lv_obj_class.h", + "include\\liblvgl\\lv_conf_internal.h", + "include\\liblvgl\\lv_conf.h", + "include\\liblvgl\\extra\\widgets\\lv_widgets.h", + "include\\liblvgl\\core\\lv_refr.h", + "include\\liblvgl\\extra\\widgets\\imgbtn\\lv_imgbtn.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_stack_blur.h", + "include\\liblvgl\\lvgl.h", + "include\\liblvgl\\misc\\lv_anim_timeline.h", + "include\\liblvgl\\extra\\widgets\\spinner\\lv_spinner.h", + "include\\liblvgl\\extra\\widgets\\animimg\\lv_animimg.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_texture_cache.h", + "include\\liblvgl\\extra\\libs\\fsdrv\\lv_fsdrv.h", + "include\\liblvgl\\draw\\nxp\\pxp\\lv_gpu_nxp_pxp.h", + "include\\liblvgl\\extra\\others\\fragment\\lv_fragment.h", + "include\\liblvgl\\extra\\widgets\\calendar\\lv_calendar_header_dropdown.h", + "include\\liblvgl\\draw\\lv_draw_triangle.h", + "include\\liblvgl\\lv_api_map.h", + "include\\liblvgl\\extra\\widgets\\chart\\lv_chart.h", + "include\\liblvgl\\extra\\widgets\\colorwheel\\lv_colorwheel.h", + "include\\liblvgl\\hal\\lv_hal_disp.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_img.h", + "include\\liblvgl\\extra\\widgets\\tileview\\lv_tileview.h", + "include\\liblvgl\\widgets\\lv_btnmatrix.h", + "include\\liblvgl\\core\\lv_obj_scroll.h", + "include\\liblvgl\\extra\\layouts\\grid\\lv_grid.h", + "include\\liblvgl\\misc\\lv_area.h", + "include\\liblvgl\\widgets\\lv_dropdown.h", + "include\\liblvgl\\hal\\lv_hal.h", + "include\\liblvgl\\draw\\nxp\\lv_gpu_nxp.h", + "include\\liblvgl\\extra\\others\\imgfont\\lv_imgfont.h", + "include\\liblvgl\\misc\\lv_txt.h", + "include\\liblvgl\\core\\lv_obj.h", + "include\\liblvgl\\widgets\\lv_objx_templ.h", + "include\\liblvgl\\core\\lv_group.h", + "firmware\\liblvgl.a", + "include\\liblvgl\\font\\lv_font.h", + "include\\liblvgl\\draw\\sw\\lv_draw_sw_blend.h", + "include\\liblvgl\\draw\\lv_draw_label.h", + "include\\liblvgl\\extra\\libs\\gif\\gifdec.h", + "include\\liblvgl\\lv_conf.old.h", + "include\\liblvgl\\hal\\lv_hal_tick.h", + "include\\liblvgl\\draw\\sw\\lv_draw_sw_dither.h", + "include\\liblvgl\\widgets\\lv_textarea.h", + "include\\liblvgl\\extra\\libs\\gif\\lv_gif.h", + "include\\liblvgl\\llemu.h", + "include\\liblvgl\\misc\\lv_async.h", + "include\\liblvgl\\draw\\sw\\lv_draw_sw.h", + "include\\liblvgl\\draw\\lv_draw_mask.h", + "include\\liblvgl\\widgets\\lv_img.h", + "include\\liblvgl\\extra\\widgets\\tabview\\lv_tabview.h", + "include\\liblvgl\\core\\lv_obj_style_gen.h", + "include\\liblvgl\\extra\\others\\ime\\lv_ime_pinyin.h", + "include\\liblvgl\\misc\\lv_log.h", + "include\\liblvgl\\font\\lv_symbol_def.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_utils.h", + "include\\liblvgl\\extra\\layouts\\flex\\lv_flex.h", + "include\\liblvgl\\misc\\lv_style_gen.h", + "include\\liblvgl\\extra\\libs\\sjpg\\tjpgd.h", + "include\\liblvgl\\draw\\lv_draw_rect.h", + "include\\liblvgl\\extra\\libs\\ffmpeg\\lv_ffmpeg.h", + "include\\liblvgl\\draw\\lv_draw_arc.h", + "include\\liblvgl\\misc\\lv_bidi.h", + "include\\liblvgl\\extra\\widgets\\win\\lv_win.h", + "include\\liblvgl\\draw\\lv_img_cache.h", + "include\\liblvgl\\core\\lv_obj_draw.h", + "include\\liblvgl\\extra\\others\\msg\\lv_msg.h", + "include\\liblvgl\\misc\\lv_ll.h", + "include\\liblvgl\\widgets\\lv_table.h", + "include\\liblvgl\\lv_conf_kconfig.h", + "include\\liblvgl\\draw\\lv_draw_layer.h", + "include\\liblvgl\\misc\\lv_assert.h", + "include\\liblvgl\\extra\\libs\\sjpg\\tjpgdcnf.h", + "include\\liblvgl\\widgets\\lv_checkbox.h", + "include\\liblvgl\\core\\lv_obj_tree.h", + "include\\liblvgl\\hal\\lv_hal_indev.h", + "include\\liblvgl\\widgets\\lv_label.h", + "include\\liblvgl\\misc\\lv_mem.h", + "include\\liblvgl\\widgets\\lv_btn.h", + "include\\liblvgl\\core\\lv_theme.h", + "include\\liblvgl\\font\\lv_font_fmt_txt.h", + "include\\liblvgl\\extra\\others\\snapshot\\lv_snapshot.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_layer.h", + "include\\liblvgl\\extra\\libs\\qrcode\\qrcodegen.h", + "include\\liblvgl\\draw\\sw\\lv_draw_sw_gradient.h", + "include\\liblvgl\\misc\\lv_utils.h", + "include\\liblvgl\\draw\\nxp\\pxp\\lv_draw_pxp_blend.h", + "include\\liblvgl\\misc\\lv_style.h", + "include\\liblvgl\\widgets\\lv_line.h", + "include\\liblvgl\\widgets\\lv_slider.h", + "include\\liblvgl\\extra\\widgets\\meter\\lv_meter.h", + "include\\liblvgl\\draw\\arm2d\\lv_gpu_arm2d.h", + "include\\liblvgl\\extra\\libs\\rlottie\\lv_rlottie.h", + "include\\liblvgl\\extra\\others\\lv_others.h", + "include\\liblvgl\\extra\\layouts\\lv_layouts.h", + "include\\liblvgl\\extra\\widgets\\calendar\\lv_calendar_header_arrow.h", + "include\\liblvgl\\draw\\swm341_dma2d\\lv_gpu_swm341_dma2d.h", + "include\\liblvgl\\draw\\stm32_dma2d\\lv_gpu_stm32_dma2d.h", + "include\\liblvgl\\misc\\lv_anim.h", + "include\\liblvgl\\extra\\widgets\\calendar\\lv_calendar.h", + "include\\liblvgl\\misc\\lv_templ.h", + "include\\liblvgl\\extra\\widgets\\spinbox\\lv_spinbox.h", + "include\\liblvgl\\extra\\lv_extra.h", + "include\\liblvgl\\draw\\lv_draw_img.h", + "include\\liblvgl\\draw\\lv_img_buf.h", + "include\\liblvgl\\extra\\libs\\sjpg\\lv_sjpg.h", + "include\\liblvgl\\extra\\libs\\lv_libs.h", + "include\\liblvgl\\draw\\nxp\\vglite\\lv_draw_vglite_rect.h", + "include\\liblvgl\\llemu.hpp", + "include\\liblvgl\\draw\\lv_draw.h", + "include\\liblvgl\\extra\\themes\\mono\\lv_theme_mono.h", + "include\\liblvgl\\core\\lv_event.h", + "include\\liblvgl\\widgets\\lv_canvas.h", + "include\\liblvgl\\extra\\others\\monkey\\lv_monkey.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_mask.h", + "include\\liblvgl\\draw\\nxp\\vglite\\lv_draw_vglite_arc.h", + "include\\liblvgl\\draw\\nxp\\pxp\\lv_gpu_nxp_pxp_osa.h", + "include\\liblvgl\\core\\lv_disp.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl_composite.h", + "include\\liblvgl\\widgets\\lv_switch.h", + "include\\liblvgl\\draw\\sdl\\lv_draw_sdl.h", + "include\\liblvgl\\core\\lv_indev.h", + "include\\liblvgl\\misc\\lv_timer.h", + "include\\liblvgl\\draw\\nxp\\vglite\\lv_gpu_nxp_vglite.h", + "include\\liblvgl\\extra\\widgets\\menu\\lv_menu.h", + "include\\liblvgl\\misc\\lv_math.h", + "include\\liblvgl\\misc\\lv_color.h", + "include\\liblvgl\\draw\\lv_draw_line.h", + "include\\liblvgl\\misc\\lv_gc.h", + "include\\liblvgl\\core\\lv_obj_pos.h", + "include\\liblvgl\\widgets\\lv_arc.h", + "include\\liblvgl\\extra\\themes\\default\\lv_theme_default.h", + "include\\liblvgl\\extra\\widgets\\list\\lv_list.h", + "include\\liblvgl\\widgets\\lv_roller.h", + "include\\liblvgl\\extra\\libs\\png\\lodepng.h", + "include\\liblvgl\\misc\\lv_tlsf.h", + "include\\liblvgl\\extra\\widgets\\keyboard\\lv_keyboard.h" + ], + "target": "v5", + "user_files": [], + "version": "8.3.8" + }, + "okapilib": { + "location": "C:\\Users\\Lenovo\\AppData\\Roaming\\PROS\\templates\\okapilib@4.8.0", + "metadata": { + "origin": "pros-mainline" + }, + "name": "okapilib", + "py/object": "pros.conductor.templates.local_template.LocalTemplate", + "supported_kernels": "^3.3.1", + "system_files": [ + "include/okapi/api/odometry/odomMath.hpp", + "include/okapi/squiggles/physicalmodel/physicalmodel.hpp", + "include/okapi/api/chassis/model/threeEncoderXDriveModel.hpp", + "include/okapi/api/chassis/model/hDriveModel.hpp", + "include/okapi/api/chassis/model/readOnlyChassisModel.hpp", + "include/okapi/api/device/button/buttonBase.hpp", + "include/okapi/api/units/QAngularJerk.hpp", + "include/okapi/api/control/iterative/iterativeController.hpp", + "include/okapi/api/control/controllerInput.hpp", + "include/okapi/squiggles/math/quinticpolynomial.hpp", + "include/okapi/api/device/rotarysensor/continuousRotarySensor.hpp", + "include/okapi/api/control/async/asyncPositionController.hpp", + "include/okapi/api/filter/passthroughFilter.hpp", + "include/okapi/api/device/rotarysensor/rotarySensor.hpp", + "include/okapi/api/odometry/stateMode.hpp", + "include/okapi/impl/device/controller.hpp", + "include/okapi/api/units/QTime.hpp", + "include/okapi/api/control/util/controllerRunner.hpp", + "include/okapi/api/units/QTorque.hpp", + "include/okapi/impl/device/rotarysensor/IMU.hpp", + "include/okapi/api/control/util/pidTuner.hpp", + "include/okapi/impl/util/timeUtilFactory.hpp", + "include/okapi/api/device/motor/abstractMotor.hpp", + "include/okapi/impl/device/button/controllerButton.hpp", + "include/okapi/impl/device/rotarysensor/integratedEncoder.hpp", + "include/okapi/impl/device/rotarysensor/adiEncoder.hpp", + "include/okapi/api/filter/composableFilter.hpp", + "include/okapi/api/chassis/model/xDriveModel.hpp", + "include/okapi/squiggles/geometry/pose.hpp", + "include/okapi/api/odometry/twoEncoderOdometry.hpp", + "include/okapi/api/util/timeUtil.hpp", + "firmware/squiggles.mk", + "include/okapi/api/control/async/asyncPosPidController.hpp", + "include/okapi/impl/control/util/controllerRunnerFactory.hpp", + "include/okapi/impl/chassis/controller/chassisControllerBuilder.hpp", + "include/okapi/api/control/closedLoopController.hpp", + "include/okapi/squiggles/math/utils.hpp", + "include/okapi/api/control/async/asyncVelIntegratedController.hpp", + "include/okapi/api/units/QLength.hpp", + "include/okapi/impl/device/motor/motor.hpp", + "include/okapi/api/odometry/odometry.hpp", + "include/okapi/api/units/RQuantity.hpp", + "include/okapi/api/units/QArea.hpp", + "include/okapi/api/filter/filter.hpp", + "include/okapi/api/device/button/abstractButton.hpp", + "include/okapi/api/units/QPressure.hpp", + "include/okapi/api/control/async/asyncLinearMotionProfileController.hpp", + "include/okapi/api/control/util/flywheelSimulator.hpp", + "include/okapi/api/util/logging.hpp", + "include/okapi/api/chassis/model/threeEncoderSkidSteerModel.hpp", + "include/okapi/api/filter/emaFilter.hpp", + "include/okapi/impl/device/controllerUtil.hpp", + "include/okapi/api/util/mathUtil.hpp", + "include/okapi/api/filter/averageFilter.hpp", + "include/okapi/api/control/iterative/iterativeVelocityController.hpp", + "include/okapi/api/odometry/point.hpp", + "include/okapi/api/control/async/asyncController.hpp", + "include/okapi/impl/control/async/asyncMotionProfileControllerBuilder.hpp", + "include/okapi/api/coreProsAPI.hpp", + "include/okapi/api/units/QSpeed.hpp", + "include/okapi/impl/control/util/pidTunerFactory.hpp", + "include/okapi/api/units/QAngle.hpp", + "include/okapi/api/control/async/asyncVelocityController.hpp", + "include/okapi/api/odometry/threeEncoderOdometry.hpp", + "include/okapi/api/filter/velMath.hpp", + "include/okapi/api/control/async/asyncPosIntegratedController.hpp", + "include/okapi/squiggles/constraints.hpp", + "include/okapi/api/filter/filteredControllerInput.hpp", + "include/okapi/api/chassis/controller/chassisControllerPid.hpp", + "include/okapi/api/control/iterative/iterativePositionController.hpp", + "include/okapi/api/control/offsettableControllerInput.hpp", + "include/okapi/squiggles/squiggles.hpp", + "include/okapi/api/units/QAngularSpeed.hpp", + "include/okapi/api/control/iterative/iterativePosPidController.hpp", + "include/okapi/squiggles/physicalmodel/tankmodel.hpp", + "include/okapi/impl/util/rate.hpp", + "include/okapi/api/filter/medianFilter.hpp", + "include/okapi/impl/device/rotarysensor/potentiometer.hpp", + "include/okapi/api/control/iterative/iterativeVelPidController.hpp", + "include/okapi/squiggles/geometry/profilepoint.hpp", + "include/okapi/impl/device/button/adiButton.hpp", + "include/okapi/impl/control/async/asyncVelControllerBuilder.hpp", + "include/okapi/api/filter/demaFilter.hpp", + "include/okapi/api/units/RQuantityName.hpp", + "include/okapi/api/control/util/pathfinderUtil.hpp", + "include/okapi/api/util/abstractTimer.hpp", + "include/okapi/api.hpp", + "include/okapi/impl/control/async/asyncPosControllerBuilder.hpp", + "include/okapi/api/chassis/controller/chassisScales.hpp", + "include/okapi/api/units/QMass.hpp", + "include/okapi/impl/device/rotarysensor/adiGyro.hpp", + "include/okapi/impl/util/configurableTimeUtilFactory.hpp", + "include/okapi/api/control/util/settledUtil.hpp", + "include/okapi/impl/control/iterative/iterativeControllerFactory.hpp", + "include/okapi/impl/util/timer.hpp", + "include/okapi/api/chassis/controller/defaultOdomChassisController.hpp", + "include/okapi/impl/device/motor/motorGroup.hpp", + "include/okapi/api/control/async/asyncWrapper.hpp", + "include/okapi/squiggles/io.hpp", + "include/okapi/api/filter/ekfFilter.hpp", + "include/okapi/api/control/async/asyncMotionProfileController.hpp", + "include/okapi/squiggles/geometry/controlvector.hpp", + "include/okapi/impl/device/distanceSensor.hpp", + "include/okapi/api/control/controllerOutput.hpp", + "include/okapi/api/units/QVolume.hpp", + "include/okapi/squiggles/spline.hpp", + "include/okapi/api/units/QJerk.hpp", + "include/okapi/api/chassis/controller/chassisController.hpp", + "include/okapi/squiggles/physicalmodel/passthroughmodel.hpp", + "include/okapi/api/units/QAngularAcceleration.hpp", + "include/okapi/api/chassis/controller/chassisControllerIntegrated.hpp", + "include/okapi/impl/device/adiUltrasonic.hpp", + "include/okapi/impl/device/opticalSensor.hpp", + "include/okapi/api/units/QForce.hpp", + "include/okapi/api/util/supplier.hpp", + "include/okapi/api/chassis/controller/odomChassisController.hpp", + "include/okapi/impl/filter/velMathFactory.hpp", + "include/okapi/api/control/iterative/iterativeMotorVelocityController.hpp", + "include/okapi/api/control/async/asyncVelPidController.hpp", + "include/okapi/api/odometry/odomState.hpp", + "include/okapi/api/chassis/model/chassisModel.hpp", + "include/okapi/api/units/QFrequency.hpp", + "include/okapi/impl/device/rotarysensor/rotationSensor.hpp", + "include/okapi/api/util/abstractRate.hpp", + "include/okapi/impl/device/motor/adiMotor.hpp", + "include/okapi/api/units/QAcceleration.hpp", + "include/okapi/api/chassis/model/skidSteerModel.hpp", + "firmware/okapilib.a" + ], + "target": "v5", + "user_files": [], + "version": "4.8.0" + } + }, + "upload_options": { + "after": "none", + "description": "High Stakes", + "icon": "X", + "slot": 2 + }, + "use_early_access": false + } } \ No newline at end of file diff --git a/src/globals.cpp b/src/globals.cpp index 15231969..09f106cf 100644 --- a/src/globals.cpp +++ b/src/globals.cpp @@ -1,5 +1,6 @@ #include "globals.h" #include "pros/abstract_motor.hpp" +#include "pros/adi.hpp" #include "pros/misc.hpp" #include "pros/motors.hpp" #include "pros/vision.h" @@ -34,10 +35,13 @@ pros::Motor LadyBrownMotor(3, pros::v5::MotorGears::green, pros::v5::MotorUnits: pros::adi::Pneumatics LatchControl('A', false); pros::adi::Pneumatics HangControl('B', false); +pros::adi::DigitalIn hookSwitch('C'); pros::Rotation lateral_sensor(16); pros::Rotation horizontal_sensor(-17); +pros::Distance distance_sensor(10); // placeholder port + pros::Imu inertial_sensor(14); // Vision sensor configuration diff --git a/src/subsystems/intake.cpp b/src/subsystems/intake.cpp index 3688b817..f1655129 100644 --- a/src/subsystems/intake.cpp +++ b/src/subsystems/intake.cpp @@ -2,8 +2,9 @@ #include "globals.h" -#define SLOWER_VELOCITY 200 -#define FASTER_VELOCITY 600 +constexpr int SLOWER_VELOCITY = 200; +constexpr int FASTER_VELOCITY = 600; +constexpr double ONE_ROTATION = 901.6; using namespace Robot; using namespace Robot::Globals; @@ -14,20 +15,23 @@ Intake::Intake() { } void Intake::run() { - if (controller.get_digital(pros::E_CONTROLLER_DIGITAL_R1)) { IntakeMotor.move_velocity(-FASTER_VELOCITY); - HookMotor.move_velocity(-SLOWER_VELOCITY); } else if (controller.get_digital(pros::E_CONTROLLER_DIGITAL_L1)) { IntakeMotor.move_velocity(FASTER_VELOCITY); - HookMotor.move_velocity(SLOWER_VELOCITY); + spinHook(); } else { IntakeMotor.brake(); - HookMotor.brake(); } } void Intake::toggle() { elevated = !elevated; } +void Intake::spinHook() { + if (hookSwitch.get_value() && HookMotor.get_actual_velocity() == 0) { + HookMotor.move_relative(ONE_ROTATION, -SLOWER_VELOCITY); + } +} + // Vision sensor only works with intake, therefore it should not on void Intake::checkStop() {}