Inhoudsopgave:

Robotarm besturen met TLV493D, joystick en Arduino - Ajarnpa
Robotarm besturen met TLV493D, joystick en Arduino - Ajarnpa

Video: Robotarm besturen met TLV493D, joystick en Arduino - Ajarnpa

Video: Robotarm besturen met TLV493D, joystick en Arduino - Ajarnpa
Video: Een robotarm besturen met behulp van de Kinect 2024, November
Anonim
Robotarm besturen met TLV493D, joystick en Arduino
Robotarm besturen met TLV493D, joystick en Arduino
Robotarm besturen met TLV493D, joystick en Arduino
Robotarm besturen met TLV493D, joystick en Arduino
Robotarm besturen met TLV493D, joystick en Arduino
Robotarm besturen met TLV493D, joystick en Arduino

Een alternatieve controller voor je robot met een TLV493D-sensor, een magnetische sensor met 3 vrijheidsgraden (x, y, z) hiermee zou je je nieuwe projecten kunnen besturen met I2C-communicatie op je microcontrollers en elektronisch bord dat Bast Pro Mini M0 met een SAMD21-microcontroller op Arduino IDE.

Het doel is om een alternatieve joystick te hebben om je projecten te besturen, in dit geval een robotarm met 3 graden vrijheid. Ik heb een MeArm Robot Arm gebruikt. Dit is een open-source project en je kunt het gemakkelijk maken en je kunt het hier vinden. Met deze kennis kan ik je eigen controller arm of andere applicatie maken die ik graag met je deel.

Alle elektronische componenten hebben links om in de winkel te kopen, bestanden naar 3D-printer en code voor Arduino IDE.

TLV493D kan een joystick zijn De 3D magnetische sensor TLV493D-A1B6 biedt nauwkeurige driedimensionale detectie met een extreem laag stroomverbruik in een kleine 6-pins behuizing. Met zijn magnetische velddetectie in x-, y- en z-richting meet de sensor betrouwbaar driedimensionale, lineaire en rotatiebewegingen.

Toepassingen zijn onder meer joysticks, bedieningselementen (witgoed, multifunctionele knoppen) of elektrische meters (anti-manipulatie) en elke andere toepassing die nauwkeurige hoekmetingen of een laag stroomverbruik vereist. De geïntegreerde temperatuursensor kan bovendien worden gebruikt voor plausibiliteitscontroles. Belangrijkste kenmerken zijn 3D magnetische detectie met een zeer laag stroomverbruik tijdens operaties.

De sensor heeft een digitale uitgang via een 2-draads gebaseerde standaard I2C-interface tot 1 MBit/sec en 12-bit dataresolutie voor elke meetrichting (Bx, By en Bz lineaire veldmeting tot +-130mT). TLV493D-A1B6 3DMagnetic is een standalone break-buitenboordmotor.

U kunt het eenvoudig aansluiten op elke microcontroller van uw keuze die Arduino IDE-compatibel is en een logisch niveau van 3,3 V heeft. In dit project gebruiken we de Electronic Cats breakout en een ontwikkelbord dat ik later zal uitleggen.

electroniccats.com/store/tlv493d-croquette…

Het voordeel van het gebruik van een TLV493D-sensor is dat er slechts twee kabels met I2C worden gebruikt om de informatie te ontvangen, dus het is een zeer goede optie als we heel weinig pinnen op de kaart hebben, ook dankzij de voordelen van I2C kunnen we meer aansluiten sensoren. De repository voor dit project vind je hier. Voor dit project gebruiken we een joystick die je kunt printen op een 3D-printer of die je kunt laten printen bij je dichtstbijzijnde 3D-printwinkel.

De. STL-bestanden worden aan het einde van het project toegevoegd. De montage is heel eenvoudig, je kunt het in video zien

Bouw je eigen robotIn dit geval bouw ik de robot Mearm v1 die je kunt vinden op de pagina van de auteur hier

Dit is een eenvoudige robot om te maken en te besturen omdat hij servomotoren heeft op 5 volt. U kunt elke robot naar keuze bouwen of gebruiken, dit project zal zich richten op besturing met de TLV493D-sensor.

Benodigdheden:

  • x1 Bast Pro Mini M0 Aankoop
  • x1 Kroket TLV493D Aankoop
  • x1 Kit MeArm v1
  • x20 Dupont-kabels
  • x1 Protoboard
  • x2 drukknop
  • x1 magneet 5 mm diameter x 1 mm dikte

Stap 1: De sensor aansluiten met Bast Pro Mini M0

De sensor aansluiten met Bast Pro Mini M0
De sensor aansluiten met Bast Pro Mini M0

Voor de besturing van de robotarm wordt gebruik gemaakt van een Electronic Cats ontwikkelbord, een Bast Pro Mini M0 met een SAMD21E ARM Cortex-M0 microcontroller.

Deze chip werkt op 48MHz, met 256KB programmeergeheugen, 32KB SRAM en werkt op een spanning van 1.6v tot 3.6v. Dankzij de specificaties kunnen we het gebruiken voor een laag verbruik met goede prestaties en het ook programmeren met CircuitPython of een andere taal die microcontrollers mogelijk maakt.

electroniccats.com/store/bast-pro-mini-m0/

Als je meer wilt weten over deze kaart, laat ik je de link van de repository achter.

github.com/ElectronicCats/Bast-Pro-Mini-M0…

Om de beweging van de servomotoren te regelen, wordt de magnetische sensor TLV493D gebruikt die het signaal zal sturen om de servomotor in de overeenkomstige graden te positioneren.

Met een enkele sensor kunnen we twee servomotoren bewegen, in dit voorbeeld gebruiken we slechts een enkele sensor en een drukknop om de grijper aan te sturen.

Een ander voorstel dat u kunt doen, is om nog een TLV493D-sensor toe te voegen en de derde servomotor en de grijper te verplaatsen. Als je dat doet, laat dan je ervaring achter in de reacties en ik nodig je uit om het project te delen.

De afbeelding toont het gewapende circuit op een protoboard.

  • De eerste servomotor is voor de grijper en sluit aan op pin 2
  • De tweede servomotor is voor de robotbasis en wordt aangesloten op pin 3
  • De derde servomotor is voor de robotschouder en wordt aangesloten op pin 4
  • De vierde servomotor is voor de robotelleboog en wordt aangesloten op pin 5
  • De eerste drukknop is om elke beweging van de robot te stoppen en wordt aangesloten op pin 8 in pull-down met een weerstand van 2.2Kohms.
  • De tweede drukknop is voor het openen en sluiten van de grijper en is verbonden met pin 9 in pull-down met een weerstand van 2.2Kohms.

In het circuitbeeld verschijnt de TLV493D-sensor niet omdat deze niet is toegevoegd aan fritzing, maar een 4-pins connector is toegevoegd om de VCC-, GND-, SCL- en SDA-connectoren te simuleren. In de afbeelding zijn ze in dezelfde volgorde geplaatst.

  • De eerste pin wordt aangesloten op 3,3 volt op het bord
  • De tweede pin maakt verbinding met GND
  • De derde SCL-pin wordt aangesloten op pin A5 op het bord
  • De vierde SDA-pin wordt aangesloten op de A4-pin van het bord

Dankzij het voordeel van de SAMD21-chip kunnen we elk van zijn digitale pinnen gebruiken als PWM-uitgangen, wat ons zal helpen om de juiste pulsbreedte te sturen om de servomotor te bewegen.

Een ander belangrijk stuk informatie waarmee rekening moet worden gehouden, is de externe voeding voor de servomotoren, in het circuit ziet u een connector die wordt aangesloten op een 5volt bij 2Amp-bron, om overbelasting en beschadiging van het bord te voorkomen.

Vergeet ook niet om het gemeenschappelijke signaal GND van de kaart en de externe bron samen te voegen, anders zou u problemen hebben met het besturen van de servomotoren omdat ze niet dezelfde referentie zouden hebben.

Stap 2: Coderen van de Arduino IDE naar Bast Pro Mini M0

De Arduino IDE coderen naar Bast Pro Mini M0
De Arduino IDE coderen naar Bast Pro Mini M0
De Arduino IDE coderen naar Bast Pro Mini M0
De Arduino IDE coderen naar Bast Pro Mini M0
De Arduino IDE coderen naar Bast Pro Mini M0
De Arduino IDE coderen naar Bast Pro Mini M0

Het eerste zal zijn om de Bast Pro Mini M0-kaart in de Arduino IDE te installeren, de stappen zijn te vinden in de Electronic Cats-repository en ze zijn belangrijk voor de werking ervan.

github.com/ElectronicCats/Arduino_Boards_I…

Wanneer u klaar bent met de Arduino IDE, moet u de officiële bibliotheek van de TLV493D-sensor installeren, naar https://github.com/Infineon/TLV493D-A1B6-3DMagnet… gaan en naar Releases gaan.

In het eerste deel van de code worden de gebruikte bibliotheken gedeclareerd, in dit geval Servo.h voor de servomotoren en TLV493D.h voor de sensor.

Bij gebruik van de Servo.h-bibliotheek is het belangrijk om het aantal servomotoren op te geven, hoewel de robot er momenteel 4 heeft, worden er slechts 3 gebruikt.

De pinnen zijn gedeclareerd voor de drukknoppen die elke beweging van de robot en het openen en sluiten van de grijper zullen stoppen. Er worden enkele globale variabelen gedeclareerd die dienen om de staat van de grijper te kennen en of er beweging is.

In het tweede deel van de code zullen we in de seriële monitor de waarde laten zien van de mate waarin de motoren zijn. Een ander belangrijk punt is om de limiet van de graden in uw servomotoren vast te stellen, hiervoor wordt de functie map () gebruikt die de waarde van de bewegingen van de TLV493D-sensor omzet naar het bereik van 0 tot 180 graden van de servomotor.

Voor het laatste deel van de code worden de voorwaarden gesteld om de beweging van de servomotoren met de drukknop te activeren en om te weten in welke staat de grijper zich bevindt voor zijn volgende beweging wanneer de tweede drukknop wordt ingedrukt. Zoals je in de vorige afbeeldingen kunt zien, is de code niet moeilijk te implementeren en te begrijpen, aan het einde van het project kun je de code vinden.

Ben je aan het leren om Circuit Python te gebruiken?

Als je geïnteresseerd bent om te leren hoe je deze IDE kunt gebruiken, kun je de Bast Pro Mini M0-kaart vinden in de volgende link om de bootloader te downloaden en te beginnen met programmeren met Python.

Stap 3: 3D-stukken

Als u geïnteresseerd bent om het project te maken, kunt u de stukken downloaden in.stl en ze afdrukken. Je vindt de vijlen voor de basis en de draaistok.

Aanbevolen: