NerfUS mobile node that manages a target for the Nerf gun firing range
Dependencies: LedController mbed-rtos mbed NerfUSXbee Servomotor TargetManager
Fork of NerfUS by
Diff: main.cpp
- Revision:
- 46:853966aab733
- Parent:
- 40:1f0a5e5f24f6
- Child:
- 49:4475f0760594
--- a/main.cpp Mon Apr 10 17:36:16 2017 +0000 +++ b/main.cpp Tue Apr 11 03:49:04 2017 +0000 @@ -7,7 +7,9 @@ #include "RealXbeeTransmitter.hpp" #include "RealXbeeReceiver.hpp" #include "Target.hpp" +#include "Calibrator.hpp" #include "Bumper.hpp" +#include "TargetHitCalibrateCallback.hpp" #include "TargetHitCallback.hpp" #include "TargetMissedCallback.hpp" #include "NerfusTicker.hpp" @@ -23,7 +25,7 @@ } int main() -{ +{ //Transmitter RealXbeeTransmitter xbee_transmitter; xbee_transmitter.init(); @@ -31,6 +33,7 @@ //Target 0 RealPwmOut servo_pwm_out_0(p21); Servomotor servomotor_0(servo_pwm_out_0); + servomotor_0.set_angle(25); RealDigitalOut ally_leds_0(p5); RealDigitalOut ennemy_leds_0(p6); @@ -42,6 +45,7 @@ //Target 1 RealPwmOut servo_pwm_out_1(p22); Servomotor servomotor_1(servo_pwm_out_1); + servomotor_1.set_angle(25); RealDigitalOut ally_leds_1(p9); RealDigitalOut ennemy_leds_1(p10); @@ -50,6 +54,30 @@ Target target_1(servomotor_1, ally_leds_controller_1, ennemy_leds_controller_1, xbee_transmitter, 1); + wait_ms(250); + + //Bumpers + PinName bumper_0_pin = p11; + PinName bumper_1_pin = p12; + Bumper bumper_0(bumper_0_pin, NULL); + Bumper bumper_1(bumper_1_pin, NULL); + + //Servomotor calibration + Calibrator calibrator_0(servomotor_0); + Calibrator calibrator_1(servomotor_1); + TargetHitCalibrateCallback target_hit_calibrate_callback_0(calibrator_0); + TargetHitCalibrateCallback target_hit_calibrate_callback_1(calibrator_1); + + bumper_0.set_callbacks(&target_hit_calibrate_callback_0); + calibrator_0.calibrate(); + servomotor_0.set_position_down(); + printf("Servomotor 0 calibrated\r\n"); + + bumper_1.set_callbacks(&target_hit_calibrate_callback_1); + calibrator_1.calibrate(); + servomotor_1.set_position_down(); + printf("Servomotor 1 calibrated\r\n"); + //Target Manager vector<TargetInterface*> targets; targets.push_back(&target_0); @@ -70,14 +98,12 @@ target_timeout_ticker_1.init(&target_missed_callback_1); //Bumper 1 - PinName bumper_0_pin = p11; TargetHitCallback target_hit_callback_0(target_manager, 0); - Bumper bumper_0(bumper_0_pin, target_hit_callback_0); + bumper_0.set_callbacks(&target_hit_callback_0); //Bumper 2 - PinName bumper_1_pin = p12; TargetHitCallback target_hit_callback_1(target_manager, 1); - Bumper bumper_1(bumper_1_pin, target_hit_callback_1); + bumper_1.set_callbacks(&target_hit_callback_1); //Receiver target_manager_pointer = &target_manager;