The very rough draft is here. I still need to update the Shorting Bar Jumper and Connections part.
Beth, Devon and I have updated what we can. We are looking for any help anyone can provide.
Left to do:
Add information about driver installation for older o.s. idiosyncrasies.
Update the Shorting Bar Jumpers and Connectors at a glance graphics.
Hi Jim,
Once they have a board, they can probably pretty much follow the main Arduino instructions:
arduino.cc/en/Guide/Windows
or better yet, starting at the page higher up in the Arduino Tree:
arduino.cc/en/Guide/HomePage
They should follow the instructions for the Duemilanove for installing drivers. Which for Older OS’s directs you to the FTDI website.
Will probably need to get into more discussions about Arduino concepts and how you wish to handle them. Example libraries. You can search around the web for different libraries to use. You download them and then put the files into the appropriate directory structure. Example on my machine I have the PS2 library installed at: C:\arduino-1.0\libraries\PS2X_lib
Suppose you use this same library in several robots, such as Brat, Rover, Arm and Hex (like I have). Do you:
a) Have it as part of each of these projects and tell the user to move it to the appropriate directory.
b) Have a standard place on your website to download each of them that you use in your projects…
c) Direct the user to go to the appropriate place on the web to get the latest version. (May be problematic as the developer may have made changes or I may have made changes…
FYI - The PS2 library, which you can download from(www.billporter.info), automatically enables the weak PU resistor of the Atmega328 IO pin associated with the DAT line. On a reasonably high percentage of the Lynxmotion receivers I tried (2 out of 3), this was sufficient. On one of them I needed an external one. As for needing one on CLK, so far I have not run into an issue with not having one, since the processor is driving it high and low…
That is all for now
Kurt
Hi Kurt,
Thanks for the input. I will discuss it with Devon and see what we think is the best approach.
Are you aware of a need to pull the SSC-32 cable from IO 0 and 1 in order to program? Devon said he has to disconnect this cable in order to program.
Thanks!
Yes: if you are using digital pins 0 and 1, they are connected to the USB, so you may have to remove. I normally use pins 2 and 3 and use the SoftwareSerial library. When I do that I don’t need to remove the pins. The software serial library works reasonably well at least up to 38400. It may also work fine with 115200.
They did a different trade off than BM on the bitbanging. That is they disable interrupts when they output a character. The upside is they don’t get corrupted. The downside is that depending on other things it is possible to lose interrupts…
Kurt
The manual is essentially completed. You guys can check it out and let me know if we screwed anything up.
I don’t see anything obvious
Kurt
Here is where we are working on the BRAT stuff… It only had the wiring diagram done so far.
lynxmotion.com/images/html/build130b.htm
May need to add/change a few things with wiring diagram, especially with accelerometer. But coming along!
Kurt
Do you feel breaking the tutorial into several incremental programs is the best way to go, or should we just make one program that does it all? In the interest of time I think we might want to just do one program…
If you are asking, should the servo offset code be a separate program/tutorial, I personally prefer to have it as part of the main program. That is what my Arduino Brat program does. It has a terminal monitor that checks for the user entering a command. Very little overhead as it only needs to check to see if there are any characters in the input queue (simple test of head/tail pointers…). I like it this way because. As a robot person, I am typically too excited to do properly align the servos when I build the robot as I want to see it in action With it built-in, you can always get back to it, without having to load a different program.
Obviously if the program grows too much and no longer fits on the Atmega328, than you might have to split it off…
Kurt
Yes Devon has integrated the calibration into the main program. As the tutorial for Basic Atom Pro last stood it had the following programs.
Software:
- BRAT Servo Offset Finder Program v3 (09/16/09)
- Autonomous Walk Code (09/16/09)
- Autonomous GP2D12 Code (09/16/09)
- Autonomous 1-Axis Accelerometer Code (09/16/09)
- Autonomous 2-Axis Accelerometer Code (09/16/09)
So it was progressive. First adjust offsets, then walk, then avoid obstacles, then add accelerometer in one axis, then 2 axis. Do you think we should abandon that method, and just have one full featured program?
I think we are just going to make one program that does everything.
Kurt, can you please tell me where your BotBoarduino BRAT code is?
I think the Brat code that is up at: viewtopic.php?f=48&t=7590&p=77519#p77519
is reasonably up to date… However it has not been updated for Arduino 1.0…
Here is a version that runs on both (I think). Have not had BBDuino hooked up to brat for awhile… Don’t have any of the released ones yet But soon
Kurt
Arduino_Brat-120329a.zip (16.9 KB)
kurt = 1ZX647W50344281728
If you happen to be listening…
Jeroen = 1ZX647W56646929836 delivered today
Unfortunately the package left before the BotBoarduinos were received.
Note: this relies on some different libraries like the PSX. I don’t think he has done the conversion to Arduino 1.0. I did and posted earlier…
Also I did a hack in the library (made something that was private to be public) such that I could try to detect when the PS2 came out of analog mode and then I could try to get it to reinit again…
Kurt
PS2X_lib.zip (15.4 KB)
Here’s my code that i’m having problems with. The issue is that when I press a button, the program sometimes reports another button press. I’ve tried new controllers, receivers, and even a new board. Nothing I’ve tried has worked and i’m at a complete loss for why this is happening.
p.s. Bill Porter did release an Arduino 1.0 version of the PS2X library some time ago… That’s what i’ve been using.
Brat_ps2.zip (3.46 KB)
I have it downloaded and I changed my brat over from using an Axon2 to the protype botboarduino. It now builds and runs.
Have seen in the past when the PS2 falls out of Analog mode, that all bets are off. Should try to debug it. I have code in my Phoenix code to try to detect it and try to reinit the PS2… But I still have issues that if the PS2 stops working the robot may just keep on a walking, which is not good. Will probably take another pass through his code and see if I can improve the robustness…
Kurt