10
Nadat de motoren waren geleverd, heeft Jens deze proberen aan de praat te krijgen. De informatie voor de motor aan te sluiten op de shield kan uit de datasheet van de motor gehaald worden. Deze is terug te vinden op de volgende site: http://www.omc- stepperonline.com/nema-24-dual-shaft-cnc-stepper-motor-35a- 31nm439-ozin-24hs343504d-p-384.html . Arduino heeft zijn eigen bibliotheek voor een stappenmotor aan te sturen, genaamd “stepper library”. Op de site van Arduino (https://www.arduino.cc/en/Reference/Stepper ) is de informatie terug te vinden hoe de shield met de Arduino moet verbonden worden. In de onderstaande afbeelding wordt weergegeven hoe de shield aan de motor en Arduino wordt gekoppeld. De aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet worden. De 2 bruine kabels worden met de GND verbonden. De andere 2 kabels hebben per motor een bepaalde kleur. Deze krijgen het signaal binnen van de Arduino. Dus deze 2 worden op een uitgang van de Arduino gestoken. Naar gelang het programmeren, gaat de motor ofwel in wijzerzin of in tegenwijzerzin draaien. Het omwisselen kan gemakkelijk gedaan worden door beide draadjes te verwisselen aan de uitgangen van de Arduino.

projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

Embed Size (px)

Citation preview

Page 1: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

Nadat de motoren waren geleverd, heeft Jens deze proberen aan de praat te krijgen. De informatie voor de motor aan te sluiten op de shield kan uit de datasheet van de motor gehaald worden. Deze is terug te vinden op de volgende site: http://www.omc-stepperonline.com/nema-24-dual-shaft-cnc-stepper-motor-35a-31nm439-ozin-24hs343504d-p-384.html.

Arduino heeft zijn eigen bibliotheek voor een stappenmotor aan te sturen, genaamd “stepper library”. Op de site van Arduino (https://www.arduino.cc/en/Reference/Stepper) is de informatie terug te vinden hoe de shield met de Arduino moet verbonden worden. In de onderstaande afbeelding wordt weergegeven hoe de shield aan de motor en Arduino wordt gekoppeld.

De aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet worden. De 2 bruine kabels worden met de GND verbonden. De andere 2 kabels hebben per motor een bepaalde kleur. Deze krijgen het signaal binnen van de Arduino. Dus deze 2 worden op een uitgang van de Arduino gestoken. Naar gelang het programmeren, gaat de motor ofwel in wijzerzin of in tegenwijzerzin draaien. Het omwisselen kan gemakkelijk gedaan worden door beide draadjes te verwisselen aan de uitgangen van de Arduino.

Jens heeft aan de hand van de basiscommando’s op de website van Arduino een programmaatje geschreven. Dit is te zien in onderstaande afbeeldingen.

Page 2: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

Bovenaan in het programma wordt de standaardbibliotheek van de stappenmotor ingevoegd. Daaronder wordt een stappenmotor geïnitialiseerd en krijgt de naam “myStepper”. De nodige constanten worden aangemaakt en krijgen een standaardwaarde toegekend.

In de “setup()” wordt de seriële poort geïnitialiseerd met een baudrate van 9600. De snelheid van de motor krijgt hier ook een vaste waarde.

Voorde motor te laten draaien, wordt er gecommuniceerd via de seriële monitor. Deze wordt in “loop()” constant uitgelezen en naar gelang wat er

Page 3: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

wordt ingegeven, gaat de motor een handeling doen. Er wordt eerst wel gecontroleerd of er een seriële communicatie mogelijk is. De volgende instructies zijn mogelijk: “Rechts”, “Links”, “Snel”, “Traag”, “RechtsHand”, “LinksHand” .Bij de eerste 2 instructies gaat de motor ofwel in wijzerzin of in tegenwijzerzin draaien. Er is wel rekening gehouden met een begrenzing die niet mag overschreden worden. Indien de grens bereikt is, wordt dit medegedeeld door de seriële monitor en gaat de motor niet verder draaien.De twee volgende instructies bepalen de snelheid van de motor. Deze kan in twee standen gezet worden: snel en traag.De laatste twee instructies doen hetzelfde dan de eerste twee maar dan zonder begrenzing.

Voor dit programma te testen, werd het op een Arduino Uno geüpload door Jens. Na het testen werd bevestigd dat het programma goed werkt. Dit programma gaan we later gebruiken voor in combinatie met een controller de motoren aan te sturen.

Rond dezelfde periode heeft Egbert een PS2-controller proberen uitlezen met een Arduino Due. We hadden dit type Arduino aangekocht omdat deze nodig was in het oorspronkelijke project.Voor de controller aan de Arduino kan aangesloten worden, heeft hij de connector wat aangepast. Op de afbeelding hieronder is de functie van elke pin afgebeeld.

Door jumpers op de connector te solderen is het makkelijk voor de controller aan de Arduino te koppelen. Dit is te zien in onderstaande afbeelding. Voor de veiligheid is er over de soldering een krimpkous

Page 4: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

aangebracht. De 2 uiterst rechtse pinnen hebben geen functie waardoor er geen jumper aan gesoldeerd is.

Op rechtse foto is te zien dat een weerstand van 10 kOhm wordt gesoldeerd tussen drie jumpers. Via de witte jumper wordt de data verstuurd naar de Arduino. Het is noodzakelijk voor een terugkoppeling te voorzien naar de 3,3V via een terugkoppelweerstand. Dit voor te voorkomen dat data volledig of gedeeltelijk verloren gaat.

Deze informatie komt uit een filmpje op Youtube (https://www.youtube.com/watch?v=xlupRVF_6W8). Hier was ook een link te vinden naar waar een basisprogramma kan gedownload worden. Het programma wordt hier niet weergegeven omdat het te groot is. De controller werd aangesloten zoals in de volgende tabel en het programma werd getest.

Pinnummer connector Kleur jumper Pinnummer Arduino1 Wit 82 Grijs 113 Paars 5V4 Blauw GND5 Groen 3,3V6 Geel 107 Oranje 12

De Arduino Due zorgde al snel voor problemen. Het programma wou niet compileren. Na een lange tijd zoeken, zijn we te weten gekomen dat het komt door de andere processor op de Arduino Due. De bibliotheek van de PS2-controller wou niet werken op de processor van een Due. Hierdoor zijn

Page 5: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

we overgeschakeld op een Arduino Uno, Jens had hiervan nog één liggen. Hierbij waren er niet echt moeilijkheden bij het compileren en is het dus mogelijk voor de controller correct uit te lezen. Het nadeel met de Uno is dat er te weinig in- en uitgangen op aanwezig zijn. Voor dit probleem op te lossen, heeft Egbert een Arduino Mega besteld op AliExpress. Deze heeft 52 in- en uitgangen en zou meer dan voldoende moeten zijn. Om verschillende knoppen uit te testen, heeft hij LED’s aangesloten op de Arduino. Het programma dat we hiervoor geschreven hebben, is hieronder afgebeeld. Daarnaast is een foto afgebeeld van de Arduino met daarop de LED’s aangesloten. Op de Arduino is een USB-Shield te zien. Dit is voor eventueel later een draadloze controller aan te sturen. Dit werkt allemaal zoals het hoort.

In het programma dat hierboven afgebeeld staat, wordt in de “loop()” gecontroleerd wanneer er een button ingedrukt wordt. Wanneer R1, L1, R2 of L2 in gedrukt wordt, gaat er een LED branden. Elke knop heeft een specifieke kleur van LED dat zal aangaan. De tijd dat de LED zal branden wordt bepaald door de constante “wachten”.

Page 6: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

Nu het aansturen van de motoren en het uitlezen van de controller allebei apart werkt, is de volgende stap het combineren van beide. Hiervoor hebben Jens en Egbert afgesproken tijdens de paasvakantie. Dankzij de twee programma’s was het vrij eenvoudig voor een programma te schrijven waarbij de controller wordt uitgelezen en deze de motoren gaat aansturen.Voor alles te testen, hebben we de controller samen met twee motoren en twee shields aangesloten op de Arduino Mega. Als het programma werkt voor twee motoren, is het normaal geen probleem voor 4 motoren aan te sturen.

Het programma wordt zo geschreven dat de motor aangestuurd wordt aan de hand van twee knoppen. Elke knop voor een bepaalde draairichting van de motor. Met de ene knop draait de motor in wijzerzin en met de andere knop in tegenwijzerzin.Dan hebben we de code zo geschreven dat met de twee knoppen “Start” en “Select” de draaisnelheid kan bepaald worden. Indien de knop “Start” is ingedrukt geweest, gaat de motor sneller draaien dan bij de knop “Select”. Deze verschillende snelheden worden geconfigureerd in de code en kregen elk een bepaald waarde.Het aansturen van twee motoren via een joystick is een volgende stap in het uitlezen van de controller. Dit is echter heel wat complexer voor te programmeren.

Voor de controller zo volledig mogelijk te testen, hebben we het programma waarbij LED’s worden aangestuurd, hierin verwerkt.Het volledige programma is hieronder terug te vinden.

Page 7: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet
Page 8: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet
Page 9: projectrobotarm.files.wordpress.com  · Web viewDe aansluitingen van de voeding en de motor wijzen zichzelf uit. Maar voor de 4 aansluitingen naar de Arduino moet er wel goed opgelet

Alle commando’s zijn in vorige programma’s al eens uitgelegd geweest. Het programma is vrij eenvoudig opgebouwd en makkelijk te begrijpen.

Nu is het wachten tot de robot in elkaar steekt voor de defintieve code te schrijven. Hierbij gaan er 2 grote onderverdelingen zijn. De robot gaat aan de hand van een schakelaar in de automatische of handmatige stand geplaatst worden. De bepaalde opdracht die de robot moet doen, kan pas geschreven worden wanneer het volledig in elkaar zit en de handmatige functies allemaal perfect werken.