Perry_S
USA
Asked
— Edited
Trying to work through the neopixel tutorial. Is this working for others? I can't get the Arduino sketch to compile with new and old versions of IDE.
Is this working for others or is the problem on my end.
Thanks
Do you have a link to the tutorial that you're referring to? Who made the tutorial? Where is it? Etc...
@DJ I think it might be this tutorial that Perry is referring to... Neopixel Ring with ezb4
This may be a silly question, but did you read the description of the tutorial which bob made? He has listed requirements. Does your environment meet those requirements?
Also, you didn't include an error message that you're receiving.
I'm sure bob may chime in if he's around. But I'd start by reading the description and following the requirements that bob documented in his tutorial.
Yes that is the correct tutorial and I did read the description. I also have experience using the neopixel ring with MRL with a satellite arduino.
I am going to work on it a bit tonight and I will post more info with the specific errors I am receiving.
Excited to get this going because once it is that means that in a little over 1 month after receiving my EZB with no knowledge of it and being an amateur coder I will have recreated all of the MRL functionality I had after a year of working with that. And it actually works now.
That's amazing news - you're a poster child for ezrobot! Let's keep this momentum going
As for the errors, share them and we'll get you running asap
That's awesome @Perry... Too bad we can't get Gael himself on board with ez robot... Think how much further the inMoov project could advance over MRL...
@Richard R Build it and they will come.
OK, still no luck for me. I downloaded the recommended Arduino version 1.6.3. Wen I try to compile the sketch here is what I get.
Any ideas?
The tutorial's script has errors maybe a bad copy & paste.
The tutorial is related to this thread: https://synthiam.com/Community/Questions/6767
Can you try the code from post #67 (RobertL184)
And then there is a change/add-on post #68
What kind of arduino board you have ?
I was just reading through that thread and was at that point. So I used the code fro post #67. I still had some compile errors but much fewer.
I am trying to figure out the #68 post as that may clear up the rest of the errors but I don't understand it yet.
I have a mega I am testing with. I have an uno if that is needed. I eventually want it to run on an adafruit pro trinket
Perry, You need to add this line into the sketch; #include <Adafruit_NeoPixel.h> for some reason it doesn't show when the sketch is uploaded in the tutorial.
Hi Bob, I see now that is missing from the tutorial script. I added it back in and I was back the page of errors. Oddly enough I can get the script from post #37 of the reference thread to compile. Are there differences between the two? or different functionality?
Thanks
The sketch in the tutorial works for me, with that line added in and using Arduino version 1.6.3., as I see you are. The sketch from post #37 is the one in the tutorial less that line. I'll try and upload it a different way. Do you have it all working now?
Not yet Bob. I am still nutting it out a bit. Appreciate all the responses. I'll get there and post an update as I progress. Hooking up the wiring now.
Let me know, I just uploaded the sketch to the tutorial another way, so that it is complete - with that line in it. Then I tried compiling it and got error messages too. I worked on this a couple of months ago and had everything working, so I don't know what to tell you, I give up with this Arduino stuff! Unless someone can figure it out, I'll have DJ delete the tutorial.
OK Bob. I will try further tonight. Hopefully you won't need to delete the tutorial as I am proof that people want it and the neopixel functionality. Backwards compatibility for the Arduino IDE is frustrating. Let's see if we can get it working.
You can delete your own tutorial.
If code formatting is giving you an issue, Upload the files as attached rather than pasting. I've mentioned this to you before. Simply press the attach file button. Select file, upload. Upload the files so they show as links. It's how I upload the source for big projects like plugin source etc.
Also, the tutorial update you made is missing the
I have had this working on my InMoov and on a couple of other bots. Unfortunately, the past 40+ hours I have been working because of an issue at work. Also, unfortunately this weekend is full of family stuff and more work. Trying to find time will be difficult but I will try to figure out what needs to happen to get it working again. It is just going to take time to find time to do it.
I haven't had any success Bob. I can compile the sketch from the reference thread and upload it. Once I did the neopixel quit running a previous script and went dark. Do you recall what the state of the ring was when the program initializes? Is it off? I don't know if the problem is with the Arduino and sketch or trying to activate it serially
I don't think it matters what state the ring is in when you activate it. I have found that I need to connect the EZB first then turn on the ring. If the Arduino is powered up before my EZB is connected it prevents my EZB from connecting. Try doing it in that order and see what happens.
No results with booting up in that order. When I mentioned initial state, I meant any lights or patterns on. Mine just stays dark. Trying to determine if the problem is Arduino to neo. I don't think so because I can run the adafruit examples through it.
Also, just to confirm, I am cutting and pasting the examples into the scripts I make with the script manager then running them. Is that the right way to activate it?
I just hooked up an old arduino that had the sketch on it and tested the neopixel ring. It works.
Now to go through the process of dumping the sketch from the tuto to it to see if I can get it to work. If not, I have this sketch backed up to my NAS and will get it for you.
First, let me document the wiring.
From EZ-B Ground on D5 to com port ground on Arduino Signal on D5 to RX on Arduino
Power regulator- This is for the Mini Pro. Yours may be different depending on the arduino. The Neopixel needs 5V though. 5v to Neopixel ring +5v_PWR pin 5v to Arduino 5v pin ground to Neopixel ring GND pin ground to Arduino GND pin on Power side of the board
Arduino Pin D6 to Input Pin on Neopixel Ring
Software setup - Installed Arduino 1.6.3 from https://www.arduino.cc/download_handler.php?f=/arduino-1.6.3-windows.exe
I am using the Adafruit NeoPixel by Adafruit version 1.0.4 library.
Adafruit_NeoPixel.zip
You will need to unzip the contents of the zip into your Arduino\libraries folder. [/EDIT]
The code verifies. I also verified it with Arduino Uno (I use mini pro's) and it compiled.
Here is my sketch that I use. NeoPixelRingSerial2.zip The zip file contains the sketch just in case a copy and paste doesn't work.
To use the neopixel, there are commands at the top of the sketch. These would be sent from the EZ-B to the arduino.
If you change the pin on the Arduino that is connecting to the NeoPixel, you need to adjust line 317 I think. I would have to dig through to make sure.
The baud rate for the arduino is set to 9600.
To test you can use this script if configured like I have described.
I have to step away for a bit. I will continue when I can
One more thing to mention... Line 317 also contains the number of pixels in the NeoPixel. If you have 8, the first number should be 8. If you have 16, the first number should be 16. Same with 24 and so on.
I did load this onto a new arduino mini pro using the information provided above, and then tested it in the Serial Monitor in Arduino. It worked by sending the commands at the top of the sketch. I then connected to a digital port on the EZ-B (in my case D0 to try something other than D5) and it worked by sending the commands via a script as shown above but replacing D5 with D0.
I think that there is a newer version of the script that uses newer Arduino stuff and newer NeoPixel libraries, but I haven't spent any time with them.
If you try the above steps and have any issues, let me know and I will help where I can.
Thanks David
One more test that I did just now...
I updated the NeoPixel library through the Sketch, Include Library, Manage Library menu option.
The new library (1.1.1) also still works with the NeoPixel and the sketch provided above, so it isn't necessary to stay at the older 1.0.4 version of the NeoPixel library for this to work.
I made a plugin a while back for the NeoPixel. It will give you the language of the script command that belongs in the quotes.
You can leave the arduino hooked up to the usb port and test some things out using it if you want to see how the NeoPixel reacts to the commands. You can also leave it disconnected and just use this to get the format of the commands.
To see the commands being sent to the NeoPixel, set the com port and then the number of pixels in the neopixel through the config page of the plugin.
From there, select the mode, and fill out the other fields that are enabled after selecting the mode. Click the Check mark at the bottom of the form if you want the command to be sent to the com port you specified to see the results of the settings you chose. Again, you don't have to have the connection established though to see the command that would go into the script for that action to be sent to the NeoPixel. It is just nice to also be able to see what that command looks like.
The bottom text box will display the command that you would enter into your script for this action.
https://synthiam.com/redirect/legacy?table=plugin&id=76 is the link to the plugin.
Thanks David. I know you are busy so it is nice that you could spend a little time on this. I will be back at it tonight after work trying to make this work. I feel I am close.
I have had a bit more time to play around with this.
I loaded Arduino 1.8.3 and then loaded the project that RobertL184 provided to allow this to work with new versions of Arduino. https://synthiam.com/Community/Questions/6767&page=7 post #67
When compiling, I get an error with the ColorWipe portion. Everything does compile and load to the Arduino Mini Pro. I was able to test all of the commands via the Arduino Serial Monitor and everything worked except for the Wipe portion. I will see if I can figure it out. If not, maybe Robert can chime in and let us know a fix.
This should fix the wipe section. It was a simple fix. Line 416 Changed from
to
Here is the working code. I have tested it out.
Loaded up the code and I am still having problems so I need to narrow it down. I know my neopixel works because I can load the Adafruit example code on and that works. I can compile the new code and load. I have the Wiring holed up correctly to the EZB. I an not get a response. So I am down to Something in the serial connection.
I am using an Arduino micro. I assume this should work but some of the literature suggests it has TX peculiarities. So maybe that is it.
How should I be executing the sample codes? I am putting it into a script in the script manager and running it. Should I be doing this through a serial terminal or something?
UPDATE! Total success now. Thanks so much to everybody that helped. Great community over here.
So there was a problem with the tutorial script and a problem with me. Thanks for fixing the script David and +1 for making it such that I could dump that old Arduino version.
The problem with me was that I had the EZB connected to the TX of the Arduino and not the RX. I figured the Arduino was transmitting something to the ring. The wiring diagram in the tutorial is right. I just processed it wrong in my brain.
Thanks everyone for helping me get this far. This is a helpful forum and people stick around to see problems through
5 cheeseburgers for everyone involved.
That good news, Perry, glad to hear you got it working. Dave, it would be great if you could make a new tutorial on this topic. Can't wait for the new Neo Pixel hardware from EZ-Robot!
Happy this is working. Happier now others will have a solid tutorial that works.
I have 2 neopixels in my robot. I am experimenting with emotions and color patters. This is a great win for me. Maybe David will get around to making his plugin a fully functional control with tons of configuration options. He's busy so maybe between 1 and 3 AM next Tuesday.
4 Beers into the celebration of hitting my MRL functionality test. Now my guy does every function I had with the other software. Major milestone for me, The thing is, I don't really see the trajectory changing. I think it will just get better from here.
Happy Friday to all!
Glad that it is working for you and even more glad that you have a robot instead of a statue:)
I don't know when I will get back to plugin development. When I do, I will basically be taking all of the pieces of EZ-AI that I had worked on for a couple of years, and make them plugins. Some of it I won't have to write again due to some amazing advances in plugin development. I am sure that I will revisit the NeoPixel plugin during this time, among others.
A new Tuto has been published. Hopefully it will help out some. The issue with a Tuto like this is that so many people can make a small change that breaks things. Arduino is the most likely to do this, so maintaining it becomes difficult unless you have someone tell you that it doesn't work. Yours is working great because at the time you wrote it, it worked. This is what Bob faced and I know it is frustrating. You are trying to offer something to the community and then it becomes a chore or job to keep it up to date. The last thing you want is people to run into issues following something that you wrote to help people out. The problem is that you have moved on because yours is working so you don't have a need to revisit it over and over, until you do.
Bob, I want to thank you for putting up your Tutorial. It did help a lot of people and the NeoPixel questions did drop for a while. Hopefully my Tutorial can help as many people as yours did.
Dave, thanks for the kind words. The new tutorial looks good, except this line didn't copy; #include <Adafruit_NeoPixel.h> That's the same problem I had, there is another way to upload the sketch so it shows but I don't know how to do it.
Thanks Bob. Fixed now.