Hallo, habt ihr eine Idee, wie man am Mac ein Programm schreiben kann, welches mit der uARt kommunizieren kann? Ich finde da nur Processing und da geht das irgendwie auch nur mit Arduino.. Im schlimmsten fall, könnte ich auch Windows benutzten, gibt es da eine möglichkeit z.b. in Visual C++ auf die Serielle schnittstelle zu kommen?
:
Verschoben durch User
Jan R. schrieb: > Hallo, > > habt ihr eine Idee, wie man am Mac ein Programm schreiben kann, welches > mit der uARt kommunizieren kann? die vorrangige Frage dürfte sein, was denn controllerseitig mit dem UART umgesetzt ist? Mac sollte in dieser Hinsicht identisch sein mit BSD? Vlg Timm
Jan R. schrieb: > wie man am Mac ein Programm schreiben kann, welches > mit der uARt kommunizieren kann? Python --> pySerial --> Port aufmachen und abfahrt
Also meine Macs haben keine serielle Schnittstelle. Da gibt es nur noch USB. Also braucht man ein USB-Serial Adapter, der in die USB-Buchse gesteckt wird. Dazu benötigt man noch einen Treiber. Ist alles gestartet, dann gibt es ein neues Device /dev/xxxx Wie es genau heisst, weiss ich nicht. Der Mac steht gerade woanders. Aber man sieht, dass es neu ist, z.B. am Datum. Und dieses Device kann man in jeder beliebigen Programmiersprache öffnen, und dann schreiben oder lesen.
Jan R. schrieb: > Ich finde da nur Processing Das ist nicht Dein Ernst, oder? Für den Mac gibt es XCode, das ist die "offizielle" Entwicklungsumgebung von Apple für C/C++ und Objective-C, der "nativen" Programmiersprache für OS X. Demnächst wird das noch um "Swift" erweitert. Außerdem funktioniert der Kommandozeilen-gcc ziemlich exakt so, wie er es auch unter Linux tut; auch die Grundstruktur des Betriebssystems ist nicht großartig anders (warum auch, ist ja schließlich ein Unix). Für die Freunde des Basic gibt es auch Realbasic (das gibt es auch für Windows und Linux).
ftdi und konsorten tauchen bei mir als /dev/tty.usbserial-FTF5H* bzw. als /dev/tty.* auf - also alles irgendwie easy handlebar.
Rufus Τ. Firefly schrieb: > Jan R. schrieb: >> Ich finde da nur Processing > > Das ist nicht Dein Ernst, oder? Für den Mac gibt es XCode, das ist die > "offizielle" Entwicklungsumgebung von Apple für C/C++ und Objective-C, > der "nativen" Programmiersprache für OS X. Demnächst wird das noch um > "Swift" erweitert. > > Außerdem funktioniert der Kommandozeilen-gcc ziemlich exakt so, wie er > es auch unter Linux tut; auch die Grundstruktur des Betriebssystems ist > nicht großartig anders (warum auch, ist ja schließlich ein Unix). > > Für die Freunde des Basic gibt es auch Realbasic (das gibt es auch für > Windows und Linux). Ja toll, wie kann ich den in C vom PC/Mac aus auf die Serielle schnittstelle zugreifen bzw. auf den Adapter. Da gibt es ja nicht wie beim uC ein Register für. Mache mal ein Beispiel. Der uC misst ein Potentiometer aus. Der AD wandler wert, wird dann über UART ausgegeben und soll am rechner in eine Balkenanzeige umgewandelt werde. Bsp. 2 In einem Fenster am PC kann man eine Anzahl von schritten, die ein schrittmotor durchführen soll einstellen. Wie schaffe ich es, diese Strings auf die Serielle Schmittstelle zu beingen.... Im internet steht dazu nichts und in keinem Buch lese ich sowas.. vielleicht weiß es ja einer..
Jan R. schrieb: > Ja toll, > > wie kann ich den in C vom PC/Mac aus auf die Serielle schnittstelle > zugreifen bzw. auf den Adapter. > > Da gibt es ja nicht wie beim uC ein Register für. Natürlich nicht. Aber dafür gibts mit Sicherheit bei Apple eine Doku dafür. > Der uC misst ein Potentiometer aus. Der AD wandler wert, wird dann über > UART ausgegeben und soll am rechner in eine Balkenanzeige umgewandelt > werde. Schön. Ist nur für die Fragestellung uninteressant. Die Fragestellung lautet: Wie OS/X eine serielle bzw. ein bestimmtes Gerät geöffnet und davon gelesen bzw. geschrieben. Da es sich dabei um ein Unix handelt, wird es über fopen gehen, wobei das Gerät sich im Dateinamen 'versteckt'. Genau das ist war ja das geniale im Unix, das alles im Prinzip eine Datei war/ist, die man alle gleich öffnet und als Stream behandelt. Die einzige Frage die sich wirklich stellt, lautet: wie konfiguriere ich zb. die Baudrate. > In einem Fenster am PC kann man eine Anzahl von schritten, die ein > schrittmotor durchführen soll einstellen. Noch mal: Was auf µC Seite passiert ist völlig uninteressant, wenn es um die Frage geht: wie öffne ich auf dem Mac die serielle Schnittstelle. > Wie schaffe ich es, diese Strings auf die Serielle Schmittstelle zu > beingen.... Im internet steht dazu nichts und in keinem Buch lese ich > sowas.. vielleicht weiß es ja einer.. Unix: fopen, fwrite, fread, fclose. Kannst du von einer Datei lesen, kannst du auch von der seriellen Schnittstelle lesen.
:
Bearbeitet durch User
Jan R. schrieb: > Da gibt es ja nicht wie beim uC ein Register für. Nein, bei erwachsenen Computern gibt es ein Betriebssystem mit den notwendigen Funktionen. Erfreulicherweise werden Schnittstellen genauso behandelt wie Dateien, und da gibt Funktionen wie Open fürs öffnen, write fürs schreiben, read fürs lesen usw. Georg
Hallo
1 | *s = "21"; |
2 | |
3 | avr_befehl = open("/dev/tty.usbserial","w"); |
4 | |
5 | write(avr_befehl, s,strlen(s); |
würde das so gehen? Wie stelle ich die Baudrate ein? Wie würde das in Objective-C gehen mit diesen komischen NSStrings usw. blick ich nicht ganz durch.. Danke schonmal.
"obj-c serial interface" liefert https://github.com/armadsen/ORSSerialPort als erstes Ergebnis bei Google. Ich glaube, dass habe ich schon mal benutzt und war ganz einfach. Natürlich kann man das einfach in C machen und in Obj-C weiter verarbeiten. OS X ist ja ein Unix und USB-Seriell-Adapter ist ja die Serielle Schnittstelle. Dazu gibt's zig Beispiele im Internet... Wenn Du nicht selber suchen möchtest, dann guck dir http://www.netzmafia.de/skripten/hardware/Seriell/index.html an. Da ist zwar die Rede von Linux, aber das gleiche gilt auch für OS X bzw. BSD => den C-Code kannst Du eins-zu-eins übernehmen (selbstverständlich musst Du noch den Pfad zur Schnittstelle anpassen).
Wenn Du ORSSerialPort verwenden möchtest, dann musst selbstverständlich NSASCIIStringEncoding statt NSUTF8StringEncoding benützen.
1 | NSData *dataToSend = [self.sendTextField.stringValue dataUsingEncoding: NSASCIIStringEncoding]; |
Was ist ein NSData für ein typ? Was ist eigentlich immer dieses self? Kann den Befehl einfach so lassen? Kann ich den Inhalt eines Textfields einfach mit in dataToSend schreiben umd dann reicht das zum senden oder muss im befehl hintendran noch was geändert werden? Wie kann ich Stopbits,Parity usw. einstellen? Entschuldigung für die fragen aber mit Objective-C habe ich mich bis jetzt nicht beschäftigt.
Jan R. schrieb: > Was ist ein NSData für ein typ? Doku von NSData schon angeschaut? - Da steht in der Überschrift schon NSData /Class/ Reference - das sagt alles... Aber wenn ich eine Vermutung machen darf, dann sagt dir Objektorientierte Programmierung nix. Du kannst für ein Konsolenprogramm auch einfach C benutzen. Alternative Programmiersprachen gibt's natürlich noch andere. Jan R. schrieb: > Wie kann ich Stopbits,Parity usw. einstellen? Das steht in den Links drinnen. Jan R. schrieb: > ... Z U A L L E N F R A G E N ... > Entschuldigung für die fragen aber mit Objective-C habe ich mich bis > jetzt nicht beschäftigt. Wenn Du Cocoa benützten möchtest, dann musst Du dich in Obj-C oder Swift einarbeiten. Oder Du suchst dir irgend jemanden, der dir das programmiert. Stichwörter/Anhaltspunkte habe ich dir mit meiner vorherigen Antwort gegeben. Damit sollte man ohne Probleme was anfangen können.
>habt ihr eine Idee, wie man am Mac ein Programm schreiben kann, Falls Du Java programmieren kannst, sollte JSSC laut Doku auch laufen: Beitrag "Java serielle Schnittstelle mit JSSC"
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.