Hallo, habe mich ein bisschen in einen Atmega16 eingearbeitet und bin jetzt soweit, das ich über die RS232 Schnittstelle mit einem Terminalprogramm eine Kommunikation zwischen µC und PC realisiert habe. Ich übertrage mir so Daten zum PC (zb. ADC-Werte) als auch Daten vom PC zum µC (zb. andere PWM Werte um damit eine LED vom PC aus zu dimmen) Das alles läuft wie gesagt über ein Terminalprogramm, der µC ist mit C programmiert. Nun möchte ich weiter gehen und zwar will ich eine eigene Anwendung am PC schreiben, die mir die Sache mit dem Terminalprogramm abnimmt. So soll dann zb. die LED über einen Schieberregler gedimmt werden. Allerdings will ich gleich dazu sagen das ich kein Profi in Sachen PC programmierung werden will - das ich mir einiges aneignen muss is mir aber auch klar, jedoch will ich mehr in Richtung µC programmierung gehen. Weiterhin will ich so ein Programm auch unter der Android Plattform auf einem Tablet haben. So wie ich das bis jetzt verstanden habe programmiert man für Android eh immer unter Java ? Jedenfalls weiß ich nicht wie und womit (mit welcher Sprache) ich jetzt anfangen soll. Ich habe von meinem elektronikstudium her schon ein bisschen mit C und C++ zu tun gehabt, allerdings ohne grafische Oberfläche. Aber währe es nich sinnvoller dann sich gleich nur in Java einzuarbeiten, da ich es eh für Android brauche? Womit habt ihr schon solche Programme geschrieben bzw. wie seid ihr eingestiegen. Gruß Markus
Für Android programmiert man in Java. Man kann zwar auch in C/C++ Programmieren (NDK), aber das ist eigentlich nur für Anwendungen interessant bei denen richtig Performance benötigt wird. Ich habe auch gerade mit der Android-Programmierung angefangen und war doch schon angetan von der Entwicklungsumgebung (bzw. die Zusammenstellung) die Google dafür bereitgestellt. Einfach das SDK runterladen und installieren, und dazu noch Eclipse mit dem entsprechenden Plugin (so wie hier beschrieben). Klappt wunderbar. Das App lässt sich dann entweder über den mitgelieferten Emulator testen, oder direkt auf einem über USB angeschlossenem Android-Gerät starten und debuggen. Einfach genial. Damit habe ich dann mehr oder weniger im handumdrehen eine App programmiert die via Bluetooth an einen an den Atxmega angeschlossenem Bluetooth Serial Adapter (http://www.ebay.de/itm/250914926662?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_1049wt_1187) meine RGB-LED Wohnzimmerbeleuchtung steuert. Im SDK sind schon entsprechende Beispiele dabei womit man sich das alles zusammenstricken kann. Einige gute Tutorials findest du auch noch im Netz. Ansonsten kannst du recht schnell mit C# oder VB.Net eine kleines Programm "malen" mit dem du über ein Schieberegler (Slider) jeweils ein entsprechendes Telegramm über den UART schickst.
Also wenn Du Dich schon bissl in C auskennst, dürfte Java nicht ganz so schwer für Dich werden. Du könntest Dir aber auch mal GLBasic anschauen. Damit kann man auch Programme für PC UND Android schreiben und es ist um einiges einfacher als Java.
Also wenn du bei c bleiben willst dann schau dir gtk an als grafische Oberfläche, rs232 in ein c Programm einbinden gibts hier schon 100 Beispiele oder googeln da wirst schnell fündig! Weiters ist das mit der Android app ned gute Idee jedoch musst du entweder Bluetooth nehmen oder über WLAN auf deinen uc zugreifen .. deine Sache wie du das realisieren willst. Eins noch rs232 einbinden in Java nennt sich rxtx Google mal danach! Jedoch wenn du schon c kannst würde ich dir gtk empfehlen, weil du damit dein schieberegler leicht implementieren kannst sowie rs232. Sollte keine Große Sache sein! Du kannst statt rs232 Bluetooth nehmen und am pc spp nehmen also das er wie ein serieller Port zu verwenden ist. Wie das auf Android aussieht weiß ich nicht! Mfg
linuxi schrieb: > Wie das auf Android aussieht weiß ich nicht! Dafür ist beim Android ein schönes Beispiel dabei "BluetoothChat": http://developer.android.com/resources/samples/BluetoothChat/index.html Man kann einfach alles rausschmeissen was man nicht benötigt und dann einfach via sendMessage einen String an das Bluetooth gerät schicken. Achja, und damit das mit dem von mir verlinkten Bluetooth-Modul funktioniert muss man in der BluetoothChatService.java die UUID von (http://developer.android.com/resources/samples/BluetoothChat/src/com/example/android/BluetoothChat/BluetoothChatService.html)
1 | UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66"); |
in
1 | UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); |
ändern, sonst klappts nicht. Steht auch hier als Hint: http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#createInsecureRfcommSocketToServiceRecord(java.util.UUID)
Vielen dank für die Antworten. Also, mit dem SDK kann man sich sozusagen für Android seine Oberfläche zusammenklicken (kenn das von Delphi früher aus der Schule) und dann halt unter Java programmieren. Geht das damit auch für Windows oder brauche ich dann eine andere Oberfläche ? Noch mal zu dem Bluetooth-Serial Adapter. Ist das denn dann von der programmierung genau das selbe als würde ich es über "normalen" RS232 machen? Es ändert sich ja bloß der Übertragungsweg aber die Methode an sich ist ja von der Programmseite her das selbe? Und muss man dann nicht mit Fehlererkennungen rumhantieren, da Drahtlose übertragung? Dann würde aber wohl auch das Paritätsbit zu wenig sicherheit bringen oder? Gruß Markus
> Damit habe ich dann mehr oder weniger im handumdrehen eine App > programmiert die via Bluetooth an einen an den Atxmega angeschlossenem > Bluetooth Serial Adapter (Ebay-Artikel Nr. 250914926662) > meine RGB-LED Wohnzimmerbeleuchtung steuert. Hast du das Projekt veröffentlich?
Markus Wi*** schrieb: > Vielen dank für die Antworten. > > Also, mit dem SDK kann man sich sozusagen für Android seine Oberfläche > zusammenklicken (kenn das von Delphi früher aus der Schule) und dann > halt unter Java programmieren. Geht das damit auch für Windows oder > brauche ich dann eine andere Oberfläche ? Du kannst das unter Windows alles entwickeln, aber diese "App" geht dann natürlich nicht unter Windows oder so, sondern nur auf Android, da du von Steuerelementen gebrauch machst, die Java in der "Grundausstattung" eben nicht hat: http://developer.android.com/sdk/installing.html > Noch mal zu dem Bluetooth-Serial Adapter. > Ist das denn dann von der programmierung genau das selbe als würde ich > es über "normalen" RS232 machen? Es ändert sich ja bloß der > Übertragungsweg aber die Methode an sich ist ja von der Programmseite > her das selbe? Für den µC ist es ganz normal UART, also RS232. Den Bluetooth Adapter kannst du via AT-Kommandos umstellen (Baudrate etc). Du kannst den Bluetooth Adapter auch unter Windows ganz normal Koppeln und erhälst dann einen virtuellen Com-Port. > Und muss man dann nicht mit Fehlererkennungen rumhantieren, da Drahtlose > übertragung? Dann würde aber wohl auch das Paritätsbit zu wenig > sicherheit bringen oder? IMOH ist in Bluetooth schon CRC usw. drin, daher brauchst du dich darum nicht kümmern (zumindest hatte ich bisher noch keine Übertragungsfehler). Heinz schrieb: >> Damit habe ich dann mehr oder weniger im handumdrehen eine App >> programmiert die via Bluetooth an einen an den Atxmega angeschlossenem >> Bluetooth Serial Adapter (Ebay-Artikel Nr. 250914926662) >> meine RGB-LED Wohnzimmerbeleuchtung steuert. > > Hast du das Projekt veröffentlich? Nein, ist auch noch nicht ganz fertig, aber das Video kannst du dir ja mal ansehen: http://bilder.pcmx.de/bluetooth_light.mkv Ist eigentlich nichts anderes als mein Ambilight (http://www.pcmx.de/?p=96) nur dass eben anstatt des Rechners das Bluetooth-Modul die Farben zum µC sendet.
Hi Ich hab jetzt nicht alle Antworten gelesen, aber ich möchte mal auf VB hinweisen. Da ist man rel. schnell drin und die notwendigen Module für eine ser. Kommunikation integriert. Du kannst dir ja mal OpenEye ansehen. Ist zwar mit Delphi geschrieben, aber so in der Art ist es auch in Visual BAsic möglich. OpenEye liefert bei Assemblerprogrammen die Inhalte der Variablen zur Laufzeit über die ser. Schnittstelle. Such einfach mal danach. Gruß oldmax
Wurde schon drauf hingewiesen: Timmo H. schrieb: > Ansonsten kannst du recht schnell mit C# oder VB.Net eine kleines > Programm "malen" mit dem du über ein Schieberegler (Slider) jeweils ein > entsprechendes Telegramm über den UART schickst.
Hallo wollte mal fragen, da ich genau so eine App programmiere. Hast du den Colorpicker selbst gemacht oder irgendwo gefunden ?
Richard Treichl schrieb: > Hallo wollte mal fragen, da ich genau so eine App programmiere. > Hast du den Colorpicker selbst gemacht oder irgendwo gefunden ? Der ColorPicker ist bei den Samples vom SDK dabei (android-sdk\samples\android-10\ApiDemos) als Teil des "FingerPaint" => ColorPickerDialog.java. Den Gradient zur Helligkeitsauswahl darunter habe ich noch hinzugefügt (nach diesem Tutorial http://fess16.blogspot.com/2011_06_12_archive.html). Achtung, die russischen Kommentare nicht mit in den Quellcode einfügen, dann geht das Kompilieren nicht :D
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.