Bluetooth Auto Projekt

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
Klassen - Verkettete Liste -
Computersimulation steuert echtes Frontpanel an
4. Attiny-Veranstaltung
Geschwindigkeitsmessung
PDV-Vertiefung’06 Messwerterfassung mit PDA
C Tutorium – Fehlerbehandlung – Knut Stolze. 2 Grundsatz Also ist auch nach jedem Funktionsaufruf auf Fehler zu prüfen!! Jeder(!) Funktionsaufruf kann.
Attribute Protocol.
Eine kleine Einführung
Moeller XSystem - Grundlagen
Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts
10. Grundlagen imperativer Programmiersprachen
Verteilte Software - Java - Prozedurale Programmierung 1
Die Serielle Schnittstelle
Objektorientierung mit VBA
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
Basisinformationstechnologie WS 2003/04 T.Schaßan
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
Gliederung: Features Hardware Software Werbung.
Simulates what stimulates for Elektronik Studends
Vorl. 6: Single- und Multitasking Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 5: Interrupts Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 5 Interrupts Peter B. Ladkin
Datenströme DVG Datenströme.
RS232 Register und ihre Bits
Medienverarbeitung I, WS 99/00 Simon Barkow, Gunnar Kiesel
Studienarbeit Mini-Web-Server auf einem Signalcontroller
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Mikrocomputertechnik 1 Einführung Prof. J. Walter Stand Oktober Mikrocomputertechnik Jürgen Walter Drei-Stellungen-Quickie Servomotorsteuerung.
A PPLICATION P ROGRAM I NTERFACES. Erklärung Verwendung Typklassen G LIEDERUNG.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
FORTRAN 77.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Computerorientierte Physik VORLESUNG
Computerorientierte Physik VORLESUNG Zeit: jeweils Mo Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz 5, A-8010.
Purga - Scriptengine Ein Einblick.
Die verschiedenen Schnittstellen eines Computers und ihre Verwendung
Grundlagen Wissenschaftlichen Arbeitens Hilal Tekoglu
Μ Version 1.0Seite 1µVision Start Debugger Set Breakpoint µVision Debugger.
Datentypen Überblick Datentypen Einfache / fundamentale Datentypen
Pendulum.c Thomas Baumgartner, Mat.nr Alexander Gross, Mat.nr
Werkstätte 1 von 7 1 von 19 XY - Plotter Werkstättenprojekt 4BHELI 2007/08 Michael Stocker Bernhard Wintersperger.
The EventCollector Concept Präsentation der Diplomarbeit von Thomas Moser und Lukas Karrer Distributed System Group,
Institut für Angewandte Mikroelektronik und Datentechnik Fachbereich Elektrotechnik und Informationstechnik, Universität Rostock Mirkocontroller Praktikum.
Torsteuerung Marco Korrmann Dominik Sommer.
Datenlogger-System für den Fahrversuch klein, kompakt, leistungsstark CARDALOG-System.
Entwicklung des Attiny-Boards
Rasperry Pi Kameramodul + motor
Tu Binh Diep Matr.Nr: Fachhochschule Wiesbaden Fachbereich Informatik Studiengang: Master Technische Visualisierung
Robotermechanik Trippelmechanismus Schussmechanismus Antriebsmotoren
Einführung in Java PING e.V. Weiterbildung Andreas Rossbacher 24. März 2005.
Entfernungsmessung mit Ultraschall
Controller Werkstatt updaten Werkstatt ws = werkstattarray.get(werkstattId); ws.setName(name); ws.setAnsprechpartner(ansprechpartner); ws.setTelefonnummer(telefonnummer);
C / C++ für das Internet der Dinge und Hausautomatisierung Arduino Uno / Nano / … Input, Interrupts, Timer, Sleepmode Hochschule Fulda – FB AI Sommersemester.
Programmieren in C / C++ Software Serial, Bluetooth
IOStreamLibrary.
Arbeiten mit dem Terminal
Die I/O-Register des Attiny
Interrupts Wozu Interrupts? Interruptmodell Einige Attiny-Interrupts
Projektmodul DM Kurze Einführung Arduino und Arduino-Programmierung
t t t.
IOStreamLibrary.
Vom Prozessor zum System
Aufbau und Anwendungen von Mikrokontrollern
Befehle zu Moduswechsel und Show-Commands
 Präsentation transkript:

Bluetooth Auto Projekt 2007 Von: Sascha Tippmann Christian Krieger Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Einleitung Die ersten Schritte Kommunikation und Ansteuerung Schaltplan BT Auto Quellcode Tiny in Bascom Quellcode Windows GUI Abschliessend Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Die ersten Schritte Verständnis der Servos bzw. PWM Signal Signalerzeugung des PWMs, erstes Tiny Programm Kommunikation mit Serieller Schnittstelle Ansteuerung mittels Serieller Schnittstelle Sascha Tippmann, Christian Krieger

Kommunikation und Ansteuerung Verwendete Materialien: - HBX Bonzer (Modellauto) - 2x Tiny 2313 - Bluetooth Adapter - Signalwandler Max232 - Schaltrelais ULN2003A - Gabellichtschranke - etliche elektronische Bauelemente Sascha Tippmann, Christian Krieger

Kommunikation und Ansteuerung Verwendung einer Windows GUI mit Gamepad Wichtig! Baudrate , Clockrate , Paraty Bits etc. müssen identisch sein für fehlerfreie Kommunikation BT Adapter leitet Datenströme an Max weiter Max wandelt Signale RS232 in TTL-Signal ULN als Schalter für Lichtanlage etc. Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Schaltplan BT Auto 1 Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Schaltplan BT Auto 2 Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Quellcode Tiny '004.BAS: UART-Empfänger ohne Interrupt 'Hardware: MAX232 an PD0/PD1, Nullmodemkabel zum PC '--------------------------------------------------- $regfile = "ATtiny2313.DAT" 'AT90S2313-Deklarationen $crystal = 8000000 'Quarz: 8MHz $baud = 9600 'Baudrate der UART: 9600 Baud Config Servos = 2 , Servo1 = Portb.2 , Servo2 = Portb.4 , Reload = 10 Config Portb = Output #b-pins als Output Config Pind.3 = Input Enable Interrupts #Aktivierung der Interrupts Servo(1) = 90 'Lenkung Servo(2) = 95 'Gas Dim I As Byte Portd.3 = 1 'Pullup Widerstand einschalten Do If Usr.rxc = 1 Then 'Wenn Byte empfangen... I = Udr If Pind.3 = 0 Then #Falls CD fehlt, -> Mittelstand Servo(1) = 90 Servo(2) = 95 Else Portb.1 = 0 If I < 128 And I > 59 Then Servo(1) = I End If If I > 188 And I < 252 Then I = I - 128 Servo(2) = I 'If I = "D" Then ' Servo(2) = 95 ' Servo(1) = 90 ' End If Usr.rxc = 0 Loop End Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Quellcode Tiny 2 Speed Dim I As Integer Dim C As Byte I = 0 C = 0 Do Loop End Ontimer0: I = I + 1024 If I >= 31250 Then Printbin C End If Return Isr_von_int1: C = C + 1 'Toggle Led3 $regfile = "ATtiny2313.dat" $crystal = 8000000 $hwstack = 28 $swstack = 32 $framesize = 32 Config Portb.1 = Output Portb.1 = 1 Config Pind.3 = Input Led3 Alias Portb.1 Portd.3 = 1 'Internen Pull-up Widerstand einschalten Config Int1 = Rising On Int1 Isr_von_int1 'Interrupt-Routine On Timer0 Ontimer0 Config Timer0 = Timer , Prescale = 1024 , Capture Edge = Rising Enable Timer0 Enable Int1 Enable Interrupts 'Interrupts global Sascha Tippmann, Christian Krieger

Quellcode WinGUI (Ausschnitte) Serielles Interface: hCom = CreateFile(pccom, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); if(INVALID_HANDLE_VALUE == hCom) { //Handle Error return false; } //Get port status portSuccess = GetCommState(hCom, &dcb); if(!portSuccess) dcb.BaudRate = CBR_9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; portSuccess = SetCommState(hCom, &dcb); if(!portSuccess) { //Handle error return false; } portSuccess = SetCommMask (hCom, EV_RXCHAR); SerialReader *p_sread = new SerialReader(); p_sread->Create(getHandle(),frame); p_sread->Run(); return true; Sascha Tippmann, Christian Krieger

Quellcode WinGUI (Ausschnitte) Joystick: while(true) { if(joyGetPosEx(JOYSTICKID1,&joyData) == JOYERR_NOERROR) { Xpos =joyData.dwRpos; Ypos = joyData.dwYpos; Ypos = (Ypos/1092)+60; //Ypos = -Ypos + 308; Ypos = Ypos + 132; Xpos = (Xpos/1092)+67; if(Ypos > 251) Ypos = 251; if(Ypos != Ypos_old || Xpos != Xpos_old) status = wxString("") << "X = " << Xpos << "\nY = " << Ypos; WriteFile(hCom, &Xpos, sizeof(Xpos), &bytesSent, over); WriteFile(hCom, &Ypos, sizeof(Ypos), &bytesSent, over); } Xpos_old = Xpos; Ypos_old = Ypos; if (joyData.dwButtons & JOY_BUTTON1) // bt_press = true; // WxButton2->SetLabel("Gamepad an"); if (joyData.dwButtons & JOY_BUTTON2) //bt_press = true; Sascha Tippmann, Christian Krieger

Quellcode WinGUI (Ausschnitte) Reader: void SerialReader::Create(HANDLE phCom,CarFrm *frm) { hCom = phCom; frame = frm; over = new OVERLAPPED; over->Offset = 0; over->OffsetHigh = 1; over->hEvent = CreateEvent (NULL, FALSE, FALSE, NULL); wxThread::Create(); } void *SerialReader::Entry() bool bTest = false; DWORD d_size; char r_data; double i = 0.; while(1) bTest = ReadFile(hCom, &r_data, 1, &d_size, over); while(!bTest) bTest = GetOverlappedResult(hCom,over, &d_size,false); i = (double)r_data; i=i*0.38*3.6; //Umdrehungen pro s * U in M * 3.6 = km/h frame->set_kmh(i); return 0; Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Bilder Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Bilder AVR - Programmer Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Video Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger Abschliessend Bluetooth ist kein guter Ersatz was die Reaktionszeit gegenüber Funk betrifft Bluetooth bietet eine bedeutend höhere Bandbreite als Funk und ist somit multifunktional einsetzbar Keine Störsignale die das Auto beeinflussen könnten Eher Drone statt Modellauto Sascha Tippmann, Christian Krieger

Sascha Tippmann, Christian Krieger ENDE Sascha Tippmann, Christian Krieger