Inhoudsopgave:

PCB-handheld met Arduino (met een optie om draadloos te gaan!): 3 stappen
PCB-handheld met Arduino (met een optie om draadloos te gaan!): 3 stappen

Video: PCB-handheld met Arduino (met een optie om draadloos te gaan!): 3 stappen

Video: PCB-handheld met Arduino (met een optie om draadloos te gaan!): 3 stappen
Video: ZigUSB - Бесшумное Zigbee USB реле с энергомониторингом 2024, November
Anonim
PCB-handheld met Arduino (met een optie om draadloos te gaan!)
PCB-handheld met Arduino (met een optie om draadloos te gaan!)
PCB-handheld met Arduino (met een optie om draadloos te gaan!)
PCB-handheld met Arduino (met een optie om draadloos te gaan!)

Update 28.1.2019Ik werk momenteel aan de volgende versie van deze handheld. Je kunt het project volgen op mijn YouTube-kanaal of Twitter.

Waarschuwing! Ik heb een fout gevonden in de PCB-layout. De linker- en omhoog-knoppen zijn verbonden met alleen analoge pinnen. Ik heb dat opgelost door twee pullup-weerstanden toe te voegen aan de twee ingangen. Dat is niet de perfecte oplossing, maar het werkt wel.

Ik ontwierp een PCB voor een handheld die is gebaseerd op de ATmega328P-AU microcontroller (hetzelfde als in de Arduino Nano), SSD1306 OLED-display en enkele knoppen. Ik heb ook een optie toegevoegd om de NRF24L01+ radiomodule toe te voegen voor multiplayer-games. Je zou deze handheld ook als draadloze controller kunnen gebruiken. Ik heb eerder draadloze controllers gemaakt en heb er zelfs een Instructables over. Het enige dat je nodig hebt, is een Arduino Leonardo of Pro Micro.

De handheld is volledig open source. Alle broncode is gratis te gebruiken, evenals het PCB-ontwerp. Ik ben ook begonnen met het coderen van een open source, op tegels gebaseerde game-engine voor de console. Op dit moment werkt alles behalve de physics engine heeft wat problemen met hoge acceleraties. Dat komt gewoon omdat de physics-engine frame voor frame met dezelfde snelheid draait als de tekenfunctie. De physics-engine zou microstepping moeten hebben (een pixel per keer bewegen om te controleren of er een botsing is), maar ik moet er nog aan werken.

Zoals je op de foto kunt zien, heb ik de SMD-onderdelen nog niet ontvangen. Ik ontwikkel momenteel de code met een prototype.

Ik wil geen professionele printplaat. Kan ik dit nog bouwen?

Natuurlijk. Ik heb al een tutorial gemaakt over hoe je deze console kunt bouwen tot een prototype PCB met gestippeld koper. Je kunt het project hier vinden:

Stap 1: Alle onderdelen verkrijgen

Alle onderdelen krijgen
Alle onderdelen krijgen

Allereerst heb je alle onderdelen nodig. U kunt de PCB's bestellen bij JLCPCB of een andere site die Gerber-bestanden gebruikt. Gerber-bestanden worden gebruikt om de PCB voor de fabrikant te beschrijven. Het zijn slechts. ZIP-bestanden die elk detail van de ontworpen PCB bevatten.

Hier is de link voor de PCB's:

Hier is een lijst van de componenten die u moet kopen om het werkend te krijgen:

  • ATmega328P (TQFP-32)
  • 8 stuks 6 x 6 x 6 mm knopen
  • 16 MHz kristaloscillator
  • 2 stuks van 22 pF 0603 formaat condensator
  • SSD1306 display met SPI-interface. (128 x 64, zwart-wit)
  • Twee 0603 10 kΩ weerstanden

Hier is een lijst van de optionele componenten:

  • NRF24L01+
  • AMSD1117-3.3 (3, 3 V regelaar voor de NRF24L01+)
  • 1206 680 nF condensator (NRF24L01+ heeft een constante spanning nodig om correct te werken.)
  • 2 stuks 1206 led (als je wat lampjes wilt laten knipperen)
  • 2 stuks 0603 weerstanden voor de leds

Stap 2: Monteer het bord

Dit zal een beetje moeilijk te beschrijven zijn, aangezien ik nog geen PCB's heb gebouwd. Ik heb geen idee waar de onderdelen naartoe zijn gegaan, maar ik hoop dat ze snel zullen aankomen.

Gebruik, zoals gewoonlijk bij solderen, een soort rookafzuiger en was je handen na het aanraken van vloeimiddel of soldeer. En wees voorzichtig met de soldeerbout. Het zal ernstige brandwonden veroorzaken als je het aanraakt terwijl het rond de 350 graden Celsius is. Als je echter een verwonding krijgt door de soldeerbout, gebruik dan koud water om de verbrande plek af te koelen

Als je nog nooit SMD-onderdelen hebt gesoldeerd, raad ik je ten zeerste aan om enkele tutorials van YouTube te bekijken. De basisregel is om het soldeer op één pad aan te brengen, de chip op zijn plaats te plaatsen en de pin te solderen. Doe dan gewoon de andere kant en als er meer pinnen zijn, doe ze dan. U kunt ook flux gebruiken om te helpen bij het soldeerproces.

Je hebt ook een soldeerlont nodig om de microcontroller te kunnen solderen. Laat de pinnen gewoon doorvloeien met soldeer en gebruik een soldeerlont om het overtollige eruit te halen.

Zorg ervoor dat u de onderdelen op de juiste manier soldeert. Meestal hebben microcontrollers een punt om de eerste pin aan te geven. Meestal hebben PCB's ook een punt om de oriëntatie te begeleiden.

Bij SMD onderdelen wil je meestal eerst de kleine onderdelen solderen. Als je eerst de headers soldeert, raak je ze waarschijnlijk met de soldeerbout en komen er wat vervelende gassen vrij. Ik kan deze reeks uit ervaring aanbevelen. Je hoeft deze lijst niet te volgen, maar hij is met gezond verstand gemaakt:

  1. condensatoren
  2. LED's en weerstanden voor de leds (optioneel) [eerst soldeer je de weerstanden]
  3. Regelaar en microcontroller (Zorg ervoor dat u de MCU op de juiste manier plaatst! De stip moet in dezelfde richting wijzen als de markering [witte stip] op de PCB.)
  4. Kristal
  5. Toetsen
  6. Headers (De header van de NRF24L01+ is precies waar je vinger zou rusten, dus ik raad aan om wat draden te gebruiken om er wat flexibiliteit voor te geven.)
  7. Enkele draden voor de batterij. De hoofdstroom is gemarkeerd met VCC en GND. VCC moet ongeveer 3, 6-6 volt zijn. Die spanning gaat rechtstreeks naar de microcontroller, zorg er dus voor dat je er niet te veel spanning doorheen zet.

Stap 3: De software

Image
Image

Ik heb in de loop der jaren een paar spellen voor dit soort platformen gemaakt. Je kunt de oude multi-game-code hier vinden (het is degene met de naam mushroom_mcp_continued_v10_converted):

github.com/Teneppa/handheld_open_source

De open source-engine is hier te vinden (ik heb Visual Studio gebruikt om het te coderen, dus er zijn meerdere rare bestanden):

Aanbevolen: