Show Posts
Pages: [1] 2 3 ... 5
1  International / Nederlands / Re: Garagedeur openen met Arduino on: April 13, 2014, 03:28:57 am
Leuk projectje! Ik zou zoals eerder gezegd ook via Bluetooth gaan werken. Er zijn plenty apps te downloaden die gelijk met je bluetooth module kunnen verbinden zonder dat je eerst een app moet gaan ontwikkelen.

Tip: Zowel bij Bluetooth als WIFI, zorg voor een GOED password(bluetooth) of WPA code(WIFI) anders is het vrij makkelijk om voor buitenstaanders je garagedeur open te maken...
2  International / Nederlands / Re: lcd 20x4 probleem on: April 13, 2014, 03:21:54 am
Mag ik vragen waarom je een LCD scherm hebt zonder I2c module? Het werkt zoveel makkelijker, gewoon 5 volt eraan, je SCL en SDA met een pull-up aan de I2c pinnen en gaan. Je hebt veel minder kans op fouten en bovenal maar 2 pinnen in gebruik op je Arduino ipv 15.

Just my 2 cents smiley-wink
3  International / Nederlands / Re: Totaal beginner, 2 cijfers lezen probleem on: March 24, 2014, 12:28:07 pm
Kan je je sketch even uploaden? Dan zien we gelijk waar het fout gaat en kunnen we support bieden.
4  International / Nederlands / Re: Arduino Beginner on: February 23, 2014, 03:41:30 pm
Deze kit https://iprototype.nl/products/kits/startup-kit samen met deze https://iprototype.nl/products/kits/iPrototype-uitbreidingskit is voldoende om de eerste tutorials te maken.

Op ebay staan ook heel veel kits maar dan moet je wel een paar weekjes geduld hebben.
5  International / Nederlands / Re: Arduino ATmega on: February 23, 2014, 05:10:07 am
Stappenmotoren hoor je altijd, maar waarschijnlijk te weinig stroom (ampère).  Er zal waarschijnlijk een potmeter op je stepperdriver zitten deze kan je dmv een multimeter precies afstellen.

Kijk hier eens naar, dit gaat over een ramps bordje voor 3d-printers maar werkt ook voor jou stepperdriver
http://bootsindustries.com/portfolio-item/pots-adjustments/
6  International / Nederlands / Re: Led's die oplichten met een lagere helderheid on: August 31, 2013, 10:01:49 am
Het is logisch dat als je zoals op de foto de buitens 2 leds in de hoeken laat branden dat de andere 2 in de andere hoeken ook oplichten. Dat komt om dat je de multiplex-techniek gebruikt. Zoek eens op POV, hiermee laad je de leds om en om knipperen waardoor er telkens maar 1 aan staat maar omdat je zo snel wisselt lijkt het of ze beide tegelijk branden.
7  International / Nederlands / Re: Nieuw in Arduino land en een eerste werkende projectje on: August 31, 2013, 04:52:52 am
Leuk projectje, goed uitgewerkt ook! Misschien kan je je code alsnog posten in een nieuwe post. Mochten mensen met dezelfde componenten werken komen ze via google alsnog op dit topic.
8  International / Nederlands / Re: Objecten ontwijken. on: July 09, 2013, 01:34:43 am
Gebruik je dan 2 keer distance ?

(1 keer als array en een keer als variabele)

En hoe initialiseer je die variabele ?
En waarom doe je niet gewoon * 66.67 (of net zoveel 6'en als de nauwkeurigheid die je wil halen) ?

Nee, ik had het hier even uit m'n hoofd opgeschreven. In m'n sketch had ik iets anders gebruikt.

Thnx, voor je berekening. Zo kan het natuurlijk ook! Precisie is niet echt belangrijk want ik hou toch een foutmarge om "aanrijdingen" te voorkomen.

@Jantje: Ik ga het is proberen zonder delay, of anders met MAS3 z'n oplossing maar dan op de manier van de "blink without delay" sketch.
9  International / Nederlands / Re: Objecten ontwijken. on: July 08, 2013, 12:15:55 pm
Ik ben weer een stukje verder! Het heeft even geduurd voordat ik ermee verder kon omdat ik geen vrije tijd heb op het moment.

Hij kan nu goed beslissen of ie links, rechts of vooruit moet alleen als de waardes minder dan 10cm zijn wil hij nog niet achteruit...
Ook heb ik geprobeerd om naar een object toe te rijden. Bijv. een object is 50cm voor de robot, hij rijd 15cm per seconde. Dus ik had een berekening in de de delay gezet.

Code:
distance = distance / 15 * 1000;
delay(distance);

Alleen is hier geen touw aan vast te knopen hoe lang die delay gaat zijn, elke keer doet hij iets anders. Maar niet wat het zou moeten zijn.

Hier nog even de complete code zoals die nu is:
Code:
#include <Servo.h>
#include "Ultrasonic.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

Ultrasonic ultrasonic(12,13); //(trig,echo)
LiquidCrystal_I2C lcd(0x27,20,4);
Servo panservo;
Servo leftservo;
Servo rightservo;

byte degs[] = { 45, 90, 135 };
int distance[ 3 ] = { 0 };

void setup() {
  Serial.begin(9600);
  panservo.attach(6);
  leftservo.attach(5);
  rightservo.attach(3);
  lcd.init();
  lcd.backlight();
  lcd.print("Starting up...");
 
  // Be sure the continous servo's don't move
  leftservo.write(90);
  rightservo.write(90);
}

void loop()

  // Rotate pan-servo and measure distance on 45, 90 and 135 degrees.
  for( int i = 0; i < 3; i++ )
  {
    panservo.write(degs[i]);
    delay(300);
    distance[i] = ultrasonic.Ranging(CM);
    if (distance[i] > 1000)
    {
      distance[i] = 300;
    }     
  }
 
  // Print the measurements to the lcd screen
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(distance[0]);
  lcd.print(" cm on 45 deg.");
  lcd.setCursor(0,1);
  lcd.print(distance[1]);
  lcd.print(" cm on 90 deg.");
  lcd.setCursor(0,2);
  lcd.print(distance[2]);
  lcd.print(" cm on 135 deg.");
 
  // Decide which distance is the furthest.
  if (distance[0] <= distance[1] && distance[1] >= distance[2]) // 90 degrees is greatest
  {
    lcd.setCursor(0,3);
    lcd.print("Direction: Forward");
    leftservo.write(180);
    rightservo.write(0);
  }
  else if (distance[0] > distance[1] && distance[1] >= distance[2]) // 45 degrees is greatest
  {
    lcd.setCursor(0,3);
    lcd.print("Direction: Left");
    leftservo.write(0);
    rightservo.write(0);
  }
  else if (distance[0] <= distance[1] && distance[1] < distance[2]) // 135 degrees is greatest
  {
    lcd.setCursor(0,3);
    lcd.print("Direction: Right");
    leftservo.write(180);
    rightservo.write(180);
  }
  else if (distance[0] < 10 && distance[1] < 10 && distance[1] < 10) // All object are closer then 10cm.
  {
      lcd.setCursor(0,3);
      lcd.print("Direction: Return");
      leftservo.write(0);
      rightservo.write(180);
  }
  delay(10000);
}

Mocht iemand nog suggesties, ideeën of verbeteringen hebben hoor ik dit uiteraard graag!
10  International / Nederlands / Re: 'Trigger' signaal i.p.v. switch voor arduino on: June 14, 2013, 12:37:16 pm
Als je de LED niet hoeft te behouden is het vrij simpel mits het voltage niet hoger wordt dan max 5v! Je soldeert de LED los, waar de anode zat (+) soldeer je een draad naar 1 van de analoge pinnen van de arduino, waar de kathode zat van de led soldeer je een draad die je met de GND van de arduino verbind.

Dmv een analog(read) kan je de waarde uitlezen als de LED uit is, als de waarde hoger wordt (LED aan) dan komt er een getal uit tot 1023. Dus door een simpele if - else te maken kan je je actie uitvoeren.
11  International / Nederlands / Re: 'Trigger' signaal i.p.v. switch voor arduino on: June 13, 2013, 01:24:12 pm
Dat is zeker wel mogelijk, maar je zult even wat meer info moeten geven over wat voor signaal je arduino moet gaan aansturen...
12  International / Nederlands / Re: Objecten ontwijken. on: May 30, 2013, 02:34:52 pm
@Nicoverduin & @Jantje: Bedankt voor de reacties! Ik ga dr van het weekend mee aan de slag en laat jullie de uitkomst weten!
13  International / Nederlands / Re: Objecten ontwijken. on: May 29, 2013, 03:17:32 pm

Ik heb volgende vragen
1) Wat staat er op de LCD?
2) Krijgen de servo's hun voeding van het Arduino board?
3) Zijn er nog ander plaatsen in je code waar je de servo's aanspreekt?
4) Ben je zeker dat de servo's aan de juiste pinnen hangen?

1) Op Het LCD worden de waardes geprint die de sensor terug geeft, deze kloppen ook gewoon.
2) Servo's worden apart gevoed door 4 AA's, Uno door een 9v batterij. GND is gedeeld om problemen te voorkomen.
3) Nee, de servo's worden alleen in de if loop aangesproken
4) 100% zeker, werken gewoon naar behoren. Als ik een sketch laad die alleen de servo's aanstuurt werkt dit gewoon vlekkeloos.

Hieronder de complete sketch:
Code:
#include <Servo.h>
#include "Ultrasonic.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

Ultrasonic ultrasonic(12,13); //(trig,echo)
LiquidCrystal_I2C lcd(0x27,20,4);
Servo panservo;
Servo leftservo;
Servo rightservo;

byte degs[] = { 45, 90, 135 };
int distance[ 3 ] = { 0 };

void setup() {
  Serial.begin(9600);
  panservo.attach(6);
  leftservo.attach(5);
  rightservo.attach(3);
  lcd.init();
  lcd.backlight();
  lcd.print("Starting up...");
}

void loop()
{
  // Be sure the continous servo's don't move
  leftservo.write(90);
  rightservo.write(90);
  
  // Rotate pan-servo and measure distance on 45, 90 and 135 degrees.
  for( int i = 0; i < 3; i++ )
  {
    panservo.write(degs[i]);
    delay(300);
    distance[i] = ultrasonic.Ranging(CM);
    if (distance[i] > 1000)
    {
      distance[i] = 300;
    }      
  }
  
  // Print the measurements to the lcd screen
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(distance[0]);
  lcd.print(" cm on 45 deg.");
  lcd.setCursor(0,1);
  lcd.print(distance[1]);
  lcd.print(" cm on 90 deg.");
  lcd.setCursor(0,2);
  lcd.print(distance[2]);
  lcd.print(" cm on 135 deg.");
  
  // Decide which distance is the furthest.
  if (distance[0] <= distance[1] && distance[1] >= distance[2]) // 90 degrees is greatest
  {
    lcd.setCursor(0,3);
    lcd.print("Direction: Forward");
    leftservo.write(180);
    rightservo.write(0);
    delay(1000);
  }
  else if (distance[0] >= distance[1] && distance[1] >= distance[2]) // 45 degrees is greatest
  {
    lcd.setCursor(0,3);
    lcd.print("Direction: Left");
    leftservo.write(0);
    rightservo.write(0);
    delay(1000);
  }
  else if (distance[0] <= distance[1] && distance[1] <= distance[2]) // 135 degrees is greatest
  {
    lcd.setCursor(0,3);
    lcd.print("Direction: Right");
    leftservo.write(180);
    rightservo.write(180);
    delay(1000);
  }
  else if (distance[0] > distance[1] && distance[1] < distance[2]) // 90 degrees is smallest
  {
    if (distance[0] <= distance[2])
    {
      lcd.setCursor(0,3);
      lcd.print("Direction: Return");
      leftservo.write(0);
      rightservo.write(180);
      delay(1000);
    }
  }
  delay(100);
}

In ieder geval bedankt voor je reactie!
14  International / Nederlands / Re: Objecten ontwijken. on: May 29, 2013, 01:09:47 pm
Ik kom er niet uit... Ik heb diverse dingen geprobeerd maar krijg niet het gewenste resultaat. Ik heb even flowchart gemaakt zodat het wat makkelijker lezen is voor iedereen. Ik verwacht geen kant een klaar script maar ik kom gewoon niet uit m'n if-loop. De robot maakt geen goede beslissingen terwijl de waarden duidelijk zijn. Ook blijft hij regelmatig "scannen" terwijl er duidelijk een afstand het verste is...
15  International / Nederlands / Re: servo laten draaien on: May 27, 2013, 11:19:58 am
En zie je ook wat er gebeurd indien je een hogere of lagere waarde invult?
Pages: [1] 2 3 ... 5