W.A.L.T.E.R. Returns as a 2WD/4WD

Ah, OK, thanks! I will definitely take a look! I’ve cloned several of your repos. :slight_smile: I may even fork a couple. :smiley:

8-Dale

Greetings, everyone!

I am almost done with the wiring up of W.A.L.T.E.R. now! I still have one more thing to wire up - power to the BotBoarduino, except through USB. I don’t have another wiring harness to connect the 6V battery to the BotBoarduino. I wish there was a power header (pins) on the BotBoarduino, because then I could easily power it from the SSC-32.

I have power to the SSC-32 and RoboClaw 2x5 controllers, and everything that has to be wired up to them is. I even have the wheel encoders wired up to the RoboClaw 2x5 and am ready to use Packet Serial mode to control everything. I’ve coded up all the initialization for everything, including the TCS34725 RGB color (rgbColor) and TMP006 heat (heat) sensors, which I’ve added to the display and sensor breadboard.

I have the SSC-32 (ssc32) and RoboClaw 2x5 (roboClaw) wired to BMerial software serial ports on the BotBoarduino, and am also using BMSerial for the hardware serial port (console) now. I’ve changed all my code to work with these ports. All sensors are being read, and I have display routines for everything that go to the console port. Now, if all the serial communication works between all devices, I can connect a serial wireless adapter to the console port, and W.A.L.T.E.R. can be fully untethered without me losing communication with him.

Tested so far:

  1. Hardware I2C works with the display and sensor breadboard.
  2. I can turn the RGB color sensor’s LED on or off.
  3. The display and sensor breadboard works with my IMU sketch.

I just need to get power to the BotBoarduino, and I can start testing all his subsystems. I have one idea, but I really don’t want to solder wires to the underside of the SSC-32.

8-Dale

Current Navigation sketch on BotBoarduino:

Sketch uses 23,198 bytes (75%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,682 bytes (82%) of dynamic memory, leaving 366 bytes for local variables. Maximum is 2,048 bytes. Low memory available, stability problems may occur.

I haven’t done a lot of optimizing yet, but I don’t think I’ll gain much by doing that. Right now, all the code I have is needed, or is needed for debugging and testing. Maybe when I get further along in development for W.A.L.T.E.R. 2.0, I can take code out and see if it will fit on a BotBoarduino. As of now, I am definitely getting an UDOO quad with the 7" touch display next month, along with a lot of Lynxmotion stuff. The Arduino Due has two I2C buses. :slight_smile:

I’ve copied all my current Arduino (BotBoarduino) stuff to a MegaADK directory and added it all to my Walter20 repo on GitHub. I’ve also prepared development directories for ChipKit, Raspberry-Pi, and UDOO. I haven’t decided if I am going to get another BeagleBoard Black, but I probably will at some point, because I really like that little board.

8-Dale

I am having problems getting my SSC-32 working with a SoftwareSerial port. This is an older SSC-32 with firmware 1.06XE. Are there any known issues I should be aware of? I’ve set the SoftwareSerial (actually BMSerial) ports as shown on the Arduino.cc site examples for 115200.

All connected sensors seem to be working.
–> The TCS34725 RGB color and TMP006 heat sensors are working.
–> The front pan/tilt IR and PING senors are working.
–> As far as I can tell, the Accelerometer, Magnetometer, and Gyro are working.
–> Temperature readout from the BMP180 temperature sensor on the IMU board is correct.

I’m starting to migrate my code to the Arduino Mega ADK board. I simply need more program and other memory. It’s just not going to fit into a regular Arduino (BotBoarduino) board. I only have about 5Kb of program space on the BotBoarduino now, and haven’t even started righting behavior code yet.

8-Dale

I would probably try at 38400 as I am not sure how well Software serial works at higher speeds.

Sorry I am jumping back to this, I meant to mention a few things about this.

I don’t remember all of the reasons that were going on at the time. If I remember correctly we did not choose the Top IO pins for the PS2, as the LED (L) is on the top pins and it’s circuitry may have interfered some with the use of the PS2, so we tried 6-9 for it. We then decided to make it work like the BB2 and have the other LEDS and buttons be on the same IO pins as we used for PS2. As for speaker, probably just went, next one down. Maybe instead we should have done the next one up…

But the bright side, is that if you are not using the Leds/Buttons/PS2, you can simply remove the jumpers on the board (5) in the diagram: lynxmotion.com/images/html/build185.htm
and use those IO pins. If instead you wish to map the Buttons and LEDS to other IO pins, you can remove the jumpers and add your own jumper from which IO pin(s) you wish to use to the upper pins (of 5) and those IO pins will work for the LEDs/buttons…

Likewise if you don’t want the sound on pin 5, you can remove the jumper (4). Likewise you can jumper a different pin, to the jumper (pin closest the speaker), to use a different one…

Not sure if this will help you now as it sounded like you are moving to the ADK.

I didn’t know it was possible to rejumper these resourses to different pins. This is good to know though, for future BotBoarduino projects. Thanks for the information! :slight_smile:

Yes, I am moving W.A.L.T.E.R. to the Arduino Mega ADK board. I don’t have a choice, for several reasons.

8-Dale

Things are going well, so far, today.

I have migrated all my hardware connections from the BotBoarduino to my Arduino Mega ADK board with the DFRobots sensor shield.

The SSC-32 works on Serial1, using BMSerial (ssc32).
The RoboClaw 2x5 seems to work on Serial2, using BMSerial (roboClaw).

I have Serial3 allocated for an XBee using BMSerial (xbee). The sensor shield has three sockets for XBees (one for each hardware serial port).

I’m working on tracing a problem where my sensor circuit works fine with my Raspberry Pi, but my Arduino code claims the real time clock (DS1307) isn’t running. I’ll get it figured out. I have two different test sketches I’m working with now.

8-Dale

Since I have moved to the Arduino Mega ADK board for the “brain” of W.A.L.T.E.R. 2.0, I’ve decided to add some of the code that runs the displays back into the Navigation sketch. The displays will be useful for showing status and any error information until I can get a good remote control display made, or get an app created so I can use my phone or tablet as a remote.

I’m thinking about trying out a Raspberry Pi based remote setup using a 512 Mb Pi with a small touch screen. I’m just waiting for Adafruit to get the touch screens back in stock. I would like something small that I can easily carry in a jacket pocket.

8-Dale

I am following a guy for a while.
Already got one of his board and LCD but this new oled is interesting.

Might interest you as well… Who knows…

youtube.com/watch?v=JLkcc9U … be_gdata_p

I took a look, but it doesn’t really grab me. I’m aiming to use a small touch screen in a remote robot controller, and maybe even on W.A.L.T.E.R. at some point for a nice user interface. If Adafruit ever gets them back in stock, I want to get one of these 2.8" LCD for one of my Raspberry Pi boards.

Right now, I’d settle for a nice 20x4 LCD/button shield for my Arduino Mega ADK.

I may have a platform I can run ROS on. I just got done installing a bunch of ROS Hydro stuff on intrepid (PandaBoard ES), which is running Ubuntu 13.04 (Raring) now. If this works, and I can get the ROS packages I need installed and working, I may have found a real use for my PandaBoard ES. I have something else to tinker with now.

I plugged an XBee (Series 2) into the socket for Serial3 on my Arduino Mega ADK today. It’s one of the XBees that has the RP-SMA antenna connector, and I have a 5db antenna connected to it. Now, I have to find its mate with the USB dongle.

I am having some difficulty with my RoboClaw 2x5 controller. I don’t know what is wrong right now, but am working on troubleshooting it now. I double checked my wiring and configuration last night, and everything looks correct, according to the manual. I’m awaiting Orion Robotics approval of my account, so I can interact on their forums. The links to download the firmware for their Odyssey and Razor robots are broken. I want to look at their code to see how to properly run the RoboClaw controller.

8-Dale

I permanently attached the breadboard of my display and sensor circuit to W.A.L.T.E.R. last night, so it is there to stay now. I also soldered up my seven new displays (three 7-segment and four 8x8 matrix, all green) to their respective I2C backpacks last night. Now, I am out of solder. :frowning: I addressed all the 7-segment displays (0x70, 0x71, and 0x72) and the mini 8x8 matrix display (0x73). I will probably address the larger 8x8 matrix displays at 0x73, 0x74, and 0x75.

Today is troubleshooting day. I need to figure out what’s going on with the RoboClaw 2x5, and why not everything in setup() is getting done. I need to figure out a better place to mount the battery for the SSC-32. I will probably mount it on the underside of the top deck, where it will be out of the way of everything, and I have more room on top to put stuff.

I’m putting together another pan/tilt, for the top deck, where I eventually plan to put some sensors, like the RGB color sensor, heat sensor, and a camera. I want W.A.L.T.E.R. to be able to look around with these sensors and the camera.

Here is what the top of W.A.L.T.E.R. looks like right now, from the front. I’m definitely going to remount the SSC-32 battery. Right now, as you can see, the Arduino Mega ADK is just hanging off the side, but I am going to correct that. I’m leaving the BotBoarduino mounted where it is for now.


8-Dale

It’s nice to see the project progress.

+1

You put a lot of information here and it’s nice to see it coming together… :wink:

Sometimes, it feels like I take one step forward, then two steps back though. That’s how things are now. I’m trying to figure out why my I2C stuff isn’t working with the Arduino Mega ADK. I’ve dropped back to a more basic sketch on my BotBoarduino that just runs the I2C stuff. It was complaining that various sensors weren’t there, so I completely rewired the circuit using a better method. I have six I2C devices on this breadboard that is permanently attached to W.A.L.T.E.R. now - 2 displays, an IMU, DS1307 real time clock, TCS34725 RGB color sensor, and TMP006 heat sensor.

The Arduino IDE is fighting me, and won’t let me program anything right now. I really hate the Arduino IDE. I’ve rebooted my laptop and it still doesn’t want to let me program anything.

I’ll connect the newly rewired circuit up to Pod (a RaspberryPi) and see if it works there. I can also peek at the I2C bus and see what’s actually connected, using i2cdetect. I really like my Raspberry Pi boards (Pod and Chip) because they just work. I hate the micro-USB connectors though.

8-Dale

Thanks! I am just sharing what I am doing, including all the ups and downs. :smiley:

Remember, all my software development for W.A.L.T.E.R. 2.0 is available in a git repo.

8-Dale

This has been an interesting day.

I’m running my IMU Test sketch on the BotBoarduino, and things are working. This sketch uses the 7-Segment and matrix 8x8 displays. I discovered my real time clock has gone bad, but I have another one to build. I’m apparently not getting any 3.3V or 5V power from Pod. I will do some testing with Chip (my other Raspberry Pi).

I’ve got a problem of some sort with I2C on the Arduino Mega ADK board. Using the same sketch as for the BotBoarduino, I2C is not working. I don’t know what’s wrong right now, but I’m going to remove the sensor shield and try things bare bones.

UPDATE: The sensor shield is my enemy. There is something wrong with it. Everything, except the real time clock, is working fine now on the Arduino Mega ADK board, without the shield. I have another DS1307 real time clock board, but can’t build it up because I ran out of solder. :frowning:

8-Dale

Sound like the boards are keeping you busy. Don’t have an ADK board so can not play along. Don’t know which version of the board you have, but later ones moved the I2C stuff out to different IO pins, which hopefully your board knows about. But then those pins would go to nowhere on the Botboarduino as I am pretty sure we did not add those pins near the AREF… I2C is on different IO pins on many of the boards, as you can see in arduino.cc/en/reference/wire And if I looked at the ADK it looks like it is not on the same pins as the Mega…

On a different Teensy note. Jon Hylands has made progress and a video that he posted up on Trossen and in his blog: blog.huv.com/
Looks like he is having fun

Kurt

The Arduino Mega ADK is just like a regular Arduino Mega, with the extra stuff to meet the ADK requirements. I have an R3 ADK board, so it should know about the latest stuff. I’m not sure about the DFRobots Sensor Shield v2.3 I have though. They didn’t design the shield for the ADK varient - the prototyping area and some of the solder joints on the bottom of the shield make contact with the top of the USB B connector. I think this could be what was causing the problems with I2C I was having. Everything works fine without the shield.

I will have to double check this and find out how things are for sure. I wouldn’t think there would be pinout differences between the two Mega type boards, or shields meant for the regular Mega could not work with the Mega ADK.

I watched the video and read what Jon wrote about the Teensy3.1 and the DragonTail. Yes, he seems to be having fun alright! :slight_smile: I haven’t been able to get back on Trossen’s forums because my account has been deleted or there is something wrong with my password. I had to re-register for their store again, for the same reason.

I forked the micropython repo today. :slight_smile: I built the Linux/UNIX version and installed the toolchain I need to build the stm version. I installed TeensyDuino into my Arduino 1.0.5 IDE, so I should be able to buld that version also after I set the ARDUINO environment variable.

Now, I need to figure out how best to keep the bottom of the Mega Sensor Shield from making contact with the USB B connector on the Arduino Mega ADK board.

8-Dale

Yep, I had this issue as well, with my own custom shield as you can see in this picture:

As you can see I used a very high tech solution, of about three layers of tape :wink: In addition I clipped off any pins on the bottom of the board as flush as possible.

If I had that problem now, I would probably also use some of the liquid tape and apply some both the top of the USB connector as well as to the bottom of the board.