summaryrefslogtreecommitdiffstats
path: root/source/Concept/Framework
diff options
context:
space:
mode:
authorsicarius <devnull@localhost>2007-02-17 14:42:00 +0100
committersicarius <devnull@localhost>2007-02-17 14:42:00 +0100
commit803027cbb45ebe01e4f8b427a7cc95728d6e5f47 (patch)
treebbb3bd0a042e75e4d01d2e13faf1fe30851eadbc /source/Concept/Framework
parent4a2ba4b7105d168932163cbd07a062fdf2ba00e9 (diff)
downloadrc2007-soccer-803027cbb45ebe01e4f8b427a7cc95728d6e5f47.tar
rc2007-soccer-803027cbb45ebe01e4f8b427a7cc95728d6e5f47.zip
+++ enhanced framework hardware interface
Diffstat (limited to 'source/Concept/Framework')
-rw-r--r--source/Concept/Framework/RoboCode.aps2
-rw-r--r--source/Concept/Framework/default/Makefile14
-rw-r--r--source/Concept/Framework/defines.h20
-rw-r--r--source/Concept/Framework/display.h135
-rw-r--r--source/Concept/Framework/engine.h2
-rw-r--r--source/Concept/Framework/keyboard.cpp1
-rw-r--r--source/Concept/Framework/keyboard.h87
-rw-r--r--source/Concept/Framework/main.cpp60
-rw-r--r--source/Concept/Framework/mouse_sensor.cpp1
-rw-r--r--source/Concept/Framework/mouse_sensor.h203
-rw-r--r--source/Concept/Framework/position_tracker.cpp7
-rw-r--r--source/Concept/Framework/position_tracker.h27
-rw-r--r--source/Concept/Framework/robot.cpp4
-rw-r--r--source/Concept/Framework/stdafx.h3
14 files changed, 555 insertions, 11 deletions
diff --git a/source/Concept/Framework/RoboCode.aps b/source/Concept/Framework/RoboCode.aps
index b759997..dc61dc5 100644
--- a/source/Concept/Framework/RoboCode.aps
+++ b/source/Concept/Framework/RoboCode.aps
@@ -1 +1 @@
-<AVRStudio><MANAGEMENT><ProjectName>RoboCode</ProjectName><Created>16-Feb-2007 15:16:46</Created><LastEdit>17-Feb-2007 01:31:58</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>16-Feb-2007 15:16:46</Created><Version>4</Version><Build>4, 12, 0, 462</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\RoboCode.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>Y:\Concept\Framework\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET></CURRENT_TARGET><CURRENT_PART></CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM></COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.cpp</SOURCEFILE><SOURCEFILE>sensor.cpp</SOURCEFILE><SOURCEFILE>tools.cpp</SOURCEFILE><SOURCEFILE>atmega128io.cpp</SOURCEFILE><SOURCEFILE>distance_sensor.cpp</SOURCEFILE><SOURCEFILE>engine.cpp</SOURCEFILE><SOURCEFILE>io_module.cpp</SOURCEFILE><SOURCEFILE>ir_sensor.cpp</SOURCEFILE><SOURCEFILE>kicker.cpp</SOURCEFILE><SOURCEFILE>led.cpp</SOURCEFILE><SOURCEFILE>robot.cpp</SOURCEFILE><SOURCEFILE>dribbler.cpp</SOURCEFILE><SOURCEFILE>display.cpp</SOURCEFILE><HEADERFILE>sensor.h</HEADERFILE><HEADERFILE>stdafx.h</HEADERFILE><HEADERFILE>tools.h</HEADERFILE><HEADERFILE>atmega128io.h</HEADERFILE><HEADERFILE>defines.h</HEADERFILE><HEADERFILE>distance_sensor.h</HEADERFILE><HEADERFILE>engine.h</HEADERFILE><HEADERFILE>io_module.h</HEADERFILE><HEADERFILE>ir_sensor.h</HEADERFILE><HEADERFILE>kicker.h</HEADERFILE><HEADERFILE>led.h</HEADERFILE><HEADERFILE>robot.h</HEADERFILE><HEADERFILE>dribbler.h</HEADERFILE><HEADERFILE>display.h</HEADERFILE><OTHERFILE>default\Makefile</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>YES</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE>default\Makefile</EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>0</LIST><MAP>0</MAP><OUTPUTFILENAME>RoboCode.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -O0 -fsigned-char</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>Y:\Concept\Framework\sensor.h</Name><Name>Y:\Concept\Framework\stdafx.h</Name><Name>Y:\Concept\Framework\tools.h</Name><Name>Y:\Concept\Framework\atmega128io.h</Name><Name>Y:\Concept\Framework\defines.h</Name><Name>Y:\Concept\Framework\distance_sensor.h</Name><Name>Y:\Concept\Framework\engine.h</Name><Name>Y:\Concept\Framework\io_module.h</Name><Name>Y:\Concept\Framework\ir_sensor.h</Name><Name>Y:\Concept\Framework\kicker.h</Name><Name>Y:\Concept\Framework\led.h</Name><Name>Y:\Concept\Framework\robot.h</Name><Name>Y:\Concept\Framework\dribbler.h</Name><Name>Y:\Concept\Framework\display.h</Name><Name>Y:\Concept\Framework\main.cpp</Name><Name>Y:\Concept\Framework\sensor.cpp</Name><Name>Y:\Concept\Framework\tools.cpp</Name><Name>Y:\Concept\Framework\atmega128io.cpp</Name><Name>Y:\Concept\Framework\distance_sensor.cpp</Name><Name>Y:\Concept\Framework\engine.cpp</Name><Name>Y:\Concept\Framework\io_module.cpp</Name><Name>Y:\Concept\Framework\ir_sensor.cpp</Name><Name>Y:\Concept\Framework\kicker.cpp</Name><Name>Y:\Concept\Framework\led.cpp</Name><Name>Y:\Concept\Framework\robot.cpp</Name><Name>Y:\Concept\Framework\dribbler.cpp</Name><Name>Y:\Concept\Framework\display.cpp</Name></Files></ProjectFiles><Files><File00000><FileId>00000</FileId><FileName>stdafx.h</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>engine.h</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>defines.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>io_module.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>robot.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>robot.cpp</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>atmega128io.h</FileName><Status>1</Status></File00006><File00007><FileId>00007</FileId><FileName>main.cpp</FileName><Status>1</Status></File00007><File00008><FileId>00008</FileId><FileName>tools.cpp</FileName><Status>1</Status></File00008><File00009><FileId>00009</FileId><FileName>tools.h</FileName><Status>1</Status></File00009><File00010><FileId>00010</FileId><FileName>distance_sensor.h</FileName><Status>1</Status></File00010><File00011><FileId>00011</FileId><FileName>ir_sensor.h</FileName><Status>1</Status></File00011><File00012><FileId>00012</FileId><FileName>kicker.h</FileName><Status>1</Status></File00012><File00013><FileId>00013</FileId><FileName>led.h</FileName><Status>1</Status></File00013><File00014><FileId>00014</FileId><FileName>sensor.h</FileName><Status>1</Status></File00014><File00015><FileId>00015</FileId><FileName>dribbler.h</FileName><Status>1</Status></File00015><File00016><FileId>00016</FileId><FileName>kicker.cpp</FileName><Status>1</Status></File00016><File00017><FileId>00017</FileId><FileName>dribbler.cpp</FileName><Status>1</Status></File00017><File00018><FileId>00018</FileId><FileName>ir_sensor.cpp</FileName><Status>1</Status></File00018><File00019><FileId>00019</FileId><FileName>io_module.cpp</FileName><Status>1</Status></File00019><File00020><FileId>00020</FileId><FileName>engine.cpp</FileName><Status>1</Status></File00020><File00021><FileId>00021</FileId><FileName>distance_sensor.cpp</FileName><Status>1</Status></File00021><File00022><FileId>00022</FileId><FileName>atmega128io.cpp</FileName><Status>1</Status></File00022><File00023><FileId>00023</FileId><FileName>led.cpp</FileName><Status>1</Status></File00023><File00024><FileId>00024</FileId><FileName>sensor.cpp</FileName><Status>1</Status></File00024><File00025><FileId>00025</FileId><FileName>display.h</FileName><Status>1</Status></File00025><File00026><FileId>00026</FileId><FileName>display.cpp</FileName><Status>1</Status></File00026></Files><Workspace><File00000><Position>299 73 1025 528</Position><LineCol>7 24</LineCol></File00000><File00001><Position>347 137 947 383</Position><LineCol>11 21</LineCol></File00001><File00002><Position>369 159 969 405</Position><LineCol>57 11</LineCol></File00002><File00003><Position>391 181 991 427</Position><LineCol>16 0</LineCol></File00003><File00004><Position>413 203 1013 449</Position><LineCol>19 38</LineCol></File00004><File00005><Position>303 93 903 339</Position><LineCol>69 15</LineCol></File00005><File00006><Position>347 137 947 383</Position><LineCol>18 37</LineCol></File00006><File00007><Position>299 72 1025 527</Position><LineCol>86 2</LineCol><State>Maximized</State></File00007><File00008><Position>391 181 991 427</Position><LineCol>2 0</LineCol></File00008><File00009><Position>413 203 1013 449</Position><LineCol>36 2</LineCol></File00009><File00010><Position>300 100 930 405</Position><LineCol>4 19</LineCol></File00010><File00011><Position>322 129 952 434</Position><LineCol>23 0</LineCol></File00011><File00012><Position>344 158 974 463</Position><LineCol>29 0</LineCol></File00012><File00013><Position>366 187 996 492</Position><LineCol>58 0</LineCol></File00013><File00014><Position>388 216 1018 521</Position><LineCol>0 0</LineCol></File00014><File00015><Position>300 100 930 405</Position><LineCol>43 0</LineCol></File00015><File00016><Position>344 158 974 463</Position><LineCol>1 0</LineCol></File00016><File00017><Position>366 187 996 492</Position><LineCol>0 0</LineCol></File00017><File00018><Position>388 216 1018 521</Position><LineCol>9 0</LineCol></File00018><File00019><Position>300 100 930 405</Position><LineCol>1 0</LineCol></File00019><File00020><Position>322 129 952 434</Position><LineCol>1 0</LineCol></File00020><File00021><Position>344 158 974 463</Position><LineCol>0 28</LineCol></File00021><File00022><Position>366 187 996 492</Position><LineCol>463 0</LineCol></File00022><File00023><Position>388 216 1018 521</Position><LineCol>1 0</LineCol></File00023><File00024><Position>300 100 930 405</Position><LineCol>0 19</LineCol></File00024><File00025><Position>303 102 933 407</Position><LineCol>26 11</LineCol></File00025><File00026><Position>347 160 977 465</Position><LineCol>0 0</LineCol></File00026></Workspace><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
+<AVRStudio><MANAGEMENT><ProjectName>RoboCode</ProjectName><Created>16-Feb-2007 15:16:46</Created><LastEdit>17-Feb-2007 14:21:10</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>16-Feb-2007 15:16:46</Created><Version>4</Version><Build>4, 12, 0, 462</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\RoboCode.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>Y:\Concept\Framework\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET></CURRENT_TARGET><CURRENT_PART></CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM></COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.cpp</SOURCEFILE><SOURCEFILE>sensor.cpp</SOURCEFILE><SOURCEFILE>tools.cpp</SOURCEFILE><SOURCEFILE>atmega128io.cpp</SOURCEFILE><SOURCEFILE>distance_sensor.cpp</SOURCEFILE><SOURCEFILE>engine.cpp</SOURCEFILE><SOURCEFILE>io_module.cpp</SOURCEFILE><SOURCEFILE>ir_sensor.cpp</SOURCEFILE><SOURCEFILE>kicker.cpp</SOURCEFILE><SOURCEFILE>led.cpp</SOURCEFILE><SOURCEFILE>robot.cpp</SOURCEFILE><SOURCEFILE>dribbler.cpp</SOURCEFILE><SOURCEFILE>display.cpp</SOURCEFILE><SOURCEFILE>mouse_sensor.cpp</SOURCEFILE><SOURCEFILE>keyboard.cpp</SOURCEFILE><SOURCEFILE>position_tracker.cpp</SOURCEFILE><HEADERFILE>sensor.h</HEADERFILE><HEADERFILE>stdafx.h</HEADERFILE><HEADERFILE>tools.h</HEADERFILE><HEADERFILE>atmega128io.h</HEADERFILE><HEADERFILE>defines.h</HEADERFILE><HEADERFILE>distance_sensor.h</HEADERFILE><HEADERFILE>engine.h</HEADERFILE><HEADERFILE>io_module.h</HEADERFILE><HEADERFILE>ir_sensor.h</HEADERFILE><HEADERFILE>kicker.h</HEADERFILE><HEADERFILE>led.h</HEADERFILE><HEADERFILE>robot.h</HEADERFILE><HEADERFILE>dribbler.h</HEADERFILE><HEADERFILE>display.h</HEADERFILE><HEADERFILE>mouse_sensor.h</HEADERFILE><HEADERFILE>keyboard.h</HEADERFILE><HEADERFILE>position_tracker.h</HEADERFILE><OTHERFILE>default\Makefile</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>YES</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE>default\Makefile</EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>0</LIST><MAP>0</MAP><OUTPUTFILENAME>RoboCode.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -O0 -fsigned-char</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\WinAVR\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\WinAVR\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>Y:\Concept\Framework\sensor.h</Name><Name>Y:\Concept\Framework\stdafx.h</Name><Name>Y:\Concept\Framework\tools.h</Name><Name>Y:\Concept\Framework\atmega128io.h</Name><Name>Y:\Concept\Framework\defines.h</Name><Name>Y:\Concept\Framework\distance_sensor.h</Name><Name>Y:\Concept\Framework\engine.h</Name><Name>Y:\Concept\Framework\io_module.h</Name><Name>Y:\Concept\Framework\ir_sensor.h</Name><Name>Y:\Concept\Framework\kicker.h</Name><Name>Y:\Concept\Framework\led.h</Name><Name>Y:\Concept\Framework\robot.h</Name><Name>Y:\Concept\Framework\dribbler.h</Name><Name>Y:\Concept\Framework\display.h</Name><Name>Y:\Concept\Framework\mouse_sensor.h</Name><Name>Y:\Concept\Framework\keyboard.h</Name><Name>Y:\Concept\Framework\main.cpp</Name><Name>Y:\Concept\Framework\sensor.cpp</Name><Name>Y:\Concept\Framework\tools.cpp</Name><Name>Y:\Concept\Framework\atmega128io.cpp</Name><Name>Y:\Concept\Framework\distance_sensor.cpp</Name><Name>Y:\Concept\Framework\engine.cpp</Name><Name>Y:\Concept\Framework\io_module.cpp</Name><Name>Y:\Concept\Framework\ir_sensor.cpp</Name><Name>Y:\Concept\Framework\kicker.cpp</Name><Name>Y:\Concept\Framework\led.cpp</Name><Name>Y:\Concept\Framework\robot.cpp</Name><Name>Y:\Concept\Framework\dribbler.cpp</Name><Name>Y:\Concept\Framework\display.cpp</Name><Name>Y:\Concept\Framework\mouse_sensor.cpp</Name><Name>Y:\Concept\Framework\keyboard.cpp</Name></Files></ProjectFiles><Files><File00000><FileId>00000</FileId><FileName>stdafx.h</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>engine.h</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>defines.h</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>io_module.h</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>robot.h</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>robot.cpp</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>atmega128io.h</FileName><Status>1</Status></File00006><File00007><FileId>00007</FileId><FileName>main.cpp</FileName><Status>1</Status></File00007><File00008><FileId>00008</FileId><FileName>tools.cpp</FileName><Status>1</Status></File00008><File00009><FileId>00009</FileId><FileName>tools.h</FileName><Status>1</Status></File00009><File00010><FileId>00010</FileId><FileName>distance_sensor.h</FileName><Status>1</Status></File00010><File00011><FileId>00011</FileId><FileName>ir_sensor.h</FileName><Status>1</Status></File00011><File00012><FileId>00012</FileId><FileName>kicker.h</FileName><Status>1</Status></File00012><File00013><FileId>00013</FileId><FileName>led.h</FileName><Status>1</Status></File00013><File00014><FileId>00014</FileId><FileName>sensor.h</FileName><Status>1</Status></File00014><File00015><FileId>00015</FileId><FileName>dribbler.h</FileName><Status>1</Status></File00015><File00016><FileId>00016</FileId><FileName>kicker.cpp</FileName><Status>1</Status></File00016><File00017><FileId>00017</FileId><FileName>dribbler.cpp</FileName><Status>1</Status></File00017><File00018><FileId>00018</FileId><FileName>ir_sensor.cpp</FileName><Status>1</Status></File00018><File00019><FileId>00019</FileId><FileName>io_module.cpp</FileName><Status>1</Status></File00019><File00020><FileId>00020</FileId><FileName>engine.cpp</FileName><Status>1</Status></File00020><File00021><FileId>00021</FileId><FileName>distance_sensor.cpp</FileName><Status>1</Status></File00021><File00022><FileId>00022</FileId><FileName>atmega128io.cpp</FileName><Status>1</Status></File00022><File00023><FileId>00023</FileId><FileName>led.cpp</FileName><Status>1</Status></File00023><File00024><FileId>00024</FileId><FileName>sensor.cpp</FileName><Status>1</Status></File00024><File00025><FileId>00025</FileId><FileName>display.h</FileName><Status>1</Status></File00025><File00026><FileId>00026</FileId><FileName>display.cpp</FileName><Status>1</Status></File00026><File00027><FileId>00027</FileId><FileName>mouse_sensor.h</FileName><Status>1</Status></File00027><File00028><FileId>00028</FileId><FileName>mouse_sensor.cpp</FileName><Status>1</Status></File00028><File00029><FileId>00029</FileId><FileName>keyboard.h</FileName><Status>1</Status></File00029><File00030><FileId>00030</FileId><FileName>keyboard.cpp</FileName><Status>1</Status></File00030><File00031><FileId>00031</FileId><FileName>position_tracker.h</FileName><Status>1</Status></File00031><File00032><FileId>00032</FileId><FileName>position_tracker.cpp</FileName><Status>1</Status></File00032></Files><Workspace><File00000><Position>299 74 1025 529</Position><LineCol>20 29</LineCol></File00000><File00001><Position>344 135 944 381</Position><LineCol>111 2</LineCol></File00001><File00002><Position>366 157 966 403</Position><LineCol>148 6</LineCol></File00002><File00003><Position>388 179 988 425</Position><LineCol>16 0</LineCol></File00003><File00004><Position>410 201 1010 447</Position><LineCol>19 0</LineCol></File00004><File00005><Position>300 91 900 337</Position><LineCol>97 44</LineCol></File00005><File00006><Position>344 135 944 381</Position><LineCol>18 0</LineCol></File00006><File00007><Position>296 70 1022 525</Position><LineCol>149 41</LineCol></File00007><File00008><Position>388 179 988 425</Position><LineCol>2 0</LineCol></File00008><File00009><Position>410 201 1010 447</Position><LineCol>32 17</LineCol></File00009><File00010><Position>297 98 927 403</Position><LineCol>19 33</LineCol></File00010><File00011><Position>319 127 949 432</Position><LineCol>57 7</LineCol></File00011><File00012><Position>341 156 971 461</Position><LineCol>29 0</LineCol></File00012><File00013><Position>363 185 993 490</Position><LineCol>58 0</LineCol></File00013><File00014><Position>385 214 1015 519</Position><LineCol>17 22</LineCol></File00014><File00015><Position>297 98 927 403</Position><LineCol>58 16</LineCol></File00015><File00016><Position>341 156 971 461</Position><LineCol>1 0</LineCol></File00016><File00017><Position>363 185 993 490</Position><LineCol>0 0</LineCol></File00017><File00018><Position>385 214 1015 519</Position><LineCol>9 0</LineCol></File00018><File00019><Position>297 98 927 403</Position><LineCol>1 0</LineCol></File00019><File00020><Position>319 127 949 432</Position><LineCol>1 0</LineCol></File00020><File00021><Position>341 156 971 461</Position><LineCol>0 0</LineCol></File00021><File00022><Position>363 185 993 490</Position><LineCol>511 0</LineCol></File00022><File00023><Position>385 214 1015 519</Position><LineCol>1 0</LineCol></File00023><File00024><Position>297 98 927 403</Position><LineCol>0 0</LineCol></File00024><File00025><Position>300 100 930 405</Position><LineCol>170 2</LineCol></File00025><File00026><Position>344 158 974 463</Position><LineCol>0 0</LineCol></File00026><File00027><Position>347 160 977 465</Position><LineCol>198 38</LineCol></File00027><File00028><Position>391 218 1021 523</Position><LineCol>1 0</LineCol></File00028><File00029><Position>303 102 933 407</Position><LineCol>34 10</LineCol></File00029><File00030><Position>347 160 977 465</Position><LineCol>1 0</LineCol></File00030><File00031><Position>299 72 1025 527</Position><LineCol>17 28</LineCol><State>Maximized</State></File00031><File00032><Position>303 102 933 407</Position><LineCol>1 0</LineCol></File00032></Workspace><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
diff --git a/source/Concept/Framework/default/Makefile b/source/Concept/Framework/default/Makefile
index 20eef5c..e8aa72d 100644
--- a/source/Concept/Framework/default/Makefile
+++ b/source/Concept/Framework/default/Makefile
@@ -34,7 +34,7 @@ HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0
## Objects that must be built in order to link
-OBJECTS = main.o sensor.o tools.o atmega128io.o distance_sensor.o engine.o io_module.o ir_sensor.o kicker.o led.o robot.o
+OBJECTS = main.o sensor.o tools.o atmega128io.o display.o keyboard.o distance_sensor.o mouse_sensor.o engine.o dribbler.o io_module.o ir_sensor.o kicker.o led.o robot.o position_tracker.o
## Objects explicitly added by the user
LINKONLYOBJECTS =
@@ -64,15 +64,27 @@ engine.o: ../engine.cpp
led.o: ../led.cpp
$(CC) $(INCLUDES) $(CFLAGS) -c $<
+display.o: ../display.cpp
+ $(CC) $(INCLUDES) $(CFLAGS) -c $<
+
+keyboard.o: ../keyboard.cpp
+ $(CC) $(INCLUDES) $(CFLAGS) -c $<
+
ir_sensor.o: ../ir_sensor.cpp
$(CC) $(INCLUDES) $(CFLAGS) -c $<
distance_sensor.o: ../distance_sensor.cpp
$(CC) $(INCLUDES) $(CFLAGS) -c $<
+mouse_sensor.o: ../mouse_sensor.cpp
+ $(CC) $(INCLUDES) $(CFLAGS) -c $<
+
kicker.o: ../kicker.cpp
$(CC) $(INCLUDES) $(CFLAGS) -c $<
+dribbler.o: ../dribbler.cpp
+ $(CC) $(INCLUDES) $(CFLAGS) -c $<
+
atmega128io.o: ../atmega128io.cpp
$(CC) $(INCLUDES) $(CFLAGS) -c $<
diff --git a/source/Concept/Framework/defines.h b/source/Concept/Framework/defines.h
index 1e25ba5..2bc59d9 100644
--- a/source/Concept/Framework/defines.h
+++ b/source/Concept/Framework/defines.h
@@ -105,6 +105,8 @@ enum IOModuleNames
IO_SENSOR_DISTANCE_90_DEG,
IO_SENSOR_DISTANCE_180_DEG,
IO_SENSOR_DISTANCE_270_DEG,
+ IO_SENSOR_MOUSE_LEFT,
+ IO_SENSOR_MOUSE_RIGHT,
IO_SENSOR_END,
@@ -124,8 +126,24 @@ enum IOModuleNames
IO_DISPLAY_END,
+ //Keyboards
+
+ IO_KEYBOARD_START = IO_DISPLAY_END,
+
+ IO_KEYBOARD_MAIN = IO_KEYBOARD_START,
+
+ IO_KEYBOARD_END,
+
+ //Position Tracker
+
+ IO_POSITION_TRACKER_START = IO_KEYBOARD_END,
+
+ IO_POSITION_TRACKER_MAIN,
+
+ IO_POSITION_TRACKER_END,
+
//General
- IO_END = IO_DISPLAY_END,
+ IO_END = IO_POSITION_TRACKER_END,
};
#endif
diff --git a/source/Concept/Framework/display.h b/source/Concept/Framework/display.h
index 8e6e0a4..df18e62 100644
--- a/source/Concept/Framework/display.h
+++ b/source/Concept/Framework/display.h
@@ -10,31 +10,74 @@ public:
{
this->parent = NULL;
this->moduleId = 0;
+ this->cursorVisible = false;
+ this->illuminationEnabled = true;
+ this->commandClear = 0;
+ this->commandReturnCursor = 0;
+ this->commandNewLine = 0;
+ this->commandSetting = 0;
+ this->settingCursorVisible = 0;
+ this->settingIllumination = 0;
+ this->settingCursorPosition = 0;
}
Display(uint32 displayId)
{
this->parent = NULL;
this->moduleId = displayId;
+ this->cursorVisible = false;
+ this->illuminationEnabled = true;
switch(displayId)
{
case IO_DISPLAY_MAIN:
+ this->commandClear = 12;
+ this->commandReturnCursor = 13;
+ this->commandNewLine = 10;
+ this->commandSetting = 27;
+ this->settingCursorVisible = 67;
+ this->settingIllumination = 76;
+ this->settingCursorPosition = 79;
msleep(500);
uart1_init(103);//9600 BAUD at 16MHz Atmel
sleep(2);
break;
default:
+ this->commandClear = 0;
+ this->commandReturnCursor = 0;
+ this->commandNewLine = 0;
+ this->commandSetting = 0;
+ this->settingCursorVisible = 0;
+ this->settingIllumination = 0;
+ this->settingCursorPosition = 0;
break;
}
}
protected:
- //Hardware
- volatile uint8* hardwarePort;
- volatile uint16* pwmSpeed;
- uint8 pinForward;
- uint8 pinReverse;
+ bool cursorVisible;
+ bool illuminationEnabled;
+ //Commands
+ uint8 commandClear;
+ uint8 commandReturnCursor;
+ uint8 commandNewLine;
+ uint8 commandSetting;
+ //Settings
+ uint8 settingCursorVisible;
+ uint8 settingIllumination;
+ uint8 settingCursorPosition;
+
+ void SendCommand(uint8 newCommand)
+ {
+ switch(moduleId)
+ {
+ case IO_DISPLAY_MAIN:
+ uart1_putc(newCommand);
+ break;
+ default:
+ break;
+ }
+ }
public:
void Print(char* newString)
@@ -55,6 +98,88 @@ public:
ltoa(newInteger, buffer, 10);
Print(buffer);
}
+
+ void Print(char* newString, uint8 xPos, uint8 yPos)
+ {
+ SetCursorPosition(xPos, yPos);
+ Print(newString);
+ }
+
+ void Print(int32 newInteger, uint8 xPos, uint8 yPos)
+ {
+ SetCursorPosition(xPos, yPos);
+ Print(newInteger);
+ }
+
+ void Clear()
+ {
+ SendCommand(commandClear);
+ }
+
+ void ReturnCursor()
+ {
+ SendCommand(commandReturnCursor);
+ }
+
+ void NewLine()
+ {
+ SendCommand(commandNewLine);
+ }
+
+ bool GetCursorVisible()
+ {
+ return cursorVisible;
+ }
+
+ void SetCursorVisible(bool newStatus)
+ {
+ cursorVisible = newStatus;
+
+ SendCommand(commandSetting);
+ SendCommand(settingCursorVisible);
+
+ if(cursorVisible)
+ {
+ SendCommand(1);
+ }
+ else
+ {
+ SendCommand(0);
+ }
+ }
+
+ bool GetLightingEnabled()
+ {
+ return illuminationEnabled;
+ }
+
+ void SetLightingEnabled(bool newStatus)
+ {
+ illuminationEnabled = newStatus;
+
+ SendCommand(commandSetting);
+ SendCommand(settingIllumination);
+
+ if(illuminationEnabled)
+ {
+ SendCommand(1);
+ }
+ else
+ {
+ SendCommand(0);
+ }
+ }
+
+ void SetCursorPosition(uint8 newX, uint8 newY)
+ {
+ if(!newX || newX > 20) return;
+ if(!newY || newY > 4) return;
+
+ SendCommand(commandSetting);
+ SendCommand(settingCursorPosition);
+ SendCommand(newX);
+ SendCommand(newY);
+ }
};
#endif
diff --git a/source/Concept/Framework/engine.h b/source/Concept/Framework/engine.h
index 0e7cf8c..8dd284e 100644
--- a/source/Concept/Framework/engine.h
+++ b/source/Concept/Framework/engine.h
@@ -103,7 +103,7 @@ public:
{
curSpeed = newSpeed;
- *pwmSpeed = abs(newSpeed / SPEED_PER_PWM);
+ *pwmSpeed = (abs((int16)(newSpeed / SPEED_PER_PWM)));
UpdateDirection();
}
diff --git a/source/Concept/Framework/keyboard.cpp b/source/Concept/Framework/keyboard.cpp
new file mode 100644
index 0000000..65fc7cf
--- /dev/null
+++ b/source/Concept/Framework/keyboard.cpp
@@ -0,0 +1 @@
+#include "keyboard.h"
diff --git a/source/Concept/Framework/keyboard.h b/source/Concept/Framework/keyboard.h
new file mode 100644
index 0000000..d984586
--- /dev/null
+++ b/source/Concept/Framework/keyboard.h
@@ -0,0 +1,87 @@
+#ifndef _KEYBOARD_H
+#define _KEYBOARD_H
+
+#include "stdafx.h"
+
+class Keyboard : public IO_Module
+{
+public:
+ Keyboard()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ this->commandSetting = 0;
+ this->settingClearBuffer = 0;
+ }
+
+ Keyboard(uint32 keyboardId)
+ {
+ this->parent = NULL;
+ this->moduleId = keyboardId;
+
+ switch(keyboardId)
+ {
+ case IO_KEYBOARD_MAIN:
+ this->commandSetting = 27;
+ this->settingClearBuffer = 123;
+ break;
+ default:
+ this->commandSetting = 0;
+ this->settingClearBuffer = 0;
+ break;
+ }
+ }
+
+protected:
+ //Commands
+ uint8 commandSetting;
+ //Settings
+ uint8 settingClearBuffer;
+
+ void SendCommand(uint8 newCommand)
+ {
+ switch(moduleId)
+ {
+ case IO_KEYBOARD_MAIN:
+ uart1_putc(newCommand);
+ break;
+ default:
+ break;
+ }
+ }
+
+public:
+ uint8 GetInput()
+ {
+ uint16 input = uart1_getc();
+
+ if(input == 0x100)//no data
+ {
+ return 0xEE;//empty
+ }
+ else if(input >= '0' && input <= '9')
+ {
+ return (uint8)(input - '0');
+ }
+ else if(input == '*')
+ {
+ return 10;
+ }
+ else if(input == '#')
+ {
+ return 11;
+ }
+ else
+ {
+ return 0xFF;//unknown
+ }
+ }
+
+ void ClearKeyBuffer()
+ {
+ SendCommand(commandSetting);
+ SendCommand(settingClearBuffer);
+ }
+};
+
+#endif
diff --git a/source/Concept/Framework/main.cpp b/source/Concept/Framework/main.cpp
index a3cd05c..f689d88 100644
--- a/source/Concept/Framework/main.cpp
+++ b/source/Concept/Framework/main.cpp
@@ -59,6 +59,14 @@ int main()
newSensor = NULL;
break;
}
+ case IO_SENSOR_MOUSE_LEFT:
+ case IO_SENSOR_MOUSE_RIGHT:
+ {
+ Mouse_Sensor* newSensor = new Mouse_Sensor(i);
+ localRobot->AddModule(newSensor);
+ newSensor = NULL;
+ break;
+ }
//Other cases
default:
{
@@ -86,9 +94,61 @@ int main()
newDisplay = NULL;
}
+ //Init Keyboards
+ for(uint8 i = IO_KEYBOARD_START; i < IO_KEYBOARD_END; i++)
+ {
+ Keyboard* newKeyboard = new Keyboard(i);
+ localRobot->AddModule(newKeyboard);
+ newKeyboard = NULL;
+ }
+
+ Keyboard* ourKeyboard = localRobot->GetModule<Keyboard>(IO_KEYBOARD_MAIN);
+ IR_Sensor* ourSensor = NULL;
+ uint16 value = 0;
+ Display* ourDisplay = localRobot->GetModule<Display>(IO_DISPLAY_MAIN);
+ uint32 i = 1;
+
//Run
while(true)
{
+ msleep(500);
+ ourDisplay->Clear();
+ ourDisplay->Print(i++);
+ ourDisplay->NewLine();
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_0_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value, 1, 2);
+ ourDisplay->Print(";");
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_30_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value);
+ ourDisplay->Print(";");
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_60_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value);
+ ourDisplay->Print(";");
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_100_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value);
+ ourDisplay->Print(";");
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_180_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value, 1, 3);
+ ourDisplay->Print(";");
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_260_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value);
+ ourDisplay->Print(";");
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_300_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value);
+ ourDisplay->Print(";");
+ ourSensor = localRobot->GetModule<IR_Sensor>(IO_SENSOR_IR_330_DEG);
+ value = ourSensor->GetIRIntensity();
+ ourDisplay->Print(value);
+ ourDisplay->Print(";");
+ ourDisplay->Print(ourKeyboard->GetInput(), 1, 4);
+
localRobot->Update();
}
diff --git a/source/Concept/Framework/mouse_sensor.cpp b/source/Concept/Framework/mouse_sensor.cpp
new file mode 100644
index 0000000..214a13e
--- /dev/null
+++ b/source/Concept/Framework/mouse_sensor.cpp
@@ -0,0 +1 @@
+#include "mouse_sensor.h"
diff --git a/source/Concept/Framework/mouse_sensor.h b/source/Concept/Framework/mouse_sensor.h
new file mode 100644
index 0000000..8247693
--- /dev/null
+++ b/source/Concept/Framework/mouse_sensor.h
@@ -0,0 +1,203 @@
+#ifndef _MOUSE_SENSOR_H
+#define _MOUSE_SENSOR_H
+
+#include "stdafx.h"
+#include "sensor.h"
+
+class Mouse_Sensor : public Sensor
+{
+public:
+ Mouse_Sensor()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ this->hardwarePort = NULL;
+ this->hardwareDDR = NULL;
+ this->hardwarePin = NULL;
+ this->pinSDA = 0;
+ this->pinSCK = 0;
+ this->registerConfig = 0;
+ this->registerPixelData = 0;
+ this->registerSqual = 0;
+ this->registerDeltaX = 0;
+ this->registerDeltaY = 0;
+ this->configReset = 0;
+ this->configAwake = 0;
+ this->newImage = false;
+ }
+
+ Mouse_Sensor(uint32 sensorId)
+ {
+ this->parent = NULL;
+ this->moduleId = sensorId;
+ this->newImage = false;
+
+ switch(sensorId)
+ {
+ case IO_SENSOR_MOUSE_LEFT:
+ this->hardwarePort = &PORTC;
+ this->hardwareDDR = &DDRC;
+ this->hardwarePin = &PINC;
+ this->pinSDA = (1 << 4);
+ this->pinSCK = (1 << 6);
+ this->registerConfig = 0x00;
+ this->registerPixelData = 0x08;
+ this->registerSqual = 0x4;
+ this->registerDeltaX = 0x3;
+ this->registerDeltaY = 0x2;
+ this->configReset = 0x80;
+ this->configAwake = 0x01;
+ break;
+ case IO_SENSOR_MOUSE_RIGHT:
+ this->hardwarePort = &PORTC;
+ this->hardwareDDR = &DDRC;
+ this->hardwarePin = &PINC;
+ this->pinSDA = (1 << 5);
+ this->pinSCK = (1 << 7);
+ this->registerConfig = 0x00;
+ this->registerPixelData = 0x08;
+ this->registerSqual = 0x4;
+ this->registerDeltaX = 0x3;
+ this->registerDeltaY = 0x2;
+ this->configReset = 0x80;
+ this->configAwake = 0x01;
+ break;
+ default:
+ this->hardwarePort = NULL;
+ this->hardwareDDR = NULL;
+ this->hardwarePin = NULL;
+ this->pinSDA = 0;
+ this->pinSCK = 0;
+ this->registerConfig = 0;
+ this->registerPixelData = 0;
+ this->registerSqual = 0;
+ this->registerDeltaX = 0;
+ this->registerDeltaY = 0;
+ this->configReset = 0;
+ this->configAwake = 0;
+ break;
+ }
+
+ msleep(100);
+
+ *hardwareDDR |= pinSCK;
+ *hardwarePort &= ~pinSCK;
+
+ msleep(10);
+
+ Write(registerConfig, configReset);
+ Write(registerConfig, configAwake);
+ }
+
+protected:
+ //Hardware
+ volatile uint8* hardwarePort;
+ volatile uint8* hardwareDDR;
+ volatile uint8* hardwarePin;
+ uint8 pinSDA;
+ uint8 pinSCK;
+ bool newImage;
+ //Registers and Settings
+ uint8 registerConfig;
+ uint8 registerPixelData;
+ uint8 registerSqual;
+ uint8 registerDeltaX;
+ uint8 registerDeltaY;
+ uint8 configReset;
+ uint8 configAwake;
+
+public:
+ void WriteByte(uint8 newByte)
+ {
+ *hardwareDDR |= pinSDA;//Set SDA output
+
+ for(uint8 i = 0; i < 8; i++)
+ {
+ *hardwarePort &= ~pinSCK;//prepare SCK
+
+ //write data
+ *hardwarePort = (*hardwarePort & (~(*hardwarePin))) |
+ ((newByte >> 7) * pinSDA);
+
+ newByte = newByte << 1;//prepare next byte
+ asm volatile("nop");
+
+ *hardwarePort |= pinSCK;
+ }
+ }
+
+ void Write(int8 adr, uint8 data)
+ {
+ WriteByte(adr | 0x80);
+ WriteByte(data);
+ usleep(100);
+ }
+
+ uint8 ReadByte()
+ {
+ uint8 data=0;
+
+ *hardwareDDR &= ~pinSDA;//Set SDA input
+
+ for(uint8 i = 0; i < 8; i++)
+ {
+ *hardwarePort &= ~pinSCK;//Prepare data
+ data = data << 1;
+
+ asm volatile("nop");
+ *hardwarePort |= pinSCK;//Prepare for reading
+
+ data |= (*hardwarePin & pinSDA) / pinSDA;
+ }
+
+ return data;
+ }
+
+ uint8 Read(uint8 adr)
+ {
+ WriteByte(adr);
+ usleep(100);
+
+ return ReadByte();
+ }
+
+ void ImagePrepare()
+ {
+ Write(registerConfig, configAwake);
+ Write(registerPixelData, 0x00);
+
+ newImage = true;
+ }
+
+ uint8 ImageRead()
+ {
+ uint8 pixel = Read(registerPixelData);
+ if(newImage)
+ {
+ while (!(pixel & 0x80))//0x80 indicates first pixel
+ {
+ pixel=Read(registerPixelData);
+ }
+ newImage = false;
+ }
+
+ return pixel;
+ }
+
+ uint8 GetSqual()
+ {
+ return Read(registerSqual);
+ }
+
+ int8 GetXMovement()
+ {
+ return (int8)(Read(registerDeltaX));
+ }
+
+ int8 GetYMovement()
+ {
+ return (int8)(Read(registerDeltaY));
+ }
+};
+
+#endif
diff --git a/source/Concept/Framework/position_tracker.cpp b/source/Concept/Framework/position_tracker.cpp
new file mode 100644
index 0000000..262069a
--- /dev/null
+++ b/source/Concept/Framework/position_tracker.cpp
@@ -0,0 +1,7 @@
+#include "position_tracker.h"
+
+//-----------------------------------------------------------------------------
+void Position_Tracker::Update()
+{
+ //insert code here
+}
diff --git a/source/Concept/Framework/position_tracker.h b/source/Concept/Framework/position_tracker.h
new file mode 100644
index 0000000..49c5d40
--- /dev/null
+++ b/source/Concept/Framework/position_tracker.h
@@ -0,0 +1,27 @@
+#ifndef _POSITION_TRACKER_H
+#define _POSITION_TRACKER_H
+
+#include "stdafx.h"
+
+class Position_Tracker : public IO_Module
+{
+public:
+ Position_Tracker()
+ {
+ this->parent = NULL;
+ this->moduleId = 0;
+ }
+
+ Position_Tracker(uint32 trackerId)
+ {
+ this->parent = NULL;
+ this->moduleId = trackerId;
+ }
+
+protected:
+
+public:
+ void Update();
+};
+
+#endif
diff --git a/source/Concept/Framework/robot.cpp b/source/Concept/Framework/robot.cpp
index a051dd4..5c673cb 100644
--- a/source/Concept/Framework/robot.cpp
+++ b/source/Concept/Framework/robot.cpp
@@ -95,8 +95,8 @@ uint16 Robot::GetADCValue(uint8 channel)
uint32 result = 0;
- //Activate ADC and set division factor to 64
- ADCSRA = (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1);
+ //Activate ADC and set division factor to 8
+ ADCSRA = (1 << ADEN) | (1 << ADPS1) | (1 << ADPS0);
//Set multiplexer channel
ADMUX = channel;
diff --git a/source/Concept/Framework/stdafx.h b/source/Concept/Framework/stdafx.h
index f48adfe..151d749 100644
--- a/source/Concept/Framework/stdafx.h
+++ b/source/Concept/Framework/stdafx.h
@@ -9,6 +9,7 @@
#include "tools.h"
#include "io_module.h"
#include "display.h"
+#include "keyboard.h"
#include "sensor.h"
#include "engine.h"
#include "dribbler.h"
@@ -16,4 +17,6 @@
#include "led.h"
#include "distance_sensor.h"
#include "ir_sensor.h"
+#include "mouse_sensor.h"
+#include "position_tracker.h"
#include "robot.h"