Forum: Mikrocontroller und Digitale Elektronik µC gesteuert über eine Android App


von Eugen T. (goa1990)


Lesenswert?

Hallo Microcontroller Profis,

ich habe an euch eine Frage:

Ich besuche zurzeit ein Technikerschule für Elektrotechnik und bin im 
zweiten Jahr.Jetzt ist die Zeit gekommen eine Technikerarbeit 
anzufangen.
Ich habe mir vorgestellt die Technikerarbeit soll wie folgt aussehen,
ein PIC16F887 soll so programmiert sein, dass es über das Bluetooth 
Modul (BTM222) Daten vom Smartphone(Android App) empfangen kann  und 
diese über die Serielle Schnittstelle an den µController übermittelt um 
zwei Schrittmotoren mit PWM Signale anzusteuern.

Ich habe also die Aufgaben:

Android App zu programmieren die Bluetoothfähig sein muss.
Den µController muss so programmiert sein das er die Daten an der 
Serielle Schnittstelle empfängt und verarbeitet.

Ich habe zwei Möglichkeiten wie ich eine App programmieren kann.

Die erste ist einfach 4 Buttons mit rechts,links, vorwärts, rückwärts.
Die zweite, welche schwieriger ist meiner Meinung nach,die Daten des 
Lagesensors auslesen und via Bluetooth übermitteln.


Die Frage ist jetzt.... wie kann man die Daten des Lagesensors auslesen 
und via Bluetooth übermitteln?

Wird auch alles in Java (so wie die App) geschrieben um die Daten zu 
übermitteln?

Ist das ein großes Projekt für eine Person?



Ich danke Vorraus.


Gruß

von Dave C. (dave_chappelle)


Lesenswert?

Eugen T. schrieb:
> Die Frage ist jetzt.... wie kann man die Daten des Lagesensors auslesen
> und via Bluetooth übermitteln?

Ich verstehe ehrlich gesagt die Frage nicht ganz. Du hast ja eine 
Bluetooth Verbindung und die ist bidirektional.

Ist aber natürlich schwierig als deine erste Variante!

Eugen T. schrieb:
> Wird auch alles in Java (so wie die App) geschrieben um die Daten zu
> übermitteln?

Nein, das Programm auf dem µC kannst du in der von dir gewünschten 
Sprache schreiben (C, ASM..)

Eugen T. schrieb:
> Ist das ein großes Projekt für eine Person?

Bezug nehmend auf:

Eugen T. schrieb:
> Ich besuche zurzeit ein Technikerschule für Elektrotechnik und bin im
> zweiten Jahr.

Ja, das ist ein grosses Projekt. Sehr sogar!
Wie lange hast du denn Zeit?

Ich würde das so handhaben, dass du die Motoren über den µC steuerst und 
zwar mit HARDWARE Buttons, also Tastern. Wenn du dann noch (viel) Zeit 
hast, würde ich die erste Variante in Angriff nehmen (Buttons über eine 
App) und wenn du dann immer noch (sehr viel) Zeit hast, würde ich die 
bidirektionale Verbindung herstellen und versuchen die Daten auszulesen 
und zu übermitteln.

Gruss

von Karl H. (kbuchegg)


Lesenswert?

Eugen T. schrieb:

> Ich habe zwei Möglichkeiten wie ich eine App programmieren kann.
>
> Die erste ist einfach 4 Buttons mit rechts,links, vorwärts, rückwärts.
> Die zweite, welche schwieriger ist meiner Meinung nach,die Daten des
> Lagesensors auslesen und via Bluetooth übermitteln.

Was spricht dagegen, erst mal die einfachere Variante mit den 4 Buttons 
in Angriff zu nehmen und erst dann, wenn das funktioniert, den 
Lagesensor mit dazuzunehmen?

Eine derartiges Gesamtsystem baut man sowieso nicht in einem Rutsch auf, 
sondern hantelt sich von einem Zwischenziel zum nächsten vor. Und eines 
deiner Zwischenziele ist dann halt erst mal: Ansteuerung über Buttons.
Von einem Zwischenziel zum nächsten tut man gut daran, wenn man immer 
nur 1 unbekannte neue Komponente mit dazu nimmt. Sonst verliert man sich 
nämlich im Dickicht dessen, was man alles nicht weiß und dazulernen 
muss.

> Die Frage ist jetzt.... wie kann man die Daten des Lagesensors
> auslesen und via Bluetooth übermitteln?

Siehst du. 2 komplett voneinander getrennte Themenkreise. Das eine hat 
mit dem anderen erst mal nichts zu tun. Also lass den Lagesensor erst 
mal wag und ersetzt ihn durch die Buttons. Denn wie man Buttons anzeigt 
und auf das Drücken reagiert, weißt du ja (hoffentlich). Bleibt somit 
fürs erst nur noch Bluetooth übrig, womit das Gesamtproblem erst mal ein 
gutes Stück einfacher wird und du deine 'Kräfte' darauf bündeln kannst.

von Eugen T. (goa1990)


Lesenswert?

Für das Projekt habe ich bis Mai 2014 Zeit.

Natürlich weis noch vieles nicht, dazu ist auch eine Technikerarbeit da, 
sich einzuarbeiten und die Schwierigkeiten zu lösen.


Eine Bluetoohfähige App würde ich hinkriegen mit den Buttons, aber meine 
Frage ist jetzt, um ein Befehl rauszuschicken z.B. vorwärts fahren, wird 
es auch in der  Programmiersprache Java programmiert?
Das Smartphone muss ja auch wissen beim drücken des Buttons, so jetzt 
muss ich ein Befehl(vorwärts fahren) via Bluetooth rausschicken.


Sorry, wenn die Fragen komisch sind, aber ich sammle Informationen für 
das Projekt.


Gruß

von Karl H. (kbuchegg)


Lesenswert?

Eugen T. schrieb:

> Eine Bluetoohfähige App würde ich hinkriegen mit den Buttons, aber meine
> Frage ist jetzt, um ein Befehl rauszuschicken z.B. vorwärts fahren, wird
> es auch in der  Programmiersprache Java programmiert?

Der Bluetooth Komponente deines Android ist das aber sowas von egal, in 
welcher Programmiersprache du das machst. Das kriegt ein Byte (von wo 
auch immer) und setzt es an die Gegenstelle ab. Einem Fax-Gerät ist es 
ja auch wurscht ob du oder deine Schwester auf das Blatt Papier 
geschrieben hat, das man ihm reinsteckt. Seine Aufgabe ist es, den 
INhalt des Blattes zu scannen und auf den Weg zu schicken. Nicht mehr 
und nicht weniger. Egal was da drauf steht, egal wer es geschrieben hat. 
Egal ob das Deutsch, Englisch, Kisuaheli oder gar eine Zeichnung ist.

> Das Smartphone muss ja auch wissen beim drücken des Buttons, so jetzt
> muss ich ein Befehl(vorwärts fahren) via Bluetooth rausschicken.

Ja, das musst du eben programmieren.
Dein 'Befehl' ist im einfachsten Fall einfach nur eine Codezahl (1 
Byte), die rausgeschickt wird.
Dein µC kriegt diese Codezahl und wertet die aus. Kriegt der µC ein Byte 
mit dem Wert 0x05 präsentiert, dann programmierst du eben Vorwärtsfahrt. 
0x06 könnte 'links rum' heissen, 0x07 'rechts rum'.
Dann muss eben deine Android App jedesmal wenn der Benutzer auf den 
Button 'links rum' drauftatscht, ein Byte mit dem Wert 0x06 über die 
Bluetooth-Schnittstelle absetzen.

von Dennis S. (eltio)


Lesenswert?

Eugen T. schrieb:
> Eine Bluetoohfähige App würde ich hinkriegen mit den Buttons, aber meine
> Frage ist jetzt, um ein Befehl rauszuschicken z.B. vorwärts fahren, wird
> es auch in der  Programmiersprache Java programmiert?

In der Regel sind Android-Apps in Java geschrieben, richtig! Du kannst 
unter [1] ein paar Beispiele finden wie das geht.

Gruß Dennis

[1]: 
http://developer.android.com/guide/topics/connectivity/bluetooth.html

von Eugen T. (goa1990)


Lesenswert?

Vielen Dank für eure Antworten.

von Dani P. (mikrocontroller2014)


Lesenswert?

Hallo,

ich weiß, der Beitrag ist schon ziemlich alt, mich würde allerdings 
trotzdem interessieren wie die Arbeit gelaufen ist.

Hat das mit dem BTM222 funktioniert?

habe quasi das gleiche (nur mit ein paar LED's am Ausgang) vor.

wäre über eine Rückmeldung sehr froh, da ich mich mit dem Thema 
bluetooth und Verbindung zum Android sehr schwer tuhe

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
Noch kein Account? Hier anmelden.