mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI: proxy Client/Server mit Raspberry + Arduino


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: nodejs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo liebe Bastler,

ich Zerbreche mir schon länger den Kopf und komm zu keinem Ergebnis:

Übergeordnetes Ziel: mit dem Raspberry auf einem RGB LED Strip ein VU 
meter realisieren. (über SPI)

Mommentan benutze ich den Arduino als AD Wandler der über Serial mit dem 
Raspberry verbunden ist. Leider ist das ganze aber mit meiner genutzten 
Programmiersprache so langsam dass es kein Spaß macht sich den Strip 
anzusehen, und Echtzeit ist auch was anderes...

Zu meiner Schande muss ich zugeben nodejs (javascript) ist auch nicht 
gerade die erst wahl bei Echtzeit Anwendungen. Das ganze ist aber Teil 
eines etwas "größeren" Projekts, und der Rest funktioniert echt gut, nur 
mit dem VU Meter komm ich nicht so recht weiter.

Mein Gedanke: Raspberry und Arduino irgendwie über SPI verbinden, dass 
wenn der Raspberry kein Master mehr ist bzw. kein Clock signal mehr 
generiert, dass der Arduino dann Master spielt und ich mein VU meter in 
C oder C++ auf dem Arudino ausführe.

Sprich: Raspberry MOSI -> Arduino MISO, Arudino MOSI -> RGB Strip
So sollte dann der Arduino als Proxy dienen und alles vom Raspberry 1:1 
durch reichen und wie oben gennant einsprichen wenn der Raspberry nix 
mehr sendet bzw. keine Clock mehr generiert.

Frage: Würde das so gehen ?
Oder kann ich mir den Arduino als Proxy sparen und alles auf dem 
Raspberry machen (Ausnahme Analog input), z.B. in Python

Zusammenfassung:
Raspberry als haupt Controller für RGB strip über SPI,
VU meter realisieren, über/mit Raspberry .
Da aber schon Zig effekte exisiteren würde ich den ungern über Board 
werfen.

Für Antworte und Anregungen bin ich sehr dankbar.

Autor: Alex G. (dragongamer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bleib nur beim raspi oder nur beim Adruino. Oder was soll der eine 
können was der andere nicht kann?

Es gibt in hardware realisierte A/D Wandler die per i2c an den Raspi 
angeschlossen werden können. Die muss man nicht extra programmieren und 
libs gibt es in c wie in python.
Was für einen LEDstrip hast du? So einen typischen wo die leds einzeln 
angesteuert werden können?
Das kann man auch mit dem raspberry benutzen! Google einfach nach dem 
chipnamen + Raspberry.
Wegen dem nichy-Echtzeit OS kann zwar mal was dazwischen funken aber 
auffällig ist das höchstens wenn man riesige 2D Muster darstellen will.

Wenn du beim Arduino bleiben willst geht das natürlich auch. Was für 
eine Aufgabe soll der Raspi in dem Fall überhaupt erfüllen? Soll das 
ganze online gehen (da du nodejs erwähnst)?

Autor: nodejs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

Ich wollte Arduino + Raspberry benutzen weil ich beide schon da habe.
Werde mir aber einen AD Wandler für i2c oder SPI mal besorgen.

Beim strip handelt es sich um einen ws2801.
In nodejs habe ich halt schon etliche Effekte programmiert, die ich 
bequem  über ein Webinterface auswählen kann.

Allerdings bin ich mit der Hardware Ansteuerung nicht zu Frieden.
Entweder ist nodejs im allgemeinen zu langsam oder die Bibliothek zur 
Ansteuerung ist es (natives c++ Addon, "spi-device" 
https://github.com/fivdi/spi-device), tippe eher auf nodejs, da ich die 
"transfer" funktion immer wieder manuelle triggern muss (rekursiv im 
callback), hier flackert der Strip am Anfang, läuft dann aber. Wie 
gesagt: das ganze ist zu langsam.

Würde es jetzt mal mit python probieren.
AD Auslesen und auf Strip schreiben.

Autor: Alex G. (dragongamer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, ich kenn mich mit NodeJS leider nicht aus. Du musst einen Weg 
finden den Thread des webdienstes, von einem Thread der sich nur um die 
LED-Ansteuerung kümmert, zu trennen. Also kein wiat-konzept auf Antwort 
des jeweiligen Programms, sondern sie sollen unabhängig voneinander 
laufen.
Eine Standardübertragungsmethode für die Information sind dann "pipes" 
(oft einfach als IO bezeichnet). Die kann man jeder Zeit abfragen, ohne 
das Programm warten zu lassen.

Autor: nodejs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nodejs ist auf jeden Fall ein blick wert.
Allerdings nichts für Mikrocontroller oder "echtzeit".

Werde jetzt versuchen mein VU meter in python zu programmieren und alles 
über den Raspberry zu machen.

Das Programm spawn ich dann einfach von node aus.
Leider kann ich noch kein Python.

Hat jemand eine gut Einstiegsseite ?
bzw. eine SPI/i2c lib ?

Blöde frage, aber ist mit python besser gewährleistet dass die VU 
Ansteuerung funktioniert ?

Autor: Harry L. (mysth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Freund von mir hat sowas mit WS2812 und ESP8266 realisiert.
Youtube-Video "Thomas_bastelt_LED_Kram"

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.