Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Aangepaste 4×4 Boter-Kaas-Eieren Visitekaartje PCB – Ontwerp, Bouw en Code Handleiding

Overzicht

Deze tutorial begeleidt je bij het maken van een aangepaste, visitekaartje-grote PCB die fungeert als een 4×4 boter-kaas-eieren spel. De voorkant toont het EDISON SCIENCE CORNER logo, sociale-media iconen en een QR-code die linkt naar een YouTube-kanaal. Keer de kaart om om een volledig functionele spelcircuit te onthullen, aangedreven door een ATmega328, NeoPixel LEDs en tactiele schakelaars.

Onderdelen & Benodigdheden

ItemAantal
Microchip ATmega328P‑AU1
NeoPixel RGB LED-strip (WS2812B)16 (4×4)
Tactiele schakelaars, bovenbediend16
Aangepaste PCB (JLCPCB)1
Arduino UNO (voor programmeren)1
USB Micro‑Female1
Condensators 22 pF (0805)2
Condensators 100 nF (0805)2
Weerstanden 1 kΩ (0805)3
Weerstand 10 kΩ (0805)1
16 MHz Kristal1
LEDs (SMD 0805)2

Nodige Tools & Machines

  • Solderbout (standaard)
  • Loodvrij soldeerdraad
  • Soldeervloeistof
  • Draadbrugjes set (5 cm, 10 stuks)

Apps & Online Diensten

Stap 1: Ontwerp & Print de PCB

Met EasyEDA ontwierp ik een 89 mm × 50 mm bord (standaard visitekaartformaat) en routeerde een 4×4 boter-kaas-eieren matrix. Het schema gebruikt een ATmega328 als kern microcontroller en integreert 16 WS2812B LEDs en 16 tactiele schakelaars. Na het finaliseren van de layout, exporteerde ik de Gerber-bestanden en uploadde ze naar JLCPCB. Met een dikte van 0,8 mm en zwart bord, arrivere de afgeronde PCB na twee weken, voldoeend aan de verwachte kwaliteit voor hobbyprojecten.

Stap 2: Verzamel Onderdelen

Raadpleeg de bovenstaande onderdelenlijst. Alle delen zijn algemeen, goedkoop en verkrijgbaar bij elektronica distributeurs zoals Digi‑Key, Mouser of AliExpress.

Stap 3: Solderen

Begin met het solderen van de USB micro‑female connector, plaats daarna de ATmega328 en ondersteunende passive componenten. Vervolgens soldeer je de NeoPixel LED-strip en lijn je elke LED uit met de bijbehorende tactiele schakelaar. Soldeer alle 16 schakelaars zorgvuldig, met correcte oriëntatie. De volledige assemblage duurt ongeveer één uur voor een ervaren hobbyist.

Stap 4: Programmeren

Verbind het bord met een pc via USB. Upload de volgende sketch met de Arduino IDE:

Download Code

De sketch initialiseert de 16-LED array, verwerkt toetsaanslagen van de 4×4 keypad matrix en implementeert een simpele win-detector. Speler 1 gebruikt groene LEDs, speler 2 blauwe LEDs. Bij een winst knippert het bord in de winnende kleur; als het bord vol zit zonder winnaar, knippert het rood.

Stap 5: Spelen & Genieten

Keer de kaart om om de spelkant te onthullen. Elke knopdruk licht de bijbehorende LED. Het spel volgt de klassieke boter-kaas-eieren regels maar met een 4×4 rooster en kleurindicaties. Geniet van een uniek, draagbaar spel dat ook als gespreksonderwerp dient op conferenties en netwerkevenementen.

Code

Hieronder staat de volledige Arduino sketch (C/C++) die in dit project gebruikt wordt. Deze omvat keypad-afhandeling, LED-besturing en win-logica.

#include <Keypad.h> 
#include <FastLED.h> 
#define LED_PIN 5 
#define NUM_LEDS 16 
#define LED_TYPE WS2812B 
#define COLOR_ORDER GBR 
#define BRIGHTNESS 30 
CRGB leds[NUM_LEDS]; 
int player = 1; 
char board[16] = {'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16'}; 
char key; 
int moveCount = 0; 
const byte ROWS = 4; 
const byte COLS = 4; 
char hexaKeys[ROWS][COLS] = {{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}}; 
byte rowPins[ROWS] = {A0,A1,A2,A3}; 
byte colPins[COLS] = {A4,A5,2,3}; 
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); 
void setup(){ 
  Serial.begin(9600); 
  LEDS.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS); 
  FastLED.setBrightness(BRIGHTNESS); 
  // Licht alle LEDs groen, dan blauw, om functionaliteit te bevestigen 
  for(int i=0;i<3;i++){ 
    for(int j=0;j<NUM_LEDS;j++) 
      leds[j] = (i%2==0) ? CRGB::Green : CRGB::Blue; 
    FastLED.show(); 
    delay(500); 
  } 
  FastLED.clear(); 
} 
void loop(){ 
  key = customKeypad.getKey(); 
  if(key && player==1){ 
    int idx = keyToIndex(key); 
    leds[idx] = CRGB::Green; 
    FastLED.show(); 
    board[idx] = 'X'; 
    if(checkWinner('X')){ 
      announceWinner(1); 
    } 
    player = 2; 
    delay(1000); 
  } 
  if(key && player==2){ 
    int idx = keyToIndex(key); 
    leds[idx] = CRGB::Blue; 
    FastLED.show(); 
    board[idx] = 'O'; 
    if(checkWinner('O')){ 
      announceWinner(2); 
    } 
    player = 1; 
    moveCount++; 
    delay(1000); 
  } 
  if(moveCount==8){ 
    announceDraw(); 
  } 
} 
int keyToIndex(char k){ 
  switch(k){ 
    case '1': return 0; 
    case '2': return 1; 
    case '3': return 2; 
    case 'A': return 3; 
    case '4': return 4; 
    case '5': return 5; 
    case '6': return 6; 
    case 'B': return 7; 
    case '7': return 8; 
    case '8': return 9; 
    case '9': return 10; 
    case 'C': return 11; 
    case '*': return 12; 
    case '0': return 13; 
    case '#': return 14; 
    case 'D': return 15; 
  } 
  return -1; 
} 
bool checkWinner(char mark){ 
  const int lines[10][4] = {{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}, 
    {0,4,8,12},{1,5,9,13},{2,6,10,14},{3,7,11,15}, 
    {0,5,10,15},{3,6,9,12}}; 
  for(auto &line: lines){ 
    if(board[line[0]]==mark && board[line[1]]==mark && board[line[2]]==mark && board[line[3]]==mark){ 
      return true; 
    } 
  } 
  return false; 
} 
void announceWinner(int p){ 
  CRGB color = (p==1) ? CRGB::Green : CRGB::Blue; 
  while(true){ 
    for(int i=0;i<NUM_LEDS;i++) leds[i] = color; 
    FastLED.show(); 
    delay(500); 
    FastLED.clear(); 
    FastLED.show(); 
    delay(500); 
  } 
} 
void announceDraw(){ 
  while(true){ 
    for(int i=0;i<NUM_LEDS;i++) leds[i] = CRGB::Red; 
    FastLED.show(); 
    delay(1000); 
    FastLED.clear(); 
    FastLED.show(); 
    delay(500); 
  } 
}

Schema's

Aangepaste 4×4 Boter-Kaas-Eieren Visitekaartje PCB – Ontwerp, Bouw en Code Handleiding

Alle ontwerpbestanden, BOM en code zijn beschikbaar voor download.

Productieproces

  1. Bouw een real-time gyroscoop-spel met Arduino Nano & MPU-6050 sensor
  2. Meerpositie-temperatuursensorsysteem voor slimme thuisintegratie
  3. Bouw Je Eigen 37-LED Roulette-spel met Arduino Nano
  4. DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
  5. Bouw een Touchscreen Boter-Kaas-en-Eieren Spel op Arduino Due
  6. MotionSense: Slimme inbraakdetectie met Arduino en ESP8266
  7. 3D-Printer Brandpreventie: Slimme Sensor Veiligheidssysteem
  8. Pixel Chaser: Interactieve één-tik LED-spel met Arduino Nano
  9. Arduino-gebaseerde Afstotende Magnetische Levitatie: Eenvoudige Schakeling & DIY Handleiding
  10. Geavanceerde Remote-gecontrolleerde Gripper Robot voor Precisiehantering
  11. CoroFence Thermische Detector: Geavanceerde PIR-sensor & IoT-integratie