DJ Sures Homepage

Share/Bookmark

Shortcuts

External Links
Resonanz Korper

DJ Sures on Myspace






Warning: The API for the EZ-B is under development and new functions are being added. Contact me With any question.

 
Project name: DJ's EZ-B robot project board
Updates: April 15, 2010 - Added auto object collection to EZRobot API. Automatically stops modified servos when object is detected and throws an event.

April 10, 2010 - Added Youtube video demonstrating Bluetooth controlled Wall-E. Demonstrated control from PC, Web Server, and Mobile Phone.

April 03, 2010 - Added embedded web server into example application

December 20, 2009- Added EZRobot extender interface that contains Robotic specific functions and utilities.

November 20, 2009 - First prototype created.

Description: In 2007, I set out to build my own pcb for my robots. After numerous requests, i'm making my board available to you! *Smile*

This is a powerful dual functioning project board.

1) You can program the onboard microchip pic microcontroller like the arduino and use it as a standalone project board. Most popular compilers are sourceboosts (c, c++, basic), picaxe (basic), and ccs (c).

2) You can use it as a Dumb controller From your pc via bluetooth or serial! Download my visual studio sdk dll and program your robot/circuit programs in visual basic or c# .Net!

How EZ-B works: Generally, microcontrollers execute a specific code called "Opcode". There are microcontroller "Programming languages" that "Compile" into "Opcode". That opcode is then uploaded Into your microcontroller from your computer. The most popular microcontroller programming language are assembly, c, and basic.

The same applies to the pc world, there are also many programming languages for creating applications that run on your presonal computer (java, c#, c, c++, basic, etc).

Now, with that knowledge... My Robots Code are written in c and assembly; the compiled opcode is stored and executed directly in the microcontroller. To many people, this mechanism Is difficult to understand and debug. It also limits creativity because you will spend a lot of time worrying about debugging.

What EZ-B offers is a new method of building robots and electronic projects. My new method enables writing and running the program in visual studio using c# or visual basic on your pc. The program you create will communicate with the EZ-B microcontroller board over a bluetooth connection.

EZ-B prevents the programmer from having to know any microcontroller code or electronics. You simply plug the sensors, servos and buttons into the microcontroller board. And now from your visual studio program, you can read, write and control all of the sensors, servos and buttons. This all happens in realtime over a bluetooth connection. If you are new to programming, learning visual basic Will be a peice of cake.

The only limitation to EZ-B is the computer or phone running your program must be within 15 meters of the robot or device.

If your computer does not have bluetooth, that is okay because I have a line on very affordable usb bluetooth adapters.

If you have a mac, I will be releasing a mac library so you can program your robot from the mac. Also, it will be compatible with iphone so you can control your robot from your iphone over bluetooth! Iphone robots? Cool!

I am going to build an EZ-B community webpage with example source code for various projects. The projects will indeed include Wall-E, K-9 and a few others.

Features - Circuit board is shipped assembled
- Firmware is pre-Loaded and tested
- 8 analog to digital converters
- 18 digital input/output/servo ports
- 2 modified servo ports
- Visual basic & c# .Net sdk
- Operates at 20 mhz
- Optional 5v voltage regulator (by request)
- Common [signal/positive/gnd] 3 wire connector for all i/o
- Onboard programming pins & hvp diode
- Lifetime firmware and sdk updates!
- No microcontroller programming experience needed!

Project ideas Have you had a project that you have always wanted to build? Maybe you need some ideas? Here are some projects you can easily build with the EZ-B.

- Outdoor weather station
- Autonomous robot (See my Wall-E, K-9 or Cookie Monster)
- Interactive desktop robots
- Home alarm system
- Oscilliscope
- Electronic blinds
- Anything you can dream up!

Widgets If you are familiar with electronics, you may purchase sensors and servos directly from a website like Hvwtech. Otherwise, I can wire and package sensors and servos for your project. I refer to these as Widgets. They contain a 3 wire plug that connects to one of the i/o ports on the ez board.

The following widgets are available for purchase apon request:
- Modified servos
- Regular servos
- Rfid reader
- Temperature sensor
- Light sensor
- Ir distance sensor
- Ultrasonic distance sensor
- Leds of any color
- Switches
- Push buttons
- And more! Just ask

To purchase After receiving many requests to sell this board for fellow hobbiest and robot builders, I am finally setting aside the time to do it. *Smile*

I currently do not have a sales distributor. When I have free time, I will contact a few places to see if they are interested. In the meantime, it's best to contact me at AlienCurv@hotmail.Com.

Email and we can discuss shipping and you can pay over paypal. I also don't mind if you want to mail a certified cheque. I'm pretty trusting and willing to help out any fellow roboticists and hobbiest.

There are three versions of the board...
- Ez-S Is the serial version *
- EZ-B Is the bluetooth version
- Ez-W Is the wireless serial version *
* Requires a serial port on your pc or a usb<->Serial adapter

When you email me, please let me know which one you are interested in or if you have any questions.

P.S. The visual studio development environment can freely be downloaded as a trial from microsoft's website Here.

What's to come If interest keeps up, I will be expanding the site to contain Ez widgets, an example code repository, a project showcase and diy schematics. I would like to put this project on a website of it's own, So if you are interested in helping out on this project, please let me know.

1) I have also been thinking of implementing an Audio streaming feature using roman btc's 2 channel Audio. There will be a widget that will enable streaming of Audio over the bluetooth or serial connection to your device.

2) there has been a lot of activity with iphones recently. I have decided to create a iphone library that will be similar to the visual studio one. This will allow plenty of apps to be written using the iphone to connect to your robot/project Over bluetooth. I am excited about this possibility as it will be fantastic to see iphones integrated with your homemade hardware!

3) I have recently experienced writing a preprocessor/byte code compiler for a client. It has me thinking of building a simple guI scripting interface for this board. It will help those who can't program or don't own a copy of visual studio.

4) finally, I will continue to be updating the sdk and will gladly host peoples example contributions. If you are interested in making projects with this board, video taping them, taking pictures and documenting, Then I will send you a free board. I would like to build a community around this board. I beleive there is a lot of room To grow and it's something I would really enjoy.

Beta preview video
Downloads - Visual studio .Net sdk dll [download] (version 2009.11.24.00)
- Visual studio c# .Net example program [download]

Visual basic/c# .Net sdk Ezcommunicator

Event onloghandler(string logtxt)
This event is executed when ever information is logged or errors are raised.

Readonlybbool isconnected
Returns true if there is a connection to the EZ-B or ez-S board.

Bool debugverbose
If set to true, verbose logging will be done.
*Warning: This will cause performance issues. Use only for debugging and learning.

Readonly bool commandinprocess
Use this in a multi-Threaded application to check if there are commands in the queue to the EZ-B or ez-S. It's rare that you Will experience a blocked situation.

Readonly int servo_max
The maximum angle of a servo.

Readonly int servo_center
The center angle of a servo.

Readonly int servo_min
The minimum angle of a servo.

List Getavailableports()
Returns a list of all available serial ports.

Void autoconnect()
Recommended method to connect to the EZ-B or ez-S board. This method will scan all available ports.

Void connect(string portname)
If you wish to specify the port manually, or experience issues with autoconnect(), then use this.
You may also use this if you are using more then one ez board on your computer.

Void disconnect()
Disconnects from the current connection to the EZ-B or ez-S board.

Void debugalladcports()
Logs all adc (analog digital convertor) values (0-8). This will log to the onlog event.

Void debugalldigitalports()
Logs all digital port statuses. This will log to the onlog event.

Bool pingcontroller()
Sends a ping request to the controller.
Will return true if controller is responding. False means the controller is offline.

Bool setdigitalport(digitalportenum digitalport, bool status)
Set the status of a digital port.
When status is set to true, +5 volts will be outputted on the specified port.
When status is set to false, gnd will be outputted on the specific port.
Will return true if successful.

Bool getdigitalport(digitalportenum digitalport)
Returns the status of a digital port.
If true, voltage is applied to the specified port.
If false, gnd is applied to the specified port.

Bool setmodifiedservo(modifiedservoportenum servoport, modifiedservodirection servodirection, modifiedservospeedenum servospeed)
There are two modified servo ports. Any servos plugged into these ports can be controlled by this function.
The servos can be set to rotate constantly, to drive wheels or tracks. There are 4 speed adjustments and 2 directions.
Use modified servos on these ports, and attach wheels to them.
Will return true if successful.

Bool setservoposition(digitalportenum digitalport, int position)
Unmodified servos can be connected to any of the digital ports.
This function will rotate the servo on the specified port the number of degrees specified.
Will return true if successful.

Int getadcvalue(adcenum sendsensor)
Return a value between 0 and 255 that represents the voltage on the specified adc port.
The voltage must be between 0 and 5 volts.



Ezrobot

Int eyedistancemin
Set the minimum distance that objects are allowed near your robot by the sharp analog ir distance sensor(s)

Int floordifference
If you have a sharp analog ir distance sensor aimed at the floor, specify the ammount of difference you will accept.

Adcenum irlefteyeport
Specify the port that the left sharp analog ir distance sensor is plugged into.

Adcenum irrighteyeport
Specify the port that the right sharp analog ir distance sensor is plugged into.

Adcenum irfloorport
If you have a sharp analog ir distance sensor aimed at the floor, specify the port that it is plugged into.

Digitalportenum servoheadhorizontalport
If your robot has a head that can move horizontal, specify the port that the servo is using.

Digitalportenum servoheadverticalport
If your robot has a head that can move vertical, specify the port that the servo is using.

Digitalportenum servoleftarmport
If your robot has a left arm, specify the port that the servo is using.

Digitalportenum servorightarmport
If your robot has a right arm, specify the port that the servo is using.

Void ezrobotscanresult centerhead()
Centers horizontal and vertical head servos.

Bool ishuman()
Stops moving, uses the horizontal and vertical servos to scan the sharp ir distance sensors to see if there is a human or interactive object In front.
Returns true if detects a human or interactive object.

Bool isleftclear(int headvertical)
Scans the head to the left and returns true if there are no objects in path.

Bool iscenterclear(int headvertical)
Scans the head to the center and returns true if there are no objects in path.

Bool isrightclear(int headvertical)
Scans the head to the right and returns true if there are no objects in path.

Bool isfloorclear()
If your robot is equiped with a sharp analog ir distance sensor, will return true if there are no obstacles on the floor.

Bool isobjectmoving()
Scans where the head is positioned and returns true if anything is moving in front. Requires a sharp analog ir distance sensor.

Void goforward(modifiedservospeedenum servospeed)
Set modified servos to move forward.
Accepts a speed parameter.

Void gobackward(modifiedservospeedenum servospeed)
Set modified servos to move backward.
Acccepts a speed parameter.

Void goleft(modifiedservospeedenum servospeed)
Set modified servos to turn left.
Accepts a speed parameter.

Void goright(modifiedservospeedenum servospeed)
Set modified servos to turn right.
Accepts a speed parameter.

Void gostop()
Set modified servos to stop.

Void initfloor()
If your robot is equiped with a sharp analog ir distance sensor aimed at the floor, it will need to be initialized.
Initialize only when you are certain the robot is on an acceptable surface.
Recall this function if you wish to relearn the terrain.

Ezrobotscanresult getnearesteyeobject()
Scans head left to right and returns where the closest object is.

Ezrobotscanresult check(int horizontalpos, int verticalpos)
Returns a ezrobotscanresult that contains information if the path is clear from left to right.

Ezrobotscanresult autonomousforward(int cycles, modifiedservospeedenum servospeed)
Robot drives forward the specified number of cycles. If the robot detects an obstacle in it's path, it will return a Ezrobotscanresult with the information.


Example code Connect, retreive and display all adc and digital port input values

Ezcommunicator ezcommunicator = new ezcommunicator();

Ezcommunicator.Autoconnect();

If (!Ezcommunicator.Isconnected)
Return;

Textbox1.Clear();
Textbox1.Appendtext(ezcommunicator.Debugalladcports());
Textbox1.Appendtext(ezcommunicator.Debugalldigitalports());

Ezcommunicator.Disconnect();




Copyright © 1995-2010 DJ Sures