{"text_format":"2","workbook":"xlsx","n_sheets":7,"sheets":["Drive","Mecanum Drive","Arm","Digital Sensor","Camera","Analog Sensor","Compiled Code"],"not_rendered":{"charts":0,"images":1,"macros":0,"external_links":0,"defined_names":0,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"run_cost":"one","rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Drive","index":0,"n_rows":14,"n_cols":3,"rows_kept":14,"cut":false,"hidden":false,"merged":[]}
["Drive"]
["Task","Code","Notes"]
[]
["Pause","// pause\n    ao();\n    msleep(2000);"]
[]
["Forward","// forward\n    motor (0,100);\n    motor (3,100);\n    msleep (250);","//if using MAV\nvoid Move(int l_power,int r_power,int time)\n{mav(0,l_power);\nmav(3,r_power);\nmsleep(time);\nao();     \nsleep(100); }"]
[]
["Backward","// backward\n    motor (0,-100);\n    motor (3,-100);\n    msleep (250);"]
[]
["Turn 90 Degrees Right","// 90 degree turn right   \n    motor(0,0);\n    motor(3,100);\n    msleep (1500);"]
[]
["Turn 90 Degrees Left","// 90 degree turn Left    \n    motor(0,100);\n    motor(3,0);\n    msleep (1500);"]
[]
["Motor Position Counter","// motor position counter\n      clear_motor_position_counter(3);\n      while (get_motor_position_counter(3) < 4000)\n   {\n      motor(3,50);\n      motor (0,50);\n    }\nao();","Counts \"ticks\"-complete wheel rotation\nYour motors have approximately 1820 ticks per revolution"]

{"sheet":"Mecanum Drive","index":1,"n_rows":13,"n_cols":2,"rows_kept":13,"cut":false,"hidden":false,"merged":[]}
["backwards","//backward\n    motor(0,-100);\n    motor(1,-100);\n    motor(2,-100);\n    motor(3,-100);\n    msleep(3000);\n"]
[]
["forwards","//forward\n    motor(1,100);\n    motor(2,100);\n    motor(3,100);\n    msleep(3000);\n"]
[]
["left diagonal","//left diagonal\nvoid turn_left_90();\n\nint main()\n{\n    turn_left_90();\n    return 0;\n}\n\nvoid turn_left_90()\n{\n    cmpc(1);\n    while (gmpc(1)< 1350)\n    {\n        motor(0,0);\n        motor(1,100);\n        motor(2,0);\n        motor(3,100);\n    }\n    ao();\n}"]
[]
["left sideways","//left sideways\nint main()\n{\n    turn_left_90();\n    return 0;\n}\n\nvoid turn_left_90()\n{\n    cmpc(0);\n    while (gmpc(0)< 1350)\n    {\n        motor(0,100);\n        motor(1,-100);\n        motor(2,100);\n        motor(3,-100);\n    }\n    ao();\n}"]
[]
["right diagonal","//right diagonal\nint main()\n{\n    turn_left_90();\n    return 0;\n}\n\nvoid turn_left_90()\n{\n    cmpc(0);\n    while (gmpc(0)< 1350)\n    {\n        motor(0,100);\n        motor(1,0);\n        motor(2,100);\n        motor(3,0);\n    }\n    ao();\n}"]
[]
["right sideways","//right sideways\nint main()\n{\n    turn_left_90();\n    return 0;\n}\n\nvoid turn_left_90()\n{\n    cmpc(0);\n    while (gmpc(0)< 1350)\n    {\n        motor(0,-100);\n        motor(1,100);\n        motor(2,-100);\n        motor(3,100);\n    }\n    ao();\n}"]
[]
["Motor Position Counter (maybe)","int main()\n{\n    turn_left_90();\n    return 0;\n//mpc\n}\n\nvoid turn_left_90()\n{\n    cmpc(0);\n    while (gmpc(0)< 1350)\n    {\n        motor(0,100);\n        motor(1,-100);\n        motor(2,100);\n        motor(3,-100);\n    ao();\n    }\n     void forward()\n    {\n   cmpc (0);\n        while (gmpc(0)<2000)\n               {\n    motor(0,100);\n    motor(1,100);\n    motor(2,100);\n    motor(3,100);\n    msleep(3000);\n    ao();"]

{"sheet":"Arm","index":2,"n_rows":18,"n_cols":3,"rows_kept":18,"cut":false,"hidden":false,"merged":[]}
["Arm"]
["Task","Code","Notes"]
[]
["Turn Arm On","enable_servos();"]
[]
["Turn Arm Off","disable_servos();"]
[]
["Set Start Position","set_servo_position(0,734);"]
[]
["Rotate Up","//up\n   set_servo_position(0,724);\n   msleep(1000);"]
[]
["Rotate Down","//down\n   set_servo_position(0,1824);\n    msleep(1000);"]
[]
["Claw Open ","//open\n    set_servo_position(3,724);\n    msleep(1000);"]
[]
["Claw Closed","//close\n    set_servo_position(3,1933);\n    msleep(1000);"]
[]
["Servos Movement","void RunStart(int port,int sleep)\n{\nenable_servos();     set_servo_position(port,sleep);\nao();\nmsleep(100);  \n}"]

{"sheet":"Digital Sensor","index":3,"n_rows":6,"n_cols":3,"rows_kept":6,"cut":false,"hidden":false,"merged":[]}
["Digital Sensor"]
["Task","Code","Notes"]
[]
["Touch Sensor:\n-Lever\n-Small Touch\n-Large Touch"," //Touch Sensor\nwhile (digital (0)==0)\n    {\n    motor (0,100);\n    motor (3,100);\n    }\n    ao();\n    msleep(1000);\n    \n    while (digital(1)==0)\n    {\n    motor (0,-100);\n    motor (3,-100);\n    }\n    ao();\n    msleep(1000);","buttons"]
["wait for light code","//wait for light\n    wait_for_light (0);","//wait for light with button\nif(push_button() ==1 {wait_for_light (0);}"]
["shut down","// Shuts down all motors after 119 seconds (just less than 2 minutes).\nshut_down_in(119);"]

{"sheet":"Camera","index":4,"n_rows":12,"n_cols":3,"rows_kept":12,"cut":false,"hidden":false,"merged":[]}
["Camera"]
["Task","Code","Notes"]
["Find Objects"]
{"$rows_empty":8}
[null,null,"KIP Camera Curriculum Link\nhttps://www.kipr.org/wombat-curriculum/camera "]

{"sheet":"Analog Sensor","index":5,"n_rows":10,"n_cols":5,"rows_kept":10,"cut":false,"hidden":false,"merged":[]}
["Analog Sensor"]
["Task","Code",null,"Notes"]
[]
["ET","//measure distance\nwhile (analog (1)<=2900) \n    {\n    motor(0,50); \n    motor(3,50);\n    }\n//pause           \n     ao();\n    msleep(100);"]
[]
["IR Sensor:\nLarge/\nSmall Tophat","//Find Black\n    //move forward until black is detected\n     while (analog(1)<=1580)//stop on black\n    {\n        printf(\"start loop move forawrd\\n\");\n        motor (0,80);\n        motor (3,80);\n    }\n    //move bakward until black is no longer deteted\n    while (analog (1)>=1580)//stop on black\n        \n    {\n        printf(\"start loop move backward\\n\");\n        motor(0,-80);\n        motor(3,-80);\n    }\n    \n    printf(\"start loop stops\\n\");\n\n    //pause           \n     ao();\n    msleep(100);   ","//follow the line\n    cmpc(0);\nwhile (gmpc(0) < 40000){\n  if (analog(1)<3500){\n    motor (0,80);\n    motor (3,5);\n  }\n  else{\n    motor (0,5);\n    motor (3,80);}\n}\n  return 0;\n}","//Follow the line Race\n#include <kipr/wombat.h> #define black 3750 int main() \n{ printf(\"follow the line 23.95\\n\"); \nint right = 0; \n//3 biger then one int left = 0;\ncmpc(0);\nwhile (gmpc(0) < 20000) { if (analog(0) > black) { motor (0,25 - right);\nmotor (3,100);\nmsleep(1);\nright = right + 1;\nleft = left - 1;\nmsleep(1);\n} if (analog(0) < black) { motor(3,25 - left); motor (0,100);\nmsleep(1);\nleft = left + 1;\nright = right - 1;\nmsleep(1);\n} printf(\"left %d and right %d\\n\",left, right);\n}\nreturn 0;\n}","//Follow the line with 2 sensors\n#include <kipr/wombat.h>  int main() {     int difference=2000;\nwhile(digital(0)==0) { //while lever sensor is not pressed         \nif (analog(1)<=difference && analog(0)<=difference){ //if both tophat sensors are on white go forwards             \nmotor(0,50);             \nmotor(3,50);             \nmsleep(25);             \nprintf(\"1\\n\");         \n}         \nelse if (analog(1)<=difference) { //if tophat sensor 1 is on white, turn right             motor(0,-10);             \nmotor(3,50);             \nmsleep(25);             \nprintf(\"2\\n\");         \n}         \nelse if (analog(0)<=difference) { //if tophat sensor 0 is on white, turn left             motor(0,50);             \nmotor(3,-10);             \nmsleep(25);             \nprintf(\"3\\n\");         \n}         \nelse{ //if both sensors are on black go forwards             \nmotor(0,100);             \nmotor(3,100);             \nmsleep(25);             \nprintf(\"4\\n\");         \n}     \n}      \nreturn 0; }"]
[]
[]
[]
["Linear Slide"]

{"sheet":"Compiled Code","index":6,"n_rows":1,"n_cols":1,"rows_kept":1,"cut":false,"hidden":false,"merged":[]}
["//Code to test if all on bot is working\n\n#include <kipr/wombat.h>   void test_servo(port) {     printf(\"testing servo%d\\n\",port);     printf(\"\\tup 2 seconds\\n\");     enable_servo(port);     enable_servos();     set_servo_position(port,0);     msleep(2000);     set_servo_position(port,2047);     msleep(2000);     disable_servo(port);     disable_servos(); } void test_motor(port) {     printf(\"testing motor%d\\n\",port);      printf(\"\\tforward 2 seconds\\n\");     motor(port,100);     msleep(2000);      printf(\"\\tbackwords 2 seconds\\n\");     motor(port,-100);     msleep(2000);      ao(); } int main() {          test_motor(0);     test_motor(1);     test_motor(2);     test_motor(3);      test_servo(0);     test_servo(1);        return 0; }"]