Índice:
Vídeo: ATTiny-RAT, ATTINY Powered Mini Lightfollower: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Oi pessoal, já faz um tempo desde que postei meu último instrutível. Bem, há muitas coisas passando pela minha cabeça agora, mas consegui documentar meus "primeiros passos" com a série ATTiny de chips neste breve instrutível para você.
Encomendei algumas amostras do ATTINY85 só porque queria testá-las:-) (todo mundo adora testar coisas, certo?) Depois disso comecei a desenhar algumas ideias no meu notebook. Para ser honesto, a primeira coisa que fiz foi piscar um LED que é como sempre um bom começo para verificar se sua configuração / conjunto de ferramentas está funcionando. Também experimentei um registrador de temperatura e umidade com DHT22 e SoftwareSerial. Essa foi complicada porque as bibliotecas DHT são principalmente para 16MHz (se você planeja fazer algo assim, verifique como pré-escalonar o relógio interno). Mas eu decidi mostrar a você algo que é, bem, muito mais engraçado. -P.
Eu só usei coisas que tinha por aí para manter este projeto o mais barato possível (para mim). O resultado desta pequena aventura é um pequeno "robô seguidor de luz" por cerca de 10-15 $ (3 $ para mim:-P)
Portanto, se você estiver interessado em ATTINY, leia mais adiante.
BTW: desculpe pelo meu péssimo inglês (não sou falante nativo)
Etapa 1: Primeiros passos com ATTiny e ferramentas e materiais
O que você precisa para começar:
- um chip ATTiny85
- um Arduino UNO ou similar
- abreadboard com algum jumper-wire ou um programador ATTINY ou faça você mesmo um escudo-programador para o Arduino (verifique as fotos anexas, há um esquema de avdweb.nl). Eu também fiz este e estou muito feliz com ele, a única modificação que fiz foi adicionar um soquete para a série ATTinyx4 (veja a foto e os diagramas de pinagem).
- o IDE Arduino (baixe-o aqui)
- os arquivos de hardware para o ArduinoIDE (baixe e instale-os)
Info-Link para o playgrounddirect Link para os arquivos github que usei
- carregue o Arduino como esboço do ISP no UNO (este será o seu programador)
- siga esta instrução (https://highlowtech.org/) ou este instrutível (por ardutronix) e tente o esboço "piscar" (modifique o PIN Nr. use a imagem ATTINY como referência! você vai precisar do ATTINY a LED pré-piscado e um resistor de ~ 220Ohm para isso)
Faça uma pequena configuração da placa de ensaio para verificar tudo. Se você fez tudo certo, o LED piscará e você está pronto para começar
FERRAMENTAS
- Ferro de soldar - alguma solda - um pequeno cortador de arame - uma dremel ou outra ferramenta rotativa (apenas para cortar o PCB!) - um pouco de cola quente - pinças - fios
MATERIAIS
- PCB de prototipagem (~ 4cmx6cm bastará) - 2x LDR- 5x Resistor 10k (2x para os LDRs e 2x para os transistores BE, 1x LED) - 1x Resistor 330Ohm (1x NEOPIXELS) - 2x LDR- 1x LED (cor do seu escolha, em vez do rodízio) - 3x NEOPIXEL WS2812- 2x Transistor (BD137 ou similar) - 2x Diodo (1N4001 ou similar) - 2x micromotor (por exemplo, de um micro-quadricóptero Hubsan) - 1x ATTINY85 + opcional (recomendado) 8PIN Soquete IC - 1x 1s LIPO (eu usei um 140Ah de um velho helicóptero RC) - alguns cabeçotes de pino / soquetes - tubo retrátil (caixa LDR)
Vamos continuar construindo o hardware …
Etapa 2: Hardware
Se você der uma olhada nos esquemas que anexei, a configuração do hardware é bastante simples. Portanto, se você é capaz de ler esquemas e usar um ferro de soldar, isso é metade do truque. Também dê uma olhada nas fotos, adicionei algumas notas para vocês.
Não forneço um plano para cortar o PCB, você tem a liberdade de fazer seu próprio design (seja criativo e nos mostre seus Tiny Bots). A colocação de todos os componentes eletrônicos também depende de você. Algumas dicas do meu lado:
Tente alinhar os motores com precisão (observe o ângulo!), Usamos apenas o eixo do motor em vez das rodas. (isso vai consumir menos energia) Eu recomendo colocar os motores sob a bateria (peso) e usar os LDRs na frente (ângulo de 45 °) emparelhados com um LED (estou tentando usar essa combinação para evitar obstáculos, mais são necessários testes).
Além disso, eu recomendo fazer um pequeno jumper on / off para que a bateria não se perca tão facilmente.
Se houver alguma dúvida ou se você tiver dúvidas, pergunte-me. Não vai adiantar muito fazer uma tese desse pequeno projeto.
Etapa 3: Software
Primeiro de tudo, baixe e instale ADAFRUIT Neopixel Library
Aqui está meu código com algumas descrições principais (também adicionei o arquivo de esboço). Não comentei cada passo porque acho que não é necessário.
Carregue o esboço em seu ATTiny85 e divirta-se com seu novo brinquedo
Idéias para a função de "personalidade" + talvez exemplos de código são muito bem-vindos:-)
Se houver alguma dúvida, fique à vontade para perguntar.
Espero que tenham gostado do meu curto instrutivo e da pequena viagem ao mundo dos ATTINYs.
/ * ATTINY85-Rata Robô simples movido a luz ATTINY85. Versão 2.0, de Auer Markus * /
#incluir
#incluir
// motores
# define LMOTOR 0 # define RMOTOR 1 // LEDs # define PIXELPIN 2 # define NUMPIXEL 3 // LDRs # define LLDR A2 # define RLDR A3
// otherint emo = 0; float calib; emostate booleano; long oldmillis; // define NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
void setup ()
{// clock upscale, caso contrário, você encontrará alguns problemas de tempo (a lib de neopixel é escrita para 16 MHz) #if definido (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set (clock_div_1); #fim se
// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, SAÍDA); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // inicializa os pixels PIXEL.begin (); PIXEL.show (); atraso (500); // sequência inicial para (int i = 0; i
void loop ()
{if (lightfollow () == 1) {left (); } else if (lightfollow () == 2) {right (); } else if (lightfollow () == 0) {forward (); } emoção (); }
int lightfollow () {
limite interno = 14; resultado int = 0; flutuar para a esquerda = 0; flutuar para a direita = 0; amostras int = 1; // ler LDRs para (int j = 0; j <samples; j ++) {
esquerda = esquerda + leitura analógica (LLDR); direita = direita + (analogRead (RLDR) * calib);
}
// calcule o resultado (de qual direção a luz vem?)
if ((esquerda / amostras)> ((direita / amostras) + limite)) {resultado = 2;}
else if ((esquerda / amostras) <((direita / amostras) -limite)) {resultado = 1;}
senão {resultado = 0;}
resultado de retorno; } void forward () {// Forward analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }
void left () {
// LEFT analogWrite (LMOTOR, 150); analogWrite (RMOTOR, 255); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); //PIXEL.setPixelColor(1, PIXEL. Color (75, 0, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 100, 0)); PIXEL.show (); }
void right () {
// RIGHT analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }
// isto é para mais experimentos, tentando dar a este aqui um pouco de personalidade:-) estou testando o que poderia ser capaz de fazer, mas ainda não tenho boas idéias.
emoção vazia () {int emotimer = 2500; duração interna = aleatória (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = aleatório (1, 4); } if (millis () - oldmillis> duration) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); pausa; caso 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); pausa; caso 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); pausa; padrão: PIXEL.setPixelColor (1, PIXEL. Color (random (0, 255), random (0, 255), random (0, 255))); PIXEL.show (); pausa; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}
Recomendado:
Muscle Powered Flappy Bird: 9 etapas (com fotos)
Muscle Powered Flappy Bird: Você deve se lembrar de quando Flappy Bird conquistou o mundo de assalto, tornando-se tão popular que o criador o removeu das lojas de aplicativos para evitar publicidade indesejada. Este é o Flappy Bird como você nunca viu antes; combinando algumas composições prontas
Mini IMac G4 Flat Panel - Powered by NUC: 9 etapas (com fotos)
Mini IMac G4 Flat Panel - Powered by NUC: IntroduçãoEu corri alguns projetos que foram a inspiração para esta construção. Um afirma ser o menor iMac funcional do mundo, mas na realidade é um Raspberry Pi rodando uma distro Linux com um tema MacOS e não pode rodar M de verdade
Rato DIY Lipo Powered: 6 etapas
DIY Lipo Powered Mouse: Neste projeto Modify it iremos modificar o mouse wireless alimentado por bateria aa e transformá-lo em um mouse wireless usb carregável. Quero fazer este projeto porque uma bateria não dura muito para mim. E está sem bateria rapidamente. Então eu escolho o
Relógio de bolha de ar brilhante; Powered by ESP8266: 7 etapas (com imagens)
Relógio de bolha de ar brilhante; Alimentado por ESP8266: “relógio de bolhas de ar brilhante” exibe a hora e alguns gráficos por bolhas de ar iluminadas no líquido. Ao contrário do display de matriz de LED, bolhas de ar brilhantes vagarosamente à deriva me dão algo para relaxar. No início dos anos 90, eu imaginei "display de bolha". Unfo
Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker: 6 etapas
Rastreador COVID19 de mesa com relógio! Raspberry Pi Powered Tracker: Sabemos que podemos morrer a qualquer momento, até eu posso morrer enquanto escrevo este post, afinal, eu eu, você, todos somos mortais. O mundo inteiro tremeu por causa da pandemia COVID19. Nós sabemos como prevenir isso, mas hey! sabemos como orar e por que orar, sabemos