Liebe Mitleserinnen, Mitleser, Foristinnen und Foristen,
wer sich von Euch in letzter Zeit mit dem Gedanken getragen hat, Mitglied unseres wunderbaren IGDH-Forums zu werden und die vorher an dieser Stelle beschriebene Prozedur dafür auf sich genommen hat, musste oftmals enttäuscht feststellen, dass von unserer Seite keine angemessene Reaktion erfolgte.
Dafür entschuldige ich mich im Namen des Vereins!
Es gibt massive technische Probleme mit der veralteten und mittlerweile sehr wackeligen Foren-Software und die Freischaltung neuer User ist deshalb momentan nicht mit angemessenem administrativem Aufwand möglich.
Wir arbeiten mit Hochdruck daran, das Forum neu aufzusetzen und es sieht alles sehr vielversprechend aus.
Sobald es dies bezüglich Neuigkeiten, respektive einen Zeitplan gibt, lasse ich es Euch hier wissen.
Das wird auch für alle hier schon registrierten User wichtig sein, weil wir dann mit Euch den Umzug auf das neue Forum abstimmen werden.
Wir freuen uns sehr, wenn sich die geneigten Mitleserinnen und Mitleser, die sich bisher vergeblich um eine Freischaltung bemüht haben, nach der Neuaufsetzung abermals ein Herz fassen wollen und wir sie dann im neuen Forum willkommen heißen können.
Herzliche Grüße von Eurem ersten Vorsitzenden der IGDH
da ichs immer vergesse zu erwähnen: Wenn du die Kerneloptions ändern möchtest: Im Verzeichnis /boot/syslinux findet sich eine Datei xy.cfg. Die ist der menu.lst in Grub sehr ähnlich. Dort kannst du das Booten anpassen.
Zur Anleitung: Ja, ich meinte schon das Verteilen des USB-Sticks, und dann einer Beschreibung wo was wie passiert, damit man auch nachvollziehen kann was das Ding macht, und wie man es ggf. für sich modifiziert. Aber wahrscheinlich wird dieser Thread mangels interesse sterben, so wie der von fujak 2006.
2014 kommt dann einer und fragt wie das doch gleich ging
Ich such noch ne Quelle für ein Pixelbasiertes LCD, das aber nicht höher als 60mm sein darf, und das auch Farben kann...
ich muss halt eingestehen, dass mir die Beständigkeit fehlt, mich durch die Zahllosen Fallstricke und Stolpersteine durchzuquälen. Ich bezweifle, dass ich ohne Alc's Live-CD heute über Linux falten würde.
Das weitere Rumspielen ist dann was Anderes, ich habs ja schließlich nicht so gelassen
Ich hab jetzt nen Faltrechner, der sowohl über Aqualung als auch über SPDIF-IN 8 Kanäle falten kann, und mir dem ich 4 Filterbänke umschalten kann. Und jetzt bin ich wieder bei den Boxen
Das verschlankte Linux kommt für mich aber sicher noch auf den Schirm, da ich irgendwann auch die Blackbox zumindest als Option haben möchte.
Momentan ein Traum: Die Lautstärkeregelung im Alsamixer per Drehknopf. Oldschool mit Kabel dran, nix Fernbedienung.
Das verschlankte Linux kommt für mich aber sicher noch auf den Schirm, da ich irgendwann auch die Blackbox zumindest als Option haben möchte.
Momentan ein Traum: Die Lautstärkeregelung im Alsamixer per Drehknopf. Oldschool mit Kabel dran, nix Fernbedienung.
Viele Grüße,
Julian
das mit dem Drehknop MUSS ich auch haben. Ich möchte halt gerne das VV-Feeling haben, allerdings nicht mit Poti, sondern Drehencoder.
Wenn deine config noch mit alsa läuft, sollte sie unter tinycore sofort funktionieren. Natürlich ohne lcd und FB.
@Elmar: Ich habe gerade mal den vncserver installiert, damit ich von der extra Maus und Tastatur wegkomme. Funktioniert einwandfrei. Jetzt kann ich vom htpc weiterarbeiten.
Reift Ihr das hier mal schön aus, ich hatte schon Bekanntschaft mit Linux und muß sagen das ich mich echt schwer getan habe.
Nach einem halben Jahr bin ich Rückfällig geworden und wieder bei MS gelandet.
Als Hauptrechner ist Linux mir da noch immer zu aufwändig mit zu vielen Ecken und Kanten, viele wichtige Programme sind nur unter MS verfügbar.
Da sich auch Linux immer weiter entwickelt wird sicher nochmal ein Versuch von mir kommen, aber erst wenn Ihr das im Griff habt
Ich bin schon am ummodeln von nem kleinen PC, der aber noch zu groß ist.
wie schwierig wird das denn sein, so ein Script (lauter/leiser) mit dem Drehencoder zu steuern?
Das sind bei mir zwei Welten - wer weiß, wie man sie verknüpft?
Fernbedienung ist für mich strenggenommen vollkomen irellevant - aber es wäre absolut vom Feinsten wenn ich ein paar Befehle auf mechanische Schalter legen könnte.
wie schwierig wird das denn sein, so ein Script (lauter/leiser) mit dem Drehencoder zu steuern?
Viele Grüße,
Julian
Nicht so schwierig. Wie immer ist die Frage wie man es machen möchte. Man kann ein simples C-Programm schreiben, das nach dem Aufruf die Pins am Port zurückgibt, oder eben Pins setzt.
Diese Pins kann man dann in einem Script weiterverarbeiten.
Das wäre der universellste Weg, weil die meisten wahrscheinlich noch ein script anpassen können, aber bei C das Handtuch werfen.
Das ganze im Script in einer Do-While-Schleife aufrufen, die gewünschten Pins abfragen und dann entweder direkt die Befehle aufrufen, oder weitere Scripts aufrufen.
Das dürfte der einfachste Weg sein. Ich weiss nur nich wie sich das dann mit lcdproc verhält, denn das greift ja auch auf den pp zu. Für dich wäre das egal, weil wegen kein Display, für mich aber nicht
Bei ner Blackbox die dann auch mal den eq und configumschaltung usw. können soll, seh ich ein Display allerdings schon als sinnvoll an.
So mein erstes Remaster ist ca. 26 MB groß.
Funktionieren tut es noch nicht ganz "out of the box", ich muß da wohl noch ein paar "Setup-scripte" für unsere Windows Homis machen.
So tierisch groß ist das nur geworden, weil ich auf Geany als Editor nicht verzichten will.
Ab Mittwoch bin ich erstmal ne Woche weg; ob ichs bis dahin noch schaffe weiß ich noch nicht.
Ich bin aber jedenfalls dran ne Version zu stricken.
Die Startoptionen stehen bei mir unter /mnt/sdb1/boot/extlinux/extlinux.conf. (sdb1 ist der Stick)
Da hab ich "kmap=qwertz/de-latin1-nodeadkeys" eingetragen und hab jetzt die Tastatur mit Umlauten.
.
Die Startoptionen stehen bei mir unter /mnt/sdb1/boot/extlinux/extlinux.conf. (sdb1 ist der Stick)
Da hab ich "kmap=qwertz/de-latin1-nodeadkeys" eingetragen und hab jetzt die Tastatur mit Umlauten.
Gruß
Elmar
Um es noch universeller zu machen kannst du mit Labeln arbeiten, dann ist das Device egal.
Du nennst den Stick z.B. "Tiny".
Dann heisst es nicht mehr z.B.
tce=sdb1 home=sdb1 ....
sondern....
tce=LABEL=Tiny home=LABEL= Tiny.
Hat den Vorteil das es auch läuft wenn der Stick einen anderen Namen bekommt, weils z.B. noch ein Stick steckt, oder weil noch Festplatten dran hängen....
Sonst fangen die Leute wieder an zu suchen.
Torsten
besorgen. Es wird für die Eingänge nur das Programm "Pin" im Ordner "bin" benötigt. Das script muss wahrscheinlich auf Ubuntu mit "sudo" ausgeführt werden. Einfach testen.
Es ist so geschrieben das die Flanke abgefragt wird, d.h. 1 mal drücken und halten ergibt nur einmal einen Befehlsausführung. Kann man aber leicht ändern. Was besser ist hängt halt davon ab was am PP dran hängt.
Am PP kann man ohne weitere Beschaltung 5 Taster oder Schalter anschliessen. Geschaltet wird gegen "GND", d.h. du ziehst eine Leitung vom Pin 10,11,12,13 oder 15 zum Taster, und die Leitung die zurückkommt geht dann auf GND. Normalerweise sind die PP mit Pull-Up Widerständen versehen, so das man keine extra einbauen muss. Der einfache Kontakt sollte reichen.
Für einen Drehencoder muss es noch leicht angepasst werden, aber Filterwechsel ist damit möglich.
Ich hab versucht es ordentlich zu kommentieren. Frag wenn was unklar ist.
#Hier beginnt die Schleife für die Abfrage
while (true)
do
#HIer den Pfad zum Programm "Pin" eintragen
#Die 0x379 ist der Standart LPT1 und sollte so stimmen.
Eingangsbyte=$(/opt/pin 0x379)
PinLaktiv=$[Eingangsbyte]
#Ergenis invertieren, da die Eingänge normalerweise als Low-aktiv beschaltet werden,
#d.h. der Schalter schaltet wenn er geschlossen ist denn Pin nach GND.
PinHaktiv=$((~$PinLaktiv))
#Pin 10 abfragen
if ((PinHaktiv & Pin10)); then
if !($MFlankePin10);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin10aktiv
MFlankePin10=true
fi
else
MFlankePin10=false
fi
#Pin 11 abfragen
if ((PinHaktiv & Pin11)); then
if !($MFlankePin11);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin11aktiv
MFlankePin11=true
fi
else
MFlankePin11=false
fi
#Pin 12 abfragen
if ((PinHaktiv & Pin12)); then
if !($MFlankePin12);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin12aktiv
MFlankePin12=true
fi
else
MFlankePin12=false
fi
#Pin 13 abfragen
if ((PinHaktiv & Pin13)); then
if !($MFlankePin13);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin13aktiv
MFlankePin13=true
fi
else
MFlankePin13=false
fi
#Pin 15 abfragen
if ((PinHaktiv & Pin15)); then
if !($MFlankePin15);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin15aktiv
MFlankePin15=true
fi
else
MFlankePin15=false
fi
Vielen Dank dir. Sind die Befehle, die ich da einfügen kann, normale Konsolenkommandos, wie "brutefir" oÄ?
Der Drehencoder wird meine erste Baustelle; wenn ich Filter wechseln will hab ich momentan kein Problem damit mit der Tastatur zu arbeiten - oder mit einer Fernbedienung.
Der Drehencoder ist aber für Hifi-Feeling unabdingbar
Auch wenn ich am Rechner abhöre, immer klicken um mal ein bisschen lauter zu machen... nee...
#Pin 10 abfragen
if ((PinHaktiv & Pin10)); then
#Befehle die nach der ersten If-Abfrage stehen werden solange ausgeführt wie man die Taste drückt...
amixer -c0 sset Master,0 1dB+
if !($MFlankePin10);then
#Befehle die hier stehen werden einmalig beim drücken ausgeführt
amixer -c0 sset Master,0 on
#Echo mit "#" auskommentieren, damit keine Ausgabe auf den Bildschirm mehr erfolgt
#echo $Pin10aktiv
MFlankePin10=true
[...]
Das gilt für alle 5 Tasten in den entsprechenden Abschnitten.
Für einen Encoder muss man min. die Flange des einen Signals auswerten, und dann gucken ob das 2te Signal High oder Low ist, denn damit enscheidet man ob der Encoder links oder rechts rum gedreht wurde.
Kann ich noch reinmache, aber teste es erstmal..
Das ganze hat aber auch einen Harken: Da das ganze im polling-Mode läuft, d.h. die Schnittstelle wird immer und immer wieder abgefragt, kostet das Script, auch wenn es eigentlich nichts tun, einiges an Prozessorleistung. Das lässt sich nur umgehen wenn ich das Pin-Programm ändere.
In der Bash sind afaik nur sleep-Kommandos von min 1 Sek. möglich. Das reduziert die Prozessorlast, aber ist dann für Encoder unbrauchbar. Für reine Tasten würde es gehen.
Dazu fügst du nach dem
"do"
ein
"sleep 1"
ein
Teste einfach mal ob du mit der Prozessorlast leben kannst. Das mit dem Encoder mach ich im laufe des Tages rein. Vermutlich hast du eh noch keinen...
Mit Drehknopf aus Alu oder so gibts sicher auch, da kenn ich aber keine Bezugsquelle.
Man sollte auch schon einen mit Mitteltaste nehmen. Kann man für "Mute" oder halt für eine Menusteuerung nehmen.
ich habe das Programm "pin" mal so angepasst das man ein Delay in uS angeben kann. So sollte die Prozessorlast sinken. Man muss halt dann einen Kompromiss finden bei dem der Encoder auch schnelle Drehungen noch mitbekommt, das aber nicht zuviel Last verursacht.
Update...
Elmar: Wenn du das testest achte bitte darauf das du die Bash-Shell istalliert hast bei tinycore. Bei Ubuntu sollte die schon aktiv sein.
Die beiden Encoderpins müssen an Pin 11 u. 12 angeschlossen werden. Leider ist das Problem mit der Prozessorlast nicht weg. Wenn man die Delay-Zeit zu hoch setzt, bekommt das Script schnelle Drehungen nicht mehr mit. Bei mir steigt die Prozessorlast um ca. 20% an. Viel zu viel für eine Aufgabe die ein uC "mal eben" mitmacht.
Mir fällt aber nichts ein wie man das "mal eben" beheben kann. Ein reines C-Programm hätte da sicher keine Probleme mit, kann aber nicht von jedem "mal eben" angepasst werden.
Ich versuch mal die Pin_delay Datei anzuhängen...
#!/bin/bash
#Zuordnung der Bits im Eingangsbyte
Pin10=$((1<<6))
Pin11=$((1<<7))
Pin12=$((1<<5))
Pin13=$((1<<4))
Pin15=$((1<<3))
#Hier beginnt die Schleife für die Abfrage
while (true)
do
while ((PinLaktiv == PinLaktivalt))
do
#HIer den Pfad zum Programm "Pin" eintragen
#Die 0x379 ist der Standart LPT1 und sollte so stimmen. Die 1000 gibt die Verzögerung
#in mikrosekunden an. Höhere Werte sorgen für weniger Prozessorbelastung, aber dann funktioniert
#ein Encoder nicht mehr zuverlässig. Für Taten reicht aber ein Wert von 50000-100000 aus.
Eingangsbyte=$(/opt/pin_delayed 0x379 1000)
PinLaktiv=$[Eingangsbyte]
done
#Hier gehts erst weiter wenn sich bei den Eingängen was geändert hat.
PinLaktivalt=$PinLaktiv
#Ergenis invertieren, da die Eingänge normalerweise als Low-aktiv beschaltet werden,
#d.h. der Schalter schaltet wenn er geschlossen ist denn Pin nach GND.
PinHaktiv=$((~$PinLaktiv))
#Pin 10 abfragen
if ((PinHaktiv & Pin10)); then
#Hier den Befehl einsetzen der solange ausgeführt wird wie die Taste gedrückt wird.
if !($MFlankePin10);then
#Hier den Befehl einsetzen der einmal bei einer Flanke ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin10aktiv
MFlankePin10=true
fi
else
MFlankePin10=false
fi
#Pin 11 abfragen
if ((PinHaktiv & Pin11)); then
#Hier den Befehl einsetzen der solange ausgeführt wird wie die Taste gedrückt wird.
if !($MFlankePin11);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
#Einfache Encoderauswertung.
#Wenn eine steigende Flanke an Pin 11 erkannt wird, und Pin 12 ist auch "An" dann wurde in die eine Richtung
#gedreht
if ((PinHaktiv & Pin12)) ;then
amixer -c0 sset Master,0 1dB- >>/dev/null
#Wenn Pin 12 nicht "An" ist, dann wurde in die andere Richtung gedreht.
else
amixer -c0 sset Master,0 1dB+ >>/dev/null
fi
echo $Pin11aktiv
MFlankePin11=true
fi
else
MFlankePin11=false
fi
#Pin 12 abfragen
if ((PinHaktiv & Pin12)); then
#Hier den Befehl einsetzen der solange ausgeführt wird wie die Taste gedrückt wird.
if !($MFlankePin12);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin12aktiv
MFlankePin12=true
fi
else
MFlankePin12=false
fi
#Pin 13 abfragen
if ((PinHaktiv & Pin13)); then
#Hier den Befehl einsetzen der solange ausgeführt wird wie die Taste gedrückt wird.
if !($MFlankePin13);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin13aktiv
MFlankePin13=true
fi
else
MFlankePin13=false
fi
#Pin 15 abfragen
if ((PinHaktiv & Pin15)); then
#Hier den Befehl einsetzen der solange ausgeführt wird wie die Taste gedrückt wird.
if !($MFlankePin15);then
#Hier den Befehl einsetzen der ausgeführt werden soll
#Das "echo $PinXXaktiv kann zum Funktionstest benutzt werden.
echo $Pin15aktiv
MFlankePin15=true
fi
else
MFlankePin15=false
fi
done
Edit: Bei beiden Dateien kann das .txt am Ende umbenannt werden...
wie schon so oft bist Du wieder etwas zu schnell für mich.
Die letzten 45 Jahre meines Lebens bin ich sehr gut ohne Drehimpulsencoder klar gekommen.
Wenn ich mir die Dinger angucke sehe ich da 5 Pins. Die 2 einzelnen sind vermutlich der Taster, der in dem Script nicht belegt ist.
Sind die beiden äußeren Pins der Dreiergruppe die, die an Pin 11 und 12 angeschlossen werden müssen und der Mittlere geht auf Masse?
Ist das so richtig?
Kann ich irgendwelche von den Dingern die Jackman empfohlen hat nehmen?
Weil ich würd ca. 4 Stück benötigen, wenn meine Jungs sehen, dass ich ein Lautstärkeregler am PC hab wollen die das auch, also meine beiden PCs und die von den Jungs.....dann Versandkosten bei Reichelt