Pages: [1]   Go Down
Author Topic: Arduino, Maxuino, Firmata and Sensors  (Read 1362 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi

I have been struggling to get the max serial object to read any data from the analog inputs on the Arduino board for weeks now and can see from previous discussions that I am not alone in this. I have tried every solution suggested on both the Arduino forum and also the Max forum to no avail.

I have now got Max talking to Arduino using Maxuino and standard Firmata however there are two things which don't seem to be functioning as I would anticipate.

The patch I am using is from a tutorial found here:

http://www.soundplusdesign.com/?p=1305

I have the Arduino Mega also - but this is not working with the patch beyond analog input 5 despite extending the patch to account for the additional inputs - so I am back to Duemilanove with fewer inputs.

The inputs need to be ready to receive the data from all analog inputs and these are enabled by toggles in the patch, however when for example I have a sensor in analog input 0 the numbers are fed to the number box for that analog input with the aim of triggering other things in a separate subpatch. The problem is that if all 6 inputs are enabled and I insert for example a sensor into analog input 0 the data is fed to all the analog inputs which are enabled, and then when the second sensor for example in input 1 is triggered it will do the same overwriting the data sent from input 0 as it sends to all the inputs , and so on for all the sensors , which is not what I want.

I am trying to think of a solution such as a gate or switch or something which will resolve this and ensure that data from analog input 0 is fed to the right output and not to all the others as well. If I was using just one sensor i could have the other outputs static ie not routed to anything else in the patch but they should all have inputs routed to their smiley-sad corresponding subpatches which will be triggered by different sensors.

Also .. can anybody who is using Arduino and Max please clarify the actual process when uploading to the board and then using Max. ie are you supposed to upload to Arduino, select the correct serial baud rate, then press send to the right of the page. Are you then supposed to close Arduino Firmata down and then open Max as when using Arduino in stand alone or with Processing I am not sure whether you are supposed to do this or if in fact it makes a difference.

Any suggestions on this would be great.

Thank you very much in advance... I have also posted this on the Max forum for greater success rate in hopefully resolving.


 smiley-sad




Logged

Manchester (England England)
Offline Offline
Brattain Member
*****
Karma: 634
Posts: 34541
Solder is electric glue
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
The problem is that if all 6 inputs are enabled and I insert for example a sensor into analog input 0 the data is fed to all the analog inputs which are enabled,

Do you mean that you have nothing connected to the other analogue inputs? If so then yes it is how the hardware will behave because it will still have the charge on the sample and hold capacitor when the multiplexer switches to the unconnected input. That is how hardware behaves.

So you can either not enable analogue inputs you are not using or connect unused but enabled inputs to ground (or + 5V). Alternatively you could fit a high value resistor from the analogue input to ground, say 20k to 47K and that should stop unconnected inputs giving a reading based on the last sample taken.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi

Thanks for your reply.. yes at the moment I have nothing connected to more than one input at a time but I will have other sensors connected for the final patch.  I have just tried your solution of grounding the other inputs that don't have sensors currently connected, and it sent just the data to my max patch from the input which did have a sensor connected.  I will now try adding the additional sensors to see if that works which i am sure it will, as it now makes sense.

Once again thank you.

Best

Myla




Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 38
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You have described the process correctly, load Firmata onto the Arduino and then close the arduino IDE and after you do that once, as long as you do not load anything else onto the arduino board, it will continue to run as a standalone.  then you can start and stop max all you want.  I am sorry I have not been able to update the maxuino, but firmata on the mega is still shaky at best.  
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello

Thank you for your reply .. at least i now know that I have been following the correct process for uploading etc.  I am going to use the Duemilanove for this project and leave the mega until it is more stable, hopefully for my next installation.

Myla
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am working on Arduino Mega as well, and I editted the codes from Maxuino004, perhaps you can use that instead of firmatta since it seems the headers for firmatta are not that compatible with mega. I changed the digitaloutput codes, and they work fine.

However,I've gotten a few problems on my side. The analog pins for all the 16 pins are responding well, except for pin 0 and 1.

I am doing communication between Mega connected to LDRs and Max MSP. The problems now it seems, there are output coming out from pin 0 and 1. When I use multimeter, the voltage coming from pin 0 is 0.32V and pin 1 is 1.1V, while 0V for the rest of the 14 analog pins.

Any one knows why is this happening?? because of this leakage, the readings for these two pins are so not sensitive when I try covering the LDRS (the voltage to analog pins only varies about 0.1V). I didnt change any of the analog codes in Maxuino004.

Please help... Thanx
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi

Is it possible to upload you max patch to see how you have extended the code to incoporate the extra inputs for the Arduino Mega as I changed the code in Maxuino 5 to read all 16 analog inputs but it is not reading past analog input 5.

Thanks

Myla



Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
what I did is just extend the analog in messages for all the 16 inputs. There are just too many words in my max patch, and the maximum characters here is 10000 ;D. If you have an email, I can email it to you.
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 132
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

have a problem tooo.

my set up works, ( analog input)
the only problem that I have is that having One sensor connected
and all the analog on on maxpatch.
all the analog from max read the same value from on sensor

here is the max patches.

if any case  you can not use in max  I am using Maxduino v009


{
      "boxes" : [             {
                  "box" :                   {
                        "maxclass" : "comment",
                        "text" : "NOTE: pin numberings may vary depending on the hardware you use; before turning on an example, make sure of the following for your pins: \n0) select the appropriate USB Serial port and type of hardware\n1) they have the  functionality possible (i.e. only some pins can put out PWM, only some pins can be analog inputs)\n2) they have been set to the right mode with the /pinNumber/mode messages",
                        "linecount" : 4,
                        "frgb" : [ 1.0, 0.627451, 0.0, 1.0 ],
                        "numinlets" : 1,
                        "id" : "obj-28",
                        "fontname" : "Trebuchet MS",
                        "numoutlets" : 0,
                        "patching_rect" : [ 16.333954, 38.0, 782.0, 62.0 ],
                        "textcolor" : [ 1.0, 0.627451, 0.0, 1.0 ],
                        "fontsize" : 12.0
                  }

            }
,             {
                  "box" :                   {
                        "maxclass" : "newobj",
                        "text" : "p 4-analog-inputs-controlling-pwm-outputs",
                        "numinlets" : 0,
                        "id" : "obj-27",
                        "fontname" : "Trebuchet MS",
                        "numoutlets" : 1,
                        "patching_rect" : [ 601.0, 110.0, 241.0, 20.0 ],
                        "outlettype" : [ "" ],
                        "color" : [ 1.0, 0.627451, 0.0, 1.0 ],
                        "fontsize" : 12.0,
                        "patcher" :                         {
                              "fileversion" : 1,
                              "rect" : [ 14.0, 44.0, 917.0, 624.0 ],
                              "bgcolor" : [ 0.470588, 0.54902, 0.239216, 1.0 ],
                              "bglocked" : 0,
                              "defrect" : [ 14.0, 44.0, 917.0, 624.0 ],
                              "openrect" : [ 0.0, 0.0, 0.0, 0.0 ],
                              "openinpresentation" : 0,
                              "default_fontsize" : 12.0,
                              "default_fontface" : 0,
                              "default_fontname" : "Arial",
                              "gridonopen" : 0,
                              "gridsize" : [ 15.0, 15.0 ],
                              "gridsnaponopen" : 0,
                              "toolbarvisible" : 1,
                              "boxanimatetime" : 200,
                              "imprint" : 0,
                              "enablehscroll" : 1,
                              "enablevscroll" : 1,
                              "devicewidth" : 0.0,
                              "boxes" : [                                     {
                                          "box" :                                           {
                                                "maxclass" : "comment",
                                                "text" : "NOTE: messages from maxuino (i.e. /analog and /digital messages for sensor inputs readings) \nare sent to the name \"from-maxuino\" and used in some of the above examples",
                                                "linecount" : 4,
                                                "frgb" : [ 1.0, 0.627451, 0.0, 1.0 ],
                                                "numinlets" : 1,
                                                "id" : "obj-26",
                                                "fontname" : "Trebuchet MS",
                                                "numoutlets" : 0,
                                                "patching_rect" : [ 536.333984, 26.0, 272.0, 62.0 ],
                                                "textcolor" : [ 1.0, 0.627451, 0.0, 1.0 ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "comment",
                                                "text" : "we're playing with pins 38-40 for analog input (i.e. Teensy++ style)",
                                                "linecount" : 4,
                                                "numinlets" : 1,
                                                "id" : "obj-37",
                                                "fontname" : "Arial",
                                                "numoutlets" : 0,
                                                "patching_rect" : [ 288.0, 366.0, 125.0, 62.0 ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "button",
                                                "numinlets" : 1,
                                                "id" : "obj-38",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 251.0, 197.0, 20.0, 20.0 ],
                                                "outlettype" : [ "bang" ]
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "sprintf /%d/mode 2",
                                                "numinlets" : 1,
                                                "id" : "obj-39",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 251.0, 432.0, 111.0, 20.0 ],
                                                "outlettype" : [ "" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "+ 37",
                                                "numinlets" : 2,
                                                "id" : "obj-40",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 251.0, 367.0, 34.0, 20.0 ],
                                                "outlettype" : [ "int" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "uzi 3",
                                                "numinlets" : 2,
                                                "id" : "obj-41",
                                                "fontname" : "Arial",
                                                "numoutlets" : 3,
                                                "patching_rect" : [ 251.0, 312.0, 46.0, 20.0 ],
                                                "outlettype" : [ "bang", "bang", "int" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "comment",
                                                "text" : "we're playing with pins 24-26 for pwm outputs",
                                                "linecount" : 3,
                                                "numinlets" : 1,
                                                "id" : "obj-36",
                                                "fontname" : "Arial",
                                                "numoutlets" : 0,
                                                "patching_rect" : [ 76.0, 366.0, 125.0, 48.0 ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "message",
                                                "text" : "/16/mode 3",
                                                "numinlets" : 2,
                                                "id" : "obj-21",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 39.0, 507.0, 76.0, 18.0 ],
                                                "outlettype" : [ "" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "comment",
                                                "text" : "1.  set the right pin modes",
                                                "numinlets" : 1,
                                                "id" : "obj-34",
                                                "fontname" : "Arial",
                                                "numoutlets" : 0,
                                                "patching_rect" : [ 78.0, 155.0, 149.0, 20.0 ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "button",
                                                "numinlets" : 1,
                                                "id" : "obj-16",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 39.0, 197.0, 20.0, 20.0 ],
                                                "outlettype" : [ "bang" ]
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "sprintf /%d/mode 3",
                                                "numinlets" : 1,
                                                "id" : "obj-22",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 39.0, 432.0, 111.0, 20.0 ],
                                                "outlettype" : [ "" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "+ 13",
                                                "numinlets" : 2,
                                                "id" : "obj-35",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 39.0, 367.0, 34.0, 20.0 ],
                                                "outlettype" : [ "int" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "uzi 3",
                                                "numinlets" : 2,
                                                "id" : "obj-24",
                                                "fontname" : "Arial",
                                                "numoutlets" : 3,
                                                "patching_rect" : [ 39.0, 312.0, 46.0, 20.0 ],
                                                "outlettype" : [ "bang", "bang", "int" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "prepend /16/analogWrite",
                                                "numinlets" : 1,
                                                "id" : "obj-33",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 742.0, 497.0, 142.0, 20.0 ],
                                                "outlettype" : [ "" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "prepend /15/analogWrite",
                                                "numinlets" : 1,
                                                "id" : "obj-32",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 593.0, 497.0, 142.0, 20.0 ],
                                                "outlettype" : [ "" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "newobj",
                                                "text" : "prepend /14/analogWrite",
                                                "numinlets" : 1,
                                                "id" : "obj-31",
                                                "fontname" : "Arial",
                                                "numoutlets" : 1,
                                                "patching_rect" : [ 446.0, 497.0, 142.0, 20.0 ],
                                                "outlettype" : [ "" ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "comment",
                                                "text" : "you can use the function object to scale!",
                                                "numinlets" : 1,
                                                "id" : "obj-30",
                                                "fontname" : "Arial",
                                                "numoutlets" : 0,
                                                "patching_rect" : [ 505.0, 336.0, 224.0, 20.0 ],
                                                "fontsize" : 12.0
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "function",
                                                "numinlets" : 1,
                                                "pointcolor" : [ 0.321569, 0.321569, 0.321569, 1.0 ],
                                                "bordercolor" : [ 0.0, 0.0, 0.0, 1.0 ],
                                                "id" : "obj-28",
                                                "numoutlets" : 4,
                                                "patching_rect" : [ 742.0, 230.5, 100.0, 95.0 ],
                                                "outlettype" : [ "float", "", "", "bang" ],
                                                "linecolor" : [ 0.333333, 0.333333, 0.333333, 1.0 ],
                                                "domain" : 1.0,
                                                "addpoints" : [ 0.0, 0.0, 0, 0.136364, 0.0, 0, 0.295455, 0.0, 0, 0.409091, 0.0, 0, 0.477273, 0.407143, 0, 0.602273, 0.721429, 0, 0.784091, 1.0, 0, 1.0, 1.0, 0 ]
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "function",
                                                "numinlets" : 1,
                                                "pointcolor" : [ 0.321569, 0.321569, 0.321569, 1.0 ],
                                                "bordercolor" : [ 0.0, 0.0, 0.0, 1.0 ],
                                                "id" : "obj-27",
                                                "numoutlets" : 4,
                                                "patching_rect" : [ 593.0, 230.5, 100.0, 95.0 ],
                                                "outlettype" : [ "float", "", "", "bang" ],
                                                "linecolor" : [ 0.333333, 0.333333, 0.333333, 1.0 ],
                                                "domain" : 1.0,
                                                "addpoints" : [ 0.0, 0.0, 0, 0.170455, 0.0, 0, 0.295455, 0.035714, 0, 0.522727, 0.15, 0, 0.681818, 0.35, 0, 0.784091, 0.592857, 0, 0.818182, 1.0, 0, 0.954545, 1.0, 0, 1.0, 1.0, 0 ]
                                          }

                                    }
,                                     {
                                          "box" :                                           {
                                                "maxclass" : "function",
                                                "numinlets" : 1,
                                                "pointcolor" : [ 0.321569, 0.321569, 0.321569, 1.0 ],
                                                "bordercolor" : [ 0.0, 0.0, 0.0, 1.0 ],
                                                "id" : "obj-7",
                                                "numoutlets"
Logged

Pages: [1]   Go Up
Jump to: