Control e robótica

tecnoloxia.org

Parking

Reto:

parking3

[tecnoloxia.org CC By-SA]

Queremos facer un aparcadoiro cun número limitado de prazas. Un display 7 segmentos indicará  o número de prazas que quedan dispoñibles.

Hai un barreira de entrada e unha barreira de saída. A detección de coches á entrada e á saída faise con sensores ultrasónicos e o movemento das barreiras con servos. Para cada barreira imos poñer un único sensor ultrasónico á entrada: cando detecta un obxecto sobe a barreira e cando deixa de detectar o obxecto agarda un tempo e baixa a barreira.

Cada vez que entra ou sae un coche un contador rexistrará o cambio.

Nesta simulación de Scratch podes ver o que se pretende:
Preme en cada coche para que entre ou saia do parking

Montaxe:

Compoñentes:

  • Arduíno, protoboard, cables
  • 2 sensores ultrasónicos HC-SR04
  • 2 miniservos
  • Display 7 segmentos 1 díxito + rexistro de desprazamento 74HC595

Pins Arduíno:

Sensor entrada Servo entrada Rexistro 7seg:
trig1 = 9 echo1 = 10 8 latchPin = 13
Sensor saída: Servo saída clockPin = 12
trig2 = 5 echo2 = 6 7 dataPin = 11

 

Programa:

proxecto_parking_barreira

Programa inicial para unha barreira [tecnoloxia.org CC By-SA]

Para realizar o programa imos dividir o traballo en dous: Mentres outros fan a montaxe da maqueta, un/unha compoñente do equipo traballará no control das barreiras e outro no display 7 segmentos. Despois xuntaremos todo no mesmo programa.

Necesitades traballar previamente:

Recoméndase crear funcións para cada evento. Por exemplo void lecturaEntrada (){proceso} para a lectura do sensor de entrada, void subirEntrada(){ proceso} para o movemento da barreira de entrada, void Display(byte numero){proceso} para enviar o dato do nº de prazas ao display, etc. Logo no loop() só teremos que invocar estas funcións cando queiramos que se executen.

Non está de máis utilizar a consola para enviar datos do proceso como “distancia entrada = X cm”,  “subindo saída”, etc. Dese xeito poderás detectar erros facilmente, por exemplo, se non se executa unha función ou se executa repetidamente en bucle.

Diagrama de fluxo:

parking-fluxo2

Cando arrancamos o Arduíno os sensores ultrasónicos darán unha lectura = 0, polo que cómpre agardar a que ámbolos dous dean unha lectura maior que 0, pois se non van ordenar abrir a porta antes de que haxa presenza. Como o farías?

Propostas:

Cando todo funcione correctamente podes facer algunhas melloras:

  1. Semáforos: Engade un semáforo ao carón de cada barreira para indicar ao condutor cando pode pasar.
  2. Máis sensores: Para a entrada e a saída o ideal é que haxa un sensor a cada lado da barreira, de xeito que baixe cando detecte que o vehículo xa pasou e non despois dun tempo. Engade outros dous ultrasónicos ao programa.
  3. Pulsadores:  Poderiamos incluír uns pulsadores de emerxencia para poder abrir e cerrar as barreiras no caso de necesidade, aínda que non haxa detección do sensor ou estean todas as prazas ocupadas. Como o farías?
  4. Detector de presencia: Vai ser unha liada de cables, pero é interesante simular os aparcadoiros nos que se indican mediante unha luz verde as prazas que están libres. Que sensor porías para detectar a presenza dun vehículo nunha praza?

Mostra:

Aquí podes ver un vídeo co aparcadoiro funcionando:

Modelos 3D

Para a montaxe deste proxecto deseñamos e imprimimos unhas pezas cunha impresora 3D.

Nesta páxina de thingiverse podes descargar as pezas deseñadas para este parking. Se queres, podes modificalas facendo unha copia desta páxina de OnShape.

parking1

parking4 parking2

parking3 parking5

Imaxes: [tecnoloxia.org CC By-SA]

En tecnoloxia.org/impresion3d tendes información sobre como configurar a vosa impresora e sobre como deseñar pezas con Onshape.

 

Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone


     

Deixa unha resposta

Required fields are marked *.