Beiträge von Sebastian
-
-
Vielen Dank für die nützlichen Tipps und Links. Habe alles mal überflogen und weiß nun wie ich meinen Abend morgen verbringen werde. Und erstmal schauen was shiftOut tut und wie sich dies in c bzw. c++ übersetzen lässt. Wenn ich nach einigen Tagen keinen Erfolg habe werde ich euch nochmal belästigen
Mit freundlichen Grüßen
Sebastian -
Guten Tag,
ich habe hier ein Bauteil was mich seit Tagen verzweifeln lässt. Dabei handelt es sich um diese Segmentanzeige
http://www.ebay.de/itm/4-Bits-0-3…l4AAOSw7FRWZtkV
Allerdings sind meine Pins etwas anders benannt.
Also was ich weiß ist das es sich um zwei Schieberegister handelt. Genauer gesagt um den TM74HC595.
Die Pins sind wie folgt benannt: VCC, SCKL, RCKL, DIO, GNDMein Problem ist nun das ich nach Tagen immer noch nicht weiß wie ich dieses Bauteil ansteuern soll, welche Signale es erwartet. Nach den Bezeichnungen SCKL, RCKL und DIO habe ich gegoogelt, habe mal hier bei einem Register einen Namen gefunden, mal da bei SPI einen anderen aber nie alle eindeutig. Je nachdem was man ließt wechseln die Begriffe andauernd. Ich bin mir nun nichtmals sicher ob es wie ein Register angesprochen werden will oder SPI darstellen soll. Und schon garnicht ob die PINS active-low oder active-high sind.
Deswegen bitte ich jeden der schonmal damit gearbeitet hat mir einen Hinweis zu geben. Ich verlange kein fertiges Programm, nur das Verständnis wie ich dieses Bauteil zu betreiben habe.
Ich bin des öfteren auch auf Programme für dieses Display gestoßen, allerdings in AVR geschrieben. Die kann ich leider nicht lesenMit freundlichen Grüßen
Sebastian -
Danke schonmal. Also der IC scheint der gleiche zu sein nur ist der bei mir zweimal vorhanden, vielleicht finde ich ja noch wieso. Sagt dir das was mit den zwei verschiedenen SCLK und RCLK was? Ansonsten werd ich das Wochenende mal gucken ob ich mit deinem C-Programm was anfangen kann
Lieben Gruß
Sebastian -
Hallo sd582.
Erstmal vielen Dank für deine Programme. Ich würde sie gerne testen und ausprobieren doch da scheitert es bei mir schon an der Verkabelung. Ich kann das verwendete Display leider nicht auf dem Bild erkennen. Ich habe dieses hier liegen, ist das vergleichbar?
http://www.ebay.de/itm/4-Bit-Digi…=item462f716f7c
Nun bin ich total verwirrt was die Verdrahtung angeht. Es handelt sich doch um ein I2C device oder? Warum wird das dann über GPIO 23,24 angesteuert? Ich habe vom dem Display die Pins SCLK RCLK und DIO (VCC und GND versteh ich noch ^^). Könnt ihr mir eben erklären was genau es damit auf sich hat und wie diese anzuschließen sind? Wenn ich nach SCLK und RCLK google lande ich wieder bei diesem Display.Vielen Dank
Sebastian -
Danke erstmal an alle die sich an dem Thema beteiligen. Wie anfangs beschrieben geht es garnicht um den Pi, der hat damit ausnahmsweise mal nichts zu tuen Es geht um EINEN normalen PC mit dem Betriebssystem Windows 7. Über diesen Streame ich halt Filme, Lade Dateien runter und habe Spieleclienten geöffnet. Ja ich weiß man könnte das ganze umgehen wenn man nicht alles gleichzeitig macht aber so ist es nunmal Wenn nun z.B. Origin ein Spiel von 30GB runterlädt, so beansprucht das Programm die gesamte Kapazität die als download zur Verfügung steht. So kann ich nichts weiteres mehr im Internet sinnvoll erledigen. Unter Steam ist es in der Tat möglich den Download zu begrenzen, max. 25MBit. Bei Origin habe ich dies noch nicht gefunden, weiter wäre ich aber auch gerne Flexibel über ein Programm den Download für die einzelnen Prozesse einzustellen.
Hoffe ich konnte so etwas mehr mein Problem erklären.
Lieben Gruß
Sebastian -
-
Hallo liebe Leute,
weiß nicht ob ich in der Rubrik richtig bin. Es geht mir um Windows 7 und hat nichts mit dem Pi zu tuen, aber bei dem geballten Wissen was hier vertreten ist kann mir sicher einer helfen.Mein Problem ist das gewisse Programme wie Steam, Origin oder ähnliches beim herunterladen von Inhalten meine gesamte Bandbreite ausnutzen (50 MBit) und das soweit das ich kaum Google oder gar einen Film streamen kann.
Deswegen würde ich gerne die maximale Downloadrate einstellen können, wisst ihr wie das möglich ist?
Lieben Gruß
Sebastian -
So einfach, ohje vielen Dank.
Wird heute Abend mal ausprobiert. Muss ja nicht unnötig kompliziert mit diesem Shellscript werden wenn ich es garnicht brauche.Lieben Gruß
Sebastian -
Super vielen Dank für die ausführliche Beschreibung
framp: Das schach muss nur einmal ausgeführt werden. Sinn und zweck der Sache ist es ein C-Programm beim bootvorgang zu starten in einem Runlevel wo es nicht möglich oder nötig ist sich als User einzuloggen. Der Pi bootet sobald er mit Spannung versorgt wird und öffnet das dieses C-Programm. In diesem wird ein Server Socket geöffnet und von einem Notebook werden Befehle empfangen und abgearbeitet. Dieses Programm dient dazu einen Schachroboter zu steuern. Vom Notebook gibt es auch eine übergabe zum Beenden woraufhin das C-Programm den Serversocket schließt und den Pi herunterfährt.Ist dieses Script in diesem Umfang nötig für mein Vorhaben oder reicht da schon weniger? Denn beendet und heruntergefahren wird ja nicht über das Script sonder vom C-Programm aus.
Lieben Gruß
Sebastian -
Hallo liebe Leute.
Ich bräuchte mal eine Hilfe bei dem unteren Quellcode. Ich habe ihn mir von zwei Internetseiten zusammenkopiert und den Pfad und den Text angepasst. Es wurde von mir in den Autostart aufgenommen und startet beim booten ein C-Programm. Funktioniert auch alles, allerdings verstehe ich nicht so ganz wie dieses Script funtioniert und muss es evt. erklären. Lektüre habe ich mir zur genüge bestellt aber das dauert wohl noch ein paar Tage bis die Bücher da sind. Vielleich findet sich ja jemand der mir kurz erklären will was hier passiert.Die ersten beiden Zeilen, dient dort die # wie in anderen Programmen zum auskommentieren?
touch /var/lock/schachprogramm schreibt nur das loggen mit um später nachzuvollziehen wann und von wem es ausgeführt wurde?
$1 wird ein Argument sein welches erwartet wird, wie sieht dieses aus und woher kommt es?#!/bin/sh
#/etc/init.d/schachprogrammtouch /var/lock/schachprogramm
case "$1" in
start)
echo "Starte Schach..."
/home/pi/Desktop/projektschach/schach //pfad der zu öffnenden Datei
;;
stop)
echo "Beende Schach..."
killall schach
;;
*)
echo "Usage:/etc/init.d/schachprogramm{start/stop}"
exit 1
;;
esac
exit 0Lieben Gruß
Sebastian -
[font="Tahoma, Verdana, Arial, sans-serif"]Der Buffer in "seinem" Programm hat eine Kapazitaet von 1024 chars.[/font]
Ja das hatten wir so fertig kopiert Benötigen momentan aber nur 13 Stellen des Arrays und haben es auf 2o begrenzt. Haben auch eine Lösung gefunden. Klappt diese "unschöne Lösung" werde ich sie Posten
damit ihr mir sagen könnt warum man das nicht so macht. Programmieren kann man ja viel aber ein gewisser
Standard sollte ja eingehalten werden.Lieben Gruß
SebastianEdit:
So haben wir das nun gelöst
z.B.: i
ntx1 wird erst recvBuff[0] beschrieben nachdem die 48 abgezogen wurde und anschließend mit 100 multipliziert
ntx1 wird erst recvBuff[1] beschrieben nachdem die 48 abgezogen wurde und anschließend mit 10 multipliziert
ntx1 wird erst recvBuff[2] beschrieben nachdem die 48 abgezogen wurde und anschließend mit 1 multipliziertSo kommen wir auf unser 3 Stelliges int. für intx1. Mit 100 bzw. 10 wird wegen der Stellenwertigkeit multipliziert
Ist das so annehmbar?
-
Hallo liebe Leute,
wir versuchen uns gerade an der Übergabe von Variablen. Dazu haben wir uns mit der Hilfe von g**gle einen Server und Client erstellt. Server läuft auf dem Pi und ist in C, Client auf Win7 und ist in C#.
Erstaunlicherweise hats sogar nach einigen Versuchen funktioniert und wir können darüber "chatten".
Was wir brauchen ist aber die Übergabe von Ints oder einem Int Array.
Haben schon etliches versucht auf der Serverseite das Char zu Int zu wandeln. Klappt nicht mit unseren Kenntnissen.
Haben dann versucht den Typ des Streams anzupassen. Klappt nicht mit unseren KenntnissenFalls sich jemand findet der mal drüberlesen kann und weiß wie das geht oder eine Idee hat wären wir sehr dankbar.
Lieben Gruß
Sebastian"Server in C"
C
Alles anzeigen#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <sys/types.h> int main(void) { int serv_sock = 0,cli_sock = 0,n=0, c=0; //serv enthält Adress Informationen vom Server struct sockaddr_in serv; //client bekommt die Adress Infos vom Client bei eingehender Verbindung struct sockaddr_in client; int clientsize; char sendBuff[1024]; char recvBuff[1024]; //Socket mit gewünschten Parametern bilden(Domain, Type, protocol) serv_sock = socket(AF_INET, SOCK_STREAM, 0); if (serv_sock == -1) perror("socket()"); puts("Scoket Abfrage erfolgreich\n"); //Adress Typ (hier:zu anderer Maschine)= socket Parameter serv.sin_family = AF_INET; //Ziel IP(Typ:String --> inet_addr() konvertiert zu Big Endian) //INADDR_ANY --> horcht auf alle IP Adressen serv.sin_addr.s_addr = htonl(INADDR_ANY); //Port, über den Verbunden werden soll serv.sin_port = htons(10000); //Server starten und Socket an lokale Adresse binden if(bind(serv_sock, (struct sockaddr*)&serv,sizeof(serv))<0) perror("bind()"); puts("Server gestartet"); //Listen unterbricht Programmausführung bis Client kontaktiert //5 = Anzahl möglicher Verbindungen if(listen(serv_sock, 5) == -1) perror("listen()"); puts("Warte auf eingehende Verbindung...\n"); clientsize = sizeof(struct sockaddr_in); //accept holt eine Verbindung aus der Warteschleife cli_sock = accept(serv_sock, (struct sockaddr*)&client ,(socklen_t*)&clientsize); if (cli_sock < 0) { perror("accept()"); return 1; } printf("Verbindung hergestellt zu:\nHost:%s\nPort:%d \n", inet_ntoa(client.sin_addr), ntohs(client.sin_port)); memset(sendBuff,0,sizeof(sendBuff)); memset(recvBuff,0,sizeof(recvBuff)); while(recvBuff[n] != '\r' ) { n=recv(cli_sock,recvBuff,1024,0); recvBuff[n]='\r'; if(n == -1) perror("recv()"); //Zeit in Sekunden sleep(1); } printf("%s\n",recvBuff); printf("%d Zeichen empfangen\n",n); while(sendBuff[c] != '\r') { puts("Nachricht an Client: "); scanf("%s",&sendBuff[0]); c=send(cli_sock,sendBuff,strlen(sendBuff),0); sendBuff[c]='\r'; if(c == -1) perror("send()"); //Zeit in Sekunden sleep(1); } printf("%d Zeichen gesendet\n",c); close(cli_sock); close(serv_sock); return 0; }
"Client in C#"
C#
Alles anzeigenusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using System.Net.Sockets; namespace Client { public class Client { public static void Main() { try { string serverIP = "192.168.10.10"; int port = 10000,c; System.Net.IPAddress IP = System.Net.IPAddress.Parse(serverIP); IPEndPoint ipEp = new IPEndPoint(IP, port); TcpClient tcpclnt = new TcpClient(); tcpclnt.Connect(ipEp); if (tcpclnt.Connected) Console.WriteLine("Verbunden zu Server: {0}", serverIP); byte[] msgin = new byte[100]; string dataout; Console.WriteLine("Nachricht an Server: \n"); dataout = Console.ReadLine(); NetworkStream stream = tcpclnt.GetStream(); byte[] msgout = System.Text.Encoding.ASCII.GetBytes(dataout); stream.Write(msgout, 0, msgout.Length); do { c = stream.Read(msgin, 0, 100); for(int i = 0; i < c; i++) Console.Write(Convert.ToChar(msgin)); } while (msgin[c] == '\r'); tcpclnt.Close(); } catch (Exception e) { Console.WriteLine(e.StackTrace); } } } }
-
Habe auch zwei von denen in meinen Pi's am laufen. Bisher wunderbar, aber wenn ich die Kundenrezensionen zu dieser lese...
Scheint ja Probleme zu geben mit der Karte, also erstmal eine andere probieren.Lieben Gruß
Sebastian -
Vielen Dank, sehr schönes Tutorial. Gerade für Anfänger wie mich super. Wird gleich ausprobiert
Lieben Gruß
Sebastian -
Habe ich jemals was anderes behauptet??Ruhig Blut, das war eher an den Fragesteller gerichtet. Mit der Stiftleiste habe ich die nämlich gerade selbst zum ersten mal gesehen.
Lieben Gruß
Sebastian -
Ich habe jetzt 3 x die rev 2 hier liegen, da ist P6 bei allen mit offenen Lötaugen ohne Stiftleiste.
Lg
Sebastian -
http://erik-bartmann.de//download/PiMeUp_ModelB_Rev2.pdf
Seite 3
Dort werden die optischen Unterschiede gezeigt und ein Befehl zum auslesen in der Konsole auf Seite 4
Lg
Sebastian -
Eine großer Bildschirm mit Ranking für alle einsehbar wer am meisten getrunken hat, gerade interessant mit dem Promillerechner. Zufallsgenerator, verlierer muss eine Runde zahlen.
Ein sehr lustiges ProjektLieben Gruß
Sebastian -
Super vielen Dank :thumbs1:
Lieben Gruß
Sebastian