Inhoudsopgave:

Bluetooth LED-tekentafel en IOS-app - Ajarnpa
Bluetooth LED-tekentafel en IOS-app - Ajarnpa

Video: Bluetooth LED-tekentafel en IOS-app - Ajarnpa

Video: Bluetooth LED-tekentafel en IOS-app - Ajarnpa
Video: Let's make a fun handwriting drawing board like a mobile phone #shortvideo #art #craft #ytshorts 2024, November
Anonim
Image
Image
Bluetooth LED-tekentafel en IOS-app
Bluetooth LED-tekentafel en IOS-app

In deze zelfstudie kun je een Bluetooth LED-bord maken dat afbeeldingen kan tekenen vanuit de iPhone-app die we maken. In deze app kunnen de gebruikers een Connect 4-spel maken dat ook op dit spelbord wordt weergegeven. Dit wordt een goedkope maar effectieve versie, zodat iedereen kan bouwen en ontdekken! In totaal zal ik de basisconcepten uitleggen die kunnen worden veranderd, maar hetzelfde effect hebben. Mijn led-bord bevat bijvoorbeeld 88 leds. Dit aantal kan worden verhoogd of verlaagd, afhankelijk van de voorkeur, tijd of grootte van het bord.

Benodigde onderdelen:

ws2812b led-verlichting (of gelijkwaardig) - $ 21

5v 10 amp stroomadapter (mijn project trekt ongeveer 5 ampère als het volledig is ingeschakeld) - $ 18

Foam Board (ontvangen de mijne in de dollarwinkel) - $ 1

Elk type hout (ontvangen bij Menards) - $ 10

Acrylplexiglas (bewolkt / wit, ook bij Menards) - $ 10

Arduino Nano - $ 8

(eBay) Bluetooth-module HM-10-apparaat - $ 3 (Amazon) Bluetooth-module HM-10-apparaat - $ 10

Over het algemeen kost dit project vanaf het begin niet meer dan $ 75 en kan leuk zijn voor kinderen of een coole lichtshow! Ik kijk graag op eBay voor goedkope onderdelen, maar let op oplichting of kapotte onderdelen. Er kunnen kleinere versies worden gemaakt om nog meer tijd te besparen. LED-matrix is beschikbaar om kleine formaten van dit bord te maken. Vergeet niet om te wijzigen hoeveel LED's worden gebruikt in de Arduino-code en de IOS-app

Stap 1: Bepaal de maat en de snit

Bepaal grootte en snit
Bepaal grootte en snit
Beslis grootte en snit
Beslis grootte en snit
Bepaal grootte en snit
Bepaal grootte en snit

Dingen om te overwegen voor de grootte zijn hoeveel LED's er zijn voor het project, hoeveel hout er is en hoe groot de vierkanten zijn voor elke led.

Afmetingen bord:

Bovenkant bord: 20 "bij 27"

Uitgesneden in het midden: 23 "bij 16"

Zijkant: 0,75" hoog + dikte onderkant en bovenkant = 1,75" dik

De dikte van hout: 1/2"

De afmeting van de foamboard:

elk vierkant is 2"

De afmeting van LED's:

Breedte: 8 LED's

Hoogte: 11 LED's

Totaal: 88 LED's

Stap 2: Draad-LED's

Draad LED's
Draad LED's
Draad LED's
Draad LED's
Draad LED's
Draad LED's
Draad LED's
Draad LED's

Knip elk stuk LED af en plaats het in het midden van elk vierkant. Strip de draden volgens de lengte die nodig is voor elke LED. De datalijn gaat van kolom naar kolom. Begin met de eerste LED en soldeer door tot aan de 11e LED. Eenmaal bovenaan, strip je een stuk draad dat helemaal naar beneden reikt tot aan de volgende led rechts van de eerste. Als u met de positieve en negatieve LED op de LED werkt, gaat u door met het solderen van elke LED totdat u de laatste LED in de kolom bereikt. Ik heb twee stroomrails van draad gemaakt, één positief, één negatief, en deze aan elke kolom bevestigd. Om ze te verbinden. Ik heb het midden van de draad gestript en van daaruit naar de LED gesoldeerd. De twee positieve en negatieve busdraden zijn verbonden met de gnd op de Arduino en de VIN-pin op de Arduino die ook de stroom van het stopcontact raakt. De eerste LED heeft een draad die naar pin D3 op het Arduino Nano-bord gaat. Dit kan naar wens worden gewijzigd.

Ik gebruik hete lijm om draden, LED's en schuim vast te lijmen nadat ik de stekker in het stopcontact had gestoken en zag dat alles werkte.

Stap 3: monteer hout

Hout monteren
Hout monteren
Hout monteren
Hout monteren

Lijm de stukken hout aan elkaar met behulp van houtlijm of vloeibare nagels. Voor extra ondersteuning heb ik kleine stukjes hout toegevoegd en deze in de hoeken gelijmd waar de achterkant aan elke kant samenkomt. Ik heb twee 12 beugels van Menards gekocht en deze in het boven- en zijstuk van het bord geschroefd zodat het als een deur opent. Ik deed dit voor het geval er LED-storingen optreden of ik later meer componenten wil toevoegen.

Stap 4: Arduino en Bluetooth toevoegen

Arduino en Bluetooth toevoegen
Arduino en Bluetooth toevoegen
Arduino en Bluetooth toevoegen
Arduino en Bluetooth toevoegen
Arduino en Bluetooth toevoegen
Arduino en Bluetooth toevoegen

Voeg een DC-aansluiting toe aan de achterkant van het bord. De achterste metalen plaat is positief, terwijl de middelste plaat negatief is. Dit biedt een gemakkelijke manier om het bord in en uit te schakelen. Ik liet de DC-aansluiting een beetje bungelen in plaats van hem veilig in de doos te plaatsen voor het geval ik deze aan de muur wilde hangen. Anders zou de achterkant ver naar buiten steken omdat het snoer dat erin steekt tegen de muur zou zitten. De positieve pluggen in de VIN op de Arduino Nano terwijl de negatieve naar de grond gaat. De positieve en negatieve LED's worden ook gesoldeerd aan de VIN en aarde.

Ik heb een diagram geüpload voor de HM-10-module en de Arduino Nano. de HM10 TXD gaat de RXD-pin op de Nano in, terwijl de RXD-pin op de HM10 is verbonden met de TXD-pin op de Arduino. Dit gebeurt omdat de Nano leest wat de Bluetooth-module heeft geschreven en vice versa. Sluit ook het VIN aan op de +5v op de Arduino en verbind de gronden met elkaar.

Ten slotte is de schakelaar of knop optioneel tussen de Arduino RXD en de HM10 TXD. Om de een of andere reden kunnen veel mensen geen nieuwe code uploaden wanneer ze verbonden zijn, dus het maakt het gemakkelijk om ze elke keer dat de code wordt geüpload los te koppelen en ze na het uploaden weer samen te schakelen.

Als u klaar bent, controleert u of alles werkt. Als dat zo is, lijm dan alle draden vast en laat het er mooi uitzien. Onthoud dat er niet zoiets bestaat als teveel lijm.

Stap 5: Schrijf de iPhone-app

Schrijf de iPhone-app
Schrijf de iPhone-app
Schrijf de iPhone-app
Schrijf de iPhone-app
Schrijf de iPhone-app
Schrijf de iPhone-app
Schrijf de iPhone-app
Schrijf de iPhone-app

Ik zal het Xcode-project in de beschrijving verstrekken. Ik heb 3 Bluetooth-klassen die verbinding maken met het BLE-apparaat en informatie verzenden. ScannerViewController zoekt naar elk beschikbaar Bluetooth Low Energy-apparaat. BluetoothSerial beschrijft elk proces van verbinden/loskoppelen van het geselecteerde apparaat en kan de gegevens verzenden. Ten slotte is de SerialViewController de hoofdweergave van de app. Ik heb een collectionView met een dubbele array die elke HSB-waarde bevat en deze opslaat voor later gebruik als de gebruiker wil terugkeren naar de kleur die hij had.

De gebruiker kan het kleurenwiel gebruiken om een kleur te selecteren die ook voor later kan worden opgeslagen. De gebruiker kan dan tekenen met de gekozen kleur. Er is een vulknop samen met een ongedaan maken.

In de connect 4-sectie kan de gebruiker kiezen tussen verschillende spelmodi om andere spelers uit te dagen. Elke beweging stuurt gegevens naar het Arduino Nano- en HM-10-apparaat, die op het scherm worden weergegeven. Je kunt deze afbeeldingen altijd bewerken, omdat ze er behoorlijk slecht uitzien.

Elke keer dat een cel wordt ingedrukt, verzendt deze de code (bijvoorbeeld) "P; 15; 0,56; 0,81; 1\n". De P staat voor "Play", die ik de Arduino heb ingesteld om te herkennen en het zal kleuren weergeven voor de 15e cel. De kleuren zijn de volgende 3 waarden die worden verzonden. Het is Tint, Verzadiging en Helderheid. Het is belangrijk om \n aan het einde toe te voegen, zodat de Bluetooth-module weet wanneer hij moet stoppen met het lezen van de binnenkomende gegevens. Om het display leeg te maken, stuur ik de code "z\n". Toen ik een "z" voor de eerste letter ontving, stelde ik deze in om het bord leeg te maken. En natuurlijk sluit ik het af met \n om het HM10-apparaat te laten weten wanneer het moet stoppen met het lezen van de gegevens.

Als er vragen zijn, laat het dan gerust achter in de comments:)

Stap 6: Arduino-code

Ik zal de Arduino-code verstrekken die naar de Nano moet worden geüpload. Deze code ontvangt elk teken afzonderlijk en combineert en slaat het op in een array. Bij gebruik van de array wordt elke waarde (tint, verzadiging, helderheid) die naar de array is verzonden, gesplitst tussen de komma. Dit verandert dan de kleur van de benodigde pixel op het bord. Hetzelfde concept geldt voor het connect 4-gedeelte. Tint, verzadiging en helderheid worden vanuit de IOS-app verzonden en aan de Arduino geleverd, samen met welke pixel op het bord die moet worden gekleurd.

Nogmaals, als er vragen zijn over de code, laat het me dan weten in de comments:)

Stap 7: Aanpassen aan jouw stijl

Pas aan uw stijl aan!
Pas aan uw stijl aan!
Pas aan uw stijl aan!
Pas aan uw stijl aan!
Pas aan uw stijl aan!
Pas aan uw stijl aan!

Onthoud dat dit project voor de lol is en kan worden gepersonaliseerd. Verf het hout of voeg ontwerpen toe. Laat de LED's reageren op muziek door een microfoon en een kleine luidspreker toe te voegen. Voeg aanraakgevoelig toe met behulp van IR-sensoren. Voeg scrollende tekst toe in de Arduino- of IOS-app. Voeg een nieuwe spelmodus toe in de IOS-app. Tetris is een andere optie om toe te voegen.

Dit project is fundamenteel in de hoop anderen te inspireren om hier iets groots en innovatiefs van te maken. Dank u wel voor de steun!

Stap 8: Arduino-code en IOS-code

Hier is de link naar het Swift- en Arduino-project op GitHub. Als er problemen zijn, laat het me weten.

github.com/oKeeg/LED-Coloring-Board

Stap 9: Wat is er nieuw? + Onlangs bijgewerkte code

In de nieuwste update kunnen gebruikers het hele raster met één kleur vullen in plaats van ze allemaal aan te raken. Er is een knop voor ongedaan maken voor het geval er een ongeluk gebeurt. Ten slotte is er de nieuwe animatiemodus waarin de gebruiker nieuwe animaties kan kiezen of toevoegen om voor het bord te spelen.

Nieuwe animaties zijn onder meer -

Fading Colors - Vervaagt periodiek willekeurige kleuren.

Breathing Rainbow - Beweegt kleuren van de regenboog in één grote horizontale lijn.

Animaties werken meer aan de Arduino-kant dan aan de telefoonkant. Wanneer ingedrukt, stuurt de telefoon een regel code voor de Arduino om uit te voeren (bijvoorbeeld) "A;0\n". "A" staat voor Animatie en de "0" is de eerste animatie die wordt ingedrukt en dat is Fade Colors. De Arduino leest de 0 en speelt de vervaagde kleurenanimatie af.

Aanbevolen: