PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neu in diesem Thema



memo2108
29.12.2013, 21:55
Hallo Community,

Ich möchte mich hier mal vorstellen und was ich mir zur Aufgabe gestellt habe.
Ich heiße Serkan und bin ein "Technikfreak" ich möchte gerne ein Roboter bauen.

Angefangen hat dieses so:
Ich hab ein Arduino Mega 2560 geschenkt bekommen da es der Schenker nicht benutzen konnte. So ich habe auch schon einiges damit ausprobiert.
Jetzt hab ich beim Speicher ausmisten ein altes mittlerweile defektes RC Auto gefunden welches ich zum Roboter umbauen will. Mir fehlen aber einige Programmierkenntnisse zum Programmieren des Arduinos.

Meine Vorstellung:
Das Auto soll über den PC und selbstständig fahren können.
Realisieren will ich dieses über ein Arduino und ein raspberry Pi.

Meine Hardware:
Macbook
Arduino Mega 2560
Arduino Motor shield
Raspberry Pi
Webcam
Altes RC Car
Elektronik Kleinteile
usw.

Das Auto verfügt über 2 bipolare Getriebemotoren (einen Heckantrieb und Lenkung )
Jetzt fehlt mir ein wenig der "rote Faden" wie ich mein Projekt starten soll und ob diesen überhaupt realisierbar ist.

Danke schonmal für die antworten.

Hardware-Entwickler
30.12.2013, 11:42
Roter Faden:
- du verbindest Arduino + Motorshield mit den Motoren und versuchst diese anzusteuern
Weißt du dabei mal nicht weiter, melde dich hier einfach nochmal.

Was meinst du mit über den PC?
Kabelgebunden, RS232, LAN, WLAN, ...

Was meinst du mit selbständig fahren?
Nach einem vordefinierten und programmierten Muster fahren oder eigenständig auf Hindernisse reagieren.
Für letzteres benötigst du Sensoren oder du verbindest RaspberryPi mit der Camera und versuchst dich mit OpenCV oder Ähnlichem.

memo2108
31.12.2013, 12:12
Hallo,

über den Computer meine ich eine Software oder eine HTML Seite auf dem raspberry in der ich Steuerknöpfe habe.
Selbständig meine ich über ein vorgegebenes muster und über eine Kamera.

Probleme hab ich nur bei der Programmierung des arduino

Hardware-Entwickler
01.01.2014, 06:38
Probleme hab ich nur bei der Programmierung des arduino

Gut! Denn das ist wohl das geringste Übel.

Hier kannst du mal lesen https://www.roboternetz.de/community/threads/63864-RP6-und-Raspberry-Pi

Ich würde den Raspberry Pi über UART mit dem Arduino verbinden
Dann musst du die UART-Schnittstelle initialisieren und auf Befehle vom RaspPi reagieren mit Motorsteuerung (PWM).

memo2108
08.01.2014, 20:30
Hallo,

mal ein kleines Update meines Projektes.

Ich hab mir den IC L293d (Motortreiber) gekauft, den hab ich über die Ausgänge meines Arduino beschalten. Als Eingänge hab ich 4 Taster für vorwärts, rückwärts, links und rechts beschalten.
Ich möchte das ganze dazu Visualisieren d.h. über eine Weboberfläche mit Cusortasten schalten. Dazu fehlen mir leider noch die Ideen und Kenntnisse dies Umzusetzen.

Zukunftspläne Kamera an das Raspberry Pi anschließen und über Kamera selbständig über vorgegebenes Schema fahren zu lassen. Wie muss ich mir noch Gedanken darüber machen.

Im Anhang setzt ich mal eine Skizze des handgezeichneten Schaltplans und den provisorischen Arduino Code.
Um Verbesserungsvorschläge und Kritik bin ich sehr dankbar




int enable1 = 2; //Enable 1 (IC L293en)
int enable2 = 3; //Enable 2 (IC L293en)
int Motor11 = 4; //Input 1 (IC L293en)
int Motor12 = 5; //Input 2 (IC L293en)
int Motor21 = 6; //Input 3 (IC L293en)
int Motor22 = 7; //Input 4 (IC L293en)
int button1 = 53; //Button 1 (Pushbutton1)
int button2 = 51; //Button 2 (Pushbutton2)
int button3 = 49; //Button 3 (Pushbutton3)
int button4 = 47; //Button 4 (Pushbutton4)

//*variables*will*change:
int buttonState1 = 0; // variable for reading the pushbutton status
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;

void setup() {

**pinMode(enable1, OUTPUT);
**pinMode(enable2, OUTPUT);
**pinMode(Motor11, OUTPUT);
**pinMode(Motor12, OUTPUT);
**pinMode(Motor21, OUTPUT);
**pinMode(Motor22, OUTPUT);
**pinMode(button1, INPUT);
**pinMode(button2, INPUT);
**pinMode(button3, INPUT);
**pinMode(button4, INPUT);
**Serial.begin(9600);
*
}


void loop() {
***// read the state of the pushbutton value:
**buttonState1*=*digitalRead(button1);
**buttonState2*=*digitalRead(button2);
**buttonState3*=*digitalRead(button3);
**buttonState4*=*digitalRead(button4);
**
**//Enable1
**digitalWrite(enable1, HIGH);
***//Enable2
**digitalWrite(enable2, HIGH);
**
**//Motoransteuerung
**//Motor11
***if (buttonState1 == HIGH) {
****// turn Motor11 on:
****digitalWrite(Motor11, HIGH);
**}*
**else {
****// turn Motor11 off:
****digitalWrite(Motor11, LOW);
**}
**
//Motor12
***if (buttonState2 == HIGH) {
****// turn Motor11 on:
****digitalWrite(Motor12, HIGH);
**}*
**else {
****// turn Motor12 off:
****digitalWrite(Motor12, LOW);
**}
**
//Motor21
***if (buttonState3 == HIGH) {
****// turn Motor21 on:
****digitalWrite(Motor21, HIGH);
**}*
**else {
****// turn Motor21 off:
****digitalWrite(Motor21, LOW);
**}**
**
//Motor22
***if (buttonState4 == HIGH) {
****// turn Motor22 on:
****digitalWrite(Motor22, HIGH);
**}*
**else {
****// turn Motor22 off:
****digitalWrite(Motor22, LOW);
**}**
**
**Serial.println(buttonState1);
**Serial.println(buttonState2);
**Serial.println(buttonState3);
**Serial.println(buttonState4);
**
**
**
**
**
**
}



27108