def stop(): print "EXECUTING STOP" Arduino.analogWrite(SPEED_B_PIN, 0) Arduino.analogWrite(SPEED_A_PIN, 0) Arduino.analogWrite(LED_PIN_R, 200) Arduino.analogWrite(LED_PIN_G, 0) Arduino.analogWrite(LED_PIN_B, 0)
def pirSense(self): for key in self.unit['pir']: pin = self.unit['pir'][key]['pin'] Arduino.pinMode(pin, Arduino.INPUT) self.unit['pir'][key].update(state=Arduino.digitalRead(pin))
def lights(): status = request.json['status'] if status == 'on': Arduino.digitalWrite(boardconfig.lights_pin, 1) elif status == 'off': Arduino.digitalWrite(boardconfig.lights_pin, 0) else: return jsonify({ 'error' : 'use status on or off' }), 400 return jsonify({ 'status' : 'success' }), 200
def forward(dist, vel): """ Move forward for dist (time) at vel (motor speed) """ Arduino.digitalWrite(dirA, Arduino.HIGH) Arduino.digitalWrite(dirB, Arduino.HIGH) Arduino.analogWrite(speedA, vel) Arduino.analogWrite(speedB, vel) Arduino.delay(dist)
def go_forward(): print "executing go_forward" speed = 255 direction = 0 Arduino.digitalWrite(DIR_B_PIN, direction) Arduino.analogWrite(SPEED_B_PIN, speed) Arduino.digitalWrite(DIR_A_PIN, direction) Arduino.analogWrite(SPEED_A_PIN, speed) Arduino.analogWrite(LED_PIN_G, 155)
def reverse(dist, vel): """ Move backwards for dist (time) at vel (motor speed) """ Arduino.digitalWrite(dirA, Arduino.LOW) Arduino.digitalWrite(dirB, Arduino.LOW) Arduino.analogWrite(speedA, vel) Arduino.analogWrite(speedB, vel) Arduino.delay(dist)
def lights(): status = request.json['status'] if status == 'on': Arduino.digitalWrite(boardconfig.lights_pin, 1) elif status == 'off': Arduino.digitalWrite(boardconfig.lights_pin, 0) else: return jsonify({'error': 'use status on or off'}), 400 return jsonify({'status': 'success'}), 200
def turn_left(angle, vel): """ Turns to the left according to angle (delay) """ Arduino.digitalWrite(dirA, Arduino.HIGH) Arduino.digitalWrite(dirB, Arduino.LOW) Arduino.analogWrite(speedA, vel) Arduino.analogWrite(speedB, Arduino.LOW) Arduino.delay(angle)
def arduinoPinwriteoutInd(outpin, PWM_Levelout): global targetpin targetpin = outpin global writeVAR writeVAR = PWM_Levelout if USE_FIRMATA: outpin.write(writeVAR / 255.0) elif USE_NANPY: Arduino.analogWrite(targetpin, writeVAR)
def rot_ccw(angle, vel): """ Spins to the left according to angle (delay), then stops the motors """ Arduino.digitalWrite(dirA, Arduino.HIGH) Arduino.digitalWrite(dirB, Arduino.LOW) Arduino.analogWrite(speedA, vel) Arduino.analogWrite(speedB, vel) Arduino.delay(angle)
def read_sensors(): """ Reads each of the Sharp sensors are returns a list of analog readings in order: front, right, left, rear """ reading = [] for i in [FrontBump, RightBump, LeftBump, RearBump]: reading.append(Arduino.analogRead(i)) Arduino.delay(1) return reading
def __fetchAddress(self): ds_address = self.__ds.search() if ds_address == "1": return False self.__ds.reset() self.__ds.select(ds_address) self.__ds.write(0x44, 1) Arduino.delay(700) present = self.__ds.reset() self.__ds.select(ds_address) self.__ds.write(0xBE) return True
def go(vel): """ Start the motors and keep them running until told otherwise """ Arduino.digitalWrite(dirA, Arduino.HIGH) Arduino.digitalWrite(dirB, Arduino.HIGH) Arduino.analogWrite(speedA, vel) Arduino.analogWrite(speedB, vel)
def close_pins(): """ Close all motor pins to quit cleanly upon end or exception """ Arduino.analogWrite(speedA, Arduino.LOW) Arduino.analogWrite(speedB, Arduino.LOW) Arduino.digitalWrite(dirA, Arduino.LOW) Arduino.digitalWrite(dirB, Arduino.LOW)
def get_pots(): """ Grab a reading from each of the pot pins and send it to a tuple to be read by the colour mixer """ r = Arduino.analogRead(pot_r_Pin) / 4 Arduino.delay(1) g = Arduino.analogRead(pot_g_Pin) / 4 Arduino.delay(1) b = Arduino.analogRead(pot_b_Pin) / 4 Arduino.delay(1) return r, g, b
def main(): while True: try: locked = Arduino.digitalRead(lock) if locked == 0: debug() else: ### Actual Avoider coder starts below ### if not front_bump(): if not left_bump() and not right_bump(): print "No bump detected - on we go!" go(200) if left_bump() and not right_bump(): print "Left bump detected... Turning right" rot_cw(100, 200) elif right_bump() and not left_bump(): print "Right bump detected... Turning left" rot_ccw(100, 200) elif left_bump() and right_bump(): print "Both left & right bumps detected... Turning round!" rot_cw(500, 200) else: print "Front bump detected... Turning round!" rot_cw(500, 200) # avoider code ends above except KeyboardInterrupt: close_pins() print "\nExiting" quit()
def GET(self): # x = [] while True: print "start to get the temperature info....." while True: sensorValue = Arduino.analogRead(analogPort) temperature = (sensorValue / 1023.) * powervoltage * 100 return temperature
def send_updates_to_arduino(batch): if batch.heat: Arduino.digitalWrite(ARDUINO_HEAT_PIN, Arduino.HIGH) else: Arduino.digitalWrite(ARDUINO_HEAT_PIN, Arduino.LOW) if batch.cool: Arduino.digitalWrite(ARDUINO_COOL_PIN, Arduino.HIGH) else: Arduino.digitalWrite(ARDUINO_COOL_PIN, Arduino.LOW)
def debug(): """ If lock switch is in the locked position stop motors and give sensor feedback instead """ stop() reading = read_sensors() Arduino.delay(5) if reading[0] > frontTrigger: print "Front bump detected!" elif reading[1] > sideTrigger: print "Right bump detected!" elif reading[2] > sideTrigger: print "Left bump detected!" elif reading[3] > rearTrigger: print "Rear bump detected!" else: print "Front:", reading[0], " | Right:", reading[1], " | Left:", reading[2], " | Rear:", reading[3] sleep(0.1)
def pwmLcdBacklight(self, newState): step = 25 if newState < self.unit['lcd'][0]['pwmState']: step = -step while self.unit['lcd'][0]['pwmState'] != newState: self.unit['lcd'][0]['pwmState'] += step Arduino.analogWrite(self.unit['lcd'][0]['backlightPin'], self.unit['lcd'][0]['pwmState']) if (self.unit['lcd'][0]['pwmState'] > 128): self.unit['lcd'][0]['backlightState'] = True else: self.unit['lcd'][0]['backlightState'] = False
def close_pins(): """ Close pins to quit cleanly (doesn't work with a 'for loop' despite the pins happily initialising that way!) """ Arduino.digitalWrite(redPin,Arduino.LOW) Arduino.digitalWrite(greenPin,Arduino.LOW) Arduino.digitalWrite(bluePin,Arduino.LOW)
def index(self,request): json = 0 data = 0 if request.args.get('json', '') == "1": json = 1 ser = Arduino() data = self.receiving(ser) sensorValue = Arduino.analogRead(analogPort) data= (sensorValue/1023.)*powervoltage*100 print "data = ", data html = self.showDemoHTML(data,json) return html
def colour_mixing(): """ Call get_pots() and set the colour pins accordingly """ r, g, b = get_pots() Arduino.analogWrite(redPin, r) Arduino.analogWrite(greenPin, g) Arduino.analogWrite(bluePin, b)
def set_colour(r, g, b): """ simple colour fade for R, G, B. Colours can be set indivdually or mixed automatically by calling the 'get' functions below. """ Arduino.analogWrite(redPin, r) Arduino.analogWrite(greenPin, g) Arduino.analogWrite(bluePin, b)
def digitalpin(pin_number): if request.method == 'GET': Arduino.pinMode(pin_number, Arduino.INPUT) data = { 'value' : Arduino.digitalRead(pin_number) } resp = Response(json.dumps(data), status=200, mimetype='application/json') return resp else: Arduino.pinMode(pin_number, Arduino.OUTPUT) Arduino.digitalWrite(pin_number, request.json['value']) resp = Response("", status=200, mimetype='application/json') return resp
def receiving(self, ser): print "..recieving...." global last_received # data = 0.0 # buffer = '' # while True: sensorValue = Arduino.analogRead(analogPort) data= (sensorValue/1023.)*powervoltage*100 # buffer = buffer + ser.analogRead(analogPort) # data = temp_demo # if '\r\n' in buffer: # print ('Alas...') print ("temperature=",data) return data
def phase2(): av = 0 cnt = 0 outputpin = 0 while True: rawvoltage= Arduino.analogRead(outputpin) millivolts= float((rawvoltage/1024.0) * 5000.0) celsius = (millivolts)/10.0 tempf = (celsius * 9)/5 + 32 msgbox('degrees Celsius: {}\n degrees Fahrenheit: {}'.format(celsius, tempf)) lcd.setCursor(0, 0) lcd.printString(celsius) lcd.setCursor(0, 1) lcd.printString(tempf) time.sleep(10)
def taha(N): Arduino.pinMode(13, Arduino.OUTPUT) while True: Arduino.digitalWrite(13, Arduino.HIGH) time.sleep(float(N)) Arduino.digitalWrite(13, Arduino.LOW) time.sleep(float(N)) lcd.setCursor(0, 1) lcd.printString(N) print N
def getKey(): # Function to Translate the analogRead values from the Keys to a Command val = Arduino.analogRead(14) if val == 1023: return "NONE" elif val < 100: return "RIGHT" elif val < 150: return "UP" elif val < 330: return "DOWN" elif val < 510: return "LEFT" elif val < 750: return "SEL" else: return "KBD_FAULT"
def phase2(): av = 0 cnt = 0 outputpin = 0 while True: rawvoltage = Arduino.analogRead(outputpin) millivolts = float((rawvoltage / 1024.0) * 5000.0) celsius = (millivolts) / 10.0 tempf = (celsius * 9) / 5 + 32 msgbox('degrees Celsius: {}\n degrees Fahrenheit: {}'.format( celsius, tempf)) lcd.setCursor(0, 0) lcd.printString(celsius) lcd.setCursor(0, 1) lcd.printString(tempf) time.sleep(10)
def getKey(): val = Arduino.analogRead(14) if val == 1023: return "NONE" elif val < 100: return "RIGHT" elif val < 150: return "UP" elif val < 330: return "DOWN" elif val < 510: return "LEFT" elif val < 750: return "SEL" else: return "KBD_FAULT"
def showDemoHTML(self,data,json): ## reads an html file and does things with it ## there are better ways, but they are more complicated print "....showDemoHTML...." while True: sensorValue = Arduino.analogRead(analogPort) data= (sensorValue/1023.)*powervoltage*100 if json == 1: f = open(CURRENTDIR +"/json.html") html = f.read() html = html.replace("%Temperature%",str(data)) print html return html else: f = open(CURRENTDIR +"/temp.html") html = f.read() html = html.replace("%Temperature%",str(data)) print ".....demo....", data return html
from nanpy import Arduino as A # setup A.pinMode(1, A.OUTPUT) while True: A.digitalWrite(1, HIGH) A.delay(400) A.digitalWrite(1, LOW) A.delay(400)
from nanpy import Arduino from time import sleep # set LED pin numbers redPin = 3 greenPin = 6 bluePin = 9 # set pot pin numbers pot_r_Pin = 0 pot_g_Pin = 3 pot_b_Pin = 5 #set three coloured pins as outputs for pins in (redPin, greenPin, bluePin): Arduino.pinMode(pins, Arduino.OUTPUT) # set pot pins as inputs for pins in (pot_r_Pin, pot_g_Pin, pot_b_Pin): Arduino.pinMode(pins, Arduino.INPUT) # prints values to the terminal when True debug = False def get_pots(): """ Grab a reading from each of the pot pins and send it to a tuple to be read by the colour mixer """ r = Arduino.analogRead(pot_r_Pin) / 4 Arduino.delay(1)
from nanpy import Arduino from nanpy import SerialManager from time import sleep from Tkinter import * from tkColorChooser import askcolor #serial_manager.connect('/dev/ttyS0') # serial connection to Arduino connection = SerialManager() a = Arduino(connection=connection) a.pinMode(5, a.OUTPUT) a.pinMode(6, a.OUTPUT) a.pinMode(3, a.OUTPUT) RLED = 5 # LED on Arduino Pin 10 (with PWM) GLED = 3 BLED = 6 def setBgColor(): (triple, hexstr) = askcolor() if hexstr: print hexstr print (triple[0], " ", triple[1], " ", triple[2]) a.analogWrite(RLED, triple[0]) a.analogWrite(GLED, triple[1]) a.analogWrite(BLED, triple[2]) push.config(bg=hexstr) print"Starting" print"5 blinks"
def led_test(r, g, b): r_val, g_val, b_val = int(r), int(g), int(b) Arduino.analogWrite(LED_PIN_R, r_val) Arduino.analogWrite(LED_PIN_G, g_val) Arduino.analogWrite(LED_PIN_B, b_val) return "r:%s, g:%s, b:%s" %(r_val, g_val, b_val)
def go_right(): print "executing go_right" speed = 255 direction_a = 1 direction_b = 0 Arduino.digitalWrite(DIR_B_PIN, direction_b) Arduino.analogWrite(SPEED_B_PIN, speed) Arduino.digitalWrite(DIR_A_PIN, direction_a) Arduino.analogWrite(SPEED_A_PIN, speed) Arduino.analogWrite(LED_PIN_R, 0) Arduino.analogWrite(LED_PIN_G, 0) Arduino.analogWrite(LED_PIN_B, 155)
from datetime import datetime from subprocess import * from time import sleep, strftime from Queue import Queue from threading import Thread import os from nanpy import Arduino, Lcd Arduino.pinMode(14, input) lcd = Lcd([8, 9, 4, 5, 6, 7], [16, 2]) # Setup the LCD pins for the Sainsmart Shield lcd.printString("Jess's Web Radio", 0, 0) lcd.printString("Loading" + "." * 3, 0, 1) sleep(5) max_trax = 74 x = 1 loop_menu = 1 loop_radio = 1 def display_ipaddr(): show_wlan0 = "ip addr show wlan0 | cut -d/ -f1 | awk '/inet/ {printf \"w%15.15s\", $2}'" show_eth0 = "ip addr show eth0 | cut -d/ -f1 | awk '/inet/ {printf \"e%15.15s\", $2}'" ipaddr = run_cmd(show_eth0) if ipaddr == "": ipaddr = run_cmd(show_wlan0) lcd.printString('IP Address:', 0, 0) lcd.printString(ipaddr, 0, 1) sleep(2)
def get_b(): b_val = Arduino.analogRead(pot_b_Pin) / 4 Arduino.delay(1) return b_val
import os from nanpy import Arduino, Lcd # Initialize buttons and states buttonPin = 7 buttonPin2 = 8 buttonState = 0 buttonState2 = 0 # Activate buttons Arduino.pinMode(buttonPin, input) Arduino.pinMode(buttonPin2, input) # Initialize LCD lcd = Lcd([12, 11, 5, 4, 3, 2], [16, 2]) # Maximum number of stations held in the mpc list max_trax = 4 # Print station info to LCD def getTrack(): L = [S.strip('\n') for S in os.popen('mpc').readlines()] station = L[0][0:15] track = L[0][-16:-1] lcd.printString(16 * " ", 0, 0) lcd.printString(station, 0, 0) lcd.printString(16 * " ", 0, 1) lcd.printString(track, 0, 1) print(L) print(station)
def get_r(): r_val = Arduino.analogRead(pot_r_Pin) / 4 Arduino.delay(1) return r_val
def get_g(): g_val = Arduino.analogRead(pot_g_Pin) / 4 Arduino.delay(1) return g_val
#!/usr/bin/env python # Author: Andrea Stagi <*****@*****.**> # Description: get the current time from a ntp server and show it on a lcd # Dependencies: ntplib (http://pypi.python.org/pypi/ntplib/) import ntplib from nanpy import (Arduino, Lcd) from datetime import datetime ntp_client = ntplib.NTPClient() response = ntp_client.request('europe.pool.ntp.org', version=3) time = int(response.tx_time) lcd = Lcd([7, 8, 9, 10, 11, 12], [16, 2]) while (1): lcd.setCursor(0, 0) lcd.printString((datetime.fromtimestamp(time)).strftime('%Y-%m-%d')) if time % 2: time_format = '%H:%M' else: time_format = '%H %M' lcd.setCursor(0, 1) lcd.printString((datetime.fromtimestamp(time)).strftime(time_format)) Arduino.delay(1000) time += 1
#!/usr/bin/env python # Author: Andrea Stagi <*****@*****.**> # Description: keeps your led blinking # Dependencies: None from nanpy import Arduino sys.path.append('/home/pi/Desktop/nanpy-0.8/firmware/ArduinoClass.h') Arduino.pinMode(4, Arduino.OUTPUT) for i in range(10000): Arduino.digitalWrite(4, (i + 1) % 2) Arduino.delay(1000)
def move(): movetype = request.json['type'] duration = request.json['duration'] if movetype == 'left': Arduino.digitalWrite(boardconfig.motor1_cp1, 0) Arduino.digitalWrite(boardconfig.motor1_cp2, 1) Arduino.analogWrite(boardconfig.motor1_ep, boardconfig.motor_speed) elif movetype == 'right': Arduino.digitalWrite(boardconfig.motor1_cp1, 1) Arduino.digitalWrite(boardconfig.motor1_cp2, 0) Arduino.analogWrite(boardconfig.motor1_ep, boardconfig.motor_speed) elif movetype == 'up': Arduino.digitalWrite(boardconfig.motor2_cp1, 0) Arduino.digitalWrite(boardconfig.motor2_cp2, 1) Arduino.analogWrite(boardconfig.motor2_ep, boardconfig.motor_speed) elif movetype == 'down': Arduino.digitalWrite(boardconfig.motor2_cp1, 1) Arduino.digitalWrite(boardconfig.motor2_cp2, 0) Arduino.analogWrite(boardconfig.motor2_ep, boardconfig.motor_speed) else: return jsonify({'error': 'use type up, down, left or right'}), 400 time.sleep(duration / 1000) Arduino.analogWrite(boardconfig.motor2_ep, 0) Arduino.analogWrite(boardconfig.motor1_ep, 0) return jsonify({'status': 'success'}), 200
def rw(self, **data): print data Arduino.digitalWrite(self.cp1, 1) Arduino.digitalWrite(self.cp2, 0) Arduino.analogWrite(self.ep, data['speed'])
@app.route('/lights', methods=['POST']) def lights(): status = request.json['status'] if status == 'on': Arduino.digitalWrite(boardconfig.lights_pin, 1) elif status == 'off': Arduino.digitalWrite(boardconfig.lights_pin, 0) else: return jsonify({'error': 'use status on or off'}), 400 return jsonify({'status': 'success'}), 200 @app.route('/beep', methods=['POST']) def beep(): duration = request.json['duration'] tone = Tone(boardconfig.beep_pin) tone.play(Tone.NOTE_FS1, duration) return jsonify({'status': 'success'}), 200 if __name__ == "__main__": serial_manager.open(boardconfig.serialport) Arduino.pinMode(boardconfig.motor1_cp1, Arduino.OUTPUT) Arduino.pinMode(boardconfig.motor1_cp2, Arduino.OUTPUT) Arduino.pinMode(boardconfig.motor1_ep, Arduino.OUTPUT) Arduino.pinMode(boardconfig.motor2_cp1, Arduino.OUTPUT) Arduino.pinMode(boardconfig.motor2_cp2, Arduino.OUTPUT) Arduino.pinMode(boardconfig.motor2_ep, Arduino.OUTPUT) Arduino.pinMode(boardconfig.lights_pin, Arduino.OUTPUT) app.run()
def flash_yellows(STOP): while True: Arduino.analogWrite(LED_PIN_R, 155) Arduino.analogWrite(LED_PIN_G, 155) Arduino.analogWrite(LED_PIN_B, 0) sleep(0.5)
def stop(self, **data): print data Arduino.analogWrite(self.ep, 0)
from flask import Flask, render_template, request from nanpy import Arduino as A from nanpy import (SPI, Wire, L3G, Servo) import os tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), '') app = Flask(__name__, template_folder=tmpl_dir, static_url_path='') import datetime red = 8 green = 11 A.pinMode(red, A.OUTPUT) A.pinMode(green, A.OUTPUT) ##################### ####### Gyro ######## ##################### L3G gyro gyroSum = 0 gyroOffset = 0.0 Xval = 0 # gyro calibration variables gyromin = -25000 gyromax = 25000 # gyro smoothing variables i = 0 gyroaverage = 0. numReadings = 5