knex en arduino

Hallo forumleden.

Ik zal me even voorstellen... Ik ben Diederik van der Rhee 17 jaar en studeer elektrotechniek 1e jaars.

Ik ben van plan een robotje te maken met mijn knex :)

Ik heb een auto gemaakt met 4 wielen de linkse 2 wielen worden aangestuurd door een motor en de rechtse 2 ook. Beide motoren werken op 12V. Ik ben van plan een arduino uno te kopen, om van deze auto een robot te maken dmv sensoren. Alleen het probleem is dat de uitgang van de arduino 5v is en mijn motoren zijn 12v. Ik zat te denken aan een relais ofzo, maar bij elke motor moeten de plus en min ook omgedraaid kunnen worden:

Motor 1: Motor 2:
draad 1: draad 2: draad 1: draad 2:
+ - + - auto rijdt vooruit
+ - - + auto draait linksom
- + + - auto draait rechtsom
- + - + auto rijdt achteruit

Wat is de makkelijkste manier om dit te kunnen programmeren? En wat heb ik nodig? Ik wil wel zo min mogelijk geld kwijt zijn...:)
Ik heb hier trouwens een 12V accu liggen dus die was ik van plan om te gebruiken.

Wie help mij?

A meet hoeveel stroom je motor gebruikt
B zoek een hbrug motorcontroller die het aankan
Programma komen we tzt wel op, eerst een rijdend iets krijgen

big_fat_mama

Zie Paulinha_B

Voor het aansturen van de motoren: zoek eens (hier of elders) naar "H-brug".
En over de batterij die je hebt liggen is wat meer uitleg welkom: welke technologie? Welke capaciteit?

[[edit:]] DK heeft gelijk, om te kunnen een H-brug kiezen moet je eerst weten hoeveel stroom de motoren trekken - en dan gaat het over de maximumwaarde. De H-brug moet die ruim aankunnen, best royaal overdimensioneren.

[Bericht gewijzigd door big_fat_mama op zondag 10 november 2013 12:50:52 (38%)

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
Lambiek

Special Member

Ten eerste welkom op het forum.

Zoals je al zij, het kan met relais. Maar het kan ook met een zogenaamde H_brug. Daar kan je zowel de snelheid mee regelen, maar ook de draairichting.

Weet je toevallig hoeveel stroom die knex motoren trekken, en als je dat niet weet kan je het misschien even meten. Misschien heb ik iets voor je.

EDIT:
Voor als je zelf iets wil bouwen, zie schema.
http://www.uploadarchief.net/files/download/mini%20-%20motorregelaar%20-%204011.jpg

En een foto.
http://www.uploadarchief.net/files/download/motorregelaar.jpg

[Bericht gewijzigd door Lambiek op zondag 10 november 2013 13:01:02 (26%)

Als je haar maar goed zit, GROETEN LAMBIEK.

schema ziet er wel ontzettend moeilijk uit zo :P
vanwaar heel de interne ic's uittekenen? hoop dat TS dit kan lezen

relais kan inderdaad ook, heeft een paar nadelen
-geen snelheidsregeling
-meest standaard relaistjes vragen meer stroom dan een arduino-pin kan leveren, en als je transistortrappen voor je relais moet bouwen is het hele voordeel weg

Even ter info:

Mijn 12V Accu: er staat op 12V 7.2AH/20hr....
De motortjes worden normaal door een adapter gevoed. En deze levert 500mA. Maar ik heb ook nog een andere adapter en die levert 1200mA en daar werkt het ook op. Ik schat dat de motortjes dus 400-1400mA nodig hebben

Het maakt mij overigens niet zoveel uit of ik de snelheid kan regelen, want hij gaat toch niet zo hard. Het belangrijkste is dat ik niet teveel componenten hoef te kopen.

Is zoiets geschikt? L293D Motor-driver

nog een simpel vraagje... Het de arduino zelf geheugen of werkt hij normaal gesproken alleen als hij aangesloten is met usb?

Is anders zoiets geschikt? http://www.hackerstore.nl/Artikel/76

[Bericht gewijzigd door Henry S. op donderdag 14 november 2013 19:17:17 (16%)

De arduino heeft zelf geheugen op de chip zitten voor programma's en metingen eventueel. Dus dat sd kaart ding is niet per se nodig.

Voor de aansturing van de motoren zou ik zoiets nemen:
http://www.hackerstore.nl/Artikel/67
of
https://iprototype.nl/products/robotics/drivers-controllers/2A-motor-c…

De tweede kan je voor een fractie van de prijs ook op Ebay kopen.

Je kunt natuurlijk ook een relais gebruiken voor de draairichting, en een enkele MOSFET om de snelheid te regelen.

@Lambiek: eigenlijk jammer dat je bij de kleinere AVRs de PWM periferal meestal niet kan omschakelen tussen verschillende uitgangen, dan zou je die logische poortjes extern niet nodig hebben. Je zou natuurlijk 3 pinnen kunnen gebruiken, 2 gewone uitgangen die direct naar de L293 gaan (waar nu PWM_L en PWM_R zitten), en de PWM uitgang via 2 weerstandjes op dezelfde ingangen zetten. Dat is dan een soort van wired-or constructie, waarbij je elke ingang van de L293 hoog of laag kunt makem via de gewone I/O pin, of het PWM signaal kunt geven door de I/O pin hoog impedant te maken. Dat kost dus alsnog 3 pinnen, maar je hebt de 4011 niet meer nodig, en gebruikt nog steeds maar 1 PWM uitgang.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
LetterHenk

Golden Member

De voeding voor de arduino kan je maken mbv een 7805. Deze kan je voeden met de 12V uit je accu.
Kijk maar eens naar de schakeling hier op de site: 78xx voeding

Action expresses priorities LH
Lambiek

Special Member

eigenlijk jammer dat je bij de kleinere AVRs de PWM periferal meestal niet kan omschakelen tussen verschillende uitgangen

Ja dat is waar, dan had je die 4011 niet nodig gehad.
Of je moet twee pwm uitgangen pakken dan kan het ook zonder.

Het nadeel van de L293D is dat je het pwm signaal niet op de enable pin kan zetten, op de een of andere manier wordt het ic daar vreselijk heet van.

Op 10 november 2013 13:18:17 schreef DK:
schema ziet er wel ontzettend moeilijk uit zo :P
vanwaar heel de interne ic's uittekenen?

We zitten toch op een elektronica forum, of niet. :)

En er is eventueel een printje voor, dus dan is het een questie van componenten erop en solderen. :)

Als je haar maar goed zit, GROETEN LAMBIEK.

Twee PWM uitgangen zou natuurlijk kunnen, maar die AVRs hebben er al zo weinig. Ik vind het gewoon jammer dat je een microcontroller hebt met weet ik veel hoeveel duizenden transistors erin, en er vervolgens nog een antiek IC naast moet zetten voor iets wat zo simpel zou moeten zijn. Overigens is vind ik die beperking, dat je zelf niet kunt kiezen uit een paar pinnen voor een periferal, altijd heel frustrerend, omdat ik op een of andere manier altijd meerdere functies nodig heb die allemaal alleen op die specifieke pin zitten.

Van TI ben ik gewend dat elke in- of uitgang van de digitale periferals op meerdere pinnen beschikbaar is, en je moet dan zelf instellen welke pin je wilt gebruiken. De kans dat je een periferal niet kunt gebruiken omdat je niet bij de signalen kunt omdat je die pinnen ook nodig hebt voor een andere periferal is dan veel kleiner. Ik meen me te herinneren dat de dsPIC wat dat betreft nog luxer was, waarbij je de pinnen van de digitale periferals bijna helemaal vrij kon indelen.

@Lambiek: wat vind je van het idee om de 4011 te vervangen door 2 weerstanden, en gebruik te maken van het feit dat je een I/O pin ook hoogimpedant kunt maken? Echt helemaal "netjes" is het niet, maar het lijkt me prima betrouwbaar, en maakt het voor beginners weer een stukje simpeler.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
Lambiek

Special Member

wat vind je van het idee om de 4011 te vervangen door 2 weerstanden

Die snap ik even niet, je gebruikt toch maar één pwm uitgang. Of wil je er een soort spannings deler van maken.

Als je haar maar goed zit, GROETEN LAMBIEK.

Nee, wat ik bedoel is een gewone uitgang direct aan 2 ingangen van de L293, zoals jij ook doet met de PWM_L en PWM_R signalen, en de PWM uitgang met een serieweerstandje naar dezelfde ingangen. Als de digitale uitgang hoog of laag is, "wint" die het altijd van de PWM uitgang (omdat die een weerstand in serie heeft), maar als de digitale uitgang hoogimpedant wordt gemaakt, komt het PWM signaal wel door. Op die manier kun je 1 PWM uitgang gebruiken voor beide sets ingangen van de L293 (met dus beide keren een weerstand in serie), en met de digitale uitgangen bepaal je welke set ingangen het PWM signaal krijgt, en welke set permanent hoog of laag blijft.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

De accu gaat hem sws niet worden. Het gaat namelijk om een loodgel accu en deze is zooo zwaar dat de motortjes het niet aan kunnen om te draaien. Ik ga het dus maar gewoon met oplaadbare batterijen doen denk ik.

En wat is PWM en I/O

LetterHenk

Golden Member

PWM = Pulse Width Modulation
I/O = Input/Output

Google = Je vriend ;)

Action expresses priorities LH
EricP

mét CE

eigenlijk jammer dat je bij de kleinere AVRs de PWM periferal meestal niet kan omschakelen tussen verschillende uitgangen

Die moet je even uitleggen. Ik zie zowel in deze schakeling als in de AVR hardware het probleem niet... Met de output compare registers kun je 2 uitgangen aan 1 timer laten PWMen. Meestal heb je zomaar 2 timers.

@TS: begin maar eens met een paar relais. Dat is de simpelste oplossing. Als je voor elke motor 2x een enkel om relais neemt en zo de boel tussen + of - laat schakelen, kan er niks stuk gaan (electrisch gezien). Relais schakelen met een kleine tor (en vergeet de vrijloopdiode niet).

Als je daarop uitgekeken bent, kun je altijd nog een snelheidsregeling gaan maken.

Op 10 november 2013 17:52:09 schreef LetterHenk:
Google = Je vriend ;)

Heb je wel eens gelezen wat ide lui allemaal doen? Google is (vrijwel) je grootste vijand. Maar oh, het is gratis.

@ErikP: ik vind het jammer dat je nu 3 pinnen en die 4011 nodig hebt.

Je kunt met 1 timer wel 2 PWM signalen maken, maar alleen als je ook 2 compare registers hebt, en die heb je vaak maar op 1 timer bij de kleinere AVRs, en met 4 PWM uitgangen in totaal houdt het meestal ook wel op; toch jammer als je er dan 2 per motor nodig hebt. Het punt is dat je altijd maar op 1 set ingangen van zo'n l293 een PWM signaal tegelijk nodig hebt.

Ik bedenk nu trouwens dat zo'n L293 zijn high side switch voor onbepaalde tijd aan kan zetten, dus het kan sowieso met 1 digitale uitgang en 1 PWM kanaal; een kant van de brug blijft hoog of laag staan, en de andere kant krijgt het PWM signaal. Voor achteruit zet je dan de digitale ingang andersom, en inverteer je het PWM signaal.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken
EricP

mét CE

Je kunt met 1 timer wel 2 PWM signalen maken, maar alleen als je ook 2 compare registers hebt, en die heb je vaak maar op 1 timer bij de kleinere AVRs, en met 4 PWM uitgangen in totaal houdt het meestal ook wel op; toch jammer als je er dan 2 per motor nodig hebt. Het punt is dat je altijd maar op 1 set ingangen van zo'n l293 een PWM signaal tegelijk nodig hebt.

Definieer 'kleine AVR'. Zelfs een tiny2313 (toch best klein voor besturing) heeft 2 timers met elk 2 compare registers. Enige waar je daar tegen aan zou kunnen lopen is dat een 8-bit timer niet de gewenste resolutie haalt, maar dat zal bij een snelheidsregeling wel loslopen.

En inderdaad, je kunt 1 kant 'vast' instellen en de andere PWM-en. Feitelijk ben je er met 2 PWM uitgangen ook al. Zou je dus 4 motoren PWMed aan kunnen sturen met een tiny2313. Lijkt me ruim voldoende voor de meeste toepassingen...

big_fat_mama

Zie Paulinha_B

@letterhenk: ik vind dat je de intellectuele luiheid niet moet aanmoedigen.

hoe beter de vraag geschreven, zoveel te meer kans op goed antwoord
LetterHenk

Golden Member

Ach, het is minder dan de helft van het antwoord. De rest mag hij zelf doen :)

Action expresses priorities LH

Ik heb inmiddels wat meer gegoogled en dit ga ik kopen:

- Motor Shield 2A
- USB Host Shield
- Female shield headers
- Verstelbare IR Sensor
- Arduino UNO Rev3

totaal € 78,09 (incl. BTW)
via iprototype.nl

Ik kan dan de usb ontvanger van mijn draadloze xbox controller het usb host shield plaatsten. En dan de motor shield en de 2 afstandsmeters aansluiten op het usb host shield. Ik ga proberen om mijn auto te besturen met mijn controller en de 2 sensoren voor en achteraan te monteren, zodat als ik bv 10 cm van een muur verwijdert ben dat de auto dan automatisch achteruit gaat.

Denken jullie dat ik dit kan programeren?

mvg,
diederik