New User Needs Adcice

Hello, I am about to begin a new project. For my senior year in High School, I am required to build something which must first be approved by an engineering teacher. My project will involve sending and receiving data to and from a telegraph via USB. For my questions, you can imagine that the telegraph is a pushbutton and an LED.

I have been researching different platforms and boards to work with, and the Arduino boards keep coming up wherever I look. I have a whole bunch of questions and would really appreciate any help you guys can give me.

  1. I need a board that can stream data to and from the board via USB in real time. Which of the many Arduino boards would be best for this application?
  2. How easy will it be to code the interface between the board and the computer? Essentially there will be 2 modes, transmit and receive. Both will only be sending 0's and 1's, where 00 is silence, 01 is dot, 10 is dash. Perhaps 11 will be an error code or something. Will this be difficult?
  3. I am very good with C++, and have begun learning Java. When I finish coding a project with the Arduino, will it be possible to write an interface with C++ or Java for the device? For instance, a Java window will have a place to enter what you want to be transmitted, then you hit Submit, the data is passed through the USB cable to the board, which then sends it to the telegraph. That's the idea, anyway. Is this possible?
  4. When a project is finished, is the Arduino board supposed to be replaced? For instance, if I wanted to build two of these, would I build a second board, or only one for testing and then replace it in both models with a chip and a USB port?

Thanks to anyone who replies, I really appreciate it. I look forward to reading your answers and beginning work with a brand new board!

Sure is, I reckon you could do it in a night.

If you're going to be using a breadboard I'd get the Arduino Nano, otherwise the Duemilanove will serve fine. They both come with and are powered by USB.

As an engineer, ham, and programmer I can assure you that you can do what you are proposing without too much problem at all. It would be a fun project and a great learning experience. I'd suggest the Duemilanove as an inexpensive platform with even much more capacity than your project will require. When you have finished the project you'll still have something you can use for the next one - and there will probably be a next one for you.

I'm not quite sure I understand with your question 4, however. If you are asking whether the arduino can be reused/reprogrammed the answer is yes. In fact unless you are a superb programmer you'll find yourself reprogramming yours over and over during your project's development.

Thanks guys!

@RoyK - for question 4, I know the board can be reprogrammed, but I was wondering whether or not the board was meant to stay with only one project once it's finished. For instance, in my school one student used a USB starter kit from Microchip (which ended up being a huge problem, which is why I'm not using it). After he finished programming it (and reporgramming it) until his project worked, his next step was to build a breadboard model of his starter kit, and then a PC board. In other words, he only used the starter kit to get everything working, then he replaced it because the starter kit was expensive and reusable for a different project. I was just wondering if this is usually done with the Aruduinos - when I get my project working completely, do I want to remove the Arduino so I can reuse it, and replace it with a PIC and a USB port?

You could leave the board built into the project, or if you want, you can take the programmed chip out of the arduino (or buy a new one and program it ) and set it up as a standalone, which might save you some space and probably won't be too hard to do.

Thanks everyone for all of your messages! They really helped a lot

I still have two questions I just want to clarify though

  1. I understand that the board is programmed via USB (as opposed to removing the chip and using a dedicated programmer or something). For my project, after the chip is programmed, I'm going want to send data back and forth between the board and the computer via USB. Is this also possible? I just want to make sure I wasn't unclear in the first post

  2. When the data is sent via USB, will I be able to write my own interface for the board? For instance, a Java window with a button that says "1010101" on it, which when clicked, will send "1010101" through the USB cable to the board, and then make an LED turn on at every '1' and turn off at every '0'. Is this possible?

The USB connection is a Serial port over USB that is used both for programming the board when the bootloader is active and for "normal" serial communications when your sketch is running, using the Serial object predefined in the Arduino/Wiring toolbox.

So, Yes, any program that can read and write to a serial port on your PC can be used. You can code this in Java, C, C++ or Python. There are several discussion threads on this forum about this topic.

  1. Yes, there are several ways to approach the 'end of project' phase. You can either just dedicate the Arduino board to the dedicated application and buy another. You can purchase a mini version of the board that includes a USB connection and load your application code and needed external components and mount it into a small enclosure. Here is but just one example:

http://store.fundamentallogic.com/ecom/index.php?main_page=product_info&cPath=2&products_id=28

  1. The Arduino USB serial interface and Arduino serial software commands are a very simple basic character based interface, one character at a time, in either direction. How you send send and receive data, assemble messages and commands, and act on it is all under your own program control both on the PC side and the Arduino side, you are free (and must) develop the protocol yourself. The fact that it is such a low level interface means if can be programmed to do just about anything but puts the burden on your software skills.

Good luck with your project and wish you success.

Lefty

Thanks for all your help!

You might want to consider this:

http://www.moderndevice.com/RBBB_revB.shtml

It doesn't have a USB interface but you can add one with this:

http://www.moderndevice.com/connect.shtml

One USB interface is all you will need for multiple RBBBs - you could develop and put your project into the RBBB and just get another RBBB for the next project if you don't want to reuse the first one.

Another benefit is the RBBB will plug into a standard prototype board. I developed a rather large project this way and found it a great way to go.

And the price is certainly right. And yes, it will do everything the Duemilanove will do.

NotEnoughChips,
On the computer end (of your project) use Hyperterminal initially to send/receive data from the Arduino. You can implement a fancy UI later.

To connect using Hyperterminal, you simply have to work out which COM port your Arduino is connected to. Use Device Manager in control panel to determine this.
Oh, and you also need to know the connection speed. You set this in your Arduino code.

Btw, I like RoyK's comments about the moderndevice.com gear. Their gear also comes in kit form to cut $ even more.