Hallo __deets__,
Ich glaub ich war gestern ein wenig verpeilt vor lauter Code, mit Python habe ich biser nur sehr wenig gemacht. Ich habe heute nochmal einen neuen Anlauf gewagt und nochmal alles komplett Bereinigt und getestet, ich habe mir auch nochmal alle deine Ratschläge durchgelesen. Rx/Tx haben in jedem Script einwandfrei Funktioniert mit einer Drahtbrücke. Nur die Verbindung zum Controller scheint nicht zu klappen. :s
[font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Ich habe heute Scripte in PHP, Python und C++ geschrieben und getestet. PHP wäre mein Favorit, da das ganze Später noch hinter einem Webserver läuft.[/font]
[font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Leider wieder alles ohne erfolg, aber evtl. habe ich einfach nicht den Richtigen Controller =( .[/font]
[font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Auf dem Controller sind 3 Pins pro Kanal, ich hab aber nur 2 Pin Motoren, angeschlossen an PWM und GND, ich glaube aber ich muss mir doch ne andere Lösung einfallen lassen. =([/font]
[font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Das erste Programm was ich heute getestet habe ist ein C++ Script:[/font]
#include <wiringPi.h>
#include <wiringSerial.h>
int main (void)
{
int mySerial;
void setup()
{
mySerial = serialOpen("/dev/ttyAMA0", 9600);
delay(100);
}
unsigned int i;
void loop()
{
//command : S + PWM + Duty_H + Duty_L + E
for(i=100;i<450;i++)
{
serialPuts(mySerial, "S");
serialPutchar(mySerial, 1);
serialPutchar(mySerial, i/0xFF);
serialPutchar(mySerial, i%0xFF);
serialPuts(mySerial, "E");
delay(5);
}
for(i=450;i>100;i--)
{
serialPuts(mySerial, "S");
serialPutchar(mySerial, 1);
serialPutchar(mySerial, i/0xFF);
serialPutchar(mySerial, i%0xFF);
serialPuts(mySerial, "E");
delay(5);
}
}
serialClose(mySerial);
}
Display More
[font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]Dieses habe ich möglichst ähnlich wie das Beispielscript gehalten, einfach für wiringpi umgeschrieben. Kompiliert, aber nix tut sich.[/font]
[font="Source Sans Pro, Tahoma, Helvetica Neue, Arial, sans-serif"]2. Script war dann das Python Script, dieses habe ich so verwendet:[/font]
import serial
import time
import struct
ser = serial.Serial("/dev/ttyAMA0", baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=3.0, xonxoff=False, rtscts=False, dsrdtr=False)
print ser
kanal = 0x01
pwm = 32768/0xFF
print 'Starte motor'
print "S{}E".format(struct.pack(">bH", kanal, pwm))
ser.close()
print 'ende'
Display More
Und zuletzt das PHP-Testscript, aber auch dies führte nicht zum gewünschten ergebnis:
[code=php]<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include "php_serial.class.php";
$serial = new phpSerial;
$serial->deviceSet("/dev/ttyAMA0");
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->deviceOpen();
$serial->sendMessage('S');
$serial->sendMessage(pack("C",1));
$serial->sendMessage(pack("h",'32768/0xFF'));
$serial->sendMessage('E');
$serial->deviceClose();
echo "I've sended a message! \n\r";
?>[/php]
Ich weiss echt nicht mehr was ich noch versuchen kann. Aber es wird wohl darauf auslaufen das ich einen andern Controller für meine 4 Motoren brauche.
Liebe grüsse
kintaro