Forum Replies Created
-
AuthorPosts
-
Michael
KeymasterYou are clearing the screen immediately after you display something to it. That is why you are not seeing anything.
Move tv.fill(0) so you clear the screen BEFORE you write your output.
tv.fill(0); tv.print(0, 0, s);
Michael
KeymasterYes, you can clear the screen with
tv.fill(0);
Michael
KeymasterDo you have your order number so I can work with you on a replacement? I can’t figure out which order based on your email address.
Michael
KeymasterHi Perry,
It an be difficult to do serial communication when using the Video Experimenter due to the need to keep the video timing correct. The shield uses pin 2, so that explains why it interferes with the video when using that pin for your motors.
Can you use hardware serial for the motor controller? Pins 0/1. There is a serial implementation that comes with the TVout library called “pollserial”. It does hardware serial by polling the serial line during the horizontal blanking interval. See example called NTSCserialTerm which implements a serial terminal using pollserial.
You could write the motor commands with pserial.write().
Sorry that the need to keep the video working causes problems with serial comms. This is a common problem.
Michael
KeymasterSure, I put the .hex files I use to preload the chips here:
https://nootropicdesign.com/downloads/hackvision/games/Hackvision.ino.hex
https://nootropicdesign.com/downloads/hackvision/games/Asteroids.ino.hex
I’m not sure why you are having compilation problems. I’ll look into it.
-
This reply was modified 5 years, 7 months ago by
Michael. Reason: edited path to downloads due to restructuring my site
May 27, 2019 at 5:47 pm in reply to: 32×32 panel doing nothing unless I touch a given header pin #11250Michael
KeymasterHi Tiry,
Hmm, this is strange. I seems like there is a bad connection between the backpack board and the matrix. Sometimes the male and female headers don’t make good contact, and a very light touch may help. It may be the ground pin that has a bad contact, too.
I would try this: remove the backpack from the panel. Then carefully bend the panel’s 5V and ground pins a small amount. This way when you connect the backpack it may make better contact. Sometimes a very small adjustment to the position of pins will help.
That’s my suggestion. It sounds like you soldered it fine, and if it is showing animations (even the wrong size for the display), then that means that the backpack board is running correctly. I think you have a small connection problem. Let me know if you get it working.
Michael
KeymasterYes, it is the ATMEGA328-AU.
Michael
KeymasterIt’s not a CPU, it’s a microcontroller. ATmega328
The pads next to the buttons are breakout pads for those buttons. So you can connect external buttons.
Michael
KeymasterThis problem is due to the polling nature of the serial communication. It’s probably not going to be perfectly reliable. I haven’t seen this myself, though. Maybe try a lower speed?
Michael
KeymasterWith a lot of experience, I have learned that when the behavior of an Arduino program doesn’t make sense, the problem is almost always a lack of memory!
Michael
KeymasterHmm. Are the strings in the array still correct? That is, do strings[0] etc. contain the right values still?
You might be running out of memory for the String objects. Try reducing your resolution and remove these lines:TV.println("Serial Terminal"); TV.println("-- Version 0.1 --");
These string literals in the println() statements take up memory. Your video buffer is using 1656 bytes ((184/8) * 72). Try 128×72 and see if it works.
Michael
KeymasterThe Arduino String object has methods to create integer and float types.
First create a String object from char array:String longString = String(strings[0]); String intString = String(strings[1]); String floatString = String(strings[2]);
Then use methods on String object to get primitive data types.
long int dist = longString.toInt(); // returns long int var = (int)intString.toInt(); // returns long, so cast to int float rad = floatString.toFloat();
That should work.
-
This reply was modified 5 years, 10 months ago by
Michael.
Michael
KeymasterThat’s a really interesting idea! I think it would be difficult in practice. The Lumazoid takes 128 samples and then performs FFT on them before updating the display. I think you’d need to fit the “signal” into the 128 sample FFT, which means it would be very very short. The sample rate is around 9000 samples per second, so we are talking about a tiny fraction of a second.
Also, the Lumazoid is not always “listening”. It listens, then analyzes, then updates the display. That’s why you miss some beats in the music occasionally.
Very interesting idea, though. Now I’m thinking….Michael
KeymasterYes, but the very cheap versions of usb-serial adapters have all kinds of problems. I personally use only adapters that I know have genuine FTDI chips on them. I resell the Adafruit FTDI Friend adapter. More expensive, but no problems, either.
https://www.adafruit.com/product/284
I’d love to see your project when you are done!
Michael
KeymasterOk, I’m glad you found the problem! I didn’t have a good answer for what to try next.
-
This reply was modified 5 years, 7 months ago by
-
AuthorPosts