Skip to content

Commit

Permalink
Adding octoroach specific lib
Browse files Browse the repository at this point in the history
  • Loading branch information
apullin committed Mar 26, 2012
1 parent b76a84a commit b8e9089
Show file tree
Hide file tree
Showing 34 changed files with 3,642 additions and 0 deletions.
72 changes: 72 additions & 0 deletions README.txt
@@ -0,0 +1,72 @@
Last updated 8/3/2011


This directory will contain a stable version for the code for the OctoROACH robot,
intended to provide an "out of the box" working code base.



Instructions:
-------------
To be done later.



Python:
---------
Running the OctoRoACH code will require you to install a python interpreter, as well as several libraries.

For academic applications, a bundled product by Enthought (www.enthought.com) will contain most of these libraries.
You MUST install a 32bit version. 64bit python is known to not have sufficient library support to work.

Specifically, you will need:
* pySerial
* numPy
* xbee-python

- shared.py is used as a "global" module, to elide the need for long lists of "global" keywords in other scripts.
*** IMPORTANT: Configuration of the COM port and baud rate of your Xbee/15.4 dongle is set by variables in shared.py
- callbackFunc.py contains the callback function used by the xbee-python library. It is kept in a separate file such
that any additions or changes will be synchronized across all the user's python scripts.
A dictionary of packet formats is also located in callbackFunc.py. If you are adding a command to the robot,
you must add the callback handler here, as well as the packet format.
- command.py contains the command codes for the robot.
*** Because the command set for the robot is not standardized or enforced in any way, you MUST manually synchronize
the listings in command.py and cmd.c/cmd.h if any modifications are made.



Firmware:
-----------
The firmware for the OctoRoACH robot is implemented in plain C, to be run on the dsPIC33g microcontroller on the
ImageProc2 v2.4 board.
The code has been developed and tested with the MPLAB C30 compiler, under and academic use license.
A project file for use with the MPLAB IDE is provided; code was programmed to the board with a MicroChip ICD3 tool.

The source code is in two locations:
- lib/ contains code broken into modules, aligned to specific functions of the robot. See code comments
for more information.
- octoroach/ contains the MPLAB project files
- octoroach/source/ contians the main.c, which largely just setups up the board and other modules, and cmd.c and cmd.h,
which describe the command set that the robot will repond to over the 15.4 radio.
*** Because the command set for the robot is not standardized or enforced in any way, you MUST manually synchronize
the listings in command.py and cmd.c/cmd.h if any modifications are made.

The project is delivered with a compiler directive error purposely inserted into a header file, where the radio settings
defined. It is REQUIRED that the user modifies these settings, and comments out the error directive.


There are several compile-time defines available:

__RADIO_HIGH_DATA_RATE : operates the 15.4 radio in 500Kbps mode and accordingly reduces some feedback delays. Only use this
option if you are using the Fearing Lab 802.15.4 USB dongle at 230Kbaud.
__DFMEM_8MBIT / __DFMEM_16MBIT / __DFMEM_32MBIT:
This option must correspond to the size of the AT45 serial flash chip installed on the boad. It is
required to have at least one of these options defined.


Radio:
------------
The ImageProc2 v2.4 board uses an 802.15.4 radio for communication. Operation has been tested with an XBee module and the Fearing Lab 802.15.4 USB dongle.
The user is required to review and change the radio settings before the firmware project will compile. No binaries images with pre-set
radio addresses are provided at this time.
Binary file added doc/TurnerBot Documentation.doc
Binary file not shown.
Binary file added doc/TurnerBotPythonDoc.doc
Binary file not shown.
Binary file added doc/imageproc-24-connections.pdf
Binary file not shown.
250 changes: 250 additions & 0 deletions firmware/octoroach.mcp
@@ -0,0 +1,250 @@
[HEADER]
magic_cookie={66E99B07-E706-4689-9E80-9B2582898A13}
file_version=1.0
device=dsPIC33FJ128MC706A
[PATH_INFO]
BuildDirPolicy=BuildDirIsProjectDir
dir_src=
dir_bin=
dir_tmp=.\obj
dir_sin=
dir_inc=..\lib;..\..\shared
dir_lib=C:\Program Files\Microchip\MPLAB C30\lib
dir_lkr=
[CAT_FILTERS]
filter_src=*.s;*.c
filter_inc=*.h;*.inc
filter_obj=*.o
filter_lib=*.a
filter_lkr=*.gld
[CAT_SUBFOLDERS]
subfolder_src=lib;shared
subfolder_inc=lib;shared
subfolder_obj=
subfolder_lib=
subfolder_lkr=
[FILE_SUBFOLDERS]
file_000=shared
file_001=shared
file_002=shared
file_003=shared
file_004=shared
file_005=shared
file_006=shared
file_007=shared
file_008=shared
file_009=shared
file_010=shared
file_011=shared
file_012=.
file_013=.
file_014=lib
file_015=lib
file_016=lib
file_017=lib
file_018=lib
file_019=lib
file_020=lib
file_021=lib
file_022=shared
file_023=shared
file_024=shared
file_025=lib
file_026=lib
file_027=lib
file_028=lib
file_029=lib
file_030=shared
file_031=shared
file_032=.
file_033=shared
file_034=shared
file_035=shared
file_036=shared
file_037=shared
file_038=shared
file_039=lib
file_040=lib
file_041=lib
file_042=lib
file_043=shared
file_044=lib
file_045=shared
file_046=lib
file_047=shared
file_048=shared
file_049=shared
file_050=shared
[GENERATED_FILES]
file_000=no
file_001=no
file_002=no
file_003=no
file_004=no
file_005=no
file_006=no
file_007=no
file_008=no
file_009=no
file_010=no
file_011=no
file_012=no
file_013=no
file_014=no
file_015=no
file_016=no
file_017=no
file_018=no
file_019=no
file_020=no
file_021=no
file_022=no
file_023=no
file_024=no
file_025=no
file_026=no
file_027=no
file_028=no
file_029=no
file_030=no
file_031=no
file_032=no
file_033=no
file_034=no
file_035=no
file_036=no
file_037=no
file_038=no
file_039=no
file_040=no
file_041=no
file_042=no
file_043=no
file_044=no
file_045=no
file_046=no
file_047=no
file_048=no
file_049=no
file_050=no
[OTHER_FILES]
file_000=no
file_001=no
file_002=no
file_003=no
file_004=no
file_005=no
file_006=no
file_007=no
file_008=no
file_009=no
file_010=no
file_011=no
file_012=no
file_013=no
file_014=no
file_015=no
file_016=no
file_017=no
file_018=no
file_019=no
file_020=no
file_021=no
file_022=no
file_023=no
file_024=no
file_025=no
file_026=no
file_027=no
file_028=no
file_029=no
file_030=no
file_031=no
file_032=no
file_033=no
file_034=no
file_035=no
file_036=no
file_037=no
file_038=no
file_039=no
file_040=no
file_041=no
file_042=no
file_043=no
file_044=no
file_045=no
file_046=no
file_047=no
file_048=no
file_049=no
file_050=no
[FILE_INFO]
file_000=..\..\shared\xl.c
file_001=..\..\shared\battery.c
file_002=..\..\shared\stopwatch.c
file_003=..\..\shared\packet_queue.c
file_004=..\..\shared\queue.c
file_005=..\..\shared\at86rf.c
file_006=..\..\shared\payload.c
file_007=..\..\shared\ipspi1.c
file_008=..\..\shared\radio.c
file_009=..\..\shared\payload_queue.c
file_010=..\..\shared\dfmem.c
file_011=..\..\shared\init_default.c
file_012=source\cmd.c
file_013=source\main.c
file_014=..\lib\adc_pid.c
file_015=..\lib\dfmem_extra.c
file_016=..\lib\gyro.c
file_017=..\lib\motor_ctrl.c
file_018=..\lib\move_queue.c
file_019=..\lib\pid.c
file_020=..\lib\steering.c
file_021=..\lib\traps.c
file_022=..\..\shared\delay.s
file_023=..\..\shared\xl.h
file_024=..\..\shared\utils.h
file_025=..\..\shared\stopwatch.h
file_026=..\lib\pid.h
file_027=..\lib\adc_pid.h
file_028=..\lib\motor_ctrl.h
file_029=..\lib\cmd_const.h
file_030=..\..\shared\payload.h
file_031=..\..\shared\payload_queue.h
file_032=source\cmd.h
file_033=..\..\shared\packet_queue.h
file_034=..\..\shared\queue.h
file_035=..\..\shared\at86rf.h
file_036=..\..\shared\at86rf231.h
file_037=..\..\shared\ipspi1.h
file_038=..\..\shared\radio.h
file_039=..\lib\flashmem.h
file_040=..\lib\move_queue.h
file_041=..\lib\steering.h
file_042=..\lib\dfmem_extra.h
file_043=..\..\shared\dfmem.h
file_044=..\lib\led.h
file_045=..\..\shared\init_default.h
file_046=..\lib\or_const.h
file_047=..\..\shared\battery.h
file_048=..\..\shared\generic_typedefs.h
file_049=..\..\shared\gyro.h
file_050=..\..\shared\mac_packet.h
[SUITE_INFO]
suite_guid={479DDE59-4D56-455E-855E-FFF59A3DB57E}
suite_state=
[TOOL_SETTINGS]
TS{7D9C6ECE-785D-44CB-BA22-17BF2E119622}=-g
TS{25AC22BD-2378-4FDB-BFB6-7345A15512D3}=-g -Wall -D__IMAGEPROC2 -D__DFMEM_32MBIT
TS{7DAC9A1D-4C45-45D6-B25A-D117C74E8F5A}=--heap=4096 --stack=256 -Map="$(BINDIR_)$(TARGETBASE).map" --report-mem -o"$(BINDIR_)$(TARGETBASE).$(TARGETSUFFIX)"
TS{509E5861-1E2A-483B-8B6B-CA8DB7F2DD78}=
[INSTRUMENTED_TRACE]
enable=0
transport=0
format=0
[CUSTOM_BUILD]
Pre-Build=
Pre-BuildEnabled=1
Post-Build=
Post-BuildEnabled=1
Binary file added firmware/octoroach.mcw
Binary file not shown.

0 comments on commit b8e9089

Please sign in to comment.