meerdere arduinos

IDE gerelateerde berichten
Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

meerdere arduinos

Berichtdoor superpeter » 17 Dec 2016, 14:58

hallo allemaal.

ik heb meerdere arduino's voor het gemak maar even te noemen master, slafe 1 en slafe 2.

slafe 1 heeft een programmaatje draaien dat verantwoordelijk is voor het hoofd naar links en rechts laten kijken.
egter zit op slafe1 ook een display aan ge sloten.

op slafe 2 zit een temperatuur sensor aan ge sloten.
nu wil ik dat slafe 1 continu gewoon zen gewone werk aan het doen is maar daarnaast ook continu aan het wachten is of van slafe 2 er info voor hem word verzonden en zo ja deze info bv dus de temperatuur verwerken en op het display van slafe 1.
ik heb gezien dat je naast de void setup en void loop ook nog andere void blokken kan aan maken.
echter ik vraag me nu even af in hoeverre deze blokken elkaar in de weg zitten en of hoe ik dus kan zorgen dat het hoofd gewoon beweegbaar blijft maar hij dus ook info van de andere slafe kan ontvangen.

verder kan slafe 1 ook rechtstreeks naar slafe 2 communiceren of andersom of moet dan eerst de info naar de master gestuurd worden en dat die de info verder verzend?

hopelijk kan iemand me hier wat meer in wegwijs maken.
ik heb hierover wel al wat info ge vonden maar ben dus nog niet helemaal op de hoogte van alles wat i2c netwerk gebeuren betreft.
de info die ik al gezien heb is de volgende:

https://youtu.be/Jndb2vpAWwU

Advertisement

Berichten: 10
Geregistreerd: 30 Nov 2016, 14:27

Re: meerdere arduinos

Berichtdoor Josh » 17 Dec 2016, 15:36

Hoi Peter,

Ik denk dat je helemaal geen 3 arduino's nodig hebt maar millis(), zodra je Blink without Delay snapt begint het feest pas echt
en kun je een hoop dingen "tegelijk" op 1 arduino laten lopen.

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 17 Dec 2016, 16:15

hallo jos.
die temperatuur sensor en display waren ook maar als voorbeeld.
er is een mega op dit moment voor de aansturing van de rug en buik.
al waar onder meer 1 motor met optocopler zit voor het draaien van het hoofd, daarnaast zitten er 2 motoren voor de armen met sensors er komt nog een deel geluid detectie en spraak/muziek of iets dergelijk af spelen,
dit alles word aan gestuurd door de arduin mega waarop dus ook het display zit en die al aardig vol zit met de nodige aansluitingen en sensoren van de robot.
zo komt er ook een arduino voor het hoofd waarin onder meer een camera zit en een tast sensor leds en geluidsdetectie om herkomst van geluid te detecteren.
dat is dus arduino 2.
arduino 3 word onderstel aansturen zo als rijden , koplampen, en sonar.
dit is even vlug een greep uit de basis dingen die er in komen.
ofwel de eerste face die we in de bouw gaan kennen.
in de toekomst komen er dus nog veel meer dingen in zo als wifi gps en gsm ondersteuning.
dat ik voor ieder deel aparte arduinos pak is omdat je dan nog beetje weet waar wat ge regelt word.
ook bij problemen hoef je dan niet alles naar te lopen maar als bv de rug gek doet hoef je dus alleen die arduin met sensoren en dergelijk naar te lopen .
echter wil ik wel dat de arduinos wel met elkaar kunnen communiceren zo dat als de camera een foto wil maken hij wel even zorgt dat hij niet rijd.
dit van die temperatuur is dus puur om even een basis uitgangspunt te hebben die relatief eenvoudig is.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: meerdere arduinos

Berichtdoor nicoverduin » 17 Dec 2016, 16:57

Wel eens gegoogled op het project inmoov?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: meerdere arduinos

Berichtdoor Koepel » 17 Dec 2016, 18:02

als bv de rug gek doet hoef je dus alleen die arduin met sensoren en dergelijk naar te lopen
Neem maar von ons aan, dat is niet hoe het in de praktijk gaat.

In de praktijk kun je net zo gemakkelijk de code opzoeken die de rug regelt.
Het is dan wel nodig dat je de onderdelen in de code goed gescheiden houdt.
Als je iets wijzigt in een Arduino die met de communicatie met andere Arduinos te maken heeft, dan is het waarschijnlijk nodig om alle Arduinos te wijzigen. Het is dus niet minder werk, het kan net zo gemakkelijk meer werk zijn.
Wanneer je het protocol en de hoeveelheid data niet zorgvuldig in een sketch programmeert, dan kan de communicatie op zich weer voor extra problemen zorgen.

Er zijn situaties die om een dedicated Arduino vragen. Bijvoorbeeld de VirtualWire/RadioHead (433MHz ontvangst met het protocol volledig softwarematig in de Arduino) kan er slecht tegen als er veel andere interrupts bezig zijn.

Er zijn veel regels om een Arduino als I2C Slave goed te laten werken. De totale lengte van alle SDA of SCL draden bij elkaar mag bijvoorbeeld niet veel langer zijn dan 50cm, en ze mogen niet in een flat ribbon kabel naast elkaar zitten. Tot 1 meter of zelfs 2 meter lukt sommigen ook nog wel, maar dan wordt de betrouwbaarheid een probleem.
Dat is dus elke centimeter van alle SDA draden bij elkaar opgeteld (en voor SCL hetzelfde).

Dit zijn de voorbeelden van Arduino voor I2C communicatie:
https://www.arduino.cc/en/Tutorial/MasterReader
https://www.arduino.cc/en/Tutorial/MasterWriter
Maar die voorbeelden zijn niet juist. Er wordt in de interrupt handler de Serial.print() aangeroepen, en de Serial werkt zelf ook met interrupts. Dus als Arduino voorbeelden al verkeerd zijn, kun je nagaan waar je tegen op gaat lopen.

Mijn advies is: Gebruik één Arduino board als het centrale brein. Probeer om bijvoorbeeld motor drivers op een aparte module te doen zoals shooter al schreef (http://arduinoforum.nl/viewtopic.php?f=25&t=2201#p16452).
Als er andere Arduino boards nodig zijn, overweeg dan om de communicatie met seriële RX TX te doen.

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 17 Dec 2016, 18:08

nee dat had ik niet.
maar nu dus wel.
echter zie ik dat het een beetje lijkt op i-qbot van diagostini.
en daar heb ik zeer slechte ervaringen mee omdat de kwalietijt van het spul zeer slecht is.
ander naaddeel is dat merendeels van de onderdelen wel voor dat betreffende project geschikt zijn maar wil je iets veranderen of net even anders maken dan valt dat dus ook al niet te doen.
ik en men vrijwilliger willen dus liever daar niet aan doen.
temeer omdat zowel hij als ik de nodige zooi hebben liggen aan sensoren motortjes en componenten zo als displays knopen weerstanden enz enz enz.
ook heb ik meerder arduinos liggen en vind ik het egt helemaal zelf bouwen eigenlijk veel leuker dan kant en klaar dingen te kopen.

verder beginnen we wel nu van de topic af te wijken dus wil ik heel graag vragen of we weer terug kunnen naar de vragen die ik had ge stelt in de allereerste poost?


alvast bedankt

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 17 Dec 2016, 18:15

koepel ik ga naaar het eten google op het gebruik van serial tx en rx.

dus daar kom ik nog op terug of dat iets is.

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 17 Dec 2016, 19:25

dat serial is inderdaad een zeer goede optie en wat ik zo vind programmeer tegnies ook nog veel makkelijker.
wat ik nog niet heb kunnen vinden is of bij serial gebruik de mega op alle seriale connectoren luister of dat je moet aan geven of hij moet luistere/zenden op poort 1 2 3 4.
verder kam ik nog de volgend tegen:
https://www.arduino.cc/en/Tutorial/TwoPortReceive.
als ik die goed begrijp kan ik software matig dus ook nog een aantal digitale pinnen latten gebruiken.
waardoor je qua communicatie dus ook behoorlijk ver kan gaan als je zou willen.
corrigeer me als ik dit verkeerd zie.
zo wie zo is serial communicatie voor mij in ieder geval zeer interessant omdat bij ontvangen hij gewoon door gaat als er geen data beschikbaar is.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: meerdere arduinos

Berichtdoor Koepel » 17 Dec 2016, 20:00

Het TwoPortReceive voorbeeld is alleen voor SoftwareSerial.
Probeer altijd om SoftwareSerial te vermijden, het legt nogal erg veel beslag op de microcontroller.

De Arduino Mega 2560 heeft vier hardware UARTs (seriële poorten). De eerste wordt gebruikt om een sketch te uploaden en voor de seriële monitor.
Die andere drie kun je op dezelfde manier gebruiken.
https://www.arduino.cc/en/Reference/Serial
https://www.arduino.cc/en/Tutorial/MultiSerialMega

Code: Alles selecteren
  Serial.begin( 9600);  // seriele monitor
  Serial1.begin( ...      // tweede hardware UART
  Serial2.begin( ...      // derde
  Serial3.begin( ...      // vierde

Vervolgens kijken of er iets available() is:
Code: Alles selecteren
  if( Serial.available())
    ...
  if( Serial1.available())
    ...
  if( Serial2.available())
    ...
  if( Serial3.available())
    ...

Berichten: 47
Geregistreerd: 13 Jan 2016, 19:22

Re: meerdere arduinos

Berichtdoor superpeter » 17 Dec 2016, 20:20

heel erg bedankt voor de gegeven informatie.
ik ga hier zeker mee aan de slag.
egter word dat denk ik woensdag en anders vrijdag.
want voor de serial communicatie moet ik toch wel even rustig gaan zitten zodat ik dat wel meteen goed heb en er goed mee experimenteer.
aan gezien donderdag men laatste werkdag is en ik dan dikke week geen afspraken heb is het dan wel mooi de tijd om te puzzelen dus dat gaat zeker gebeuren.
ik hou jullie op de hoogte en als ik vragen heb ga ik zeker weer gillen.

groeten: peter

Volgende

Terug naar Arduino IDE

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten