BRICO: emisora + receptor + cuenta vueltas (open suorce)
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 10 de 19
  1. #1
    Miembro Senior
    Fecha de Ingreso
    13 oct, 06
    Mensajes
    426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    BRICO: emisora + receptor + cuenta vueltas (open suorce)

    Hola a todos.

    ESP8266 actuará como un cliente wifi y el Raspberry como Punto de Acceso wifi, este tiene la capacidad de medir la señal RSSI (distancia a la que se encuentra uno del otro), con mucha presición, y que podemos usar para determinar la meta o punto de control del cronometro. Sistema similar al proyecto ruso de codigo abierto "chorus lap timer" (recomiendo que lo busqueis en google, youtube)


    Si alguien le interesa este tema y quiere participar bienvenido


    Este es el codigo para Raspberry del cronometro en python por si alguien lo quiere probar:




    #!/usr/bin/python --------------------------------------
    # ___ ___ _ ____
    # / _ \/ _ \(_) __/__ __ __
    # / , _/ ___/ /\ \/ _ \/ // /
    # /_/|_/_/ /_/___/ .__/\_, /
    # /_/ /___/

    import smbus
    import time
    import datetime
    #condicion = 1
    # Define some device parameters
    I2C_ADDR = 0x27 # I2C device address
    LCD_WIDTH = 16 # Maximum characters per line
    # Define some device constants
    LCD_CHR = 1 # Mode - Sending data
    LCD_CMD = 0 # Mode - Sending command
    LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
    LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
    LCD_LINE_3 = 0x94 # LCD RAM address for the 3rd line
    LCD_LINE_4 = 0xD4 # LCD RAM address for the 4th line
    LCD_BACKLIGHT = 0x08 # On
    #LCD_BACKLIGHT = 0x00 # Off
    ENABLE = 0b00000100 # Enable bit
    # Timing constants
    E_PULSE = 0.0005
    E_DELAY = 0.0005
    #Open I2C interface
    #bus = smbus.SMBus(0) # Rev 1 Pi uses 0
    bus = smbus.SMBus(1) # Rev 2 Pi uses 1
    def lcd_init():
    # Initialise display
    lcd_byte(0x33,LCD_CMD) # 110011 Initialise
    lcd_byte(0x32,LCD_CMD) # 110010 Initialise
    lcd_byte(0x06,LCD_CMD) # 000110 Cursor move direction
    lcd_byte(0x0C,LCD_CMD) # 001100 Display On,Cursor Off, Blink Off
    lcd_byte(0x28,LCD_CMD) # 101000 Data length, number of lines, font size
    lcd_byte(0x01,LCD_CMD) # 000001 Clear display
    time.sleep(E_DELAY)
    def lcd_byte(bits, mode):
    # Send byte to data pins
    # bits = the data
    # mode = 1 for data
    # 0 for command
    bits_high = mode | (bits & 0xF0) | LCD_BACKLIGHT
    bits_low = mode | ((bits<<4) & 0xF0) | LCD_BACKLIGHT
    # High bits
    bus.write_byte(I2C_ADDR, bits_high)
    lcd_toggle_enable(bits_high)
    # Low bits
    bus.write_byte(I2C_ADDR, bits_low)
    lcd_toggle_enable(bits_low)
    def lcd_toggle_enable(bits):
    # Toggle enable
    time.sleep(E_DELAY)
    bus.write_byte(I2C_ADDR, (bits | ENABLE))
    time.sleep(E_PULSE)
    bus.write_byte(I2C_ADDR,(bits & ~ENABLE))
    time.sleep(E_DELAY)
    def lcd_string(message,line):
    # Send string to display
    message = message.ljust(LCD_WIDTH," ")
    lcd_byte(line, LCD_CMD)
    for i in range(LCD_WIDTH):
    lcd_byte(ord(message[i]),LCD_CHR)
    def main():
    # Main program block
    # Initialise display
    lcd_init()
    condicion = 1
    valor3 = 0
    #BUCLE QUE SE REPITE INFINITAS VECES
    while True:
    archivo=open('/proc/net/wireless','r')
    texto2 = archivo.read()
    archivo.close()
    texto3 = texto2.split()
    #print "potencia:"
    print "potencia: "
    valor = 0.0
    valor = float(texto3[30])
    print valor
    valor2 = 0
    valor2 = int(float(valor))
    valor3 = valor2 * -1
    ####################################
    corte =56
    ####################################
    ####SI HAY PASO POR META, INICIAR CARRERA#####
    ####################################
    if (valor3 < corte) & (condicion == 1) :
    now1 = time.time()
    print "Pasar por meta para comenzar..."
    print (now1)
    lcd_string("PASAR POR META",LCD_LINE_1)
    lcd_string("PARA COMENZAR!",LCD_LINE_2)
    #lcd_string(str(now1),LCD_LINE_1)
    condicion = 3
    time.sleep(5)
    ####### VUELTA 1
    if (valor3 < corte) & (condicion == 4) :
    now2 = time.time()
    print "coche 1, vuelta(1), tiempo:"
    now3 = now2 - now1
    hola = 0.00
    hola = float(now3)
    print hola
    lcd_string ("vuelta 1: " + str(now3),LCD_LINE_1)
    time.sleep(5)
    condicion = 5
    if (valor3 < corte) & (condicion == 3) :
    condicion = 4
    time.sleep(1)
    print "tomando lectura rssi...(condicion 3->4)"
    ######## VUELTA 2
    if (valor3 < corte) & (condicion == 6) :
    now4 = time.time()
    print "coche 1 , vuelta(2) , tiempo:"
    now5 = now4 - now3 - now1
    print (now5)
    lcd_string ("vuelta 2: " + str(now5),LCD_LINE_2)
    time.sleep(5)
    condicion = 7
    if (valor3 < corte) & (condicion == 5) :
    condicion = 6
    time.sleep(1)
    print "tomando lectura rssi...(condicion 5->6)"
    ######VUELTA 3
    if (valor3 < corte) & (condicion == 8) :
    now6 = time.time()
    print "coche 1 , vuelta(3) , tiempo:"
    now7 = now6 - now4
    print now7
    lcd_string ("vuelta 3: " + str(now7),LCD_LINE_1)
    time.sleep(5)
    condicion = 9
    if (valor3 < corte) & (condicion == 7) :
    condicion = 8
    time.sleep(1)
    print "tomando lectura rssi...(condicion 7->8)"
    ######VUELTA 4
    if (valor3 < corte) & (condicion == 10) :
    now8 = time.time()
    print "coche 1 . vuelta(4) , tiempo:"
    now9 = now8 - now6
    print now9
    lcd_string ("vuelta 4: " + str(now9),LCD_LINE_2)
    time.sleep(5)
    condicion = 11
    if (valor3 < corte) & (condicion == 9) :
    condicion = 10
    time.sleep(1)
    print "tomando lectura rssi...(condicion 9->10)"
    ######VUELTA 5
    if (valor3 < corte) & (condicion == 12) :
    now10 = time.time()
    print "coche 1 , vuelta(5) , tiempo:"
    now11 = now10 - now8
    print (now11)
    lcd_string ("vuelta 5: " + str(now11),LCD_LINE_1)
    time.sleep(5)
    condicion = 13
    if (valor3 < corte) & (condicion == 11 ) :
    condicion = 12
    time.sleep(1)
    print "tomando lectura rssi...(condicion 11->12)"
    ###### VUELTA 6
    if (valor3 < corte) & (condicion == 14) :
    now12 = time.time()
    print "coche 1 , vuelta(5) , tiempo:"
    now13 = now12 - now10
    print (now13)
    lcd_string ("vuelta 6: " + str(now13),LCD_LINE_1)
    time.sleep(5)
    condicion = 1
    if (valor3 < corte) & (condicion == 13 ) :
    condicion = 14
    time.sleep(1)
    print "tomando lectura rssi...(condicion 13->14)"
    else:
    lcd_string("dis: " + str(valor3),LCD_LINE_3)
    lcd_string("cor: " + str(corte),LCD_LINE_4)
    print "esperando transponder..."
    # Send some test
    #lcd_string(">>CRONOMETRO RC<<",LCD_LINE_1)
    #lcd_string("potencia: " + texto3[30] , LCD_LINE_2)
    #lcd_string("vuelta:", LCD_LINE_3)
    #lcd_string("tiempo:", LCD_LINE_4)
    time.sleep(0.1)
    if __name__ == '__main__':
    try:
    main()
    except KeyboardInterrupt:
    pass
    finally:
    lcd_byte(0x01, LCD_CMD)



    CODIGO (ARDUNO C++) DEL TRANSPONDER PARA REGISTRAR PASO POR META:

    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>

    /* Set these to your desired credentials. */
    const char *ssid = "TRANSPONDER1";
    const char *password = "1234";

    ESP8266WebServer server(80);

    /* Just a little test message. Go to http://192.168.4.1 in a web browser
    * connected to this access point to see it.
    */
    void handleRoot() {
    server.send(200, "text/html", "<h1>You are connected</h1>");
    }

    void setup() {
    delay(1000);
    Serial.begin(115200);
    Serial.println();
    Serial.print("Configuring access point...");
    /* You can remove the password parameter if you want the AP to be open. */
    WiFi.softAP(ssid, password);


    IPAddress myIP = WiFi.softAPIP();
    Serial.print("AP IP address: ");
    Serial.println(myIP);
    server.on("/", handleRoot);
    server.begin();
    Serial.println("HTTP server started");
    }

    void loop() {
    server.handleClient();
    }





    pruebas:






    saludos
    Miniaturas Adjuntadas Miniaturas Adjuntadas whatsapp-image-2017-10-19-14.28.01.jpg   whatsapp-image-2017-10-19-14.20.21.jpg   whatsapp-image-2017-10-19-14.20.04.jpg  
    Última edición por dima650; 23/05/2018 a las 11:15

  2. #2
    Miembro Senior
    Fecha de Ingreso
    13 oct, 06
    Mensajes
    426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hola otra vez, actualizo el post, hay nuevos avances por si alguien se anima a probar.

    el cronometro esta echo con python, se puede correr el programa en linux, windows o mac.

    al pasar el coche cerca de la "meta", esta lo detecta y marca el tiempo de la vuelta.

    pruebas:














    el transponder y el receptor de meta estan echos con el chip ESP8266. se pueden conseguir facilmente en ebay:

    ESP8266 ESP-01 Serial WIFI Wireless Transceiver Module Send Receive LWIP AP+STA | eBay

    el esp82266 funciona a 3.3v, con un consumo de 80mA. es necesario añadir un regulado para bajar la tensión del receptor.

    1x AMS1117 3.3V DC Step-Down Voltaje Regulador Adaptador Convertidor Modulo | eBay

    para programar todo necesitaremos un conversor serial USB

    https://www.ebay.es/itm/FT232RL-FTDI...sAAOSwXj5auJry




    muy bien, una vez tenemos todo

    cargamos el siguiente codigo con Arduino IDE

    nos haran falta 3 codigos, uno para el transponder, otro para el receptor o meta y otro para la aplicacion en python del ordenado.


    CODIGO TRANSPONDER:


    #include <ESP8266WiFi.h>
    #include <WiFiClient.h>
    #include <ESP8266WebServer.h>

    /* Set these to your desired credentials. */
    const char *ssid = "COCHE1"; //Nombre transponder
    const char *password = "1111"; //contraseña

    ESP8266WebServer server(80);

    void handleRoot() {
    server.send(200, "text/html", "<h1>You are connected</h1>");
    }

    void setup() {
    delay(1000);
    Serial.begin(115200);
    Serial.println();
    Serial.print("Configuring access point...");
    /* You can remove the password parameter if you want the AP to be open. */
    WiFi.softAP(ssid, password);

    IPAddress myIP = WiFi.softAPIP();
    Serial.print("AP IP address: ");
    Serial.println(myIP);
    server.on("/", handleRoot);
    server.begin();
    Serial.println("HTTP server started");
    }

    void loop() {
    server.handleClient();
    }




    CODIGO RECEPTOR META:

    #include <ESP8266WiFi.h>

    // Wi-Fi Settings
    const char* ssid = "COCHE1"; // nombre del transponder/piloto/coche (tiene que coincidir con transponder)
    const char* password = "1111"; // contraseña, poner algo, o dejar en blanco.(coincidir con codigo transponder)
    String a =" ";
    WiFiClient client;

    void setup() {
    Serial.begin(115200);
    WiFi.begin(ssid, password);

    while (WiFi.status() != WL_CONNECTED) {
    delay(100);
    }
    }
    void loop() {
    // if (client.connect(server, 80)) {

    // Medicion variable (RSSI) de la conexion Wi-Fi
    long rssi = WiFi.RSSI();

    // API body
    String body = "field1=";
    body += String(rssi);
    a = rssi;
    int b = atoi(a.c_str());
    b = b * -1;
    Serial.println(b);
    delay(150);
    }




    CODIGO PYTHON APLICACION:


    from Tkinter import *
    import time
    import datetime
    import serial
    from pygame import mixer

    #global PuertoSerie
    PuertoSerie = serial.Serial('/dev/ttyUSB0', 115200)
    valor2 = 0
    condicion = 1
    mixer.init()
    mixer.music.load('/home/user66/Escritorio/beep.mp3')
    class StopWatch(Frame):
    """ Implements a stop watch frame widget. """
    def __init__(self, parent=None, **kw):
    Frame.__init__(self, parent, kw)
    self._start = 0.0
    self._elapsedtime = 0.0
    self._running = 0
    self.timestr = StringVar()
    #self.lapstr = StringVar()
    self.rssi = StringVar()
    self.e = 0
    self.m = 0
    self.makeWidgets()
    self.laps = []
    self.lapmod2 = 0
    self.today = time.strftime("%d %b %Y %H-%M-%S", time.localtime())
    self.valor2 = 0
    valor2 = 0

    def makeWidgets(self):
    global img
    img = PhotoImage(file="logoracingtime.png")
    imagen1 = Label(self, image=img, width=288, height=51)
    #imagen1.place(x=1, y= 2)
    imagen1.pack(fill=X, expand=NO, pady=1, padx=2)

    """ Make the time label. """
    l1 = Label(self, text='----Nombre Carrera----')
    #l1.place(x=300, y=5)
    l1.pack(fill=X, expand=NO, pady=5, padx=2)

    self.e = Entry(self)
    self.e.pack(pady=2, padx=2)

    l4 = Label(self, text="Tiempo:")
    l4.pack(fill=X, expand=NO, pady=1, padx=3)

    l = Label(self, textvariable=self.timestr, font=('Consolas', 30), fg="green")
    self._setTime(self._elapsedtime)
    l.pack(fill=X, expand=NO, pady=3, padx=2)

    l3 = Label(self, text="Potencia transponder:")
    l3.pack(fill=X, expand=NO, pady=1, padx=3)

    l10= Label(self, textvariable= self.rssi, font=('Consolas', 20), fg="red")
    l10.pack(fill=X, expand=NO, pady=1, padx=3)

    l2 = Label(self, text='----Vueltas----')
    l2.pack(fill=X, expand=NO, pady=4, padx=2)

    scrollbar = Scrollbar(self, orient=VERTICAL)
    self.m = Listbox(self,selectmode=EXTENDED, height = 8,
    yscrollcommand=scrollbar.set)
    self.m.pack(side=LEFT, fill=BOTH, expand=1, pady=5, padx=1)
    scrollbar.config(command=self.m.yview)
    scrollbar.pack(side=RIGHT, fill=Y)

    def _update(self):
    """ Update the label with elapsed time. """
    self._elapsedtime = time.time() - self._start
    self._setTime(self._elapsedtime)
    self._timer = self.after(50, self._update)

    def Lap2(self):
    print "guber"

    def _setTime(self, elap):
    """ Set the time string to Minutes:Seconds:Hundreths """
    minutes = int(elap/60)
    seconds = int(elap - minutes*60.0)
    hseconds = int((elap - minutes*60.0 - seconds)*100)
    self.timestr.set('%02d:%02d:%02d' % (minutes, seconds, hseconds))

    global condicion
    global sArduino
    sArduino = PuertoSerie.readline()
    global RSSI
    RSSI = sArduino
    global valor3
    valor3 = RSSI
    cadena = RSSI
    print "limp: " + cadena.lstrip("-")
    valor1 = cadena.lstrip("-")
    valor2 = int(float(valor1))
    print valor2
    self.rssi.set(valor2)

    if ((valor2 < 80) & condicion == 1 ):
    mixer.music.play()
    PuertoSerie.flushInput()
    PuertoSerie.flushOutput()
    print "hola caracola"
    #Lap2()
    #time.sleep(1)
    tempo = self._elapsedtime - self.lapmod2
    if self._running:
    self.laps.append(self._setLapTime(tempo))
    self.m.insert(END, self.laps[-1])
    self.m.yview_moveto(1)
    self.lapmod2 = self._elapsedtime
    sArduino = 0
    time.sleep(0.5)
    PuertoSerie.flushInput()
    PuertoSerie.flushOutput()
    time.sleep(1)

    if ((valor2 < 45) & condicion == 2 ):
    PuertoSerie.flushInput()
    PuertoSerie.flushOutput()

    condicion = 1
    time.sleep(0.1)

    else:
    print "esperando transponder"
    PuertoSerie.flushInput()
    PuertoSerie.flushOutput()
    condicion = 1
    time.sleep(0.1)

    def _setLapTime(self, elap):
    """ Set the time string to Minutes:Seconds:Hundreths """
    minutes = int(elap/60)
    seconds = int(elap - minutes*60.0)
    hseconds = int((elap - minutes*60.0 - seconds)*100)
    return '%02d:%02d:%02d' % (minutes, seconds, hseconds)

    def Start(self):
    """ Start the stopwatch, ignore if running. """
    if not self._running:
    #l10= Label(self, text= "CARRERA INICIADA!", font=('Consolas', 20), fg="red")
    #l10.pack(fill=X, expand=NO, pady=1, padx=3)
    self._start = time.time() - self._elapsedtime
    self._update()
    self._running = 1

    def Stop(self):
    """ Stop the stopwatch, ignore if stopped. """
    if self._running:
    self.after_cancel(self._timer)
    self._elapsedtime = time.time() - self._start
    self._setTime(self._elapsedtime)
    self._running = 0

    def Reset(self):
    """ Reset the stopwatch. """
    self._start = time.time()
    self._elapsedtime = 0.0
    self.laps = []
    self._setTime(self._elapsedtime)

    def Lap(self):
    '''Makes a lap, only if started'''
    tempo = self._elapsedtime - self.lapmod2
    if self._running:
    self.laps.append(self._setLapTime(tempo))
    self.m.insert(END, self.laps[-1])
    self.m.yview_moveto(1)
    self.lapmod2 = self._elapsedtime

    def GravaCSV(self):
    '''Pega nome do cronometro e cria arquivo para guardar as laps'''
    arquivo = str(self.e.get()) + ' - '
    with open(arquivo + self.today + '.txt', 'wb') as lapfile:
    for lap in self.laps:
    lapfile.write((bytes(str(lap) + '\n', 'utf-8')))

    def main():

    root = Tk()
    root.wm_attributes("-topmost", 1) #always on top - might do a button for it
    root.geometry("350x500")

    sw = StopWatch(root)
    sw.pack(side=TOP)

    Button(root, text='Lap', command=sw.Lap).pack(side=LEFT)
    Button(root, text='Start', command=sw.Start).pack(side=LEFT)
    Button(root, text='Stop', command=sw.Stop).pack(side=LEFT)
    #Button(root, text='Reset', command=sw.Reset).pack(side=LEFT)
    Button(root, text='Save', command=sw.GravaCSV).pack(side=LEFT)
    Button(root, text='Quit', command=root.quit).pack(side=LEFT)

    root.mainloop()

    if __name__ == '__main__':
    main()
    Última edición por dima650; 11/05/2018 a las 14:29

  3. #3
    Miembro Senior Avatar de Pablo Heisenberg
    Fecha de Ingreso
    02 jun, 16
    Mensajes
    958
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hay un par de cosas que no me quedan claras

    ¿El módulo de va en el coche cómo va alimentado?

    ¿El cuenta vueltas puede diferenciar coches a través de la Mac?

    ¿Se puede usar la Raspberry 2b?
    Enviado desde mi K10000 Pro mediante Tapatalk

  4. #4
    Miembro Senior
    Fecha de Ingreso
    13 oct, 06
    Mensajes
    426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hola Pablo Heisenberg

    el modulo se alimenta directamente del receptor, le e puesto el cable de un servo roto.

    el cuenta vueltas reconoce las mac, pero, para este proyecto, la identificacion es mediante, SSID o nombre de red wifi (puedes poner el nombre que quieras: coche1, daniel, pedro, rojo33. y una contraseña (o dejar en blanco) con esto ya se enlazan los modulos y empiezan hablar entre ellos. en este caso el transponder dice "estoy aqui, me llamo "coche1". Por otro lado el receptor o "meta" esta todo el tiempo corriendo un programa que esta preguntando la potencia de la señal rssi del punto de acceso coche1.

    El programa funciona en raspberrypi2, este proyecto empezo en una raspberrypi2.

    Para que no te de error, necesario tener librerias instaladas:

    from Tkinter import *
    import time
    import datetime
    import serial
    from pygame import mixer

    necesario tener dos archivos en la misma carpeta donde este el programa:

    logoracingtime.png
    beep.mp3

    puedes poner el logo que quieras y guardarlo con ese nombre, igual para el archivo de sonido, el sonido de pitido de paso por meta, puedes usar el que quieras, yo lo descargue de youtube..

    adjunto imagen para que veas la conexion, saludos

    Última edición por dima650; 11/05/2018 a las 11:57

  5. #5
    Miembro
    Fecha de Ingreso
    29 sep, 07
    Mensajes
    82
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Dudo que me fabrique el invento, por que soy bastante manazas con todo lo que comentas ( empezando por la electronica y acabando en meter codigo )
    Pero es para quitarse el sombrero de verdad
    Muy buen aporte
    Seguro que a mucha gente le interesa algo asi para su club

  6. #6
    Miembro Senior Avatar de Pablo Heisenberg
    Fecha de Ingreso
    02 jun, 16
    Mensajes
    958
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Es un proyecto muy interesante, a mí me gustaría que me confirmarás si puedes que con:
    una placa Raspberry
    un módulo wifi cualquiera para la Raspberry
    Y los tres enlaces que has puesto

    ¿se podría hacer?

    Enviado desde mi K10000 Pro mediante Tapatalk

  7. #7
    Miembro Senior Avatar de Pablo Heisenberg
    Fecha de Ingreso
    02 jun, 16
    Mensajes
    958
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Duplicado
    Última edición por Pablo Heisenberg; 12/05/2018 a las 14:29

  8. #8
    Miembro Senior
    Fecha de Ingreso
    13 oct, 06
    Mensajes
    426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    te confirmo que todo esto es 100% compatible con raspberry. lo suyo seria ideal llevar una tele, conectarla por HDMI, ponerla en el circuito con los tiempos a la vista, ahi lo dejo.




    con respecto a los modulos wifi, te vale cualquier modulo ESP8266 en cualquiera de sus versiones (hay unas cuantas), la diferencia entre ellos es: tipo de antena, si llevan regulador de voltaje, y numero de conexiones, las mas sencilla, que es la que uso, solo 2 entradas/salidas digitales. me parece hasta 30 entradas/salidas digitales y analogicas (van muy bien para usar sensores como: voltimetro, termometro, ambos muy utiles para rc


    entonces...


    la conexion para programar el modulo:




    una vez programado el modulo de transponder, podemos desconectar el conversor USB y soldar, en su lugar, el regulador de voltaje, simple positivo al positivo, y negativo a negativo. y ya tenemos nuestro tranponder listo para montar en el coche!

    luego, tenemos que cargar el codigo del receptor meta, una vez cargado NO hay que desconectar el conversor USB ya que este hara de interface con el ordenador permitiendo la comunicacion entre el modulo ESP8266 y nuestro ordenador o raspberry.

    otra opcion es esta: nodemcu

    link:
    Node MCU ESP8266 Lua WiFi Network Development Board Based ESP8266 | eBay



    este chip es un poco mas caro, pero tiene 2 ventajas: lleva esp8266, regulador de voltaje, conversor USB integrado todo en uno y ademas varias entradas salidas digitales analogias extra (lo que comentaba de los sensores, telemetria).

    tambien esta la version mini:



    hay para elegir ja

    en cuanto a la raspberry...

    La conexion al raspberry debe que ser por USB para que funcione con el codigo que esta arriba. puedes comprar un cable de 5 metros usb y asi te lo montas bien, tu con tu ordenador en una mesa y tiras el cable hasta la meta.

    adjunto imagen de una antena:


    Última edición por dima650; 12/05/2018 a las 15:26

  9. #9
    Miembro Senior Avatar de Pablo Heisenberg
    Fecha de Ingreso
    02 jun, 16
    Mensajes
    958
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Pues voy a montarme uno como el tuyo... Ya escribiré cuando este terminado BRICO: emisora + receptor + cuenta vueltas (open suorce) muchísimas gracias

    Cita Iniciado por dima650 Ver Mensaje
    te confirmo que todo esto es 100% compatible con raspberry. lo suyo seria ideal llevar una tele, conectarla por HDMI, ponerla en el circuito con los tiempos a la vista, ahi lo dejo.




    con respecto a los modulos wifi, te vale cualquier modulo ESP8266 en cualquiera de sus versiones (hay unas cuantas), la diferencia entre ellos es: tipo de antena, si llevan regulador de voltaje, y numero de conexiones, las mas sencilla, que es la que uso, solo 2 entradas/salidas digitales. me parece hasta 30 entradas/salidas digitales y analogicas (van muy bien para usar sensores como: voltimetro, termometro, ambos muy utiles para rc


    entonces...


    la conexion para programar el modulo:




    una vez programado el modulo de transponder, podemos desconectar el conversor USB y soldar, en su lugar, el regulador de voltaje, simple positivo al positivo, y negativo a negativo. y ya tenemos nuestro tranponder listo para montar en el coche!

    luego, tenemos que cargar el codigo del receptor meta, una vez cargado NO hay que desconectar el conversor USB ya que este hara de interface con el ordenador permitiendo la comunicacion entre el modulo ESP8266 y nuestro ordenador o raspberry.

    otra opcion es esta: nodemcu

    link:
    Node MCU ESP8266 Lua WiFi Network Development Board Based ESP8266 | eBay



    este chip es un poco mas caro, pero tiene 2 ventajas: lleva esp8266, regulador de voltaje, conversor USB integrado todo en uno y ademas varias entradas salidas digitales analogias extra (lo que comentaba de los sensores, telemetria).

    tambien esta la version mini:



    hay para elegir ja

    en cuanto a la raspberry...

    La conexion al raspberry debe que ser por USB para que funcione con el codigo que esta arriba. puedes comprar un cable de 5 metros usb y asi te lo montas bien, tu con tu ordenador en una mesa y tiras el cable hasta la meta.

    adjunto imagen de una antena:


    Dudas:

    1° <<el esp82266 funciona a 3.3v, con un consumo de 80mA. es necesario añadir un regulado para bajar la tensión del receptor.

    1x AMS1117 3.3V DC Step-Down Voltaje Regulador Adaptador Convertidor Modulo | eBay >>

    Entiendo que hace falta esto tanto en el módulo que estará conectado en la Raspberry como en los que estarán conectados a los vehículos no?

    2° se puede usar un bote de Pringles o una mini parabólica para hacer una línea de meta "recta"?

    Enviado desde mi K10000 Pro mediante Tapatalk
    Última edición por Pablo Heisenberg; 12/05/2018 a las 19:42

  10. #10
    Miembro Senior
    Fecha de Ingreso
    13 oct, 06
    Mensajes
    426
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hola Pablo

    primera pregunta: el regulador solo es necesario para los coches, el motivo es, el receptor del coche tiene una salida de 5V, si conectas el modulo directamente lo fundes.

    en el caso del modulo que va conectado al raspberry, este pasa por el conversor USB, este ya lleva un regulador de voltaje 3.3 integrado.

    OJO: este conversor vale tanto para 5V como para 3.3V, debes comprobar el jumper o puente y ponerlo en el voltaje adecuado. cuando lo tengas en la mano lo veras mejor, en pequeño lo pone, 5 o 3.3 en la placa. casi ni se ve pero ahi esta.

    segunda pregunta: el tema de la forma de la antena es muy complejo, de momento estoy haciendo pruebas buscando la mejor manera de hacerlo, porque lo peor que puede pasar es una mala lectura, o lecturas falsas.

    este video no responde la pregunta pero es muy interesante y habla sobre los tipos de antena, aplicaciones, espero te de una idea de como funcionan

    por darle un poco de juego a esto, te pregunto: que tipo de antena usarias tu?

    saludoss


Página 1 de 2 12 ÚltimoÚltimo

Relacionado con:

Etiquetas para este Tema



Sobre CochesRc.com

    Te asesoramos en la compra de un coche de radiocontrol de gasolina. También en la sección Comprar coche de radiocontrol, puedes elegir entre coches de radiocontrol eléctricos baratos. Tambien hay sitio para otras disciplinas, como el aeromodelismo: Aviones Rc, Helicopteros Rc y algunas menos conocidas como Barcos a radiocontrol, Tanques Rc, ... Coche radiocontrol electrico o coche radiocontrol de gasolina? Que saber antes de comprar coche de radiocontrol?

Siguenos en:

Facebook Twitter youtube Google + Contacto RSS Feed