Arduino arrays


#1

Is any Arduino type who has experience with arrays going to drop by the Space on Tuesday night, December 12th?
I might have bitten more than I can chew…


#2

I can probably help. Or you can post some details about the problem here (or PM me) and I’ll take a look.

In return you can help me with the IDEC PLC. :slight_smile: My serial/programming cable finally arrived so I can see what comes out the serial port when I turn it on. Not really sure where to go from there…


#3

Please describe the problem (may be Arduino is running out of resources, that happens frequently).
Also there is an Embedded Micro (STM32L475 ARM & Xilinx FPGAs) group that meets on Saturdays at 3:30 pm, Tim (@tdwebste) is the organizer and works on Embedded at Amazon.
Can you come on Sat before the group meet (~3:00 pm) and let’s have a look at it.


#4

It now appears that the array is most likely ok, but the variables handling prior to accessing and modifying said array are not/do not what I think they should do/be…

Re. the IDEC, have you tried their website to see if they had any kind of legacy software support? If not, it might be worth a shot. Send me the CPU unit part number, I might be able to get in touch with a (retired?) local sales rep.

RBAC, let me hack at it some more, before I commit to Saturday (and I am married…).

Thanks!


#5

Are you using arrays of Arduinos (cluster) to do parallel processing? That would be an interesting (and cheaper) way of making clusters!

Best,
RK


#6

Considering my lack of programming experience in all C derivatives, the only cluster that would be generated would be a clusterf… :slight_smile:

I am simply trying to get an analog input and display it according to its peak value, while accumulating said “hits”, which would results in an histograms of peaks.

I am making progress in deciphering/learning the lingo, but I would not call it entertaining since errors appear to creep up here and there in the published books out there… 'Reminds me of the electronic circuits published in the old American magazines, you always had to buy the next two magazines to figure out what the bugs were if you did not have a good understanding of electronics (and thus spot them and report them yourself!).

Anyways, I would think that cluster based parallel processing would be easier (?) and cheaper (?) by using FPGA’s, no? Especially if you are going to process a unique/restricted set of data…?


#7

If you put your code somewhere where we can see it (Github or gist eg) then we can probably help you.


#8

The easiest way would be to use My Open Lab, a Graphical Open Source alternative to LabVIEW or PLC IDEs for IEC-61131.
It has Arduino libraries, all one has to do is to insert ADC-Data Acquisition blocks, accumulate the result in spreadsheet or database and the min.-max. block to display the output.
(1) https://myopenlab.de/documentaion/english/installation_and_start.html
(2) https://myopenlab.de/download_myopenlab_now.html

Embedded Python (say on Raspberry PI) is another alternative.

For Paralleling type clusters, Adapteva’s Epiphany board (their microprocessor + FPGA) is one way (the install documentation is extremely poor).


#9

Colorcoded, I wouldn’t begin to know how to do that, lol!

“Any solution that requires a necessary yet parallel learning curve path to resolving the root problem is no solution, just another source of problems and perplexing questions”, politely quoting my own ignorant self.

This said, WHEN I complete my project (target date: March 2018), I do indeed intend to learn on how to do that, as I have many acquaintances with the same hobby who will appreciate the work done, and who might even amplify it. Github will be the spot, as I understand, to regroup and grow it.

Thans for the reminder, I have to add this on my list of steps… :slight_smile:


#10

RWC, the easiest way… for cluster parallel processing?


#11

You can just go to gist.github.com, make an account, paste your code, click “create public gist” and send us the link.


#12

Adapteva Epiphany Board (uP + FPGA), running Ubuntu 15 (Debian Linux), at least what the documentation states.
BTW Ubuntu 15 is not a Long Term Support (LTS), which is not so great,

Or follow Tim’s wiki blog:
http://vanhack.ca/doku.php?id=hacks:fpga:parallelagdbsdk&s[]=tdwebste.

Best,
RK


#13

And Raspberry PI cluster made by a Idaho State Univ. graduate student may be one of the cheapest.

Best,
RK


#14

If it is that simple, I have to give it a shot. I am busy resolving the variable basics, and I’ll rebuild it this weekend and post whatever I come up with. Thanks!


#15

Some students have made one in Europe (England), quite a while back, didn’t they? I remember seeing a picture, and reading an article how to go about re-creating one for your own use…


#16

@SDY make sure to include any warnings and errors the compiler gives you.


#17

Below is an example of setting up and using an Arduino code array to find the largest value. Hope it helps…

int myBox[11]; // note: initialization. Creates an array to store ten integers
int myVariable; // create a variable

//*** note one more element than your initialization is required, to hold the required end of array marker (null character) ***

//*** examples of placing values into array ***
myBox[0] = someValue; // stores some value in the first compartment of the array
myBox[1] = someValue; // stores some value in the second compartment of the array
myBox[9] = someValue; // stores some value in the last (10th) compartment of the array
myBox[myVariable]= someValue; // stores some Value into an arbitrary compartment

//*** retrieval example ***
myVariable = myBox[4]; //sets myVariable to the fifth item from the array

//*** Example Finding the largest value in the array ***

int maxVal = 0;
int myCompVal; // compartment value
int i; // the current step value
for (i = 0; i < 10; i = i + 1) { //step through items 0 through 9
myCompVal = myBox[i]; //retrieve item i from array compartment
if (myCompVal > maxVal) maxVal= myCompVal); // if bigger than what we already have, we overwrite
} //end of for loop.

//MaxVal is now set to the biggest number in the array