chao 11 ヶ月 前
コミット
3df6fbb82d
1 ファイル変更24 行追加15 行削除
  1. 24 15
      CocoPi.py

+ 24 - 15
CocoPi.py

@@ -449,12 +449,14 @@ class LED:
     def __init__(self, gpioId=69):
         self.gpioId=gpioId
         SUNXI_GPIO.setcfg(self.gpioId, SUNXI_GPIO.OUT)
+        SUNXI_GPIO.setcfg(259, SUNXI_GPIO.OUT)
     def out(self,value):
         if value==0 or value==1:
             self.value=1-value
         else:
             self.value=0
         SUNXI_GPIO.output(self.gpioId,self.value)
+        SUNXI_GPIO.output(259,self.value)
 
 ##################################
 #          6、QMI8658            #
@@ -1276,7 +1278,7 @@ class MCP23017(object):
         self.byteWrite(self.gppub,self.GPPU_B_V)
         self.byteWrite(self.gpioa,self.GPIO_A_V)
         self.byteWrite(self.gpiob,self.GPIO_B_V)
-        print("mcp23017 reset completed!")
+        # print("mcp23017 reset completed!")
         
     def byteWrite(self, addr, val):
         try:
@@ -1301,7 +1303,7 @@ class MCP23017(object):
         #direction:[0:output],[1:input(default)]
         if channel=="A":
             self.DIR_A=self.bitWrite(self.DIR_A,pinId,direction)
-            print("Dir_A="+str(self.DIR_A))
+            # print("Dir_A="+str(self.DIR_A))
             self.byteWrite(self.iodira,self.DIR_A)
         elif channel=="B":
             self.DIR_B=self.bitWrite(self.DIR_B,pinId,direction)
@@ -1439,10 +1441,16 @@ class ADS1115(object):
     
     def swap(self,val):
         return (((val&0xff00)>>8)|((val&0x00ff)<<8))                    #交换高8位与低8位
+    def numberMap(self,value, leftMin, leftMax, rightMin, rightMax):
+        leftSpan = leftMax - leftMin
+        rightSpan = rightMax - rightMin
+        valueScaled = float(value - leftMin) / float(leftSpan)
+        return rightMin + (valueScaled * rightSpan)
     ###
     def readAdc(self,channel):
-        if (channel>3) or (channel<0):
-            return False
+        # print("111111111111111",(channel>3) or (channel<0))
+        # if (channel>3) or (channel<0):
+        #     return False
         self.config=(self.CONFIG_OS_START +                                # start conversion 
             #self.CONFIG_MUX_AIN0P_GNDN  +                         # single ended conversion
             ((channel+4)<<12) +                                         # select channel
@@ -1466,8 +1474,9 @@ class ADS1115(object):
         # read result (note byte swap)
         result=self.swap(self.bus.read_word_data(self.address,self.DEVICE_REG_CONVERSION))
         # return 16 bit integer A2D result for the specified channel
-        volt=round((result*6.144/32768),3)
-        return [result,volt]
+        # volt=round((result*6.144/32768),3)
+        result = int(self.numberMap(result,0,32768,0,1023))
+        return result
 
 class PCA9685(object):
     bus=smbus2.SMBus(2)
@@ -1480,7 +1489,7 @@ class PCA9685(object):
         self.reset()
         #for i in range(0,16):
             #self.duty(i,0)
-        print("Pca9685 init")
+        # print("Pca9685 init")
         
     def write(self, addr, val):
         for i in range(0, 2):
@@ -1849,16 +1858,16 @@ class extGpio(MCP23017,ADS1115,extOutputPin):
         #select X channel
         if pinId==0:            #p0
             self.setGpioDir("B",2,1)    #output
-            self.setGpioLevel("B",2,0)    #low
+            self.setGpioLevel("B",2,1)    #low
         elif pinId==1:            #p1
             self.setGpioDir("B",1,1)
-            self.setGpioLevel("B",1,0)
+            self.setGpioLevel("B",1,1)
         elif pinId==2:            #p2
             self.setGpioDir("B",6,1)
-            self.setGpioLevel("B",6,0)
+            self.setGpioLevel("B",6,1)
         elif pinId==3:            #p3
             self.setGpioDir("B",5,1)
-            self.setGpioLevel("B",5,0)
+            self.setGpioLevel("B",5,1)
         else:
             pass
         self.address=0x40                #再用PCA9685进行控制
@@ -1869,13 +1878,13 @@ class extGpio(MCP23017,ADS1115,extOutputPin):
         self.address=0x20                #先用mcp23017进行通道选择
         #select X channel
         if pinId==4:            #a0
-            self.setGpioDir("A",4,1)    #input
+            self.setGpioDir("A",4,0)    #input
             self.setGpioLevel("A",4,0)    #low
         elif pinId==5:            #a1
-            self.setGpioDir("A",3,1)
+            self.setGpioDir("A",3,0)
             self.setGpioLevel("A",3,0)
         elif pinId==6:            #a2
-            self.setGpioDir("A",2,1)
+            self.setGpioDir("A",2,0)
             self.setGpioLevel("A",2,0)
         elif pinId==7:            #a3
             self.setGpioDir("B",7,0)
@@ -1889,4 +1898,4 @@ class extGpio(MCP23017,ADS1115,extOutputPin):
         extOutputPin.__del__(self)
         self.address=0x20
         MCP23017.__del__(self)        #最先init的配置最后再del
-        print("del finished!")
+        # print("del fini