5/15/2010
The following video describes the effort.
ciao -Nagi 5/11/2010
ALIBE uses AC4790-1000 as its onboard communication module (COMMOD). AC4790 is a Transceiver able to communicate with another AC4790 at varied Baudrates and with a clear line-of-sight, is able to get a range of 4 miles. This clearly was one of the factors that helped me decide to go with it as opposed to other products in the market.
There are other benefits to using AC4790 from future scalability standpoint. One, it is fairly easy to work with compared to other competitive products in the market. It’s Pin layout and Pin characteristics are easy to follow. And, mostly, can be effectively functional just with 3-wires into the microcontroller. It has many featuers. However, for ALIBE, all he needs to do is wait for commands from homebase Command Center and either react to the commands or send data back. A very “Reactive” behavior. For something as simple as this, one is able to make this work with 3-wires. The second reason I chose this was, the range. In a clear Line-Of-Sight, ALIBE is able to keep the communication open for upto 4 mile radius – which is very useful for ALIBE’s behaviors and Thirdly, AC4790 supports not just “Peer-To-Homebase” but, also, “Peer-To-Peer”. So, if in case I were to build another ALIBE, the two will be able to communicate with each other and also with the homebase Command Center effectively. This last feature is very useful for the future of ALIBE.
So, how did I get started with AC4790?
Well, like many out there, I started asking people and searching web sites for recommendations. I was given a pointer to Aerocomm by a couple of folks in the Parallax forum. I called Aerocomm technical support – BTW, very helpful folks over there. I laid out what I was looking for in my project 1) Range 2) simplicity in interfacing 3) scalability from peer-to-homebase and peer-to-peer and of course 4) cost. Aerocomm has many products under the Transceivers umbrella, however, from the discussions with the Tech support, I determined that AC4790 meets most of my requirements if not all. Cost being one of them that was not that great. But, overall, I felt AC4790 is a good match for what I’m looking to get and do.
I was very new to this long range radio communication field and definitely my handicap was also that I’m not that strong in electronics (always learning new stuff). So, in order to speed up my learning curve, I decided to buy Aerocomm’s System Development Kit for AC4790. The kit comes with everything you need to get a good handle on things. It comes with two dev boards fully loaded, including AC4790 mounted on each, power adapters, USB cables, Serial cables, manuals, software and even a great carry case. I thought this was a great deal. I paid, $199 USD to get this kit. Which did not seem too bad at all. BTW, I don’t own any stocks of Aerocomm or any special interest. Just a kicked up hobbyist.
The dev boards can be powered using USB alone – which is what I do everytime I test my stuff up.
To start things out, I hooked up the dev boards via USB to my laptop 2 separate USB ports. Kicked off the app that came with it and voila, I was able to send and receive data back and forth from the two dev boards. The software also allows you to view/edit the EEPROM settings (these settings define the core behavior of the AC4790 chip) very easily. It also shows the address of which setting you’re modifying and the definition of the settings (that is what is does and how it impacts the behavior of the chip). You can also get this information in the manuals.
It is worth noting that the dev boards and the AC4790 can operate at various choices of Baudrates. Keep in mind that I had to bring down the baudrate a few notches (4800) when I started interfacing AC4790 with my Propeller chip.
Once I got a good feel for the chip and how they work, I took out one of the AC4790′s from one of the dev boards and started to think about building a carrier board for my Propeller interface. Which is another posting in this blog.
If you’re looking to using AC4790 in your own projects, you want to keep a few things in your mind
- Read their manuals – found in their site above. There’s the Kit Manual (that explains the dev board and the Software) and then there’s the AC4790 User Manual and DataSheet. Pay extra attention to the data sheet of 4790. Both are very well written.
- In the AC4790 manual (you can get one from this blog), pay special attention to the Pin Configuration. For a simple Tx behavior, you only will only need to tap into a few pins out of the 20 pin lot.
- 1 (Session Indicator),
- 2 (Tx – from Propeller to AC4790 device),
- 3 (Rx – from AC4790 device to Propeller),
- 5 (GND),
- 9 (Rx Indicator),
- 10 and 11 (both need to be 3.3v VDD). and that’s it.
- I needed pins 1 and 9 for my LEDs (pic below).
- My carrier board (very simple one BTW), has soldered LEDs and also exposes the pin 1 and 9 (as pin 1 and 4 carrier board) – if in case I need to further use those pins for future work. I am happy w/ the way it turned out.
You should be able to find more posts on my blog that talk to, “How to interface AC4790 with Propeller” if you are looking to find out how I did it in ALIBE.
ciao
-n 5/2/2010
A.L.I.B.E - Artificial LIfe BEing – is in the makings of becoming an autonomous land roving robot. The sole purpose of his life is to wander about land terrains in search of his “homebase”. At the skeletal structure, ALIBE is a modified all-wheel drive Traxxas E-Maxx RC Truck retrofitted with various electronics components to give him the needed sensory and reactionary behaviors.
Sensory components essentially help him gather environmental and infuential data he cares about as he wanders about – such as temperature, light, touch, earth coordindates, acceleration and inclination, compass heading, object and obstacle detection/range, vision and other important pieces of data that will help him make the needed decisions to get to his homebase.
Reactionary components essentially help him react upon in relation to the data he gathers – such as motion, display, communication to/from home base, action/reaction, sleep/awake, etc.
In addition to the sensory devices and reactinary devices, ALIBE is equipped with not so expected components such such as a communication module (powered by Aerocomm AC4790 1000); that he uses to communicate two-way with the homebase "Command Center". Essentially, responding to commands to request-of-data-to-be-relayed-back and request-to-react-to-data-on-hand. Both of these behaviors are important to ALIBE’s overall survival patterns. He needs to be able to send data to the homebase when requested and react to the commands sent by the homebase – such as overriding navigation behaviors. Think of this as similar to the Command Center at NASA sending data over the air, thru space to the Mars Rover and back – this one, only on a much smaller scale and on a shorter range.
ALIBE is equipped with battery packs to fuel all the electronics he runs or decides to run at behavioral time. Which also means, that he knows when to shutdown certain modules as needed or to boot up for use as demand rises.
The brains of ALIBE, are powered by an Arduino-Mega microcontroller board. Arduino in my (and probably several other enthusiasts') opinion is probably the most versatile microcontroller platform for such an application. All of the Arduino platforms are based off of Atmel's microcontroller chips.
ALIBE employs Arduino Mega in a way that it leverages the speed of the MCU to gather sensory data and then induce methods to react to the data. Such as ALIBE and the homebase Command Center, another is set to gather sensory data from less intensive sensors such as temperature, accelerometer, compass, CdS, Sonar Range detectors, etc., while another gathers data from the Vision enabling camera; And, another monitors the overall demand-need-status of devices to ensure switching on and off of the devices; another to handle motion; LCD displays, among other behaviors.
A bit more about the communication module in ALIBE; The AC4790 is made by a Aerocomm. It is a Transceiver – very user/developer friendly. AC4790-1000 was chosen among other similar devices for a couple of reasons. One, it is fairly easy to work with compared to other competitive products in the market. It’s Pin layout and Pin characteristics are easy to follow. And, mostly, can be effectively functional just with 3-wires into the microcontroller. It has many featuers. However, for ALIBE, all he needs to do is wait for commands from homebase Command Center and either react to the commands or send data back. A very “Reactive” behavior. For something as simple as this, one is able to make this work with 3-wires. The second reason I chose this was, the range. In a clear Line-Of-Sight, ALIBE is able to keep the communication open for upto 4 mile radius – which is very useful for ALIBE’s behaviors and Thirdly, AC4790 supports not just “Peer-To-Homebase” but, also, “Peer-To-Peer”. So, if in case I were to build another ALIBE, the two will be able to communicate with each other and also with the homebase Command Center effectively. This last feature is very useful for the future of ALIBE.
The ultimate goal of ALIBE is to navigate about the neighborhood, and tackle obstacles and reach the homebase coordinates successfully.
The new revised version of this project is on-going for the past 3 months now and I am hoping it will be completed in another 3 to 6 months.
This blog is here to keep and post updates on this project as it happens. You should find a lot of information here 1) background theory 2) electronics details such as parts, circuit diagrams, hardware assembly, etc 3) some level of source code 4) and of course a lot of pictures.
ciao
-n 10/24/2006
In this post I will attempt to describe how I built an interface w/ btwn the AC4790-1000 and the Arduino Mega. To get an introduction to what and why of AC4790, please see my earlier post here.
So, as stated in my last posting, AC4790 has 20 pins. Of course, for my application in ALIBE, I will only need for the communication module to be “reactive” vs “proactive” – meaning, the Command Center in homebase will issue a command to ALIBE’s communication module (AC4790-1000) and then will expect ALIBE to either return data back to it or take an action onboard ALIBE. This behavior is what I define as “reactive”. Proactive would be when the communication module would proactively send data to the homebase – ie., without being “asked” for.
In this scenario, I only need to tap into only 4 pins off the 20 pin lot. Here’s the description of these pins (as I said in my earlier posting).
AC4790 Pin 2 (Tx – from Arduinoto AC4790 device), AC4790 Pin 3 (Rx – from AC4790 device to Propeller), AC4790 Pin 5 (to Arduino and Power supply GND), 10 and 11 (both need to be 3.3v VDD). and that’s it.
An important note to keep in mind in terms of the power supply to the AC4790 module's pins 10 and 11. During full transmission, the module pulls 1300mA current. It is very important that your 3.3v supply is capable enough to source 1300mA. Also, keep in mind that Arduino Mega (and probably other Arduino boards) is only able to source 50mA via its pins. So, do not, power the AC4790 via the Arduino Mega. Make sure you tie the Arduino, AC4790 and the power supply grounds together.
I have a separate posting to discuss the power supply options I have considered for ALIBE. More on that there.
Read thru the AC4790 manual especially the Pin characteristics and their meanings. Understanding this will be very helpful – it is only 2 pages long.
I have highlighted the pin layout on AC4790. Pay close attention to the numbering.

Look for the following posting on how I tested this setup. ciao -n
|
|
|
|
|