txt document op computer uitlezen met arduino

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
Ik ben aan een klein projectje bezig waarbij het het handigste is om data via een tekst document door te sturen naar mijn arduino. Ik beschik spijtig genoeg niet over een SD kaart module dus ik kan het document niet via een SD kaart laten uitlezen. Nu is mijn vraag of het mogelijk is om de data van een tekst document op mijn computer door te sturen naar de arduino.

alvast bedankt.

Alle reacties


Acties:
  • 0 Henk 'm!

  • fonsoy
  • Registratie: Juli 2009
  • Laatst online: 21:33
Is het mogelijk om de Arduino een met HTTP geserveerd document op je desktop te laten uitlezen? Dit lijkt mij de beste optie om dit te doen. Denk ook even aan hoe vaak je dit wil pollen/refreshen, want hoe snel wil je dat de Arduino reageert op een andere inhoud van de HTTP-server.

[ Voor 3% gewijzigd door fonsoy op 08-08-2019 15:00 ]

Lenovo W520 - i7 2720QM - 8GB DDR3 1333Mhz - 1080p - Nvidia 1000M - 9 cell accu


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
voor een http server heb je toch een arduino wifi nodig? die heb ik momenteel ook niet ter beschikking...

Acties:
  • +3 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
jonas-ventje schreef op donderdag 8 augustus 2019 @ 15:01:
voor een http server heb je toch een arduino wifi nodig? die heb ik momenteel ook niet ter beschikking...
Dus... je hebt geen WiFi, geen SD kaart... hoe verwacht je dan dat die textfile op die Arduino komt? Zwarte Magie?

Je zult dus 1 van de Arduino's I/O mogelijkheden moeten gebruiken. USB, Serieel, I2C, zelf iets frotten met de I/O pinnen, ... Hoe je dat doet is aan jou. Hell, soldeer een IR ontvanger aan je Arduino en een IR LED aan je PC en 'straal' 't over :P

[ Voor 12% gewijzigd door RobIII op 08-08-2019 15:06 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
gewoon via de usb kabel moest me wel mogelijk lijken...

Acties:
  • +1 Henk 'm!

  • s0ulmaster
  • Registratie: Juni 2012
  • Laatst online: 17:36
Je kunt prima over een seriele lijn een text bestandje overzetten (of het nuttig is is een tweede), maar ik gok dat het doel niet gaat zijn om een txt bestand op de arduino te hebben. maar om die verder te interpreteren. Daarmee kun je dus beter een txt bestand interpreteren op de pc en deze dan door te sturen over (bijv) de seriele lijn.

tijd voor wat klusjes!


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
ja, via de seriële lijn is voor mij ook goed, zolang ik maar data kan ontvangen op de arduino... het probleem was eigenlijk dat ik denk dat de data te veel zal zijn om allemaal op de arduino te zetten dus kon ik telkens delen van het tekstbestand gebruiken. En hoe programmeer ik het dan zodat het via de seriële lijn op mijn arduino komt?

Acties:
  • +1 Henk 'm!

  • s0ulmaster
  • Registratie: Juni 2012
  • Laatst online: 17:36
jonas-ventje schreef op donderdag 8 augustus 2019 @ 15:10:
ja, via de seriële lijn is voor mij ook goed, zolang ik maar data kan ontvangen op de arduino... het probleem was eigenlijk dat ik denk dat de data te veel zal zijn om allemaal op de arduino te zetten dus kon ik telkens delen van het tekstbestand gebruiken. En hoe programmeer ik het dan zodat het via de seriële lijn op mijn arduino komt?
Ik denk dat het makkelijker is om even uit te leggen wat je wil bereiken.
Er staat genoeg voorbeelden op internet hoe je een seriele verbinding opzet (uart)

Wil je commando's over en weer sturen? wil je data teruglezen?

tijd voor wat klusjes!


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
nee in het tekstbestand zullen duizenden hexadecimale kleurcodes staan die naar een ledstrip moeten overgebracht worden

Acties:
  • 0 Henk 'm!

  • s0ulmaster
  • Registratie: Juni 2012
  • Laatst online: 17:36
En wat weerhoud je om deze is een array o.id. weg te schrijven? al dan niet in een apparte file?

tijd voor wat klusjes!


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
omdat ik denkt dat het geheugen van mijn arduino daar te klein voor is

Acties:
  • 0 Henk 'm!

  • s0ulmaster
  • Registratie: Juni 2012
  • Laatst online: 17:36
en niet voor een txt bestandje met dezelfde waardes?

tijd voor wat klusjes!


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
nee want het txt bestandje slaag ik dan op op mijn computer en dan lees ik telkens enkele codes uit om te verwerken en dan terug enkele codes uitlezen enz, dan neemt het maar een 100 tal variabelen plaats in op mijn arduino

Acties:
  • 0 Henk 'm!

  • s0ulmaster
  • Registratie: Juni 2012
  • Laatst online: 17:36
jonas-ventje schreef op donderdag 8 augustus 2019 @ 15:26:
nee want het txt bestandje slaag ik dan op op mijn computer en dan lees ik telkens enkele codes uit om te verwerken en dan terug enkele codes uitlezen enz, dan neemt het maar een 100 tal variabelen plaats in op mijn arduino
Dus het antwoord is eigenlijk wel dat je commando's wilt sturen. In dit geval in de vorm van kleurcodes.
Dan kan je dus het beste iets schrijven op je pc die het doorstuurt over bijv een seriele lijn.

tijd voor wat klusjes!


Acties:
  • 0 Henk 'm!

  • StapelPanda
  • Registratie: Februari 2005
  • Laatst online: 15-08 13:58

StapelPanda

PB0MV

Je kunt iets als Xmodem proberen. Of wat ook kan werken is PROGMEM gebruiken, je hebt dan wat meer KB's tot je beschikking.

Acties:
  • 0 Henk 'm!

  • Koffie32
  • Registratie: Juni 2017
  • Laatst online: 24-12-2021
https://serialport.io/

Makkelijk in gebruik en biedt ondersteuning voor de meest voorkomende platformen. Paar regels JavaScript en je kunt communiceren met je Arduino.

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
Serieel overbrengen lijkt me goed maar hoe moet ik hieraan beginnen? en @Koffie32, ik heb een heel klein beetje ervaring met javascript dus je zult me even moeten uitleggen hoe het juist werkt.

Acties:
  • 0 Henk 'm!

  • Koffie32
  • Registratie: Juni 2017
  • Laatst online: 24-12-2021
jonas-ventje schreef op donderdag 8 augustus 2019 @ 15:44:
Serieel overbrengen lijkt me goed maar hoe moet ik hieraan beginnen? en @Koffie32, ik heb een heel klein beetje ervaring met javascript dus je zult me even moeten uitleggen hoe het juist werkt.
Gebruik node als serveromgeving en installeer de benodigde packages in je project met npm (package manager).

Volg je die opmerking?

Wat stukjes code uit mijn eigen experimenten hiermee:
Geeft de beschikbare COM poorten weer.
code:
1
2
3
4
5
6
7
const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')

// geeft een lijst met de beschikbare COM poorten
SerialPort.list((err, ports) => {
     console.log(ports)                
 })

Maakt zich op om data van de Arduino te ontvangen.
code:
1
2
3
4
5
6
7
const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')

const port = new SerialPort('COM5', {baudRate: 9600})
const parser = port.pipe(new Readline({ delimiter: '\n' }))

parser.on('data', console.log)

Stuurt elke 3 seconden een bericht naar een Arduino en leest de reactie uit.
code:
1
2
3
4
5
6
7
8
9
10
11
const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')

const port = new SerialPort('COM5', {baudRate: 9600})
const parser = port.pipe(new Readline({ delimiter: '\n' }))

parser.on('data', console.log)

setInterval(function() {
    port.write('As shoo-bop sha wadda wadda')
}, 3000);

[ Voor 8% gewijzigd door Koffie32 op 08-08-2019 15:49 ]


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
nee ik snap niet helemaal wat ik moet installeren...

Acties:
  • 0 Henk 'm!

  • ikt
  • Registratie: Juli 2008
  • Laatst online: 00:43

ikt

Je situatie is dat je een computer hebt en een Arduino. Op de computer moet je een applicatie hebben draaien die het bestand wat je over wil sturen, in kleine stukjes stuurt naar je Arduino.

Wat kun/heb je al? Weet je hoe je serieel data ontvangt op een Arduino? Pak het klein aan zou ik zeggen:

1. Speel met seriele data versturen/ontvangen met je Arduino in een simpele sketch. Kijk of je handmatig bijvoorbeeld kleurcodes kunt sturen en of je Arduino die kleuren dan goed weergeeft. Je kunt hiervoor mooi de seriele console gebruiken die bij de Arduino IDE zit.
2. Als dat eenmaal werkt, kijk je hoe je automatisch data naar je Arduino stuurt. Dit doe je door een programma te maken die serieel iets kan versturen, bijvoorbeeld een C#-applicatie of in een andere taal, waar je beschikking hebt tot een library waarmee je seriele poorten kunt aansturen. Probeer met dit programma simpelweg een paar hardcoded waarden te sturen en kijk of je Arduino erop reageert.
3. Nu de eindfase - het bestand. Kijk hoe de waarden in het bestand staan en hoe je deze data inleest. Is het als XML, json, of anders geformatteerd? Zoek een passende library bij je bestandsformaat zodat die de data parst en het in hapklare brokjes aan je programma geeft. Dit kun je dan rechtsstreeks in je "stuur-data-naar-Arduino" functie gooien.

Acties:
  • 0 Henk 'm!

Verwijderd

Indien je de arduino IDE gebruikt, kan je bij examples/voorbeelden, een voorbeeld project gebruiken waar de code om Seriele verbinding te maken reeds uitgewerkt is. Dit in combinatie met de ingebouwde terminal zou een goed start punt kunnen zijn.

Om de data van de PC naar de Arduino te versturen is ook weer software nodig (handmatig hele hexfiles inkloppen is wat veel werk). Je zou kunnen kijken naar Arduino in combinatie met Processing (zie laatste kopje hier

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
ikt schreef op donderdag 8 augustus 2019 @ 16:06:
Je situatie is dat je een computer hebt en een Arduino. Op de computer moet je een applicatie hebben draaien die het bestand wat je over wil sturen, in kleine stukjes stuurt naar je Arduino.

Wat kun/heb je al? Weet je hoe je serieel data ontvangt op een Arduino? Pak het klein aan zou ik zeggen:

1. Speel met seriele data versturen/ontvangen met je Arduino in een simpele sketch. Kijk of je handmatig bijvoorbeeld kleurcodes kunt sturen en of je Arduino die kleuren dan goed weergeeft. Je kunt hiervoor mooi de seriele console gebruiken die bij de Arduino IDE zit.
2. Als dat eenmaal werkt, kijk je hoe je automatisch data naar je Arduino stuurt. Dit doe je door een programma te maken die serieel iets kan versturen, bijvoorbeeld een C#-applicatie of in een andere taal, waar je beschikking hebt tot een library waarmee je seriele poorten kunt aansturen. Probeer met dit programma simpelweg een paar hardcoded waarden te sturen en kijk of je Arduino erop reageert.
3. Nu de eindfase - het bestand. Kijk hoe de waarden in het bestand staan en hoe je deze data inleest. Is het als XML, json, of anders geformatteerd? Zoek een passende library bij je bestandsformaat zodat die de data parst en het in hapklare brokjes aan je programma geeft. Dit kun je dan rechtsstreeks in je "stuur-data-naar-Arduino" functie gooien.
stap 1 lukt maar ik kan stap 2 niet, ik heb nog nooit een gelijkaardig project gedaan dus ik weet ook niet hoe ik hieraan moet beginnen.
Verwijderd schreef op donderdag 8 augustus 2019 @ 16:08:
Indien je de arduino IDE gebruikt, kan je bij examples/voorbeelden, een voorbeeld project gebruiken waar de code om Seriele verbinding te maken reeds uitgewerkt is. Dit in combinatie met de ingebouwde terminal zou een goed start punt kunnen zijn.

Om de data van de PC naar de Arduino te versturen is ook weer software nodig (handmatig hele hexfiles inkloppen is wat veel werk). Je zou kunnen kijken naar Arduino in combinatie met Processing (zie laatste kopje hier
om het tekstbestand te maken met de hexadecimale codes in heb ik een kleine website gebouwd dus dat is het probleem niet maar om informatie over te dragen tussen pc en arduino is de link die je doorstuurde misschien wel iets handig, ga ik zeker eens goed lezen...

Acties:
  • 0 Henk 'm!

  • PageFault
  • Registratie: April 2002
  • Laatst online: 14-08 15:07
Heeft je computer wel een com poort? Ik zou zeggen dat een wifi module gewoon handiger is dan prutsen over com poorten.

Acties:
  • 0 Henk 'm!

  • ThomasG
  • Registratie: Juni 2006
  • Laatst online: 00:06
PageFault schreef op vrijdag 9 augustus 2019 @ 09:21:
Heeft je computer wel een com poort? Ik zou zeggen dat een wifi module gewoon handiger is dan prutsen over com poorten.
Vrijwel geen enkele moderne computer heeft een COM-poort. Toch worden seriële poort nog heel veel gebruikt, vooral als het gaat om embedded systemen en/of industriële apparatuur. Er zijn virtuele COM-poorten. Er bestaan zelfs USB-to-COM kabels voor deze toepassing. In het geval van een Arduino gebruik je daar gewoon de bijgeleverde USB kabel voor, die je ook gebruikt om hem te programmeren (dat gaat namelijk ook via een seriële verbinding). Je kunt het echter niet gelijktijdig doen, omdat een COM-poort maar door een applicatie tegelijk gebruikt kan worden.

Acties:
  • +2 Henk 'm!

  • BernardV
  • Registratie: December 2003
  • Laatst online: 23:29
Je hebt het over 1000den hexadecimale kleurcodes. Wat is je doel? Want met een beetje geluk hoef je die lijst niet te gebruiken en kun je het "programmeren".

Acties:
  • 0 Henk 'm!

  • PageFault
  • Registratie: April 2002
  • Laatst online: 14-08 15:07
ThomasG schreef op vrijdag 9 augustus 2019 @ 11:18:
[...]
Vrijwel geen enkele moderne computer heeft een COM-poort. Toch worden seriële poort nog heel veel gebruikt, vooral als het gaat om embedded systemen en/of industriële apparatuur. Er zijn virtuele COM-poorten. Er bestaan zelfs USB-to-COM kabels voor deze toepassing. In het geval van een Arduino gebruik je daar gewoon de bijgeleverde USB kabel voor, die je ook gebruikt om hem te programmeren (dat gaat namelijk ook via een seriële verbinding). Je kunt het echter niet gelijktijdig doen, omdat een COM-poort maar door een applicatie tegelijk gebruikt kan worden.
Nee ik weet het. Soms gebruikten we daarom een laptop met docking station waar het op zat, maar die zie je ook bijna nooit meer. Niet alle USB naar COM of parallel werken even goed, is onze ervaring.

Acties:
  • 0 Henk 'm!

  • fonsoy
  • Registratie: Juli 2009
  • Laatst online: 21:33
ThomasG schreef op vrijdag 9 augustus 2019 @ 11:18:
[...]
Vrijwel geen enkele moderne computer heeft een COM-poort. Toch worden seriële poort nog heel veel gebruikt, vooral als het gaat om embedded systemen en/of industriële apparatuur. Er zijn virtuele COM-poorten. Er bestaan zelfs USB-to-COM kabels voor deze toepassing. In het geval van een Arduino gebruik je daar gewoon de bijgeleverde USB kabel voor, die je ook gebruikt om hem te programmeren (dat gaat namelijk ook via een seriële verbinding). Je kunt het echter niet gelijktijdig doen, omdat een COM-poort maar door een applicatie tegelijk gebruikt kan worden.
Geef ik je helemaal gelijk in. Maar als er toch hardware gekocht moet worden lijkt me een WiFi module een betere aankoop. Want dat is wat flexibeler dan communiceren met een COM-poort.

Lenovo W520 - i7 2720QM - 8GB DDR3 1333Mhz - 1080p - Nvidia 1000M - 9 cell accu


Acties:
  • 0 Henk 'm!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 22:24

Kheos

FP ProMod
jonas-ventje schreef op donderdag 8 augustus 2019 @ 15:10:
En hoe programmeer ik het dan zodat het via de seriële lijn op mijn arduino komt?
jonas-ventje schreef op donderdag 8 augustus 2019 @ 15:44:
Serieel overbrengen lijkt me goed maar hoe moet ik hieraan beginnen?
jonas-ventje schreef op donderdag 8 augustus 2019 @ 16:15:
stap 1 lukt maar ik kan stap 2 niet, ik heb nog nooit een gelijkaardig project gedaan dus ik weet ook niet hoe ik hieraan moet beginnen.
dus... je hebt een avondje gegoogeld en van alles geprobeerd (zoals voorbeeld code proberen runnen, inlezen in communicatie protocollen, kijken hoe anderen dit hebben aangepakt...) en het wil maar niet lukken?
zoja, geef ff een stand van zaken, wat je probleem precies is, foutmeldingen...
zonee, begin daar

Acties:
  • 0 Henk 'm!

  • s0ulmaster
  • Registratie: Juni 2012
  • Laatst online: 17:36
Is het niet toevallig een schoolopdracht voor iets als een led-kubus?

tijd voor wat klusjes!


Acties:
  • +1 Henk 'm!

  • Yucon
  • Registratie: December 2000
  • Laatst online: 21:28

Yucon

*broem*

Je denkt dat het niet past schrijf je. Waarom probeer je het niet gewoon met een array van dat formaat met dummywaardes? Dan weet je het direct. Als het werkt kun je stoppen met prutsen.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17:18
fonsoy schreef op vrijdag 9 augustus 2019 @ 12:03:
[...]

Geef ik je helemaal gelijk in. Maar als er toch hardware gekocht moet worden lijkt me een WiFi module een betere aankoop. Want dat is wat flexibeler dan communiceren met een COM-poort.
Hij heeft een Arduino; om het ding te programmeren moet je een werkende USB/Virtuele COM poort hebben op je PC, die kun je ook gebruiken om gegevens van en naar de Arduino te verplaatsen.

OM met WiFi een verbinding te maken moet je een extra WiFi shield oid hebben (en firmware gebuiken/schrijven die die WiFi shield kan gebruiken).
jonas-ventje schreef op donderdag 8 augustus 2019 @ 15:24:
omdat ik denkt dat het geheugen van mijn arduino daar te klein voor is
Hoeveel RGB waarden ga je bewaren en hoe groot moeten die zijn dan? Als je ze een voor een naar een LED strip gaat communiceren hoef je ze niet allemaal in RAM te hebben, de bulk kan in FLASH ("PROGMEM") staan.

[ Voor 7% gewijzigd door farlane op 09-08-2019 13:44 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
s0ulmaster schreef op vrijdag 9 augustus 2019 @ 12:29:
Is het niet toevallig een schoolopdracht voor iets als een led-kubus?
haha bijna, het is een 10*10 led matrix en het is een project voor tijdens de vakantie, Ik heb het al geprogrammeerd maar dat kan niet iedereen dus de bedoeling is een website te maken waarbij je elke led-waarde apart kunt instellen dus deze website is nu bijna af maar als je dan 10 verschillende waardes voor alle leds hebt, zit je al aan 1000 waardes, vandaar dat het te groot gaat zijn om in een array te kunnen steken
Kheos schreef op vrijdag 9 augustus 2019 @ 12:22:
dus... je hebt een avondje gegoogeld en van alles geprobeerd (zoals voorbeeld code proberen runnen, inlezen in communicatie protocollen, kijken hoe anderen dit hebben aangepakt...) en het wil maar niet lukken?
zoja, geef ff een stand van zaken, wat je probleem precies is, foutmeldingen...
zonee, begin daar
dit heb ik idd gedaan maar ik snap niet hoe je software kunt gebruiken om iets serieel over te brengen... Kan iemand mij even opweg helpen? Een seriële waarde opvragen via arduino kan ik, maar dan moet je alles apart ingeven in de seriële monitor.

[ Voor 5% gewijzigd door jonas-ventje op 09-08-2019 14:37 ]


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17:18
jonas-ventje schreef op vrijdag 9 augustus 2019 @ 14:34:
[...]
dit heb ik idd gedaan maar ik snap niet hoe je software kunt gebruiken om iets serieel over te brengen... Kan iemand mij even opweg helpen? Een seriële waarde opvragen via arduino kan ik, maar dan moet je alles apart ingeven in de seriële monitor.
Je zult op de Arduino iets met de Serial class moeten doen, en aan de host kant (je PC/server wahetever) iets dat daarmee kan communiceren; een protocol dat door beide kanten gesproken wordt.

Bv je host stuurt "RGB rrggbb" met een delimiter ("\r") en de Arduino kant leest tot de delimiter en kijkt of dat wat ontvangen is iets is wat hij snapt.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
farlane schreef op vrijdag 9 augustus 2019 @ 14:44:
Je zult op de Arduino iets met de Serial class moeten doen, en aan de host kant (je PC/server wahetever) iets dat daarmee kan communiceren; een protocol dat door beide kanten gesproken wordt.
Ok dit snapte ik al maar hoe moet ik er aan beginnen? heb je mss een voorbeeld?
Bv je host stuurt "RGB rrggbb" met een delimiter ("\r") en de Arduino kant leest tot de delimiter en kijkt of dat wat ontvangen is iets is wat hij snapt.
Dit had ik ook gevonden als je werkt met de sd kaart en dat snap ik.

Acties:
  • +1 Henk 'm!

  • diondokter
  • Registratie: Augustus 2011
  • Laatst online: 23-08 12:42

diondokter

Dum spiro, spero

jonas-ventje schreef op vrijdag 9 augustus 2019 @ 14:34:
haha bijna, het is een 10*10 led matrix en het is een project voor tijdens de vakantie, Ik heb het al geprogrammeerd maar dat kan niet iedereen dus de bedoeling is een website te maken waarbij je elke led-waarde apart kunt instellen dus deze website is nu bijna af maar als je dan 10 verschillende waardes voor alle leds hebt, zit je al aan 1000 waardes, vandaar dat het te groot gaat zijn om in een array te kunnen steken
Zo heel veel data hoeft het niet te zijn als je alles efficiënt in elkaar zet.
Je hebt waarschijnlijk toch niet de volledige 16 miljoen kleuren (24-bit) nodig. Maar we houden het leuk en zeggen dat we het wel willen (als worst case scenario).

Een Arduino Uno heeft 2KB aan ram.

We hebben een 10x10 matrix, dus dat is 100 leds.
Als we de kleuren opslaan in een byte array als:
[0] = Rood led 1
[1] = Groen led 1
[2] = Blauw led 1
[3] = Rood led 2
[4] = Groen led 2
[5] = Blauw led 2
[6] = ...

Als je dit tot het einde doet van de array, zul je zien dat daar maar 300 bytes voor nodig zijn, oftewel ~14.6% van je ram. Past dus prima.

Je kan het nog efficiënter doen door alle kleuren samen te pakken in 1 byte (8-bit). Een voorbeeld kan zijn (in bits):
7 6 5 4 3 2 1 0
RRR GGG BB

Nu kost het je nog maar 100 bytes en heb je nog steeds zat kleuren om leuke dingen mee te doen.
https://en.wikipedia.org/wiki/Color_depth#Comparison

Acties:
  • 0 Henk 'm!

  • BernardV
  • Registratie: December 2003
  • Laatst online: 23:29
@jonas-ventje Kun je eens een voorbeeld geven van wat je doel is? Het hebben over 1000 waardes is niet geheel duidelijk hierin. Zoals @diondokter ook al aangeeft kan het waarschijnlijk een stuk efficienter en misschien zelfs wel volledig programmatisch.

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
Ok ik heb het gevoel dat niet iedereen het helemaal snapt. Ik heb een website gemaakt (afbeelding hieronder) waarmee iedereen de matrix kan "programmeren". Dus op de website zie je 100 vakjes die je individueel een andere kleur kunt geven. Met javascript heb ik ervoor gezorgd dat ik van alle vakjes de achtergrond kan bepalen en op kan lijsten in een stuk tekst. Ik ben nog aan het werken aan een functie die ervoor zorgt dat je dit nog eens kunt doen en een tijd in te stellen hoelang het die kleuren blijven maar hiervoor heb ik geen hulp nodig.
Afbeeldingslocatie: https://tweakers.net/ext/f/dSpSghDDLmVgcnL8T4OLYVyW/thumb.png

dus het tekstbestand zal er ongeveer zo uitzien:
code:
1
2
3
4
5
6
7
8
9
6000  /r   //=aantal regels in het document
#FFCC22   /r
#1145CC   /r
#99CC00  /r
#...       /r       // tot en met honderd waardes
100   /r          // tijd in milliseconden dat de leds deze waarde blijven
#...       /r       // weer honderd waardes
200     /r        // weer de tijd dat de leds deze waarde blijven
.......enz........

deze waardes moeten dus per honderd (en één voor de tijd) waardes naar de arduino gestuurd worden en later kunnen deze waardes terug overschreven worden door de nieuwe waardes.

Ik weet nu gewoon niet hoe ik moet beginnen aan een software te schrijven om automatisch dingen serieel door te sturen. Maar als dit echt niet lukt schaf ik me wel een SD kaart lezer aan maar het duurt weer even voor het hier is dus ik wilde gewoon weten of er een snelle manier was om het zonder te doen

Acties:
  • 0 Henk 'm!

  • BernardV
  • Registratie: December 2003
  • Laatst online: 23:29
@jonas-ventje Maar als je al die data serieel doorstuurt, waar wil je dat gaan opslaan dan? Want als je dit als bulk wilt inlezen zal dat ook in het geheugen komen.
Op de manier waarop je dit nu doorstuurt gaat dat ook niet passen.
Of wil je eigenlijk een "applicatie" schrijven op je PC die de matrix aanstuurt?

Acties:
  • 0 Henk 'm!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 22:24

Kheos

FP ProMod
jonas-ventje schreef op vrijdag 9 augustus 2019 @ 14:34:
dit heb ik idd gedaan maar ik snap niet hoe je software kunt gebruiken om iets serieel over te brengen... Kan iemand mij even opweg helpen? Een seriële waarde opvragen via arduino kan ik, maar dan moet je alles apart ingeven in de seriële monitor.
ok, als je jouw huiswerk gedaan hebt: welke Arduino functie(s) zou je dan gebruiken om die seriële data op te vragen?
En waarom werken die wel/niet bij jou?

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
BernardV schreef op vrijdag 9 augustus 2019 @ 16:04:
@jonas-ventje Maar als je al die data serieel doorstuurt, waar wil je dat gaan opslaan dan? Want als je dit als bulk wilt inlezen zal dat ook in het geheugen komen.
Op de manier waarop je dit nu doorstuurt gaat dat ook niet passen.
Of wil je eigenlijk een "applicatie" schrijven op je PC die de matrix aanstuurt?
De bedoeling is om er honderd op te slagen in een array en later de array te overschrijven met nieuwe data
Kheos schreef op vrijdag 9 augustus 2019 @ 16:13:
[...]

ok, als je jouw huiswerk gedaan hebt: welke Arduino functie(s) zou je dan gebruiken om die seriële data op te vragen?
En waarom werken die wel/niet bij jou?
om getallen op te vragen gebruik ik Serial.parseInt(); en om gewoon tekst op te vragen gebruik ik Serial.read();

Acties:
  • 0 Henk 'm!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 22:24

Kheos

FP ProMod
jonas-ventje schreef op vrijdag 9 augustus 2019 @ 16:19:
om getallen op te vragen gebruik ik Serial.parseInt(); en om gewoon tekst op te vragen gebruik ik Serial.read();
en het antwoord op mijn tweede vraag is...

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
ah ja vergeten maar ze werken wel, het enige probleem is dat ik niet handmatig alle data kan invoeren hé

Acties:
  • 0 Henk 'm!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 22:24

Kheos

FP ProMod
jonas-ventje schreef op vrijdag 9 augustus 2019 @ 16:26:
ah ja vergeten maar ze werken wel, het enige probleem is dat ik niet handmatig alle data kan invoeren hé
ok, dus whatever data je over de seriele draad duwt, daar kan jouw arduino mee overweg, die wordt correct verwerkt en jouw ledjes branden as expected?
Super!

Dus dan heb je enkel nog iets langs pc kant nodig dat jouw data in het correcte formaat door de seriele draad duwt, right?

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
jah helemaal correct.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17:18
Je zult op de Arduino iets met de Serial class moeten doen, en aan de host kant (je PC/server wahetever) iets dat daarmee kan communiceren; een protocol dat door beide kanten gesproken wordt.
In het simpelste geval : formatteer de regels in je bestand zodanig dat 1 regel een kleur en een tijd bevat met daartussen een delimiter (spatie, komma whatever)

Begin met 1 regel in het bestand en stuur die naar je Arduino met een
code:
1
cat colors.txt > /dev/ttyUSBX

of op Windows:
code:
1
type colors.txt > COMX:


Uitbreiden naar 100 regels laat ik aan je creativiteit over....

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
ok ja ik heb windows maar waar moet ik deze code plaatsen, mijn arduino programma doe ik gewoon in arduino IDE of soms visual studio code

Acties:
  • +2 Henk 'm!

  • BernardV
  • Registratie: December 2003
  • Laatst online: 23:29
@jonas-ventje Ik denk dat je nu op een punt bent dat de meesten hier verwachten dat je nu zelf gaat testen. Los van je efficiëntie qua doorsturen heb je nu genoeg om zelf aan de slag te gaan.

Acties:
  • 0 Henk 'm!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 22:24

Kheos

FP ProMod
jonas-ventje schreef op vrijdag 9 augustus 2019 @ 19:06:
ok ja ik heb windows maar waar moet ik deze code plaatsen, mijn arduino programma doe ik gewoon in arduino IDE of soms visual studio code
welke tutorial gebruik je en wat werkt er niet aan?
en minimale inzet is hier echt wel nodig 8)7

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
https://batchloaf.wordpre...a-serial-port-in-windows/

Ik heb dit voorbeeld eens proberen namaken en het werkt perfect! Ik heb een arduino geprogrammeerd zodat hij een ledje aandoet wanneer er "hello" over de usb kabel wordt overgedragen via de opdrachtprompt.

[ Voor 3% gewijzigd door jonas-ventje op 09-08-2019 21:31 ]


Acties:
  • 0 Henk 'm!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 22:24

Kheos

FP ProMod
dus wat is dan nog het probleem?

Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
een heel tekstbestand doorsturen...

Acties:
  • 0 Henk 'm!

  • Kheos
  • Registratie: Juni 2011
  • Laatst online: 22:24

Kheos

FP ProMod
jonas-ventje schreef op vrijdag 9 augustus 2019 @ 21:38:
een heel tekstbestand doorsturen...
dat commando staat hier letterlijk een paar posts omhoog 8)7

[ Voor 5% gewijzigd door Kheos op 09-08-2019 21:48 ]


Acties:
  • 0 Henk 'm!

  • jonas-ventje
  • Registratie: Juli 2016
  • Laatst online: 19-01-2024
ow is het zo simpel, haha het is gelukt...
Pagina: 1