Hallo,
ich benötige Hilfe bei einem Projekt an unserer Hochschule. Die
Aufgabenstellung ist ein CAN Signal kabellos zu übertragen. Wie genau
bleibt uns überlassen. Unsere Idee war das ganze mit einem Arduino und
einem HC-05 Bluetooth Modul umzusetzen. Auf diesem Modul sitzt ein BC417
Bluetooth Chip. Da der Arduino kein CAN Interface hat benötigen wir
einen CAN Transceiver. Hier haben wir folgenden MCP2515 ausgewählt:
https://www.amazon.de/haljia-mcp2515-Can-tja1050-Empf%C3%A4nger-Arduino-Raspberry/dp/B06XCMJNQH/ref=sr_1_1?ie=UTF8&qid=1524131975&sr=8-1&keywords=mcp2515
Da wir jedoch noch kaum Erfahrung in solchen Dingen außer ein wenig
Arduino Programmierung haben gestaltet sich weiteres für uns recht
schwierig. Könnt ihr uns Tipps geben wo wir am besten anfangen?
Viele Grüße
Julian schrieb:> Könnt ihr uns Tipps geben wo wir am besten anfangen?
Ist das die ganze Aufgabenstellung?
Can übertragen ist unspezifisch und kann je nach Auslegung komplex
werden. So lange es nur in eine Richtung gehen soll, Bett das ganze
herunter. Zuerst can senden und empfangen üben, dann funken üben, dann
beides zusammen bauen...
Ja, leider ist das die ganze Aufgabenstellung. Soweit ich weis soll das
nur in eine Richtung gehen, sprich wir sollen einen Sender und einen
Empfänger bauen.
OT: Wenn ich Funk mache, z.B. WLAN oder Bluetooth, warum sollte man dort
dann CAN übertragen wollen? Als Lernfaktor - ok. Aber bei Bluetooth oder
WLAN bieten sich natürlich bessere Protokolle an, die man dann auch
verwendet. Höchstens, um zwei entfernte CAN Netze zu verbinden.
Ich würde keinen Arduino verwenden, sondern ein Devboard mit einem
Controller, der bereits eine Schnittstelle integriert hat, z.B
Bluetooth, Zigbee, etc.
Das kann dann gerne auch ein 32bitter sein, ohne Arduino - dann ist der
Lernerfolg auch um einiges größer. Suche ich z.B. bei Google Bilder nach
"stm32 zigbee" werde ich schon fündig.
Curby23523 N. schrieb:> Ich würde keinen Arduino verwenden, sondern ein Devboard mit einem> Controller, der bereits eine Schnittstelle integriert hat, z.B> Bluetooth, Zigbee, etc.
Wieso sollte der CAN-Controller von einem Arduino nicht reichen?
Passenden Treiber dran und fertig.
Curby23523 N. schrieb:> Wenn ich Funk mache, z.B. WLAN oder Bluetooth, warum sollte man dort> dann CAN übertragen wollen?
Galvanische Trennung ?
Zumal die busarbitrierung, eine der wesentlichen Eigenschaften des can,
so sicher nicht mehr funktioniert. Egal. Ist für die Bildung. Sagen wir
dem Aufgabensteller ist nichts sinnvolles eingefallen was realisierbar
ist.
Curby23523 N. schrieb:> Ich würde keinen Arduino verwenden, sondern ein Devboard mit einem> Controller, der bereits eine Schnittstelle integriert hat, z.B> Bluetooth, Zigbee, etc.
Das kann auch arduino sein. Bei entsprechend wenig Vorwissen schadet es
aber nicht wenn lauffähige Beispiele dabei sind.
An der Hochschule kann ein bisschen Theorie nie schaden. Ihr solltet
euch mit Aloha beschäftigen und wie Ethernet (CSMA/CD) daraus entstanden
ist. Dann dürfte der Schritt zu CSMA/CR von CAN ein Aha-Erlebnis sein.
Vielleicht gefällt fundierte Herangehensweise auch dem/der Profx.
https://www.google.com/search?q=aloha+vs+ethernet
Auch der olle Tanenbaum (Computer Networks) ist lesenswert.
Julian schrieb:> Soweit ich weis soll das nur in eine Richtung gehen, sprich wir sollen> einen Sender und einen Empfänger bauen.
Der Witz am CAN ist aber, dass er in beide Richtungen "geht"...
> Die Aufgabenstellung ist ein CAN Signal kabellos zu übertragen.
Nicht eher nur die Daten, die auf diesem CAN-Bus unterwegs sind?
> Soweit ich weis soll das nur in eine Richtung gehen, sprich wir sollen> einen Sender und einen Empfänger bauen.
Und was soll denn da übertragen werden?
> Soweit ich weis
Du brauchst mehr Informationen zum Lösen der Aufgabe. Hole sie dir.
BTW: auch wenn du dich in der Ausbildung auf einer Schule befindest, hat
deine Frage prinzipiell nichts mit "Schule, Studium und Beruf" zu tun...
Hi,
eine einfache Möglichkeit für sowas ist ein Raspberry Pi plus ein
CAN-Modul:
http://skpang.co.uk/catalog/pican2-canbus-board-for-raspberry-pi-2-p-1475.html
Steckste einfach auf den Pi, die Treiber und API (SocketCAN) ist schon
im Linux Kernel drin. Dann eine Applikation bauen, die die
CAN-Botschaften über Ethernet/WiFi verschickt / sendet ist trivial.
Ich hätte eine möglicherweise dumme Idee:
Man moduliert das CAN-Signal auf einen IR-Transmitter auf (mit einer FSK
oder OOK zum Beispiel).
RX und TX gleichzeitig müsste gehen, vorausgesetzt man verwendet
unterschiedliche Carrier.
Gegenüber Funk hat das den Vorteil, dass man keine
Zulassungsbeschränkungen hat. Die Technik dürfte auch schön billig sein.
Der große Nachteil ist sicher die Reichweite und nötige Sichtverbindung.
Müsstet ihr klären, ob das überhaupt aktzepabel ist.
IRDA geht ja bis zu wirklich hohen Datenrate, möglicherweise gibts da
fertige Tranceiver zu kaufen?
soso schrieb:> RX und TX gleichzeitig müsste gehen, vorausgesetzt man verwendet> unterschiedliche Carrier.
Beim CAN-Bus hast Du auch nur ein gemeinsam genutztes Medium ohne
verschiedene Träger; wenn Du Licht an als dominant und Licht aus als
rezessiv ansiehst, dann passt das schon. 'Ne Modulation als Schutz gegen
Fremdlicht, fertig.
Lu R. schrieb:> Dann eine Applikation bauen, die die> CAN-Botschaften über Ethernet/WiFi verschickt / sendet ist trivial.
Und wird einen richtig bescheidenen Datendurchsatz liefern. Wie schon
mal jemand oben angedeutet hat, einem Studenten ist weder Nachdenken
noch ein tieferer Einstige in die Technik verboten. Im Gegenteil.