Mostrando entradas con la etiqueta Platform building. Mostrar todas las entradas
Mostrando entradas con la etiqueta Platform building. Mostrar todas las entradas

lunes, 20 de mayo de 2013

Full Rotation Servos - Schema

Hello:

As promised, I added support for Full Rotation Servos. Here you have the Fritzing Schema. It looks simpler than the Drivers Version ( here ).

I'm testing the modified LIB using prototype 1 ( this one ). This way I will test if there is any problem using another type of Arduino. Prototype 1 has an Mega ADK, prototype 2 has a Leonardo.

I expect to finish test in one or two days, depending of the free time available... Some comments from your side will encourage me to do it faster!

Keep Doing!

martes, 7 de mayo de 2013

The motors(2)


I received a few days ago the new motors. Now I use 12 Volts, 90 rpm motors. You can see yourself in the picture the big different between the old ones (the little thing in front) and the new ones.

The new motors allow a fast movement while having a very good behavior at low speed.
I purchase these new motors directly in China here.

You can see them in action here:

The next step will be to use full rotation servos. This will ease the construction and keep the bill of materials shorter, therefore the cost of materials will be reduced. 

But this involves writing software to control them... hope to be finish this week end!

Keep Making!

domingo, 28 de abril de 2013

Code is uploaded to Sourceforge



Hi folks!

I just uploaded the library with comments and 2 examples to Sourceforge. You have the code here:

https://sourceforge.net/projects/omniplatform/files/

As you can see there, I put quite a lot of comments on the Lib file. It should be easy for you follow the code. 

I create 3 classes: 

B_Wheel: Virtual class to deal with any wheel / driver combination. 

Driver_Wheel: Class to deal with wheels commanded by a driver using 2 outputs to define direction and a PWM output.

Platform: Class able to control a 3 omni-wheel platform. This class uses an array of pointers to B_Wheel variables. This way, this class can control any kind of wheels.

I will extend this lib by providing an additional wheel-drive type: Full Rotation Servo like this one of Sparkfun. This way, 99% of wheel-drive combinations were covered.

The To-Do list is quite long: Full rotation Servo, 4 wheel platform, 2 wheel platform (not omni), incorporation of compass to control direction, LIDAR support...

If you have any question or doubt, please put an comment in this page and I will answer you.

Enjoy!




domingo, 21 de abril de 2013

Platform 2.0




Here you have! Platform 2.0 on moving. 


I think the motors are too fast. To set the platform on moving you must request a high speed from the remote controller. Moving slowly is hard... 

Too much speed and to few torque:  I choose a wrong gear ratio (too low). I will test it with a different motor type/gear ratio to see what are the results.

I'm just adding comments to the Arduino source code to make it more understandable. I hope to be finish  this week.

Keep Reading!

viernes, 29 de marzo de 2013

Wiring up the elements






First things, first. We need to create a diagram of our wiring in order to prepare our job. Normally, an engineer creates wiring diagrams to indicate other people how to connect things together in the proper way. So, if I will wire myself... why shall I do a wiring diagram? 

There are a few very good reasons: 

1.- To keep track on what you did! Working a few hours per week, you shouldn't assume you will remember everything. 

2.- If you need to troubleshoot your design, you will need to check 2 things: the concept and the implementation. To visualize the concept you need a wiring diagram. 

3.- Obviously, if you need external help you need your wiring anyway.

So, do yourself a favor and create proper documentation of your projects!

If you're a beginner, I recommend you to use Fritzing. Once more, this software is easy to learn, to install and yes, it's for free! Here you have my Fritzing diagram:






CAUTION: When using library elements on Fritzing, please double check for accuracy. For example, the pin out of the Bluetooth Modem included in Fritzing is not compatible with mine. If you have a close look on the photos of real wiring you will realize the difference.

You can find the source code of this fritzing wiring here. It is not possible to preview this type of files. If you want to work with it, you must install Fritzing first and then download the file to your computer...  or you use the above picture!

Bill of materials:
1x Arduino Leonardo.
2x Motor Driver 1A Dual TB6612FNG
1x Bluetooth Mate Silver WRL-10393
3x small motors (I'm trying some different motor types. I will update this when I'm finished!)
1x Battery

Pack
4x Accumulators, to create 4,8 Volts.
1x +/- bus as explained here below.

Wiring Description:
I always create a + - bus for my projects. This is useful to power all the electronics we will install. It looks like this.

To avoid problems with the polarity, I use the 3 points plug I described here some time ago.

Bluetooth Modem: Imagine you are connecting 2 microphones with 2 loudspeakers. You must connect Data Source with Data Destination. Serial communication is the same: I connected the Tx Modem to Rx Arduino and also RxModem to Tx Arduino.

I used an "DiY plug" to connect it. This is the result





Drivers: The selected driver must receive 2 power voltages: one for the electronics and another one for the motors. I used a battery pack for the 7Volts, then I use the +5Volts from the Arduino Board to power the drivers and the modem. Here, a picture of the splitter board:




I wired together both "Stby" pins to control them with a single output. (Output No 2). 

Then I wire PWM, AN1, AN2 of motor1 to outputs 3, 4, 5. I repeat the same for motors 2 and 3 using outputs 6,7,8 and 9,10,11. I prepared the wiring of motor 4 on the driver's side, but I didn't connect it to the Arduino. 

This leaves us only 2 digital in/out's (12 and 13) available for other purposes. If I need more digital I/O's I will use alternative techniques to free some of them. But for the moment I prefer to solve the wiring of the drivers using simple techniques.

Phase 1: soldering the wiring.


Phase 2: Gluing the plugs to create a socket.



Observe that I bend the motor pins to allow me to plug / unplug them when the driver is in his socket. Believe me, it is always a help to have an easy way to disconnect motors...

Then we add the battery pack. The final result looks like this:




I needed some 2 "part-time days" to create the concept, figuring out how to put all the elements together, then soldering & wiring. So, this is something you can do in a single week end. If you are good at soldering, you may be finish in a few hours.

Wiring is finished. Now, the very interesting part of the project. The software! But you must give me some little more time for it. 

Keep doing!











sábado, 23 de marzo de 2013

Installing the main elements


The picture above shows the elements we need to fix on our wood board. Let's start with the motor/wheel.

To fix mechanical elements having not a "clear fixture point", I use metallic perforated band like this one:


I bend it in the form I need. This are probes No1 and 2 for my motors:

After some attends, it is easy to reach nearly perfect results. Here support No. 3:


As you can see, I bend the form that I need, then I saw it out of the strip.
You can purchase ready made supports, if you want. But hey, c'mon, we are makers, aren't we?

Now let's fix the elements on the board. I use metallic screws for the motor, nylon screws for the arduino board and hot glue for the rest of the elements.

I use those screws:

I  mark the holes with a hand drill, then I use a small cordless drill to make the holes. (One day I need to create an entry to describe my tools & workbench...)

We reach this:


Then, I glue the rest of the elements using hot glue. I always use plugs to connect the electronic modules. I'm not rich, so I expect to re-use them in other projects. I glue the plugs on the wood board, then I plug the devices on them. I fixed the Bluetooth modem in this way.

The final picture: 


Now, we must wire the elements, then we will upload some software on the Arduino. Things are getting interesting now... Keep reading!



miércoles, 27 de febrero de 2013

Let's go physical ! (1)


Today, we will start building the platform! The first thing we need is to create an equilateral triangle, this means, a triangle with all their sides having the same length. You can create the platform using any material resistant enough to hold the elements we will mount on it. I suggest you to use wood board. It's cheap, easy to find and also easy to work with.

To cut your triangle, I suggest you to use this diagram. First mark point P0, then draw a line. Mark points P1 and P2 at 17,32 cm left / right of P0 (yes, I know, it's a funny number). Then draw a perpendicular line starting at P0.

Mark the Center Point 10cm away from P0, then P3 20 cm further.Now you can draw the lines joining the points P2 and P3, P1 and P3. Draw the lines P2 - Center and P1 - Center too. This two lines will help you to aling the motor axes later on.

I use a thin wood board, (some 4 mm thick). I cut the board using a medium size cutter and a metallic ruler. I just mark the line with the cutter using the ruler as a support,  using a light pressure on the cutter. I repeat it 3, 4 times using every time a little higher pressure. After this, the line is market and you don't need the ruler. I make the same cut over and over, each time with a higher pressure. After 10, 12 times the cut is done!

This is the result:

As you can see, I cut the corners of  the triangle. We must do it to mount the motor & wheel there. The distance of the cut depends on your motors. In my case, I need a 4 cm cut made in this way:

The final result once everything is mounted in place looks like this: