
Metealp97
Turkey
Asked
— Edited
hi i am new to ez-b and whole robotics world but i would like to add a lcd screen to ez-b i have no idea how to do it can someone explain how to do it from start and how enter scripts on lcd thanks
i will buy that right away i actually thinking of buying 2 and could you give me and example text code for that lcd like "hello world" because i dont really know how to enter texts on ez script and it would be nice if you can tell me how to do tricks like moving "hello world" text to side to side or display diffrent informations
one last thing how can i set the lcd to uart i couldn't find the info i need so it would mean a lot to me if u can tell me here
thank you again
For now though, I will be reading the manual (download here) and figuring it all out.
The LCD has it's problems;
1. Connecting to Melvin on port D7 (I don't think the port was the issue) sent Melvin insane... When sending commands to the LCD his neck would on occasion judder (ports D1 & D2) and on one occasion I lost connection and had a frozen ARC. That said, it's been working fine on Test Bot. (Any ideas why that happened? More than once too.)
2. The commands in the manual are not exactly clear. They look it but when using them it's a whole different ball game.
First of all, there is no mention in the manual that once you are in TT mode that you can't get out of it. For instance;
Code:
works great and outputs Hello World on the display.
Follow it up by trying to clear the screen (CL) and you end up with Hello WorldCL on the display.
After a while I stumbled upon using;
Code:
to exit the mode. All commands after this seemed to work... kinda.
The next problem is positioning the text. For my scripts I need to set the static text in 1,1 and 1,2 for the 2 lines. Set static text at 16,1 and 16,2. Then update the variable written at 12,1 and 12,2.
But, the position text command (TPxy) doesn't quite work right. I have no idea at the moment how it works. Using 00, 11, 0,0, or 1,1 doesn't seem to put text in the top left. I thought I had some sucess with 0001 to put it in the top left but when looping it showed that it was coincidentally in the top left anyway, the command was doing nothing.
A bit more playing around and it seemed to be OK with this;
Code:
Or almost... It would cut the first character off and the lines were around the wrong way... Using 0101 and 0102 didn't give anything like the desired results either...
I did, however have great results doing things the long way... this "Hello World" animation works fine but as much as I like coding I will not be writing any scripts like this if I can help it.
Code:
Honestly, there must be an easier way. And I will find it. But bear with me on it, I need to play a bit more.
What I do know is I'm glad I ordered the I2C one yesterday, which has easy to understand instructions. I will use that one in Melvin and use this one in something else, or just play around with it.
Keep your eyes peeled for more on this though, I wont give up on it... yet...
Edit: It's on D14 on Test Bot hence the change in port number halfway through.
The commands are;
CL = Clear Screen
CS0 = Turn Off Cursor
CS1 = Turn On Cursor
BL0 = Turn Off Backlight
BL1 = Turn On Backlight
TP,x,y = Position Text. Example SendSerial(D14,9600,TP,3,1) - Top left = 0,0 bottom right = 15,1
TT = Text Entry
0 = Exit modes.
Quick Example, I will work on more now;
Code:
Another example of how to make it do it's thing is;
Code:
That way saves having to write out all of the SendSerial lines.
Positioning of text is simple when you think about it (I think I may have been getting mixed up on the X and Y)
However, one thing I've noticed and I hope someone can point me in the right direction or explain it is this...
If a servo is being held and SendSerial is executed the servo will twitch. Not every time but a lot of the time. I have my test bot displaying the current ping along with the current time on the display, updated every 500ms. The sweep servo is held at 20 but twitches every second or so.
Is it the display causing this or is it a general occurrence?
Lcd screen
how would you wire this up to the ez-b?
Simple to wire up
Code:
Then plug it in to a digital port on the EZB
Excuse the poor quality it was taken quickly
Just make sure it comes with an LCD, that picture is of just the "backpack" (or LCD driver)
I know what im getting next.
Code:
There may be a better way to format the time & date, I haven't spent long looking in to that but the above way works. It also updates every second with a blinking . which could be changed for every minute if it is eating up the communications.
As always, easy to change for your LCD, port and baud are variables at the top of the script.
As much for reference in to doing anything than as an example for making a clock.
Edit: Minor bug fix made to hour when changing to single digit would have left the leading 1.
I guess I will be moving over to I2C for the new one, hopefully that'll avoid these slight issues (they make Melvin look like he has gone insane).
im thinking noise on the ports.
could be that ur ez-b is one of the odd ones.
Just wanted to flag it up since I'd not heard anything about the issue.
you should make your own website for posting projects you've made and posting ideas and scripts.
Once Melvin is finished (if he ever get's really finished but I suspect he will forever be having upgrades) I may throw the details on a site but for now I don't even have the time to update any of my other sites.
thanks so much for the scripting Rich.