Giter Club home page Giter Club logo

steering_wheel_uno's Introduction

Steering Wheel UNO

Este shield foi desenvolvido para o Arduino UNO, baseado em uma publicação do Laboratório de Garagem e tendo como base a biblioteca UnoJoy.

Baixar arquivos Gerber


Shield Sterring Wheel

📌 Resumo

Este shield foi desenvolvido para utilização em joysticks de simulação, utilizando o CI 74HC165 (registrador de deslocamento com saída serial) destinado a aumentar o número de portas do Arduino UNO. O shield conta com 4 saídas analógicas, destinadas ao volante, acelerador, freio e embreagem, além de saídas digitais para os botões direcionais, home, freio de mão, buzina, paddle shift (cambio borboleta) e câmbio manual. O dispositivo foi criado tendo como base a biblioteca UnoJoy, estando limitado aos inputs suportados por esta biblioteca.


🛠 Hardware

Shield Sterring Wheel Top and bottom

O shield tem 53mm x 69mm de dimensões, com 4 layers, cobrindo todo o Arduino UNO. Em virtude disto, o dispositivo dispõe de um LED de 5mm ligado ao pino 13, onde serve de extensão do LED interno do Arduino, facilitando a visualização de sinais de aviso emitidos. O LED é um componente opcional.

Componentes utilizados

  • 8x resistor 10k;
  • 5x conector KK Macho 3 vias;
  • 2x conector KK Macho 2 vias;
  • 1x conector KK Macho 6 vias;
  • 1x conector KK Macho 9 vias;
  • 1x Led;
  • 1x CI 74HC165;
  • 3x Potenciômetros 1k;
  • 1X Barra de pinos*

*A barra de pinos é necessária para realizar a conexão entre o shield e o Arduino


🔌 Conexões

Shield Sterring Wheel Top

  • STRG – Entrada analógica do volante;
  • CLUT – Entrada analógica da embreagem;
  • BRAKE – Entrada analógica do freio;
  • ACCEL – Entrada analógica do acelerador;
  • HBRAKE – Entrada digital do freio de mão;
  • HORN – Entrada digital da buzina;
  • STRG_BUTTONS – Entradas digitais direcionais;
  • GEAR_PINS – Entradas digitais câmbio manual;
  • PADDLE_SHIFT – Entradas digitais cambio borboleta.

📝 Sketch

O projeto conta com um sketch demonstrativo onde é documentada a utilização biblioteca UnoJoy para transformar o Arduino em um dispositivo USB. O código ainda conta com uma função para realizar a leitura de dados seriais recebidos do CI 74HC165.

Leitura de dados do CI 74HC165

O CI 74HC165, responsável pela leitura de dados do câmbio manual, é um registrador de deslocamento com 8 entradas digitais e 1 saída serial, onde a leitura dos dados é realizada de forma paralela. As entradas do 74HC165 precisam ser setadas para nível logico baixo, através de 8 resistores de pull-down de 10K, passando para nível lógico alto quando um botão é pressionado (para mais informações consulte os diagramas.

O CI 74HC165 está conectado ao Arduino Uno por 4 pinos, sendo eles:

Arduino 74HC165
Clock_in Pin 12 Pin 2
Data Pin 11 Pin 7
Clock_Enb Pin 10 Pin 15
Load_In Pin 9 Pin 1

Código

Após declarar os pinos de entrada do CI no Arduino, é iniciado um pulso no pino Load, que irá carregar os dados retirados da entrada paralela em um buffer. Em um próximo passo, o CI é configurado para realizar a leitura utilizando a função shiftIn, configurado com o bitOrder em MSBFIRST (Bit mais significativo). Para finalizar, o pino ClockIn é setado para nível alto, informando que a leitura foi finalizada, retornando a leitura dos dados.

Código de pulso de clock

void pulsePin(int pulse_clock){
  // Gera um pulso de clock no pino Load [CI 74HC165]
  digitalWrite(LoadIn, LOW);
  delayMicroseconds(pulse_clock);
  digitalWrite(LoadIn,HIGH);
  delayMicroseconds(pulse_clock);
}

Código de leitura de dados

byte getGear() {
  // Recuperando os dados do CI 74HC165 e realizando o shiftIn
  digitalWrite(ClockIn, HIGH);
  digitalWrite(ClockEnb, LOW);

  byte data = shiftIn(DataIn, ClockIn, MSBFIRST);

  digitalWrite(ClockIn, HIGH);
  // Retornando leitura dos 8 pinos do 74HC165 (1 byte)
  return(data);
}

📚 Leitura recomendada


📝 Licença

Este projeto está sob a licença Apache.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.