Inhoudsopgave:

Handheld console met draadloze controllers en sensoren (Arduino MEGA & UNO) - Ajarnpa
Handheld console met draadloze controllers en sensoren (Arduino MEGA & UNO) - Ajarnpa

Video: Handheld console met draadloze controllers en sensoren (Arduino MEGA & UNO) - Ajarnpa

Video: Handheld console met draadloze controllers en sensoren (Arduino MEGA & UNO) - Ajarnpa
Video: Optical Rs485 Water Do Sensor Luminescent Titanium Alloy Calibration Method 2024, November
Anonim
Image
Image
Bedraad het (touch)screen
Bedraad het (touch)screen

Wat ik heb gebruikt

- Arduino MEGA

- 2x Arduino UNO

- Adafruit 3,5 TFT 320x480 touchscreen HXD8357D

- Zoemer

- 4 Ohm 3 W luidspreker

- 5 mm LED-verlichting

- Ultimaker 2+ printer met zwart PLA-filament

- Lasercutter met MDF-hout

- Zwarte spuitverf (voor het hout)

- 3x nRF24L01+ draadloze zendontvangers

- 2x 16 mm knop

- 2x Druksensoren

- 3x 9V batterijhouders

- Broodplank

- 2x 0,96'' OLED I2C-schermen

- Mannelijke - vrouwelijke draden

- Soldeerstation

- Superlijm

- 2x eenkanaals aanraakmodule (ROOD/BLAUW)

Stap 1: Bedraad het (touch)screen

Bedraad het (touch)screen
Bedraad het (touch)screen
Bedraad het (touch)screen
Bedraad het (touch)screen

We gaan er dus een draagbare console van maken, met twee draadloze controllers.

Daarom zullen we een hoofdeenheid hebben (het grootste deel, met het LCD-scherm)

De hoofdeenheid wordt uitgevoerd met de Arduino MEGA.

De twee afzonderlijke controllers zullen elk een Arduino UNO uitvoeren.

Later zullen we de Arduino's met elkaar laten communiceren om controllergegevens te verzenden.

Begin met het correct aansluiten van het 320x480-scherm op uw hoofdschermeenheid (Arduino MEGA), zoals in deze tutorial. (Adafruit heeft een geweldige gedetailleerde tutorial voor bedrading en code).

Voor geluid heb ik een zoemer en een 3W 4Ohm-luidspreker aangesloten om digitale pinnen en GND te scheiden.

met de toon (pin, frequentie, duur); U kunt enkele basis monofone geluiden creëren.

Stap 2: Maak kennis met de bibliotheken

Maak kennis met de bibliotheken
Maak kennis met de bibliotheken
Maak kennis met de bibliotheken
Maak kennis met de bibliotheken

Het Adafruit 320x480-scherm ondersteunt de bijbehorende Adafruit_GFX- en Adafruit_TFTLCD-bibliotheken.

Lees de documentatie. Ik denk dat het daar best goed wordt uitgelegd.

Zorg ervoor dat je de juiste instellingen in de Arduino IDE invoert:

Extra -> Bord -> Arduino/Genuino MEGA of MEGA 2560

Extra -> Poort -> [De poort met ''Arduino MEGA'' erin]

Deze specifieke schermbibliotheek ondersteunt aangepaste lettertypen, basisvormen en een verscheidenheid aan kleuren.

Opmerkelijk is misschien dat de verversingssnelheid te laag is voor vloeiende animaties. Als u het scherm elke vinkje wilt bijwerken, zal het te traag zijn om elke pixel opnieuw te tekenen en zal het flikkeren

Dus ik zou willen voorstellen om hier creatief omheen te werken, zoals hoe sommige van de oudere handhelds met animatie omgingen: met keyframes. Minder is meer! En in plaats van alles elke seconde opnieuw te tekenen, kunt u, als u een rechthoek naar links of rechts wilt verplaatsen, eenvoudig het spoor wissen dat het achterlaat, in plaats van het hele object te wissen en opnieuw te tekenen.

Ik gebruikte bijvoorbeeld de schermflikkering als een knipperend effect voor het personage bij de introreeks.

Van de Adafruit_GFX-bibliotheek gebruikte ik voornamelijk de tft.fillRect(x, y, width, height, color); en tft.print(tekst); functies.

Experimenteren staat centraal.

Stap 3: Ontwerp een grafische gebruikersinterface / hoofdmenu

Ontwerp een grafische gebruikersinterface / hoofdmenu
Ontwerp een grafische gebruikersinterface / hoofdmenu
Ontwerp een grafische gebruikersinterface / hoofdmenu
Ontwerp een grafische gebruikersinterface / hoofdmenu

Nadat je kennis hebt opgedaan binnen de bibliotheek en de beperkingen/bevoegdheden kent, kun je beginnen met het ontwerpen van een hoofdmenuscherm.

Nogmaals, denk aan rechthoeken. Tenminste dat is wat ik deed.

Hier is mijn code voor de gebruikersinterface

pastebin.com/ubggvcqK

U kunt schuifregelaars maken voor de helderheid van het scherm, om de ''Lite''-pin op uw Adafruit-aanraakscherm te bedienen via een analoge pin.

Stap 4: Bedraad de twee controllers

Bedraad de twee controllers
Bedraad de twee controllers
Bedraad de twee controllers
Bedraad de twee controllers
Bedraad de twee controllers
Bedraad de twee controllers

Voor het controller-gedeelte is het eigenlijk aan jou wat voor soort sensoren je wilt gebruiken, afhankelijk van welke game je van plan bent te maken

Oké, dus voor de controllers die ik besloot te gebruiken:

- Een druksensor

- Een OLED-scherm

- Eenkanaals aanraakmodule die aan of uit gaat

- Bewegingssensor (RobotDyn APDS9960)

- nRFL01+ Transceiver (voor draadloze communicatie)

- Een drukknop

Let op: De Gesture sensor en de OLED gebruiken beide SCL/SDA aansluitingen. Het duurde even voordat ik me realiseerde dat Arduino er maar twee heeft: A4 en A5. Maar je kunt deze gewoon parallel op het breadboard aansluiten en het werkt prima

Stap 5: Begin met het bedraden van de draadloze verbinding

Begin met het bedraden van de draadloze verbinding
Begin met het bedraden van de draadloze verbinding
Begin met het bedraden van de draadloze verbinding
Begin met het bedraden van de draadloze verbinding
Begin met het bedraden van de draadloze verbinding
Begin met het bedraden van de draadloze verbinding

Het bedraden van de nRF24L01+ modules kostte me wat tijd om het te laten werken.

Ik moest mijn toevlucht nemen tot de TMRh20 RF24-bibliotheek, nadat ik niet in staat was om de juiste sensorgegevens naar het scherm te sturen.

Om meerdere Arduino's met elkaar te laten communiceren, moeten we ervoor zorgen dat ten minste één van de UNO's wordt gevoed, evenals de MEGA.

Gebruik de seriële console van de MEGA om de resultaten die je van de UNO krijgt uit te printen en kijk of het werkt.

Hier is de code

Hier is de bibliotheek

Stap 6: Ga wild! Probeer verschillende dingen uit

Ga wild! Probeer verschillende dingen uit
Ga wild! Probeer verschillende dingen uit

Een cruciaal onderdeel van mijn ontwikkelingsproces was om gewoon een heleboel dingen uit te proberen!

Wat voor knoppen wil je gebruiken?

Wat stop je in je controllers?

Kijk eens rond op websites, je vindt naast de gebruikelijke ''A/B''-knoppen of analoge joysticks nog veel meer componenten. Laat je inspireren en motiveren om het eens te proberen!

Zodra je een duidelijk en werkend idee hebt van wat je in de controllers wilt plaatsen, bedraad je de componenten.

Afhankelijk van hoe ze werken, moet u digitale ingangen of analoge ingangen gebruiken.

OPMERKING: Sommige componenten hebben mogelijk SCL-/SDA-pinnen nodig om correct te werken. En als je twee of meer sensoren hebt die beide hetzelfde nodig hebben, krijg je waarschijnlijk een paniekaanval zoals ik. Maar u hoeft zich geen zorgen te maken

Je kunt de SDA- en SCL-pinnen van beide sensoren in serie met elkaar plaatsen, naar A4 en A5 en het zal werken

Stap 7: Ontwerp

Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp

Als je eenmaal een cool idee hebt voor de sensoren die je wilt gebruiken, schets dan enkele ideeën voor een ontwerp dat je leuk vindt.

Ga daarna aan de slag met enkele modelleringsprogramma's zoals Blender, Maya, Cinema 4D.

Ik heb Blender gebruikt om een (ruw) model te maken.

Om duidelijke metingen in Blender te krijgen, kunt u de eenheid van de rastergrootte wijzigen in millimeters.

Nadat je een model hebt gemaakt, zorg er dan voor dat je geen dubbele hoekpunten hebt en dat je je normalen opnieuw hebt berekend.

Exporteer het bestand als een.stl, als je een 3D-printer zoals ik wilt gebruiken.

OPMERKING: In Blender moet u de exportschaal op 0,1 zetten, als u in de volgende stap de nauwkeurige grootte in Cura wilt

Stap 8: 3D printen van de behuizing

3D printen van de behuizing
3D printen van de behuizing
3D printen van de behuizing
3D printen van de behuizing
3D printen van de behuizing
3D printen van de behuizing

Dit model is bedrukt met 2,85 mm zwart PLA-filament op een Ultimaker 2+ printer.

CURA downloaden

Laad je. STL in Cura, en het zal je laten zien hoe lang het zal duren.

Voor een handheld-case kan het tot 10 uur duren om af te drukken, afhankelijk van de grootte.

Voor modellen met een laag detail kun je het proces echter versnellen, wat ik deed.

Dit zijn mijn instellingen:

Laaghoogte: 0.2

Wanddikte: 0.8

Dikte boven/onder: 0.8

Pijp: 0.4

Temperatuur: 60 graden Celsius

Stroom: 100%

Rand: Overal waar de bouwplaat wordt aangeraakt

Infill dichtheid: 20%

Geleidelijk: 0

Mondstuktemperatuur: 220 C

Afdruksnelheid: 120%

Stap 9: Solderen en finaliseren

Solderen en finaliseren
Solderen en finaliseren
Solderen en finaliseren
Solderen en finaliseren
Solderen en finaliseren
Solderen en finaliseren

Je hebt een lange weg afgelegd.

De laatste stap is het aanschaffen van een perfboard / veroboard en het vertalen van uw breadboard-verbindingen naar een onderdeel van een prototypingboard.

Zorg ervoor dat de elektronica in de bedrukte behuizingen past en snij misschien wat MDF van hout om onderdelen te maken waar knoppen / controller-ingangen doorheen steken.

Ik heb hiervoor een lasercutter gebruikt.

Het belangrijkste is om te rotzooien, dingen uit te proberen die je anders nooit hebt gedaan en plezier te hebben!

Ik hoop dat deze tutorial duidelijk genoeg was… Het was een behoorlijk moeilijk project, met een geweldig resultaat!:)

Stap 10: Voorbeeld

Aanbevolen: