Differences between revisions 1 and 41 (spanning 40 versions)
Revision 1 as of 2010-01-12 14:54:25
Size: 4642
Editor: BobAdamson
Comment:
Revision 41 as of 2010-07-01 18:49:33
Size: 8712
Editor: BobAdamson
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
<<TableOfContents>>
Line 8: Line 9:
The LURC is planned to be a remote control car with all the bells and whistles. Picture a standard remote control car. The LURC (the Long-Range UCC Reconnaissance Car) is planned to be a remote control car with all the bells and whistles. Picture a standard remote control car.
Line 15: Line 16:
~+Location of source: +~
http://svn.ucc.asn.au:8080/oxinabox/LURC/ (soon to be moved to a public repo)
=== Location of source: ===
http://svn.ucc.asn.au:8080/oxinabox/LURC/
Line 20: Line 21:
[[mailto:bob@ucc|Bob Adamson]] is the leader and finance for this project. [[mailto:bob@ucc(DoT)asn(DoT)au|Bob Adamson]] is the leader and finance for this project.
Line 24: Line 25:
[[mailto:oxinabox@ucc|Lyndon 'Frames' White]] is helping with the AVR code and serial interface. <<BR>> [[mailto:oxinabox@ucc|Lyndon 'Frames' White]] is doing the AVR code and serial interface. <<BR>>
Line 28: Line 29:
Also, thanks to Mitch Kelly for his advice, even though we don't always agree on things :)
Line 32: Line 32:
What is done
----

 * Serial interface on the AVR end is done(ish)
 * <a href="
http://redneckrobots.com/BatteryTips/BatteryTips.htm">Assemble cells</a> into a 7.2V battery pack
=== What is done ===
 * [[http://redneckrobots.com/BatteryTips/BatteryTips.htm|Assemble cells]] into a 7.2V battery pack
Line 37: Line 35:
 * Set up bifferboard with debian (openWRT isn't great for our needs)
 * Get serial commands sent from a computer to control the servos
 * Chassis - we have wheels, suspension, motor (the car can drive in a straight line now)
 * Webcam connected and working
Line 38: Line 40:
What needs doing next
----
 * Order USB dongle (crazy johns claims to have cheap ones at the moment)
 * Set up SVN for the project code
 * Set up router/bifferboard with a basic operating system such as openWRT
=== What is being done ===
 * Serial interface on the AVR (over-all 90%)
  * set up framework/datastucture for storing and retrieving received commands (./)
  * framework for execution of commands, (./)
  * implement vast array of all required commands (90% done)
   *SETPWM (SETPOS) (./) - testing ongoing
   *MODIFY PWM (MOD) (not done)
   *WRITEPORT (./)
   *READPORT (not done)
   *LCD (not done)
   *ADC (not done)
  * Implement serial communication (./)
  * extended testing
  * Return Error codes over Serial (Not Done)- Every function will return an error code, functions that request informationm will reurn a number 1 or more bytes, then the error code

 * Setting up the bifferboard for webcam, serial control, etc.

=== What needs doing next ===
Line 44: Line 59:
 * Get serial commands sent from a computer to control the servos  * Rewire car to allow charging without resetting the bifferboard
 * Optimise webcam to make video smoother
 * Get 3G dongle working
 * Dynamic DNS
Line 46: Line 64:
Parts we have got
----
 * Brushless motor, 3800 Kv <a href="http://www.himodel.com/electric/3800KV_Outrunner_Brushless_Motor_for_450_Class_Helicopter_Type_H2835-H.html"> </a>
==== Frame's Plans ====
(this is a striaght copy from IRC which frames is goign to edit into a nice todo list when he can be bothered. he will also fix the spelling.
{{{#!irc

23:44 <frames> and then after that i nned to redo gen1 to gen 1.5, ad some sort of semi pseudo GUI, to show hwat;s been recieved and what has been transmitted
23:45 <frames> anyway, that's my plans for the short term of the project.
23:46 <frames> oh, and i need to set it up to take the #defiens from the make file as a parameter
23:47 <frames> then it's back to adding more functions to the AVR - readPort, and finishing of some more LURC commands, and maybe gettign RESET working
23:47 <frames> and then onwards to gen2, the excitement of running things on a desktop computer
23:50 <frames> zanchey suggested that as a communtication method, i just run ssh.exe (well it's not actually called that but you ket the poiint - the client software for ssh) inside my program and then pipe to and from it, seems liek a good ifdea to me. heh i could set up gen1.5 to outut all revieved values to stderr, then i might be able to display them sepertalty
00:04 <frames> oh., last thing: My suggested policy of what code goes on the bifferboard, what one hte avr, and what one hte desktop - anything that requires knowledge of the hardware one the Car goes on the AVR, this mean that we have secondairy functionso like Turn, webcamPamn webcam tilt- so that none has to know the range of valeus accepted for a particualr servo's PWM. setPOS etc will still be there, but new cleaner functions likeFOrward will be avaialble as well
18:24 <frames> so i'm decommisioning string2Num.cpp and it's .h and replacing with str2Value.c
18:25 <frames> the new str2value will be ale to do all the smae htigns that string2Num could do (with numbers) but will be more effiecent and will be able to deal with COMMANDS eg CMD_FORWARD
18:25 <frames> and it will have deliminators for ascii
18:26 <frames> and it will have deliminator escape charactors
18:26 <frames> and it will handle errors much better (Ie it will handle errors at all rather than throwing a message anf ternimating or just crashing and burning)
18:27 <frames> this is all going on the wiki, i'm too tired to make it neat i'll sort that out in the future too
18:27 <frames> tommorrow i'm taking alot of the day off.

}}}
== Parts and Pieces ==
=== Parts we have got ===
 * [[http://www.himodel.com/electric/3800KV_Outrunner_Brushless_Motor_for_450_Class_Helicopter_Type_H2835-H.html|Brushless motor]], 3800 Kv
Line 50: Line 88:
  * The servos have a full 180 degree range, using PWM values from 0.4ms to 2.4ms with a 20ms period. Using values outside these ranges kills kittens. For the hex values that define these values, see [[/Trimming]].
Line 53: Line 92:
 * Router board with usb and serial for central control (<a href="http://wiki.openwrt.org/oldwiki/openwrtdocs/hardware/asus/wl500gpv2">this one</a> is on order)
 * Alternatively, a <a href="http://bifferos.bizhat.com/">Bifferboard</a>, which has already arrived, could be used. This has the advantage of onboard IO.
 * Wheels, gears, axles, and other RC car parts - I just dug out the old Meccano set
 * A [[http://bifferos.bizhat.com/|Bifferboard]]. This will be used to connect to the outside world, the webcam, and the AVR Butterfly.
 * Wheels and tyres, 2.2" hubs to suit a 3/16" axle - ''f*** these were expensive'' -- BobAdamson
 * USB power adapter for the bifferboard (for testing)
 * [[http://jaycar.com.au/productView.asp?ID=QC3231&amp;CATID=20&amp;form=CAT&amp;SUBCATID=688| Webcam]], which should be sufficient to display a 640x480 image
 * [[http://en.wikipedia.org/wiki/Battery_eliminator_circuit| BEC]] and [[http://en.wikipedia.org/wiki/Electronic_speed_control|ESC]], [[http://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=7186| this one]]
 * FT232 converter (MAX232 works, but need a usb adapter for the bifferboard-gps connection anyway)
 * 4 port usb hub for the bifferboard - this will allow us to have a usb stick, a webcam, and gps connected all at the same time.
 * A buggy kit, with wheels. chassis, motor, steering assembly. (We now have extra parts!)
 * Ni-MH battery charger
 * USB to serial adapter (sparkfun, 3v version)
 * Webcam mount
 * Huawei E122 USB dongle (unlocked) with 6GB quota
Line 57: Line 105:
Parts still to get or make
----
 * MAX232 converter
 * Testing power supply for the bifferboard
 * <a href="http://en.wikipedia.org/wiki/Battery_eliminator_circuit"> BEC</a> and <a href="http://en.wikipedia.org/wiki/Electronic_speed_control">ESC</a>
 * USB broadband dongle (borrow off of Adrian for the moment!)
 * <a href="http://jaycar.com.au/productView.asp?ID=QC3231&amp;CATID=20&amp;form=CAT&amp;SUBCATID=688"> Webcam</a>, which should be sufficient to display a 640x480 image
 * <a href="http://www.angelfire.com/electronic/hayles/charge1.html"> Battery charger</a>
 * USB to serial adapter and serial GPS module
=== Parts still to get or make ===
 * Motor pod/mount (if we choose to put existing motor into the buggy kits)
 * serial GPS module
 * 5v buck/boost dc convertor
Line 68: Line 111:
 * [[/Trimming|Control trimming]]
 * [[/SerialProtocol|The Oxinabox Lightweight Serial Protocol]] for AVR mega169 explained
 * [[/FrontEnd|The Desktop FrontEnd]], gen1,
Line 70: Line 117:
 * openWRT  * --(openWRT (is evil))-- Debian
Line 73: Line 120:

 * AVRstudio 4
 * WinAVR (wich has the AVR-GCC C compiler)
 * br@y's Terminal, one of the best GUI COM terminal programs.
 * pyserial
Line 79: Line 131:
 * [[http://www.robotgear.com.au]] has some cool gear (LOCALLY!)

Description

The LURC (the Long-Range UCC Reconnaissance Car) is planned to be a remote control car with all the bells and whistles. Picture a standard remote control car. Now, throw out the radionics and replace it with a decent computer, controlled over the internet. Then add a webcam with pan and tilt, so the remote driver can see where he/she is going. Then add GPS. Then add solar power boosting. Then add battery level feedback to the remote driver. Top all this off with a whiz-bang steering wheel and driving pedals on a desktop, and you have yourself UWA's coolest car.

Creation date: November 2009

Location of source:

http://svn.ucc.asn.au:8080/oxinabox/LURC/

Project leader

Bob Adamson is the leader and finance for this project.

List of people involved

Lyndon 'Frames' White is doing the AVR code and serial interface.
John Hodge has volunteered to write some fancy code for the web interface, and has threatened to put his acess kernel on the router :S.
Other people such as Rufus Garton-Smith and Adrian Chadd have been conscripted into helping with the webcam and the 3g dongle respectively (thanks guys!).
Did I mention that OTHER PEOPLE ARE WELCOME TO GET INVOLVED?

Project plan

What is done

  • Assemble cells into a 7.2V battery pack

  • A significant amount of waiting for parts to arrive :S
  • Set up bifferboard with debian (openWRT isn't great for our needs)
  • Get serial commands sent from a computer to control the servos
  • Chassis - we have wheels, suspension, motor (the car can drive in a straight line now)
  • Webcam connected and working

What is being done

  • Serial interface on the AVR (over-all 90%)
    • set up framework/datastucture for storing and retrieving received commands (./)

    • framework for execution of commands, (./)

    • implement vast array of all required commands (90% done)
      • SETPWM (SETPOS) (./) - testing ongoing

      • MODIFY PWM (MOD) (not done)
      • WRITEPORT (./)

      • READPORT (not done)
      • LCD (not done)
      • ADC (not done)
    • Implement serial communication (./)

    • extended testing
    • Return Error codes over Serial (Not Done)- Every function will return an error code, functions that request informationm will reurn a number 1 or more bytes, then the error code
  • Setting up the bifferboard for webcam, serial control, etc.

What needs doing next

  • Test AVR serial code for robustness and completeness
  • Rewire car to allow charging without resetting the bifferboard
  • Optimise webcam to make video smoother
  • Get 3G dongle working
  • Dynamic DNS

Frame's Plans

(this is a striaght copy from IRC which frames is goign to edit into a nice todo list when he can be bothered. he will also fix the spelling.

   1 23:44 <frames> and then after that i nned to redo gen1 to gen 1.5, ad some sort   of semi pseudo GUI, to show hwat;s been recieved and what has been transmitted
   2 23:45 <frames> anyway, that's my plans for the short term of the project.
   3 23:46 <frames> oh, and i need to set it up to take the #defiens from the make file as a parameter
   4 23:47 <frames> then it's back to adding more functions to the AVR - readPort, and finishing of some more LURC commands, and maybe gettign RESET working
   5 23:47 <frames> and then onwards to gen2, the excitement of running things on a desktop computer
   6 23:50 <frames> zanchey suggested that as a communtication method, i just run ssh.exe (well it's not actually called that but you ket the poiint - the client software for ssh) inside my program and  then pipe to and from it, seems liek a good ifdea to me. heh i could set up gen1.5 to outut all revieved values  to stderr, then i might be able to display them sepertalty 
   7 00:04 <frames> oh., last thing: My suggested policy of what code goes on the bifferboard, what one hte avr, and what one hte desktop - anything that requires knowledge of the hardware one the Car goes on the AVR, this mean that we have secondairy functionso like Turn, webcamPamn webcam tilt- so that none has to know the range of valeus accepted for a particualr servo's PWM. setPOS etc will still be there, but new cleaner functions likeFOrward will be avaialble as well
   8 18:24 <frames> so i'm decommisioning string2Num.cpp and it's .h and replacing with str2Value.c
   9 18:25 <frames> the new str2value will be ale to do all the smae htigns that string2Num could do (with numbers) but will be more effiecent and will be able to deal with COMMANDS eg CMD_FORWARD
  10 18:25 <frames> and it will have deliminators for ascii
  11 18:26 <frames> and it will have deliminator escape charactors
  12 18:26 <frames> and it will handle errors much better (Ie it will handle errors at all rather than throwing a message anf ternimating or just crashing  and burning)
  13 18:27 <frames> this is all going on the wiki, i'm too tired to make it neat i'll sort that out in the future too
  14 18:27 <frames> tommorrow i'm taking alot of the day off. 

Parts and Pieces

Parts we have got

  • Brushless motor, 3800 Kv

  • Servos x 3. These are smaller than what was expected at about 1x2x3cm, but should be strong enough
    • The servos have a full 180 degree range, using PWM values from 0.4ms to 2.4ms with a 20ms period. Using values outside these ranges kills kittens. For the hex values that define these values, see /Trimming.

  • C size rechargeable cells, 6x3300mah NiMH
  • AVR atmega169 butterfly board
  • Solar panel
  • A Bifferboard. This will be used to connect to the outside world, the webcam, and the AVR Butterfly.

  • Wheels and tyres, 2.2" hubs to suit a 3/16" axle - f*** these were expensive -- BobAdamson

  • USB power adapter for the bifferboard (for testing)
  • Webcam, which should be sufficient to display a 640x480 image

  • BEC and ESC, this one

  • FT232 converter (MAX232 works, but need a usb adapter for the bifferboard-gps connection anyway)
  • 4 port usb hub for the bifferboard - this will allow us to have a usb stick, a webcam, and gps connected all at the same time.
  • A buggy kit, with wheels. chassis, motor, steering assembly. (We now have extra parts!)
  • Ni-MH battery charger
  • USB to serial adapter (sparkfun, 3v version)
  • Webcam mount
  • Huawei E122 USB dongle (unlocked) with 6GB quota

Parts still to get or make

  • Motor pod/mount (if we choose to put existing motor into the buggy kits)
  • serial GPS module
  • 5v buck/boost dc convertor

Other info

Some programs we are probably going to need


  • openWRT (is evil) Debian

  • wvdial (a command line dial-in PPP utility)
  • MJPG-streamer (stream webcam using various output plugins)
  • AVRstudio 4
  • WinAVR (wich has the AVR-GCC C compiler)
  • br@y's Terminal, one of the best GUI COM terminal programs.
  • pyserial