W.A.L.T.E.R. 2.0 and the Teensy 3.1

Status
Not open for further replies.
This is why I get frustrated when I am trying to test the Teensy 3.1 on W.A.L.T.E.R. - it's a true wiring nightmare, and a very fragile setup.

walter_wiring_nightmare.jpg

8-Dale
 
More pictures of W.A.L.T.E.R. 2.0:

The Arduino Mega ADK with the DFRobo Sensor Shield. This is a very nice shield for the Arduino Mega! I have drilled mounting holes for the Mega board and shield, but I don't have the right standoffs to mount them.
walter_arduino_mega_adk.jpg

The display and sensor breadboard. The IMU is above and to the right of the matrix display, the DS1307 RTC is below that, and the TCS34725 RGB Color and TMP006 Heat sensors are to the right of that. I got everything on the breadboard, including the breadboard, from Adafruit.
walter_display_sensor_breadboard.jpg

Front view of W.A.L.T.E.R. coming right at you. The front pan/tilt has a Parallax PING ultrasonic sensor (top) and a Sharp GP2Y0A21YK0F IR sensor (bottom).
walter_front.jpg

The SSC-32 Servo Controller is on the left, with the BotBoarduino on the right. These are Lynxmotion products.
walter_ssc32_botboarduino.jpg

I just added a Teensy3.1 next to the display and sensor board. You can also see the BotBoarduino, SSC-32, and Arduino Mega ADK boards, top to bottom, on the right.
walter_teensy31.jpg

Here's a shot of the top of W.A.L.T.E.R. from the back.
walter_top.jpg

8-Dale
 
Last edited:
I think I am on the track of a hardware related issue.

I've moved everything back over to the Arduino Mega ADK board, and have been playing with it a bit tonight. I have everything working now, except the RoboClaw. When I turn the RoboClaw on, I hear this weird noise from W.A.L.T.E.R.'s underside. The RoboClaw is mounted on the underside of the bottom deck with the motors.

I turned W.A.L.T.E.R. over, and saw the RoboClaw blinking an error condition. This is with it connected to Serial2 (17, 16) of the Mega. I moved it to Serial3 (15, 14), and the noise and blinking error went away. I still have to figure out what the error code is to be sure what is/was wrong with it on Serial2. I need to go through the configuration procedure for the RoboClaw from the start again, to be sure I have it in the configuration I want it in (Advanced Packet Serial).

Going back to a known configuration helps me spot errors easier and quicker. Once I have the RoboClaw sending me back good information again, I can proceed working on some simple code that actually makes the motors do something. It's also possible I may have the motor encoders connected wrong - I'm not completely clear how this is supposed to work.

8-Dale
 
I'm back to working on W.A.L.T.E.R. now! I ran out of dynamic memory on the processor (BotBoarduino) on my new SES Rover, so am switching things around a bit.

The SES Rover: I call it this because it doesn't have a better name yet, and because I built it entirely out of Servo Erector Set parts from Lynxmotion. I designed and built this robot over a night I didn't sleep at all. I added the pan/tilt and sensors the next day. I slept that night. :)
ses_robot_new_pantilt_front.jpg

ses_robot_new_pantilt_right.jpg

ses_robot_new_panttilt_left.jpg

W.A.L.T.E.R. 2.0
walter_front.jpg

Since the SES Rover needs a higher capacity processor anyway, I'm going to move the Arduino Mega ADK from W.A.L.T.E.R. over to it, and make the Teensy 3.1 I already have mounted on W.A.L.T.E.R. his main processor. This will solve the dynamic memory problem on the SES Rover, keeping it operational, and give W.A.L.T.E.R. 2.0 an even more powerful processor to develop with. It also will keep both robots operational!

I really want to tinker with the Teensy 3.1 more anyway! :)

8-Dale
 
Last edited:
OK, here is my plan to switch processors around on my two robots..

I'm going to create my display and sensor circuit on a Perma-Proto board from Adafruit.This will allow me to use all the parts I need, not have to worry about wires coming loose, and I can put all the inbound connections to the circuit in one place. I'll also still be able to reuse parts elsewhere if that is ever needed, or replace parts easily. This will also give me a much higher reliability than I have had in the past.

I've already tested the current breadboarded circuit with the Arduino Mega ADK board, so I know the wiring is correct. Now, I just have to draw a schematic of the circuit, and get the Perma-Proto board to wire the circuit on.

Then, I can swap processors around and the Teensy 3.1 will become the main processor for locomotion on W.A.L.T.E.R., and I can really get into working on fixing anything in the libraries that needs fixing. I already know there are some issues with the LSM303 accelerometer/magnetometer and G3D20 gyro.

W.A.L.T.E.R. will become my robot development platform for the Teensy 3.1!

8-Dale
 
Sounds good. As I mentioned in a different forum, a couple of days ago, I received my 2nd version of the teensy carrier boards from OSHPark. Yesterday I assembled one of them. Here is a picture showing the new one along with the first one.
Teensy-3.1-breakout-brd-v.0.jpg

I have not fully tested this one yet, but does load blink and I had it load my Teensy version of the Phantom Phoenix code base and it appears to be responding to the XBee.... Test batch of this version from Seeedstudio should arrive any day now as it has been transferred to USPS. Will let you know how those look and if they look done well enough may submit an order for the version with Arduino shield on it. Still playing with it, by trying to substitute in as many of the Seeedstudio OPL (Open Parts List) and see how expensive it would be to have them actually install most of the parts on a small batch.

Kurt
 
Sounds good. As I mentioned in a different forum, a couple of days ago, I received my 2nd version of the teensy carrier boards from OSHPark. Yesterday I assembled one of them. Here is a picture showing the new one along with the first one.
View attachment 1541
This looks great! :D

Will let you know how those look and if they look done well enough may submit an order for the version with Arduino shield on it. Still playing with it, by trying to substitute in as many of the Seeedstudio OPL (Open Parts List) and see how expensive it would be to have them actually install most of the parts on a small batch.
Oh, wow, awesome! If you decide the version with Arduino headers is good enough, I'd be happy to submit them for fabrication if you get me all the data I ened to do that. I've never submitted boards for production before, so you may have to walk me through the procedure the first time. I'm happy to help with getting the Arduino header version made. :D This version would make my work on W.A.L.T.E.R. so much more pleasant!

8-Dale
 
I am waiting to say which version to submit, until I actually see what I get from Seeedstudio. While waiting I am hacking on a version that uses mostly parts in their standard library. Then see how expensive it would be to have them install them on a couple of boards. As I understand it they will install other parts for run that are at least 100 boards, but will do a couple prototype boards with parts from their standard parts list.

Things that I am trying to figure out include:
Voltage Regulators - The main one I use is the same one on the Botbordino, is a VLDO regulator, that if I remember correctly only needs Vin be .5v > Vout, so works with 6v NIMH as well as 6.6 LiFePo batteries. But most of their standard ones appear to want a minimum of 7v, which is fine for Lipo, but for the others not so sure.

Then there are connectors: For main ones coming into board, my one for Arduino Headers is a 4 pole connector. But that is not in their OPL list. They do have the 2, so I can use 2 of them or they have a 3 one and I could do like several Orion Robotics boards do and use a 3, with a common ground...

Then there are all of the other 3 pin headers. They have the male pin headers, but only with certain number of pins, so will see how that works out.
 
I've ordered all the things I need to make the changes I've talked about in previous posts. I should have everything by the end of this week. I still have to figure out some sort of adapter, so I can mount the Arduino Mega ADK and shield on the SES Rover.

I am excited that I will be able to work with the Perma-Proto boards for making my display and sensor board more permanent. :)

8-Dale
 
Last edited:
I have been working on the pan/tilt scanner code this week. I finally got it all working yesterday! Now, W.A.L.T.E.R. can scan up to a full 180 arc (specified as -90 to +90 or 0 to 180 degrees), and take sensor readings every so many degrees, specified by an increment value. I can specify the arc range also, such as -45 to +45 degrees with an increment of 10 degrees. This would be done by using scanArea(&pan, -45, 45, 10). Servo data is defined in a data structure for each servo. The sensor readings are also stored in a structure that contains data for each sensor that is read. The scan readings are stored in an array, of up to 36 readings. This is enough storage for readings every 5 degrees of a 180 degree arc.

You can see the scanner in action on YouTube.

I'm going to be putting all of my SSC-32 routines into a library, so anyone who wants to use a BotBoarduino (Arduino) for robotics or other projects will be able to use them. I don't know exactly when this will happen, because I am still adding to and testing my set of SSC-32 routines.

I got my Perma-Proto boards from Adafruit today! Now, I will be able to transfer the display and sensor circuit on W.A.L.T.E.R. now (on a regular breadboard) to a more permanent form. I won't have to worry about jumper wires being pulled out anymore! I'm very excited to be able to finally start using these!

As soon as W.A.L.T.E.R.'s motor battery is charged up, I will start working on the motion routines that will allow him to move around on his own. I'll be getting back to working with the RoboClaw 2x5 motor controller. I'll disconnect the encoders for the first tests with it. Once these routines are working, I will connect the encoders up again and go from there.

Once I have all this working, and W.A.L.T.E.R. is able to move around on his own, I will switch over to using a Teensy 3.1 as the processor for his navigation subsystem. I already have a Teensy 3.1 mounted on a small breadboard, next to the large breadboard on W.A.L.T.E.R. The reason I want to switch to the Teensy 3.1 is it's very small, faster, and has more dynamic memory than the Arduino Mega ADK board. I also just want to develop with the Teensy 3.1. :) I know there is going to be some work to make everything I have work with the Teensy 3.1 because some of the Adafruit libraries (Gyro, Accelerometer, and Magnetometer) don't give the same results as when running on a true blue Arduino board. I want to find out why, and make it work.

8-Dale
 
Quick update: I discovered that both motors I have on W.A.L.T.E.R. are apparently bad. :(

Luckily, I have two more of these motors, which tested good without encoders, and two brand new quadrature encoders. I've installed the new encoders on both motors, and am just waiting for the motor battery to charge so I can test the new motors and encoders together. If the motor/encoder combinations test good, I will replace the existing ones on W.A.L.T.E.R., and go from there.

Assuming, for now, that everything goes well, this is the next to last phase before W.A.L.T.E.R. is fully mobile.

The next phase, is integrating the distance sensors with motion. I already have the area scanner working, which can scan a specified arc between -90 and +90 (or 0 and 180) degrees, with an increment. W.A.L.T.E.R. can store up to 36 readings, which is enough storage for readings every 5 degrees. There is a video of the scanner in operation on my YouTube channel.

I also have routines that find the closest and farthest objects of a scan, but I still need to test these.

8-Dale
 
Roboclaw and Teensy 3.2

Could you post links for those libraries? I'll take a look...

Edit: if you find any Adafruit library that does not "just work" on Teensy 3.1, please let me know the details? I'll fix it.[/QUOTE]


Hello Paul, i have been reading this thread because i'm trying to use the official library of the Roboclaw for Arduino with Teensy 3.2, but i'm not able to make it work, could you please check the official library and see if is possible to modify it and make t work with Teensy 3.2 and Arduino?, it seems that it has change since 2014 when you and the other people in this forum checked the library. thanks in advance.

This is the link of the official library of Roboclaw for Arduino:
http://downloads.ionmc.com/code/arduino.zip


George.
 
could you please check the official library and see if is possible to modify it and make t work with Teensy 3.2 and Arduino?

Looks like it should work if you don't use SoftwareSerial. But the examples all have SoftwareSerial.

Change this:

Code:
//See limitations of Arduino SoftwareSerial
SoftwareSerial serial(10,11);
RoboClaw roboclaw(&serial,10000);

to this:

Code:
RoboClaw roboclaw(&Serial1, 10000);

One important point, use "Serial1" not "Serial". The "1" is important, because on Teensy "Serial" is the USB virtual serial. You need to use Serial1 to communicate with the actual hardware serial port (pins 0 and 1).
 
You'll also notice several warnings about "unused variable 'crc' and "control reaches end of non-void function".

Those are not Teensy's fault. This library has some sloppy programming. If you end up communicating with the author(s) of this library, please ask them to turn on warnings in File > Preferences.

These warning messages can probably be ignored, if you use this library in the ordinary ways.
 
Status
Not open for further replies.
Back
Top