Beiträge von dank
-
-
Lese "man bash" Absatz "Invocation"
kann es sein das du das Bash Reference Manual meinst Abschnitt 6.1 Invoking Bash -
1. Die .bashrc befindet sich in /home/pi ( Rasperian)
2. in der bashrc steht (bzw habe ich hinzugefügt):
3. Ich Melde mich direkt über den Raspberry pi an (ohne SSH)
4. Mein verständnis der .bashrc : sobald das Terminal geöffnet wird werden alle befehle in der bashrc einmal ausgeführt.
Das Programm hat nur beim Autostart probleme weil es ganz am Anfang die bashrc nicht ausführt, aber ich bin mir nicht sicher warum und wie sich das lösen lässt.
-
Mein problem ist das bei einem autostart:
Code: Bsp Autostart[Desktop Entry] Type=Application Name=testGUI Comment=Ich teste das GUI Exec=lxterminal -e /usr/bin/python3 /Pfad/zu/testGUI.pyw Terminal=true
Nie die .bashrc abgefragt wird was für mich ein Problem darstellt, da sich in dieser Wichtige informationen befinden.
Sonst funktioniert alles -
Also problem ist unzureichend gelöst ... älteres Betriebssystem + keinerlei upgrade
-
Nein das war leider auch nicht der Fehler.
das ganze hat ja schonmal funktioniert und der Schwankende SW hatte keine auswirkungen auf die X und Y Achsenangabe.
-
Hmm willst du auf was bestimmtes hinaus? Meinst du unterschiede im programm Programm oder vll das GPIO-Pin-Layout?
-
-
-
Liebe Community also mein Problem ist das ich es nichtmehr hinkriege einen Jopystick über den ADV MCP3008 mit dem Raspberry Pi zu verbinden.
Obwohl ich dieses Projekt vor einiger Zeit schon realisiert hatte klappt es jetzt nichtmehr wo es zum einsatz kommen soll ich bin verzweifelt und habe keine lust mehr und mir reichts also ich würde gerne die Person belohnen die mir hilft weil ich will einfach nichtmehr ich bin einfach nur noch resigniert deshalb werter Helfer der das Problem löst wenn die Person aus Freiburg kommt wäre es für mich eine freude dir einen Glühwein auf dem Weihnachtsmarkt auszugeben wenn du nicht aus Freiburg bist gib mirdeine paypal daten und ich lass dir was zukommen.( Ich will hier niemand kaufen... ich weis das die meisten hier viel mehr verdienen, aber ich würde mich gerne einfach erkentlich zeigen bei den leuten die hier ihre Freizeit opfern um anderen zu helfen... am besten hör ich jetzt auf zu schreiben und schilder einfach das Problem).
Ich erhalte immer diese Fehlerhafte Ansicht:( der Raspberry Reagiert zwar auf die Werte die am MCP anliegen aber das dann meist irrational ...)
(Das Problem tritt auch bei einem neuen MCP3008 und neuen Raspberry Pi auf.)
https://www.shotroom.com/i/1404/dLh48
">
Versuch 1: (Raspberry Pi wurde komplett auf Werkseinstellungen zurückgesetzt)
Mit diesen Schritten hat alles noch vor ca 30 Tagen noch einwandfrei Funktioniert aber jetzt nichtmehr.
Ich halte mich strickt an die Anleitung von :https://tutorials-raspberrypi.de/joystick-am-ra…en-mit-mcp3008/
diese besagt:
Schritt1: Spidev installieren:
sudo apt-get update
sudo apt-get upgrade
sudo reboot
sudo apt-get install python-dev
sudo raspi-config -> SPI ENABLE
mkdir python-spi
cd python-spi
wget https://raw.github.com/doceme/py-spidev/master/setup.py
wget https://raw.github.com/doceme/py-spid…spidev_module.c
sudo python setup.py install (Readme erzeugt fehler muss ausgeklammert werden)
Schritt2: Testdatei herunterladen:
wget http://www.tutorials-raspberrypi.de/wp-content/upl…oystick_test.py
und starten
sudo python3 joystick_test.py
Versuch 2: (Raspberry Pi wurde komplett auf Werkseinstellungen zurückgesetzt)
Diesmal wurde die Anleitung der Seite : http://www.netzmafia.de/skripten/hardw…/RasPi_SPI.html verwendet
Schritt1: SPI Aktivieren über die Graphische ansicht des Raspberry Pi (Preferences-> Raspberry Pi Configuration)
Spidev installieren:
sudo su
apt-get install git-core python-dev
apt-get install python-pip
pip install spidev
Test:(Ob Spidev richtig installiert wurde)
sudo python
import spidev (Keine Fehlermeldung)
-
danke das ist die lösung ich hab sie einfach nur über pip installiert
-
Also ich bin im verständnis soweite das wenn ich bei idle 2 meinen Befehl: "from ... import .. " eingebe ist alles gut und normal aber bei idle3 Kommt der fehler "cannot import name ..." mein verständnis sagt mir, das es die libery die ich intalliert habe nur auf python2 installiert hat
... ich verstehe leider nicht wie ich das ändern kann.
Bestimmt gibt es dafür schon ihrgendwo einen riesen Theard aber ich hatte mit meinen Suchbegriffen keinen erfolg vll kann mich jemand verlinken
vielen dank
-
Ich Held hab einen ewig langen Text geschrieben und dann ausversehentlich alles gelöscht... kurz zusammengefasst Mein gedanke war wenn ich die beiden While True Schleifen der Beiden Programme zusammenfüge so arbeiten sich beide Programme ab und geben mir sowohl Encoder als auch Joystick Werte aus bis in alle Ewigkeit.
In Wirklichkeit aber hängt sich der Pi fasst auf und gibt verzögert nur die joystick werte.
Mein Code
Code
Alles anzeigen#!/usr/bin/env python import RPi.GPIO as GPIO import time import spidev import os RoAPin = 11 # pin11 RoBPin = 12 # pin12 RoSPin = 15 # pin13 globalCounter = 0 flag = 0 Last_RoB_Status = 0 Current_RoB_Status = 0 # Open SPI bus spi = spidev.SpiDev() spi.open(0,0) # Define sensor channels # (channels 3 to 7 unused) swt_channel = 0 vrx_channel = 1 vry_channel = 2 # Define delay between readings (s) delay = 0.25 #////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// def setup(): GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location GPIO.setup(RoAPin, GPIO.IN) # input mode GPIO.setup(RoBPin, GPIO.IN) GPIO.setup(RoSPin,GPIO.IN,pull_up_down=GPIO.PUD_UP) rotaryClear() def rotaryDeal(): global flag global Last_RoB_Status global Current_RoB_Status global globalCounter Last_RoB_Status = GPIO.input(RoBPin) while(not GPIO.input(RoAPin)): Current_RoB_Status = GPIO.input(RoBPin) flag = 1 if flag == 1: flag = 0 if (Last_RoB_Status == 0) and (Current_RoB_Status == 1): globalCounter = globalCounter + 1 print (globalCounter) if (Last_RoB_Status == 1) and (Current_RoB_Status == 0): globalCounter = globalCounter - 1 print(globalCounter) def rotaryClear(): GPIO.add_event_detect(RoSPin, GPIO.FALLING, callback=clear) # wait for falling def clear(ev=None): globalCounter = 0 print(globalCounter) time.sleep(1) def ReadChannel(channel): print (channel) adc = spi.xfer2([1,(8+channel)<<4,0]) data = ((adc[1]&3) << 8) + adc[2] #print (channel) return data def loop(): global globalCounter while True: rotaryDeal() #ab hier würden aus Zwei Wihile true Schleifen eine. vrx_pos = ReadChannel(vrx_channel) vry_pos = ReadChannel(vry_channel) swt_val = ReadChannel(swt_channel) print ("--------------------------------------------") print("X : {} Y : {} Taster : {}".format(vrx_pos,vry_pos,swt_val)) #time.sleep(1) # print 'globalCounter = %d' % globalCounter def destroy(): GPIO.cleanup() # Release resource if __name__ == '__main__': # Program start from here setup() try: loop() except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed. destroy()
-
Hi liebe Community,
Ich stelle mich grad ziemlich blöd an, ich versuche ein Programm zu erstellen das die Werte eines Analog Joysticks und die Werte eines Encoders ausliest.
Jeweils einzeln habe ich diese Programme schon und sie Funktionieren. Doch sobald ich diese zusammenfüge kriege ich bei mir immer das reinste chaos raus. Entweder es gibt mir immer nur die werte von einem Bauteil raus oder der Raspi hängt sich auf.
ich bin auch für Tipps dankbar.
Gruss Dani
Das Encoder Programm ist von: https://www.sunfounder.com/learn/Super_Ki…aspberrypi.html
Das Joystick Programm ist von: https://www.raspberrypi-spy.co.uk/2014/04/using-…ing-an-mcp3008/
Code vom Encoder:
Code
Alles anzeigen#!/usr/bin/env python import RPi.GPIO as GPIO import time RoAPin = 11 # pin11 RoBPin = 12 # pin12 RoSPin = 15 # pin13 globalCounter = 0 flag = 0 Last_RoB_Status = 0 Current_RoB_Status = 0 def setup(): GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location GPIO.setup(RoAPin, GPIO.IN) # input mode GPIO.setup(RoBPin, GPIO.IN) GPIO.setup(RoSPin,GPIO.IN,pull_up_down=GPIO.PUD_UP) rotaryClear() def rotaryDeal(): global flag global Last_RoB_Status global Current_RoB_Status global globalCounter Last_RoB_Status = GPIO.input(RoBPin) while(not GPIO.input(RoAPin)): Current_RoB_Status = GPIO.input(RoBPin) flag = 1 if flag == 1: flag = 0 if (Last_RoB_Status == 0) and (Current_RoB_Status == 1): globalCounter = globalCounter + 1 print (globalCounter) if (Last_RoB_Status == 1) and (Current_RoB_Status == 0): globalCounter = globalCounter - 1 print(globalCounter) def rotaryClear(): GPIO.add_event_detect(RoSPin, GPIO.FALLING, callback=clear) # wait for falling def clear(ev=None): globalCounter = 0 print(globalCounter) time.sleep(1) def loop(): global globalCounter while True: rotaryDeal() # print 'globalCounter = %d' % globalCounter def destroy(): GPIO.cleanup() # Release resource if __name__ == '__main__': # Program start from here setup() try: loop() except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed. destroy()
Code vom Joystick:
Python
Alles anzeigen#!/usr/bin/python #-------------------------------------- # This script reads data from a # MCP3008 ADC device using the SPI bus. # # Analogue joystick version! # #-------------------------------------- import spidev import time import os # Open SPI bus spi = spidev.SpiDev() spi.open(0,0) swt_channel = 0 vrx_channel = 1 vry_channel = 2 # Function to read SPI data from MCP3008 chip # Channel must be an integer 0-7 def ReadChannel(channel): print (channel) adc = spi.xfer2([1,(8+channel)<<4,0]) data = ((adc[1]&3) << 8) + adc[2] #print (channel) return data # Define sensor channels # (channels 3 to 7 unused) #swt_channel = 0 #vrx_channel = 1 #vry_channel = 2 # Define delay between readings (s) delay = 0.25 while True: # Read the joystick position data vrx_pos = ReadChannel(vrx_channel) vry_pos = ReadChannel(vry_channel) # Read switch state swt_val = ReadChannel(swt_channel) # Print out results print ("--------------------------------------------") print("X : {} Y : {} Taster : {}".format(vrx_pos,vry_pos,swt_val)) # Wait before repeating loop time.sleep(delay)