Show Posts
Pages: 1 [2] 3 4 ... 374
16  Using Arduino / Displays / Re: A question of speeeeeed on: June 28, 2014, 12:48:39 pm
I am using this http://www.adafruit.com/products/1590 to draw to a 5 inch screen with my Arduino uno. The problem is that if I want to draw pictures I have to do this one pixel at the time.

Unfortunately, it looks like a -big- chunk of functionality for that driver chip is missing from the Adafruit breakout board for the RA8875 - namely the "Block Transfer Engine (BTE) Function" (see page 123 of the datasheet). It notes that the BTE function is only available with the "Parallel MCU Interface". The Adafruit breakout only brings out the SPI (serial) pins - not the other pins for the parallel interface.

This was likely done on purpose for the Arduino Uno - because it doesn't have enough pins to support it (the data/address bus alone is a 16 bit interface - with all the other pins involved, there wouldn't be enough on the Uno anyhow).

What I would look for would be a better breakout board that brings out all of these pins; alternatively, if you are brave and have a very steady hand, you could solder thin wires to the chip pins that bring out this functionality. Connect them to their own header of some sort, maybe?

Then - for the microcontroller - I would use a Mega; it has enough pins to support the parallel interface easily.

You would, of course, have to write your own custom interface library to drive the pins properly to use the parallel BTE functionality - not a small task, but the datasheet seems to give more than enough documentation to allow you to do this.

I tested this by using a for loop and drawing 1 black pixel at a time, but it takes a LONG time. I didn't time it but I think like 30 seconds.

If you are simply trying to clear the screen, or draw simple shapes (lines, rectangles, circles, triangles, etc) - the SPI (serial) interface and the Adafruit-supplied library should work fine for that; the idea being that you would build up your drawings from these simpler primatives, which are all (seemingly) hardware-accelerated. For instance, a 3D engine could (in theory) be built using only the triangle function for the output (of course, much more is needed to make a fast 3D engine on a system without a real floating-point processor).

However, if you are trying to draw and move sprites or other bit-blitting operations - that isn't supported (according to the documentation) by the SPI (serial) interface - only by the parallel interface, which as mentioned before, has not been broken out by the Adafruit board.

Can anyone recommend a way of increasing the speed of this? I know that the TFT driver is capable of super fast drawing and that it is my end which is slowing things down.

I was thinking of buying the Arduino Due, but not sure if it this would even be up for the task!

Well - I think you can see that I have already recommended what you should do; namely, either find or build a better breakout board and use an Arduino Mega for the controller (so you have enough pins), or modify/hack the existing breakout board to bring those pins out. Likely, the former will be easier (or no more difficult) than the latter, and will result in a better system less prone to failure overall.

Moving to a Due will not likely solve your problems with the speed of the interface; you will still be constrained to the speed of the SPI transfers (which can only happen so fast), and you still won't have access to the BTE blitting engine - which is where things will really shine. If you do buy/build/modify a better breakout board for the RA8875, though - a Due could help immensely with speed (over a Mega) - plus the floating-point performance should be much better as well (if you plan on doing anything 3D related or you need floating-point functionality for other reasons - like moving sprites in a sine-wave fashion or such). Again, with clever programming, fast floating-point can be had using integer math, but it isn't intuitive to implement.

I hope this helps.

On a side note, I found it interesting in the discussion of the parallel interface (page 56) that they have a pin to select between using an 8080 or 6800 series MCU interface. In theory, you could connect this chip to an Altair 8800! I also like the idea of hooking one up to my TRS-80 Color Computer (6809). Likely you could interface this chip to any of the old machines from the 1980s and it would work ok.
17  Using Arduino / General Electronics / Re: Printer Boards on: June 28, 2014, 12:11:07 pm
Its an Okidata B2200 printer, i want to remove the chip line, I cant get it to read the chip.
So if it is possible to remove the chip line, then it will not ask for the chip.

I think something is being lost in translation here - what is a "chip line"?

How about this - you've told us what kind of printer you are trying to use; thank you. Now - tell us what your problem is with the printer. Photos, screenshots of the errors you are seeing, a detailed description/writeup of what you are doing to receive the error(s), what operating system (name, type, version, etc). Also - tell us why/what you want to do with the Arduino in relation to all of this (it could be that the Arduino won't help, or won't be of use, or that there might be another solution to your problem).
18  Using Arduino / General Electronics / Re: Perf board wiring, solid core or stranded? on: June 22, 2014, 03:07:38 pm
seems to work fine in the breadboards.

Ok for perfboarding, but you need to be careful using it with breadboards; the diameter (gauge) Cat5 wire is slightly smaller than what is supposed to be used. As such, it can sometimes get 'stuck' and break off inside the spring clips. It's possible to fix - you have to take the back off the breadboard - but can be a pain.
19  Using Arduino / General Electronics / Re: Perf board wiring, solid core or stranded? on: June 22, 2014, 03:05:19 pm
Wire-wrapping wire works with solder, too!

Oh, I know that - but generally when you do wire-wrapping, you should go "all the way" - even though it is more expensive. It's also mechanically stronger than soldering (better for use where vibration is an issue).

Another option that I forgot to mention - which is easier to get in Europe than the States - is kinda a combo of soldering and wire-wrapping; it has it's own tools and other bits-n-pieces, but it seems kinda neat:

http://en.wikipedia.org/wiki/Wiring_pencil
20  General Category / General Discussion / Re: Describing a "Cube" on: June 21, 2014, 11:01:08 pm
afraid people can't grasp the implications of a "27 pixel cube"?

Maybe you are better than math than me, but I would be sitting there for a second thinking "ok, what's the cube root of 27?" or "what's the cube root of 125?"; and as the number became larger...well.

Maybe, rather than "3x3x3" or "5x5x5" - calling it a "3 cube" or a "5 cube" or an "n-cube" - would be the better option? Conveys the size needed per side, and no difficult factorization needed...

smiley-grin
21  Using Arduino / General Electronics / Re: H-Bridge with High Current Transistors on: June 21, 2014, 11:08:55 am
Perhaps the easiest way to build an H-bridge from discrete components is to start with
good MOSFET H-bridge or half-H-bridge driver chips(*), add 4 n-channel MOSFETS
well up to the power and current and voltage ratings, and follow the suggested circuits
in the driver datasheets.  If you have a supply of limited current-sourcing ability
that will help prevent expensive mistakes (lead-acid and lithium batteries are not
forgiving).

I'm going to second this, with the following extra bit: Size the FETs 4 or 5 times larger than your current needs (so you want 10A - pick 50A n-channel FETs). That will give you plenty of breathing room, and it won't be that much extra to spend. You likely won't need heatsinks for a FET h-bridge (with the larger FETs and the smaller current needs), but you might want to leave room for them just in case (or if you want to use it with even larger motors later).

That said - you would still likely to be better off purchasing an h-bridge; since you don't want to go down this route, purchase plenty of spare FETs for the inevitable destruction as you test and play with the h-bridge you do build.
22  Using Arduino / General Electronics / Re: Perf board wiring, solid core or stranded? on: June 21, 2014, 11:01:26 am
Used wire wrap years ago. Thinking of doing it again for a few prototypes. RS used to carry it in the stores, but no longer. Have to buy online. If anyone finds it at a good price, let us know.

The thing I hate about wire-wrapping is the cost of sockets, plus the fact that if you don't do things "just right" (and even sometimes if you do), and you find a bad connection during testing - you may have to unwrap multiple layers to fix the wire you want (then re-wrap, which may introduce further bugs).

Yes, solid wire for perfboard. I use telephone wire as it is cheap. Sometimes I can find it in the dollar store for 25ft. However I have to strip the 4 wires apart first.

My favorite (mainly for breadboarding - but in a pinch can be used for perfboard) is 25 pair telephone cable. I typically look for it at ham fests; sometimes you can get it from older offices during a remodel. 8 feet or so can last you a lifetime (especially if all you need it for are jumper wires).

Another potential option (though not great) is to use solid-core ethernet cable; 8 wires and "colors" - and can be found all over the place (again, office remodels are a great source - or ask the guys in your IT department, if you work in place with one).
23  Using Arduino / Motors, Mechanics, and Power / Re: Powerful DC motor to Servo motor on: June 18, 2014, 08:57:21 pm
A popular setup, but the servo does not necessary need to be physically attached to the wiper arm, just the pot will do.

A couple of more links:

http://www.webcomsknkwrks.com/mowers.htm  (scroll down a bit - part of the article details "monster servos")

http://www.modifiedpowerwheels.com/forum/topic.asp?TOPIC_ID=13458

http://www.instructables.com/id/Build-a-HUGE-RC-MONSTER-TRUCK-Golf-Cart-Wheels-/step6/Heavy-Duty-Steering/

Basically, you take a servo, and remove the motor from the control board - then you solder wires from the control board to the control lines of your (larger, high-power) h-bridge; provided that the control lines on the bridge are 5 volt tolerant, and you supply the servo with 4.8-5 volts - it should all work fine. Then just remove the remaining gear train from the servo, but leave the potentiometer in place. Attach a servo horn and connect that horn to your moving bit. A little tuning and debugging, and it should be good to go.

While zoomkat is right in that you don't need to keep the servo intact - you do need to keep the potentiometer (or one of the same type and size) connected to the servo board for this to work. That said, I would personally keep everything in the servo case, for a number of reasons:

  • The case will protect the electronics and potentiometer (especially if it was a "waterproof" servo)
  • The case will provide the support for the board and potentiometer
  • The case has convenient (and standard) mounting holes (and convenient/standard servo horn)
  • And the biggest one: The potentiometer shaft and such will be supported by some form of bearing to prevent side-loads from the horn being rotated externally from causing additional mechanical wear
24  Using Arduino / Project Guidance / Re: arduino code for L298n (serve as a switch) and peltier device/module on: June 16, 2014, 12:14:38 am
hi I would like to know how do i go about doing the arduino code for my project on peltier module. basically i would need to link up a L298n H-bridge to the arduino

Stop right there.

You didn't mention -which- peltier you were trying to control; this is an important piece of information for you to be successful. For instance, let's take a look at this peltier/heatsink combo from a well-known Arduino supplier:

http://www.adafruit.com/products/1335

Note the specs - it requires 12 volts at 5 amps.

An L298 - if you are lucky and have one helluva heatsink on it (with forced-air cooling) - is rated to provide up to 4 amps of current to a single load (provided you have wired it to operate in "parallel mode"); in practice you'll be lucky to get anywhere close to that.

Your peltier may draw more amps, but I doubt it would draw fewer - peltiers tend to be high-current loads, and many pull 8-10 amps or more.

In short, you likely have the wrong driver for your load - but until we know which peltier you have and what it's voltage/current requirements are, recommending a driver will be difficult at best.
25  General Category / General Discussion / Re: Question about posting creating a certain topic. on: June 08, 2014, 12:53:11 pm
Is there no other place where people share code, programs etc..? And for example tutorials?

The problem I am seeing here (correct me if I am wrong, though) - is no mention or connection with the Arduino. If it doesn't have at least some kind of use with the Arduino, it won't fit into any topic here, besides this one (General Discussion) and/or maybe "Bar Sport".

If it is, as you mention, only an "Xbee API compatible (with) Java" - actually, I am not even sure what that means...

Do you actually mean it's an API to communicate with an Xbee, written in Java? If so - then it certainly is more general than the Arduino, I would think.

Unless you have an Arduino project (connected to an XBee), and it acts as a part of the whole system; in that case, it would go into the Exhibition topic - but even there, it would seem that the Arduino portion is only incidental.
26  Topics / Robotics / Re: Using invisible dog fence as boundary for lawn mower robot on: June 08, 2014, 12:46:36 pm
Good thinking
May be a add-on for my mowrobot later.

I've been thinking about this (border/non-grass detection) for a while, ever since acquiring a Friendly Robotics RL-500 mower for $50.00 USD off a local guy on craigslist; I swear that one day I am going to get it running again...

My thing is that I am a very lazy person - and I don't want to dig and bury a powered "border fence" - so I have been contemplating a ton of alternatives.

One involves magnets and hall-effect sensors. Basically I would mold small rare-earth magnets into plastic golf-ball tees, and spike them along the edges and other no-go areas. Mount hall-effect sensors on the mower platform, and let it detect them. Passive, cheap, easy to replace.

Another option was to detect the presence of grass in some manner. I've thought about the idea of a humidity sensor, maybe coupled with a color sensor (or something) - to detect mowed vs. unmowed (vs non-grass) areas. Such could also improve a "random-walk" algorithm to be a bit more efficient.

A third option (by far the most ambitious) was to add some kind of custom LIDAR unit (for SLAM - so the robot knows where it is and where its been), plus a form of machine-learning via OpenCV to detect vegetation vs non-vegetation. I've seen some papers on how this is done (vegetation detection, that is) - replicating it would be very difficult, but in theory possible at a hobbyist level. Provided I spent the time. Again, laziness. Lol.

Likely, a combination of all of the above methods would be needed to make it work somewhat well. It likely would still need to be baby-sat as it worked (better than doing the work yourself, but still not fun here in Phoenix in the summer!). And, it still wouldn't trim the bushes or trees for you.

I currently pay a maintenance outfit to do my front and back yard every couple of weeks for $60.00; honestly, it's a bargain.
27  Using Arduino / Motors, Mechanics, and Power / Re: half stepping l298 on: June 08, 2014, 12:33:11 pm
The L298 is not designed to control steppers.

I take it you haven't read the datasheet?

Unless you are meaning "driving" is different from "control", then I can give you that; the L297 (companion part to the 298 for stepper "control") is the part needed...
28  Community / Bar Sport / Re: Linux instructions on: June 07, 2014, 01:14:08 pm
Have you noticed that a lot of instructions on how to do things in Linux are a bit like this picture:-

What I have found in my years of linux (been playing with it since 1995 or so) has been either instructions/tutorials to solve an issue tend to be extremely dense (verbiage, or just a lot of steps, or both) - or that they feels like a LISP program (at every turn, there is something different to do, nested lower - and in many cases a lot of dependencies to fight over until it comes back together at "the top").

Yes - sometimes I have run into the "draw an owl" scenario, but more often than not, the above two scenarios seem far more common to me.

Not that I mind - in fact, I enjoy it to an extent. I look upon it as a puzzle to solve - and most of the times I manage to get it figured out (often forgetting why I was there in the first place!). Part of it stems from my personality (and/or lack thereof), but part of it had to do with my masochism of one of my first linux installs a long time ago:

Turbo Linux 2.0 on a 486 laptop with 8 meg of RAM; I had to learn not only how to install it, but also how to re-compile the kernel in order to get the sound card, PCMCIA slots, and other peripheral devices all working properly. Ultimately, I got it done, but not without a lot of reference to man pages, the internet (over a modem back then), and more than a few books.

If that didn't scare me away, nothing will (actually, I had a small amount of prior Unix experience under my belt, so I wasn't all that unfamiliar with the "density" of *nix)...
29  Community / Bar Sport / Re: Linux instructions on: June 07, 2014, 01:05:39 pm
For the love of... I just want to know how to synchronize the system clock to my time server on boot-up...  smiley-cry  This has got to be a common scenario!  I could've written my own driver by now!

Also, honestly - this doesn't look that difficult (mind you, I've never tried):

http://www.akadia.com/services/ntp_synchronize.html
30  Community / Bar Sport / Re: Linux instructions on: June 07, 2014, 01:02:20 pm
I've found man pages come in two lengths

If you want a real fun one to read, check out the man page for "sudoers" (ie - the list of sudo users, more or less).

That file has a particular "grammar" behind it, described in something called "Extended Backus-Naur Form (EBNF)"; because I imagine most people have no idea what that means, the author of the sudoers man page decided to stick a "Quick guide to EBNF" in the middle of the man page.

It's not that it is long, it's just that it is weird and dense - a strange little bit in the overall landscape of *nix...

smiley
Pages: 1 [2] 3 4 ... 374