Inhoudsopgave:

ARCA (Adorable Remote Controlled Android): 4 stappen (met afbeeldingen)
ARCA (Adorable Remote Controlled Android): 4 stappen (met afbeeldingen)

Video: ARCA (Adorable Remote Controlled Android): 4 stappen (met afbeeldingen)

Video: ARCA (Adorable Remote Controlled Android): 4 stappen (met afbeeldingen)
Video: КАКИМ БУДЕТ PORTAL 3 2024, Juli-
Anonim
ARCA (Adorable Remote Controlled Android)
ARCA (Adorable Remote Controlled Android)
ARCA (Adorable Remote Controlled Android)
ARCA (Adorable Remote Controlled Android)
ARCA (Adorable Remote Controlled Android)
ARCA (Adorable Remote Controlled Android)

Deze instructable is gemaakt om te voldoen aan de projectvereiste van de Makecourse aan de University of South Florida (www.makecourse.com).

ARCA is een schattig op afstand bestuurbaar Android dat ongelooflijk leuk is om te bouwen en om mee te spelen. Het doel van dit project was om iets te creëren dat iedereen kan begrijpen en waarmee iedereen zich kan identificeren door een robot te creëren die zowel schattig als functioneel is.

De robot functioneert door verschillende emoties weer te geven op een 8 bij 8 LED-matrix, deze emoties omvatten vreugde, slapen, liefde, woede, gekheid en omhoog kijken, links en rechts. De robot werkt ook als een RC-auto en kan vooruit gaan en naar links of rechts draaien. De robot gaat vooruit door beide wielmotoren te activeren, draait naar links door de rechtermotor aan te zetten en draait naar rechts door de linkermotor aan te zetten. Het ontwerp is erg simplistisch, maar het werkt gewoon, en ik wilde me sterk concentreren op het programmeren van de Arduino, omdat ik een programmeur in hart en nieren ben.

De nieuwste versies van alle bestanden die in deze tutorial worden gebruikt, zijn te vinden op mijn Github ARCA Repository.

Stap 1: Onderdelenlijst en 3D-printen

Onderdelenlijst en 3D-printen
Onderdelenlijst en 3D-printen
Onderdelenlijst en 3D-printen
Onderdelenlijst en 3D-printen

Onderdelen voor dit project kunnen 3D worden geprint of online worden gekocht. Toen ik aan de montage dacht, wilde ik efficiëntie centraal stellen en ook proberen om niet (vrij letterlijk) het wiel opnieuw uit te vinden. De 3D-printer die voor dit project werd gebruikt, was een Makerbot Replicator, als je zeker wilt weten dat je 3D-afdrukken overeenkomen met die van mij, gebruik dan deze printer.

Structurele componenten

  • Doos met gaten in de zijkanten voor de wielen en armen
  • Kofferdeksel met gaten voor achterwielen en een gat voor de IR-sensor
  • Linkerarm
  • Rechter arm
  • As voor de twee achterwielen
  • twee asconnectoren om het deksel met de as te verbinden
  • 4 wielen (motoren ook opgenomen in deze link)
  • Kleine schroeven (passend in de motoren)

Elektrische componenten

  • Arduino Uno
  • Klein breadboard (ik kocht de Arduino-kit en deze kwam erbij)
  • Twee MAX7219 Red Dot-matrices met MCU-besturing
  • Infraroodontvanger en afstandsbediening
  • Twee TIP 120-transistoren
  • Aansluitdraden (ik heb veel mannelijke naar vrouwelijke draden gebruikt, evenals mannelijk naar mannelijk, en raad aan om lange draden te gebruiken in plaats van korte draden)
  • een weerstand van 220 ohm
  • Twee reductiemotoren
  • USB-aansluitbare power packs (de draagbare die worden gebruikt voor mobiele telefoons)

Stap 2: Montage

samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst

structurele montage

De 3D-geprinte onderdelen moeten waarschijnlijk worden schoongemaakt en ik raad aan om ze met een fijne korrel te schuren en aceton (nagellakverwijderaar) te gebruiken om eventuele lijmresten te verwijderen die in het 3D-printproces worden gebruikt. Sommige onderdelen passen misschien niet perfect, en het was voor mij nodig om de as te schuren om perfect rond te zijn en goed door de gaten te passen.

De wielen hebben een kleine aanpassing nodig, ze moesten meer worden geboord om te passen bij de afmetingen van de as aan de achterkant en de schroeven aan de voorkant. Gebruik een boor van 6 mm om door de gaten in de wielen te boren om grotere gaten in de wielen te boren.

Voor deze montage heb ik verschillende lijmen gebruikt, maar ik ontdekte dat vloeibaar beton (modelleerlijm) het beste was om vast te houden ondanks een lange droogtijd, maar epoxy was het beste voor dingen die je snel moet drogen en goed moet vasthouden, ondanks dat het rommelig is.

De rest van de montage is vrij eenvoudig:

  1. Bevestig de ashouders aan de achterkant van het deksel van de doos, gebruik epoxy om af te dichten
  2. Haal de as door de ashouders
  3. Lijm de wielen op de as met vloeibaar beton
  4. Steek de armen door de bovenste gaten en lijm op de armhouder met epoxy
  5. Schroef het deksel van de doos in de doos
  6. Gebruik isolatietape op de bodem van de doos waar de wielen zijn

Elektrische montage

De voorwielen zijn rechtstreeks aan de motoren bevestigd en u moet een kleine schroef in de motor gebruiken om deze lang genoeg te maken om door het gat in de robot aan elke kant te passen. Er moet een klein gaatje in de roterende pen van de motor zitten en je kunt de schroef daar indraaien en de kop van de schroef in het wiel lijmen nadat je de schroef door het gat in de doos hebt geduwd.

De achterkant van mijn breadboard had een plakkerige achterkant, maar je kunt elektrische tape gebruiken om het te hechten als de jouwe dat niet doet. Om veiligheidsredenen werd ook isolatietape gebruikt voor het bevestigen van de elektrische componenten die niet in het bord zaten. De MCU's met de LED-displays werden met elektrische tape aan de achterkant van de oogkassen bevestigd en de motoren werden ook met elektrische tape aan de zijkanten van de doos dicht bij de gaten bevestigd. Ik heb rode elektrische tape gebruikt om het onzichtbaarder te maken, voor het geval dat, en ik raad aan om een elektrische tape te gebruiken met een vergelijkbare kleur als uw versie van ARCA.

Het breadboard en de pinnen zijn opgesteld zoals deze Fritzing-afbeelding. Als je meer aan dit diagram wilt toevoegen om ARCA aan te passen, kun je het Fritzing-bestand downloaden in mijn Github-repository en het naar hartenlust bewerken.

Ik heb de draden aan de lussen in de tandwielmotoren bevestigd door de draden rond de lussen te buigen, zodat ze vast blijven zitten. Het is waarschijnlijk een beter idee om deze verbindingen te solderen als je een soldeerbout hebt, maar dit is een gemakkelijke oplossing als je er geen hebt.

Het power pack is aangesloten op hetzelfde snoer dat wordt gebruikt om de Arduino op de computer aan te sluiten om uw programma te downloaden, en dit zit gewoon los in de robot, zodat het gemakkelijk kan worden verwijderd en opgeladen.

Stap 3: Programmeren

Programmeren
Programmeren

Hier is de code die u naar uw ARCA kunt uploaden om deze precies zoals de mijne te laten werken, u hebt ook de volgende twee bibliotheken nodig om de code te gebruiken.

Voor de duidelijkheid en maatwerk zal ik je echter door mijn code leiden. Sla deze stap gerust over als u uw robot niet aanpast of niet van plan bent de emoties te veranderen.

Ten eerste neem ik twee bibliotheken op voor gebruik in mijn code, waardoor ik de functies en objecten van deze bibliotheken kan gebruiken. Ik definieer hier ook mijn pinnen. Als je hebt besloten om je pinnen anders te maken dan mijn instellingen in de vorige stap, breng dan hier de wijzigingen in je code aan met de juiste pinnen.

Vervolgens heb ik de emoties gedefinieerd, de benodigde objecten voor de IR-sensor en de 8 bij 8 LED-displays gedeclareerd en enkele globale variabelen gedefinieerd. De emoties worden gedeclareerd in een bytearray, waarbij elk van de hexadecimale getallen in de array de rijen in de resulterende 8 bij 8 weergave vertegenwoordigen. Om je eigen emoties te creëren, raad ik aan om de emotie die je wilde in een 8 bij 8 raster te tekenen en vervolgens elke rij 8 bit binair getal te schrijven waarbij het licht uit een 0 is en het licht aan is een 1, en maak dan een hexadecimaal getal daaruit en plaats het in een array met lengte 8. Ik heb ook enkele globale variabelen gedefinieerd om in de lus te gebruiken; de variabelen voor het knippermechanisme en de wijzers om de emoties op te slaan en in te stellen op neutraal.

Nu komen we bij de set-up-lus, waar ik seriële bewaking inschakel om te testen, en dit zou handig moeten zijn om je code te testen met verschillende IR-afstandsbedieningen. Vervolgens heb ik de linker- en rechteroogobjecten geïnitialiseerd met behulp van functies uit de LED-besturingsbibliotheek. Ik heb ook de pinnen van de reductiemotor op output gezet en de IR-ontvanger gestart.

In de lus wacht het in wezen op het IR-signaal om de status-quo van de robot te veranderen. Dus als een IR-signaal wordt ontvangen en het komt overeen met een van de codes van een specifieke knop, dan wordt dat if-statement geactiveerd en worden de waarden voor het linkeroog en het rechteroog dienovereenkomstig ingesteld voor de emoties. Als een bewegingsknop wordt ingedrukt, zoals links, rechts, vooruit en OK, dan worden de pinnen digitaal geschreven om aan of uit te zijn, afhankelijk van de ingedrukte knop. Gewoon een opmerking over de IR-ontvangercodes: er is een voorbeeldcode in de IR-afstandsbedieningsbibliotheek die u de hexadecimale codes voor uw afstandsbediening geeft. Als er niets gebeurt wanneer u op knoppen drukt, opent u dit programma om te controleren of de codes correct zijn. Het enige wat u hoeft te doen is het hexadecimale nummer dat bij elke knop hoort te wijzigen.

Ten slotte heb je de functie die de emoties op de 8 bij 8 displays drukt. Dit gebruikt de setRow-functies uit de LED-besturingsbibliotheek en gaat gewoon door de arrays die u hebt gemaakt en stelt de rijen dienovereenkomstig in. Het neemt twee parameters in: de array voor het linkeroog en de array voor het rechteroog. Dit kan een byte-aanwijzer zijn of een byte-array zelf (d.w.z. de naam "neutraal") die als een aanwijzer fungeert.

Stap 4: Bonustips en -trucs

Bonustips en -trucs
Bonustips en -trucs

Er was zeker veel dat ik heb geleerd tijdens dit project en ik wilde hier wat aanvullende tips delen die van toepassing zijn op zowel dit project als voor andere projecten met een Arduino.

  • Er zijn veel online bronnen voor Arduino en de meest nuttige komt naar mijn mening van de Arduino-website vanwege hun duidelijke en beknopte codevoorbeelden.
  • Vind het wiel niet opnieuw uit, er zijn veel kits en kant-en-klare onderdelen die u kunt gebruiken om uw project gemakkelijker te maken. Ik ben een programmeur en geen werktuigbouwkundig ingenieur en ik vond het moeilijk om erachter te komen hoe ik deze robot zou laten werken, maar het was gemakkelijk om iets online te kopen en te implementeren in mijn ontwerp, in plaats van het letterlijk opnieuw uitvinden van de robot. Wiel
  • Bibliotheken zijn je vriend in Arduino en in alle objectgeoriënteerde talen en ze bestaan niet voor niets. Koppel dit met microcontrollers en het programmeren van een 8 bij 8 LED is eenvoudig. Ik heb er al eerder een met de hand geprogrammeerd en slechts één gebruikt ongeveer elke pin in de Arduino en vereist een hoop code. Erg rommelig en niet erg leuk.
  • 3D-printers zijn cool maar niet perfect en het is oké om wat dingen te schuren. Om deze reden ga je liever groter bij 3D-printen, omdat je het in de meeste gevallen een beetje kunt schuren om die perfecte pasvorm te krijgen.
  • Stroom kan een probleem zijn, omdat ik op het laatste moment aan stroomverbruik dacht en dacht dat een 5v-batterij voldoende zou zijn. Dan, schijnbaar willekeurig, zou soms een motor of een LED-display niet werken. Toen ik eenmaal een upgrade naar het powerpack had uitgevoerd, waren er geen problemen meer, ondanks dat de robot omvangrijker was.

Aanbevolen: