Show Posts
Pages: 1 2 [3] 4 5 ... 23
31  Using Arduino / Project Guidance / Re: Much Needed help for final year project. on: January 31, 2014, 05:31:18 pm
Just a quick thought on an idea for what you mentioned in your first post;
Quote
would contract and expand as air is blown
THe idea of a small bellow pump, where you use a atandard servo motor to control the bellow action.
The bellow has an inlet valve as per normal and you simply attach an air bladder to the output end to get your contraction and expansion action.
you can use another small servo at the junction of the bellows to air bladder to control air release.
This system will give you an air sound quite similar to human breathing if that is what you are after.
Using a bellow type pump will avoid the noise of any standard air pump, whether displacement or rotational fan.
You might well be able to construct the bellows your self to a shape and size to fit your project.
____
Paul
32  Community / Bar Sport / Re: Arduino compatible ZIF socket, WTF? on: January 31, 2014, 04:55:25 am
mmmm, have I been missing out on all the action again ?

    girlfriend, wanted, must be Arduino plug and play compatible   smiley-kiss
____
Paul
33  Community / Gigs and Collaborations / Re: R.O.V. Project Now Active on: January 30, 2014, 07:38:41 pm
No, I didn't need to at all, but in doing so I am hoping it will help you.
I did take the time to check and ponder over what you are trying, and then spent time letting you know in an honest way.
I will assume others who look at your post and web site will think the same, and not let you know.

I'm guessing you are upset at how you read my post, and I am sorry if you are, but not sorry for letting you know.
____
Paul
34  Using Arduino / Networking, Protocols, and Devices / Re: Arduino Mega to Micrologix 1400 on: January 30, 2014, 05:59:19 pm
If I were you I would first look at using the DF1 protocol that is available on the Micrologix 1400.
DF1 uses standard RS-232 electrical specification, and I think you may find that that will be an easier approach.
You could also look into the ASCII protocol in your Micrologix 1400 too.

It sounds to me you are unsure of how any of these protocols work on the Micrologix range of PLCs.
Might I suggest you use google to find a wealth of resources on the web.
Here's one I just found http://sourceforge.net/projects/abdf1/

You did not say, but I am assuming you are using a computer with Microsoft windows, right?
And you have RS-Logix500 programming software and also RS-Linx to help setup comms between your RS-Logix500 and Micrologix 1400
Here, this is another site with some useful info http://www.mrplc.com/kb/index.php?article=65

You'll need to become quite familar with the way in which Allen Bradley PLCs do thier serial comms first before you can start to connect up your Arduino.

You will need to understand the differences between the different electrical specifications such as RS-232 RS-485 and things like half or full duplex.

Once you undertsand the serial protocol, you will need to learn how to access the data areas in the Micrologix where you wish to store your data, such as what sort of file type, i.e. N for integer.
____
Paul
35  Community / Gigs and Collaborations / Re: R.O.V. Project Now Active on: January 30, 2014, 05:26:04 pm
Out of curiosity I went to visit your web site, and must admit I have absolutely no idea what you are about.
On the website you mention;
Quote
This website is designed to be a resource to the TurtTech Team
Who is this team and what do they do?
You mention R.O.V. and my understanding it that that stands for Remotely Operated Vehicle, is that what your web site is about I wonder?

On your page called 'Common DataSheets' you attempt to display two images, errr, badly, and what would those two images have to do with remotely operated vehicles I wonder.

I'm thinking you need to bring your idea, concept and web site to more that 'full strength' as you say in order to generate interest.

Anyhow, it seems you are excited about whatever it is and all great ideas start with one person I guess, especially with a 'lynix',or do you mean Linux netbook
____
Paul
36  Using Arduino / Networking, Protocols, and Devices / Re: real-time data from arduino sensors to mobile web browser using ethernet shield on: January 13, 2014, 09:27:46 pm
I have another option for you.

I too wanted a fast method to have data from the Arduino to web browser.
So, initiatlly I too used the method most people end up doing, that is, set up your Arduino as a small internet server.
For me, it has limitations in terms of how I wanted to develop a system over time.

Next I made it so that the Arduino simply sent data to my host server using HTTP POST format.
That works and I can store data in my SQL database easily too which I use for trends.
But, again, the problem with this is that it needs regular and continuous POST commands from the Arduino.

So, my next stop was to look at using a publisher/subscriber model.
And what I did then was to make my Arduino routines work such that after I filter the analog values I maintain various flags for each analog. One of them is a 'change of value' or COV bit. That allows me to send the data of any analog only if it has changed in value by a given amount.

So, then I send that data to a site called PubNub, no, it's not your local place of worshipping the liquid amber, it's a site that is set up for using a publisher subscriber model which means the ability to have next to real time data available from a source to a destination.

I did a few rough tests a while back and had notice the time difference I would get between data sent via standard polling methods, where the Arduino sends to host server and client requests from host server, to the method of Arduino sends to PubNub and client is subscribed to your PubNub channel.

With any polling or timed based technique, you will always need to wait the time period of your poll period.
Try to make the poll period faster and you run into problems in other aspects of your system, and you simply end up trying to send loads of data that may be unnecessary.

With a system where you use change of state or value you reduce this unnecessary overhead. Then by using a publisher subscriber model the turn around time from input into the data broker to you getting it as a subscriber is counted in a few hundreds of milliseconds.

When I see a data change on the Arduino by indication of a LED, I will have that data on my browser screen in typically 250mS, regardless of where I am in the world as long as the DSL connection I have is soild.

The upshot is that your browser app is very light weight, no need for AJAX, as used traditionally. Also, your Arduino is not a web server and hence trying to service an unpredictable amount of incoming HTTP requests, rather, it  sends out the data, and only when there is a need. What you have then is very fast data from the sensor to the screen, anywhere in the world and any number of clients. Millions of clients if you wish, with no impact on your little Arduino.

PubNub have APIs for working with many systems, Arduino included.
____
Paul
37  Using Arduino / Programming Questions / Re: Using other IDEs to develop on: January 02, 2014, 05:36:28 pm
@Vaclav,

I wonder how much better a programmer you could be if you would take the time to read better.
You will find the link on his blog site to the google store, or you can simply click from the forum here, https://play.google.com/store/apps/details?id=name.antonsmirnov.android.arduinodroid
____
Paul
38  Development / Other Software Development / Re: Problem with Eclipse/Jantje Plugin vs Arduino IDE using Arduino DUE on: January 01, 2014, 09:22:48 am
mmm interesting, I wonder if it will also apply to Linux and OSX configurations?
If I get a chance tomorrow, I'll like hook one up and see what happens.
____
Paul
39  Using Arduino / Networking, Protocols, and Devices / Re: Realworld uses of Arduino as web server on: January 01, 2014, 09:18:55 am
Hi SurferTim,
Yes, Cubieboard is Debian or for other fun, they can play Android nicely as well.
Though I am wanting to find out what the chances are of running Node.JS and if that would offer any advantages over ye' old Apache. My SQL databases grow each day, as long as I feed them  smiley-cool
More learning I dare say in the weeks to come.
____
Paul
40  Using Arduino / Networking, Protocols, and Devices / Re: Realworld uses of Arduino as web server on: January 01, 2014, 08:58:30 am
I have retired the Arduino from being any form of web server.

After an initial tinker with the 'WebDuino' library I then played around with having the Ardiuno push data up to host server and also as publisher to PuNub, but now am getting ready to make my next move.
The other day I received in my mailbox a cute little 'Cubieboard 2', dual core ARM A20 processor that when I get time will be setup as my front end, low power home based server.

The EtherMega will simply exchange data with the Cubieboard via coms or ethernet.
This way, the Arduino can do what it does best better, and deal with real world IO.
The Cubieboard will be setup as a Linux server and configured to handle the real-time aspect of HTTP and TCP/IP connections from the big bad world. Not sure I'll use LAMP yet though.

Then I can really go to town and develop a SCADA system, yes.

The Arduino platform still is a valid choice but I haven't considered it seriously for any industrial automation work I sometimes find myself doing.
Arduino has been a  stone for me to stand on for a little while I played and learnt some things.

____
Paul
41  Development / Other Software Development / Re: Windows/Linux/Mac Eclipse plugin to compile and upload arduino sketches on: December 31, 2013, 05:41:26 pm
Jantje, Gelukkig Nieuwjaar,

I'm enjoying the latest beta release on both OSX and Linux, and have a question I would like to ask.
I have a need to be able to program a Mega based board using an ISP, a Freetronics EtherMega.
The board has a non functional USB cpu section, but the 2560 side is good.

I read in the git requests that you mentioned that it will not be available, but is there the possibility of doing this?
____
Paul
42  Community / Website and Forum / Re: Suggestion: Energy Supply and Conservation (under Using Arduino) Topic on: December 08, 2013, 01:58:38 am
Yes, I would also like to support what Peter is suggesting.
I think people are finding it increasingly more difficult to find where to place their posts on these topics.
And to have a section where it is clear that anything to do with energy conservation would really help.

Plus, it would be a nice new home for me.
All those in favour, say eye, yep, the eyes have it  smiley
____
Paul
43  Using Arduino / Networking, Protocols, and Devices / Re: Arduino remote access on: December 02, 2013, 11:12:02 pm
krlxz you are cross posting with your same post in 'Home Automation and Networked Objects'.
Please don't do this.

A moderator shall be along any moment and give you a good whipping.
____
Paul
44  Development / Other Software Development / Re: SaaS web dashboard on: November 27, 2013, 06:24:34 am
Noticed your post in Network Protocols section I think dig090.
Have either of you thought of real time publisher suscriber model with push technology?

I am currently playing around sending data to my sandbox account with PubNub, check them out.
I get the Arduino to send data using standard HTTP protocol as the publisher with a publish key.
Clients can then subscribe to to the data with a subscribe key and specify the channel you wish listen to.
So with that, I have a simple javascript that handles the subscription and displays the data in next to real time.
It's definitely faster than having the Arduino push data to a standard web hosting service where the data is stored in either data files or SQL and then having the client side polling every 5 seconds. I haven't figured a way to get my web host to have Node.js installed yet  smiley-sad

The beaut thing with this push technology is that it can be set up so that alarms or notifications triggered, say at the Arduino end can be sent through to, say your smartypantsphone or what ever.

I would like to see support for UDP as well.
I would be interested to see what you come up with.
____
Paul
45  Using Arduino / Sensors / Re: Few problems, all revolve around reading inputs/voltages on: November 26, 2013, 05:53:29 am
bartlanz, I had a bit of a look at your code and tried to tidy it up where I could, but I'm affraid I am having difficulty with the logic you are trying to implement here. Maybe some psuedocode, where you write the logic as sentences would help us.

I don't suspect the code will do too much, in fact you have one error you need to attend to first up.
Anyway, I hope you will agree that the code presents better to view and to understand.
_____
Paul

Code:
/*
 * Place a heading at the top of your program
 * Also, try to keep your comments well spaced out from the main code, it will be more readable
 *
 */

#include <LiquidCrystal.h>
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h>                           // a basic DS1307 library that returns time as a time_t


//Pins
  LiquidCrystal lcd(12, 11, 5, 4, 9, 10);        //used 9 & 10 instead of 2 & 3 to free up interrupt pins
  int pinResetRunTime = A0;                      //A Switch to reset the runtimer
  int pinVoltsRTC = A2;                          //voltage from RTC battery
  int displayLight = 7;                          //backlight for display to make it flash when error)
  int pinReset = 8;                              //pin connected to reset pin
  int pinBoiler = 6;                             //interupt pin that connects to a relay from boiler here to check for runtime (pin 2 = 0 pin 3 = 1)

//variables
  float badbat = 2.8;                            //voltage at which you consider the RTC battery to be no good. This can include a dec ie 2.5
  long runtimer = 0;                             //total time the boiler has run
  long starttime = 0;                            //start point to time runtime
  long stoptime = 0;                             //stop point to time runtime
  int mdur = 1;                                  //math time is devided by this 1000 makes seconds of ms 60000 makes min of ms 3600000 makes hr of ms
  int rdur = 1000;                               //LCD time is devided by this 1000 makes seconds of ms 60000 makes min of ms 3600000 makes hr of ms
  //float voltage = 0;
  int percent = 0;
  long whentorest = 2592000;                     //30 days then the unit will reset


//-----------------------------------------------
// This is the setup section where we do stuff
//
void setup() {
  pinMode (pinResetRunTime, INPUT);              //XXX put all your pinModes in setup, you had doubles of the same pin
  pinMode (pinBoiler, INPUT);
  pinMode(pinReset, OUTPUT);
  pinMode(displayLight, OUTPUT);

  // set up the LCD's number of columns and rows:
  lcd.begin(20, 4);
  Serial.begin(9600);
  while (!Serial) ;                              // wait until Arduino Serial Monitor opens
  setSyncProvider(RTC.get);                      // the function to get the time from the RTC

  /*                                             //XXX keep your code neat and well structured and you will see errors more easily
  if(timeStatus()!= timeSet) {
     lcd.setCursor(0, 0);
     lcd.println("");                            //This can be an error if time is not set
    }
    else {
      lcd.setCursor(0, 0);
      lcd.println("");                           //this can be a message that the time is set
    }
*/
}

//-----------------------------------------------
// This is the main loop where we call our functions and do stuff in an orderly way
//
void loop() {
  digitalClockDisplay();
  Display();
  //volt();
  starttimer();
  stoptimer();
  rest();
  resetruntime();
}

//-----------------------------------------------
// This routine does something, but I really need to know what!
//
void runmath() {
  if (stoptime > 0 ){
    if (starttime > 0){
      if (stoptime > starttime){
        runtimer = runtimer + (stoptime - starttime);
        delay(500);                              //XXX put your timing checks in the main loop(). Do not use the delay function
      }
      if (starttime > stoptime){
        runtimer=runtimer;                       //XXX why do you want to do this, it is like saying 5 equals 5
      }
    }
  }
}

void rest() {
  if ((millis()/mdur) > whentorest ) {
    digitalWrite(pinReset, LOW);
  }
}

//-----------------------------------------------
// This routine I think put stuff to the LCD
//
void digitalClockDisplay() {
  // digital clock display of the time
  lcd.setCursor(12, 0);
  lcd.print(hour());
  printDigits(minute());
  printDigits(second());
  lcd.setCursor(0, 0);
  //lcd.print(" ");
  lcd.print(month());
  lcd.print("/");
  lcd.print(day());
  lcd.print("/");
  lcd.print(year());
  //lcd.println();
}

//-----------------------------------------------
// This routine prints digits to the LCD
// it is also smart enough to have leading zeros when needed
//
void printDigits(int digits) {
  // utility function for digital clock display: prints preceding colon and leading 0
  lcd.print(":");
  if(digits < 10) {
    lcd.print('0');
  }
  lcd.print(digits);
}

void Display() {
  int reading = analogRead(pinVoltsRTC);
  float voltage = reading / 204.6;               //XXX what on Earth does 204.6 mean, documentation
  int percent = map(voltage,0,3.6,0,100);        //XXX carefully check if you can use map this way, you are mapping floats to an int
  lcd.setCursor(0,1);
  lcd.print(starttime/rdur);                     //XXX you are printing the free running millis() count value here, does it mean anything?
  lcd.setCursor(0,2);
  lcd.print(stoptime/rdur);
  lcd.setCursor(10,2);
  lcd.print(millis()/rdur);
  lcd.setCursor(10,1);
  lcd.print(runtimer/rdur);
  lcd.setCursor(0, 3);
  //lcd.print(percent);                          //percent of battery vs voltage of battery
  lcd.print(voltage); //
  lcd.setCursor(4, 3);
  lcd.print("v");                                // put % or v Depending on what you did above
  delay(100);                                    //XXX why does everyone want to put delays in their program, think about deleting if not needed
  if (voltage < badbat) {
    lcd.setCursor(5, 3);
    lcd.print("Replace Battery");
    digitalWrite(displayLight, HIGH);            //XXX Ok, battery is bad so we flicker the display light on - off - on, that is it, no more
    delay(500);
    digitalWrite(displayLight, LOW);
    delay(500);
    digitalWrite(displayLight, HIGH);
  }

  if (voltage >= badbat) {
    lcd.setCursor(5, 3);
    lcd.print("   Battery Good");                //XXX why the spaces in front of the word Battery?
    digitalWrite(displayLight, HIGH);
  }
}

void starttimer() {
  //int stat = digitalRead(boiler);
  digitalWrite (pinBoiler, HIGH);                //XXX this pin goes high, where does it go low
  attachInterrupt(1, setstart, RISING);
  //attachInterrupt(1, setstop, FALLING);
  //if (boiler == HIGH) {setstart();}
}

void setstart() {
  starttime = millis();                          //XXX millis is a free running counter, think carefully about this
}

void stoptimer() {
  //int stat = digitalRead(boiler);
  digitalWrite (pinBoiler, HIGH);                //XXX this pin goes high again, where does it go low
  attachInterrupt(1, setstop, FALLING);
  //if (boiler == LOW) {setstop();}
}

void setstop() {
  stoptime = millis();
  runmath();
}

void resetruntime() {
  if (digitalRead(pinResetRunTime)) {
    runtimer = 00000000;                         //XXX why all the zeros?
    lcd.setCursor(10,1);
    lcd.print("0         ");
  }
}

Pages: 1 2 [3] 4 5 ... 23