Como sair da sala de escape

O artigo é em parte um aviso de suposições, sem excluir as quais o desenvolvedor pode sentir todas as suas desvantagens, em parte uma tentativa de explicar o que o cliente pode querer de você, em parte o trabalho sobre erros ou o reconhecimento de "enganar a si mesmo". Cuidado: DotA à frente: "Não sou um nerd!", Além de apresentações hábeis sem a ajuda de tapetes. Continuando a ler, você corre o risco de formar a opinião de que o autor é um animal absolutamente repugnado que não conhece piedade, medo e misericórdia. Apenas considere que todo mundo tem o direito de ser imperfeito, e tudo ficará bem conosco. Por favor e obrigado.

Foi realizado um trabalho de automação da sala de fuga, cujos detalhes, como de costume, serão omitidos. Esse trabalho durou mais de um ano e, inicialmente, havia falhas realmente tangíveis em vista da falta banal de experiência, mas depois tudo se transformou em um gerenciamento não ideal. Os clientes (chamem-nos, digamos, Goodwin e Urfin) estavam envolvidos principalmente no componente cosmético do projeto, trabalharam de e para, depois de focarmos na lógica e na implementação em si, porque as portas e os objetos estavam prontos e tivemos que garantir que eles se mudaram. O tempo começou a esmagar e, em algum momento, dormimos 5 horas por dia.

Obviamente, é necessário desfocar os detalhes para manter o sigilo, mas é muito concreto para eu lembrar e não será bem-sucedido, porque eu interrompi qualquer trabalho nele há mais de cinco meses. Todos os dias havia trabalho suficiente para me permitir abrir uma lata com um sauro com uma faca romba, e os saquinhos de chá eram tão compactos que a lixeira ficava feliz em me ver uma vez a cada duas semanas. Meu quarto se transformou em um poço de ventilação, no qual Rebecca do filme Aliens morava. Ou "Alien 2", como quiser. Se alguém não se lembra, aqui está uma tela com um monte de lixo:

Rebecca the newt

O evento que serviu como gatilho; algo que me fez escrever “gg” no chat e no chuveiro, como não era. Fui visitado por um pensamento claro e claro: preciso de um longo descanso. O transmissor no meu celular entrou em modo avião por 4 meses. Os mesmos quatro meses nas estatísticas de solicitações de rosto, em contato, fóruns nos quais meus dados de cookies poderiam aparecer de alguma forma foram marcados por esse buraco. Ninguém, por qualquer canal, poderia entrar em contato comigo. Eu apenas sentei em uma sala em um zumbido, como ensopado e rolar em um ponto. Ocupação suja, eu sei, mas tive tempo para alcançar a perfeição pelo menos em algum lugar.

Resumindo todo o projeto, posso nomear imediatamente seu principal erro - a falta de uma abordagem sistemática. Eu sei que o Space Odyssey usou uma placa de interface especial que fornece interação periférica com TCP / IP. Eu não tinha essas placas, apenas um punhado de Arduino, que no final eram necessárias para algumas coisas completamente simples. Tentamos reduzir todo o possível ao gerenciamento de um simples 0 ou 1, knock-down, como dizem os microcontroladores. Isso reduziu a carga no servidor central montado no Mega2560 para receber e emitir informações na Web com o menor atraso. A lógica da busca foi reescrita de Wiring para JavaScript, mas isso levou a freios, porque o JS é executado em um sistema não-RTOS; como resultado, a lógica foi reescrita para seu próprio formato (xml, que orientava o aplicativo Java), embora seja geralmente ingênuo acreditar que isso deu algo, porque ainda está sendo executado no ambiente Windows. Em geral, algo aparentemente já depurado costumava ser refeito neste trabalho, onde alguns batentes subitamente saíam e, inicialmente, o artigo foi escrito sobre isso; mas agora é sobre o fato de que a implementação da lógica é realizada pelo aplicativo em Java, mais precisamente - sobre os motivos e pré-requisitos para isso.

Por que Java e não JS? Não faço ideia, foi escrito por outra pessoa, aparentemente este instrumento é mais familiar para ele. Tendo recebido uma mensagem do grupo Whatsapp sobre o meu fracasso em aparecer para esclarecimento de detalhes, esse homem enviou uma foto de Picard ao grupo com a mão na cabeça, mas se soubesse que naquele momento eu absolutamente não me importei - acho que ele poderia entender. E tentaremos descobrir como isso aconteceu. Agora, os possíveis latidos uns para os outros não são mais irritantes: “eles são inadequados, não obedecem aos requisitos, não cumprem as normas e normas operacionais, colocam o equipamento em modos inaceitáveis, questionam minhas qualificações a cada frase”, “ele é inadequado, incompetente, para concluir o projeto não é talvez quebre os prazos, as alterações constantes, algum tipo de auto-fabricação que não seja como a de todos os outros "etc. etc.

Enfurecido e suficiente. Goodwin e Urfin ainda são fantasmas, mas a última coisa que me passou pela cabeça é arruinar intencionalmente os negócios deles. Não receberei nenhum benefício, mas, apesar dos danos, assim - não para o bem comum. Então, por que piorar o mundo? Penso que a prioridade deles não é particularmente alta para a tarefa de me encantar e organizar anti-publicidade, para que ninguém nunca entre em contato comigo. É improvável que essa tarefa tenha sido definida. A experiência é um professor severo, e você precisa encontrar força para seguir em frente. E o mais importante é usar essa experiência. Parte dessa experiência, pelo menos a que me lembro - ouso ter esperança, transmitirei a você, caro leitor.

Raramente nos cobríamos de obscenidades, mas ainda assim o clima era mais ou menos. Para não enlouquecer, tive que usar o mais difícil de tudo que você poderia executar no trabalho - guias do VJLink e fluxos de Karina. Sim, sim, eu lembro: eu não sou um nerd, sou apenas um animal. É claro que sei que esses dois são imbecis clínicos: não pense que um deles é um professor espiritual para mim; A itpedia é muito mais adequada para esse papel. Mas, de alguma forma, nos distraímos da busca, pensamentos ao longo do caminho que se resumiam a "sim, vi de novo, tanto quanto possível, quando termina". Em geral, a falta de entusiasmo em qualquer projeto se reflete da maneira mais desagradável. Quem precisa suar quando Slark em seu time está 0-7? Assim está aqui: se todas as tarefas, todas as soluções implementadas o encontrarem com uma falha, toda a esperança derreterá. Sente-se e vou compartilhar algumas idéias sobre como evitar isso. Além disso, gostaria de ver mais desses truques nos comentários. Qualquer experiência é subjetiva, mas é um grande volume de precedentes que lhes permite generalizar e analisar. Estudar. Cometi muitos erros, mas ainda nem tudo era possível. Provavelmente, um dos leitores se deparou com outra coisa, mas em geral algo semelhante. Compartilhe sua experiência, tudo será grato a você.

Minhas regras


  • Todos os sensores devem ter uma indicação.
  • Todos os comparadores devem ter histerese.
  • Todas as torções devem ser soldadas.
  • Todos os fios de energia devem ser grossos.
  • Todos os fios de sinal devem ser blindados.
  • Todos os fios com tensões superiores a 40 V devem ter melhor isolamento do que apenas um par embotado. 220 sobre par trançado ou macarrão - Moveton.
  • Todas as saídas devem ter um coletor / dreno aberto.
  • Todas as entradas devem receber sinais pelos loop / optoacopladores atuais.
  • Todos os dispositivos que realizam recepção e transmissão assíncrona devem ter um modelador de pulsos redefinido e um cronômetro de vigilância para estar pronto para receber a qualquer momento.
  • Todos os dispositivos de comutação devem ter circuitos de supressão de faísca. Relés, especialmente, contatos fixos não são divertidos.
  • Qualquer mecânico mais pesado que um quilograma adora uma caixa de câmbio. As pessoas que colocam o motor diretamente no tijolo, sem uma caixa de câmbio - sabem: a mão de Satanás ultrapassará qualquer um. Apenas se danem: 3
  • Todas as cargas indutivas devem ter um diodo anti-paralelo para suprimir o CEM de auto-indução. Se a corrente puder fluir em ambas as direções (bloqueios de abertura / fechamento do atuador automático, motor etc.) - em vez do diodo, o capacitor será de 0,1 μF.
  • Resistores, transistores e optoacopladores não são supérfluos.
  • Os resistores em espécie não são supérfluos, especialmente onde há um conector ISP.
  • O conector do ISP deve ser tal que não possa ser inserido de cabeça para baixo.
  • As baterias não gostam de descarga profunda. Não importa o que seja.
  • Baterias usadas - especialmente.
  • A estabilização do quartzo é boa e positiva, como Sergei Simonov. Agitar 555 em aplicações de tempo crítico é ruim e negativo.
  • Um cabo é sempre melhor que um rádio.

Sensores de movimento, telémetros, interruptores de palheta e sensores não são sensores de presença


Embora esteja escrito na descrição do produto HC-SR501, mas não. NÃO detecta presença. Ele determina os distúrbios no padrão de interferência, que o sensor vê através da lente Fresnel. A presença de uma pessoa em uma determinada área é determinada pela interrupção do feixe de infravermelho, além disso, com um foco estreito e depois com reservas. Originalmente, pretendia-se usar um telêmetro ultrassônico. Infelizmente para o telêmetro, as paredes da sala eram feitas de poliestireno pintado com uma cartilha. As reflexões eram monstruosas; além disso, no extremo oposto, havia um segundo telêmetro ao virar da esquina (sim, leitor, estávamos presos ao uso do sistema de bandeiras e proibindo a operação simultânea dos dois sensores, mas ainda assim). Em geral, as leituras desses sensores acabaram se aproximando da verdade apenas por acaso divertido, bem, ou graças às condições de "estufa", quando os emissores não eram direcionados para a sala de trabalho, mas para algum lado, onde no fundo havia uma mesa de madeira, um pano macio ou algo não brilhante, absorvendo efetivamente.

Infelizmente, não havia tempo para comprar um telêmetro infravermelho, tanto para comprar quanto para testar (embora a quem tenha sido informado nesse momento). Portanto, os receptores de infravermelho em uma parede e os LEDs em outra foram colocados nas paredes da sala. Não havia brincadeira para torná-los visíveis, porque destruiria a atmosfera, e é por isso que os sensores de obstáculo, tão amarelos, com um resistor variável na parte traseira, não foram usados ​​- eles funcionaram bem, mas na frente havia uma luz vermelha avermelhada, do LED que é como IR, mas não completamente - menor que 808 nm. Talvez o 780. Em geral, você pode vê-los como luz de fundo nas câmeras. Além disso, como não havia alcance suficiente, eles normalmente determinavam as pessoas em apenas 45 cm. Portanto, eu tive que fazer o meu caminho.

Estiveram presentes o VS1838 (a propósito, ainda era universal) e o TSAL6200, inserido em tubos feitos de buchas plásticas. Não deu certo. Em robocraft (desculpe, não considere isso para publicidade), os fototransistores IR com duas saídas são vendidos, parecem um LED transparente, custam 15 rublos ou mais, sua resistência diminui acentuadamente quando iluminada com luz estável e não modulada de 780-1000 nm, e era necessário usar eles. Mas eles não são comprados há um ano. Mas eu tinha um monte de VS1838, arrancado de utensílios domésticos chineses para despensas, que não sabem - este é um análogo tão pequeno, menos sensível e mais barato do TSOP1738. Como todos sabemos, 1738 contém um demodulador, um filtro e um AGC. Portanto, neles é impossível brilhar com luz não modulada, pois o sensor será apenas uma iluminação de fundo. Em geral, o envio de rajadas de pulsos da freqüência necessária para os LEDs não foi difícil, você só precisa usar a saída direta para a porta (porque digitalWrite () é muito lento para isso) e retarda os microssegundos (27). 27 μs é algo em torno da metade da portadora de 38 kHz transportada pelo sensor. No entanto, não se pode simplesmente captar e brilhar a 38 kHz, como um sinal AGC é considerado ruído; portanto, era necessário dividir 38 kHz em rajadas de pulsos para que o sinal não fosse cortado. Curiosamente, não foi observada iluminação parasitária dos sensores vizinhos (havia seis no total, a distância entre eles era de cerca de 35 cm), não houve quedas especiais no brilho, o que levou à sensibilidade subestimada de alguns sensores individuais também, mas mesmo assim. Não. Ra. Bo. Aquele. Lo.

Podemos ficar confusos com este tópico, discutir a não otimização do programa (porque, então, por que o programa de diagnóstico no qual o sensor separado interferente foi selecionado funcionou perfeitamente e perfeitamente?), Mas isso está além do escopo do tópico. Só posso dizer que raramente cometo erros. Se eu torcer seis fios de sinal em um pacote - eu sei: a saída deles é um coletor aberto, no pacote eles não se afetarão de forma alguma . Eu sei que cada sensor tem seu próprio capacitor de 0,1 μF em paralelo com a fonte de alimentação, que cada LED tem seu próprio resistor separado e que vários LEDs são pendurados em paralelo em um resistor, apenas finalizados. Portanto, não vamos insistir nisso, era necessário usar fototransistores e aplicar corrente direta aos LEDs. Só isso. Além disso, cada um em um tubo para evitar reflexos espúrios. Poderia funcionar, apenas em um certo estágio a decisão necessária não foi tomada.

RFId não é eterno, no pensamento não é infinito


O receptor RFId possui sua própria área de leitura muito pequena. Para os bons receptores, é de cerca de 7 cm. Para os piores, é de 4 cm. A bobina pode ser rebobinada (a principal coisa a considerar é que a frequência ressonante não vai muito longe de 125 kHz), mas novamente - não para qualquer tamanho. No entanto, é possível aumentar seu diâmetro em 2-2,5 vezes. A ação envolveu três objetos autônomos que podem estar em qualquer lugar que precise ser identificado. O tamanho de dois desses itens estava próximo das dimensões da fonte de alimentação ATX, respectivamente, o diâmetro da bobina era dezenas de centímetros, então tive que abandonar a opção com o RFId.

Aqui, novamente, o canal de infravermelho ajudou, não apenas com esses LEDs poderosos, mas mais fracos (pelo contrário, era necessário que o sinal fosse recebido apenas nas imediações dos receptores). Em um dos objetos, 11 LEDs são murados, brilhando em todos os tipos de ângulos, porque o objeto é redondo. O outro possui uma alça de madeira, portanto, existem apenas três LEDs, pois não há necessidade de brilhar na direção da alça, ela ainda fica presa, onde não há receptor. O terceiro assunto é pequeno o suficiente e, talvez, no caso dele, alguém pudesse prestar atenção ao RFId novamente, mas as dimensões ainda eram incomparáveis ​​com a área de leitura.

Todos os itens são alimentados por 18650 baterias com capacidade de 2000 a 3400 mAh. Onde 2000, usado. O princípio do IR é simples - esperamos um longo período de tempo (segundos), emitimos um sinal quadrado de 38 kHz um pouco mais que um milissegundo, para que o receptor funcione e dê um zero claro na saída. Repita a gosto. Inicialmente, isso foi feito por dois cronômetros de 555x, é claro que o tempo se arrastou para o meio do nada, é claro que eles esqueceram de desligá-lo e o cronômetro sempre quer comer, e ele não precisa usar 20 mA de qualquer maneira, naturalmente, dois bancos usados ​​não gostam disso.

Os itens tiveram que ser abertos (sim, os membros de silicone de um zumbi, granada F1 de ferro fundido sem uma única costura, pense por si mesmo), embora não demorasse tanto tempo. Bem, um total de uma semana foi transportado. Os temporizadores foram substituídos por atmega8, o código IRRemote não se encaixava lá (embora engraçado, depois de um tempo consegui montar um esboço para o envio, e o compilador não mostrou nenhum erro com o atmega8 selecionado - talvez eu já tivesse uma nova versão da biblioteca). Por que 8? Bem, barato, além de 328 não estava disponível. O programa simplesmente emitiu rajadas de pulsos com a pausa necessária e, após 7000 segundos, adormeceu, colocando todas as saídas em um estado de alta impedância e desligando tudo o que era possível para reduzir o consumo de corrente a dezenas de microamperes. Funciona e o problema está resolvido.

No lado receptor, três sensores acionam três condições. Após a chegada do impulso, o contador inicia e o carimbo de hora (milis) é salvo. Se o próximo pulso chegasse ao mesmo sensor e o contador atingisse n1 - o primeiro item, n2 - o segundo e assim por diante. Se n for grande o suficiente e o sinal ainda estiver ausente, aparentemente o sinal foi aleatório e o contador será redefinido. Eu não acho que isso seja algum tipo de mega super algoritmo, mas resolve alguns problemas:

  1. Anexar muito (ou seja, mais de um) de um receptor de infravermelho a um controlador não é tarefa dos noobs. Sim, mesmo no mega2560. Sim, existe um garfo com vários sensores do IRRemote. Sensores únicos e um sistema de condições fabricado por você - mais fácil.
  2. Houve alguns problemas ao escrever o código IRRemote no atmega8. Sim, você pode escrever um pacote RAW, formar uma matriz a partir dele e emitir novamente funções de baixo nível e atrasos de microssegundos, mas havia algo muito preguiçoso.
  3. Os sensores têm fios longos, você nunca sabe. Longo é mais de dois metros.

O conector DC-05 (conector de alimentação do Arduino) permite redefinir o tempo de contagem regressiva - se você inserir um conector nele, dois dos três contatos se abrirão, cortando a energia. O terceiro item não possui um conector (é autêntico demais para isso), mas também a redefinição não causou problemas - a bateria é carregada pelo TP4056, possui uma saída CH, um zero no qual indica o processo de carregamento - está conectada à redefinição. O TP4056 recebe energia sem fio através de uma bobina - nós a colocamos no suporte de carregamento - é o mesmo que inserir o conector, tudo é redefinido. Removido - a descarga não é puxada para o chão, os impulsos podem ser considerados. Contados - adormecem, profundamente e por um longo tempo; para desativar a bateria, você deve esquecer de carregar essa coisa por um ano. E então, é dobrável. Esses itens foram a solução mais bem-sucedida, que veio quase imediatamente, embora com algumas danças.

Caramba! Assinatura de dispositivo inválida. Verifique as conexões e tente novamente ou use -F para ignorar ...


O erro mais vil de toda a minha prática. Você não tem idéia de qual é o problema. Aqui estão as situações que surgiram em mim:

  1. A ordem dos fios MOSI (D11), MISO (D12), SCK (D13) é misturada.
  2. Em vez de capacitores de 22 pF, outra coisa é soldada perto do quartzo. Uma vez, em vez de um deles, acabou sendo um resistor de 1k. Inscrição soldada para baixo.
  3. Todos os seis fios devem estar intactos. Sempre carregue o testador (como um conector), sempre toque do conector até os pés do controlador (ninguém cancelou os defeitos de estrada na placa). Ou até dos pés do controlador mestre (no programador) aos pés do escravo.
  4. Suponha que a placa seja alimentada por 12 a 7805. Os desvios do programador e do 7805 devem estar conectados. Sim, todos os 6 fios estão em contato, mas verifique novamente.
  5. Controlador inválido selecionado.
  6. O controlador correto está selecionado, mas sua assinatura ainda é diferente. Aqui está o que eu escrevi para o mega328 em hardware \ tools \ avr \ etc \ avrdude.conf:

    # signature = 0x1e 0x95 0x0f; #tqfp32 # signature = 0x1e 0x95 0x14; #dip28 

    Com o que trabalhamos, descomente.
  7. Os fusíveis são montados em quartzo externo (mais de 8 MHz), o que de fato está faltando. Aqui sempre tem um cachecol com quartzo e dois capacitores e três fios. Além disso, sempre inclua blocos no quadro que vão para XTAL1 e XTAL2. Mesmo que seja definitivamente a 8 MHz, a partir das baterias. Mesmo se "apenas piscar uma vez, você simplesmente não pode esquecê-lo." Tanto quanto possível.
  8. Mágica pura? Outro, exatamente o mesmo quadro, montado novamente, funcionou.

Credibilidade da luz


Não use fita tricolor para efeitos de chama. As chamas contêm luz amarela ou vermelha em várias proporções. Só isso. Tente usar a combinação R + G para obter o amarelo - a chama ficará verde. Tente aumentar o brilho adicionando azul “branco” - a chama será azul, azul ou violeta-pêssego, se o amarelo for suficiente. Não é necessário aplicar cores frias como componentes das cores primárias; em geral, fisicamente, não deve haver LEDs verde e azul nessa fita. Nem um pouco da palavra. Esta decisão é a mais malsucedida. Provavelmente, a fita nos equipamentos Goodwin e Urfin ainda decidem mudar. Existem canais suficientes lá, isso também é controlado pela autopropulsora atmega8, na verdade a mini placa Pro, que ao mesmo tempo possui três transistores de potência para saídas compatíveis com PWM. Duas fitas amarelas e uma vermelha serão as mais. Todos os três são aleatórios. É uma pena que um circuito RNG tolerante em um diodo de ruído não tenha atraído minha atenção, embora os ops pseudo-aleatórios atmega8 pareçam tolerantes. Mas não com verde na fita.

Luz estroboscópica


O relâmpago é um fenômeno nobre, de qualquer forma, para aumentar a pressão atmosférica, mas não é tão exigente quanto parece. É mais fácil trocar um quadrado de 1x1 m colado com fita (80 metros, 96 amperes a 12 volts, quase 1,2 kW) do que atear fogo a uma lâmpada de flash de 10 kV com um pulso a uma corrente de miliamperes. Porque Porque a interferência é de banda larga. O estroboscópio no momento do flash pisca em cinza sempre que possível; uma faixa clara será visível em todo o espectro. Flash. Como removê-lo não está claro. Um estroboscópio conectado através de um filtro de linha trava com segurança o W5100 e o arduino. A única experiência bem-sucedida sobre esse tópico foi feita com a bateria. Existem duas maneiras de desatar o estroboscópio da rede principal.

Método um:

  1. Ligamos o flash para carregar o capacitor de trabalho. Dois relés, será necessário cortar os dois fios de energia da tomada.
  2. Nós desconectamos.
  3. Aplicamos tensão na bobina de ignição, via rádio ou através de um acoplador óptico.

A segunda maneira:

  1. Remodeamos a potência do estroboscópio para baixa tensão, para que ele não se conecte à tomada.
  2. Aplicamos tensão na bobina de ignição, via rádio ou através de um acoplador óptico.

O estoroboscópio deve ser cuidadosamente blindado. Em torno do transformador de ignição é geralmente útil soldar uma caixa de material de alumínio, portanto, apenas por precaução. E não é fato que, de novo, algo não irá depender de você. Enquanto isso, trabalhadores de campo poderosos trabalham normalmente em frequências de até 100 kHz, ligam 80 metros de fita a 100 µs - não ... como dois dedos ... ... bem, em geral, não consigo escolher a expressão certa, o principal é estocar capacitores para que o PSU não jure. E a interferência será de baixa frequência e é muito mais fácil filtrar. Bobinas de choque, eletrólitos, bem, em geral você entende. Entendo que esse não é um exemplo mais caro que uma lâmpada de flash, mas é mais fácil trabalhar.

Dimmers 220


Talvez os criadores não tenham encontrado isso, ou talvez tenham encontrado apenas um canal, e na rede tenham se esquecido de mencionar que a tensão de um regulador de uma fase pode fluir para o segundo, se estiverem próximos. É tratado por um filtro de rede. Nas microondas, é tão ferro, no caso está escrito EMI Filter.

Sensor do ar de sobrealimentação


O sensor é simples, é uma cortina móvel feita de fibra de vidro estanhada, cujo movimento é limitado pela goma de pesca. Por que não elástico por dinheiro? - a pesca é mais durável. O ar entra através de um tubo com um diâmetro de cerca de 2 cm. Talvez um impulsor com um codificador / ímãs + sensores Hall, um sensor de pressão, etc., tivesse entrado aqui, mas isso não estava disponível (lol, um ano se passou, até agora eu estou queimando isso desculpas pela disponibilidade), bem, eu queria tornar o sensor o mais carvalho possível, para que os fios compridos pudessem chegar nele. Não é muito agradável, você sabe, na lição "arrastar SPI ou i2c a 7 metros dos arduinos, 7 (sete) metros, Karl".

Geralmente considero o sensor bem-sucedido, mas tem uma desvantagem. Esta desvantagem reside no perfil temporal especial (isto é, temporal) do sinal, o envelope ADSR, por assim dizer. Existem várias opções, como exatamente o ar entrará no sensor, como soprar nele. Você pode soprar muito tempo, você pode brevemente, frequentemente / raramente e assim por diante. Portanto, precisamos de um período de tempo preciso que limite o acionamento do sensor àqueles e somente aos casos em que o zero der origem a ele, por algum tempo, e após esse período o zero deverá se tornar uma unidade, novamente não menos que algum tempo. Parece algumas condições, mas, na verdade, acabou sendo difícil selecionar esses quadros, e uma diferença de cerca de 100 ms mudou diametralmente a lógica de resposta do sensor. Obviamente, não havia osciloscópio para fazer as leituras necessárias durante uma explosão de modelo e depois ajustar o sistema de condições para elas. De uma forma ou de outra, a configuração se resumia a duas ou três semanas de trabalho e não havia truques especiais lá. Até os fios não rasgaram.

Falando em fios


Este é, na maior parte, um STP de par trançado de alumínio banhado a cobre, com uma tela de alumínio. Anteriormente, havia um par UTP de cobre, mas quase todo era substituído por um par blindado. Em primeiro lugar, o vazamento parou por algum motivo nos sensores, que anteriormente levavam a falsos alarmes, e em segundo lugar - é muito mais calmo. Verdadeiro bimetálico, mas tudo bem. Foi permitido à estupidez o número de vezes que o técnico que trabalhou com o projeto antes de mim - ele gastou tudo com seu par UTP. Incluindo os fios das lâmpadas, que eram originalmente 220. Em seguida, colocam lâmpadas com um fio longo, consumindo corrente insignificante, e isso, em princípio, em geral, se você não dá a mínima para segurança, é permitido. Mas a luz das lâmpadas de Goodwin com Urfin não funcionou e as substituímos por fita, fornecendo 12 em vez de 220. Como as lâmpadas já estavam instaladas, havia um cartucho E27, e acabamos de fazer alguns lenços no mega8, para o qual esses cabos arrancados foram arrancados com lâmpadas economizadoras de energia. Tudo parece ser o caminho, mas em uma parede do cartucho havia uma polaridade e na outra parede - outra polaridade, e foi divertido mudar o 7805 com falha quando as lâmpadas foram misturadas. Desde então, as inscrições foram queimadas sobre eles com um ferro de soldar, de onde veio. Então Urfin e Goodwin queriam controlar essas lâmpadas, e foi fascinante e divertido explicar-lhes exatamente como e quais opções de controle quantos canais eles têm, em dois fios, dois dos quais são fios de energia. De alguma forma eles riram, mas não discutiram, isso é uma vantagem para eles no karma. Voltaremos a esse aspecto, mas por enquanto vamos continuar sobre os fios.

Em geral, muitas decisões interessantes estão relacionadas a elas, porque tudo foi construído e conectado ao mesmo tempo, eu entendo que tudo era pelo bem do pintor de casa Petya, que não deveria fumar e ser estúpido, esperando o pedreiro Vasya, mas um pouco mais hipoteticamente poderia fornecer um pouco mais de perguntas. Os termos de referência como tais nasceram no decorrer do trabalho, mas atribuímos isso à noobilidade e falta de experiência. As consequências disso são: 8 metros de fita, este é um minuto, quase 10 amperes, alimentado por um núcleo de um par UTP. Para o crédito deste núcleo, ele pode suportar essa corrente (spoiler: nem todas) e nem mesmo quente, mas apenas graças à modulação, bem como ao cobre monolítico real, sem bimetálico. No entanto, se a modulação parar e houver uma no obturador do campo, o campo não se importará. Depois de uma hora desse regime, o isolamento derreterá, e os caras da Terra Mágica de Oz se divertirão escolhendo o fio, porque é concreto no chão. Bem, eles não sabiam que no futuro eles decidiriam colar tanta fita lá, bem, com quem isso não acontecer. É claro que tudo precisará ser puxado da força de 70 centímetros, mas mesmo assim ...

Alguns dos fios mais tarde se mostraram desnecessários. Parte dos fios é um cabo de TV coaxial para câmeras (é claro, não IP) e microfones. Quando decidimos arrastar um pouco o DVR, descobriu-se que os cabos das câmeras e microfones precisavam ser aumentados. Depois, descobriu-se que os cabos que tentam empurrá-los com força para o papelão ondulado geralmente quebram no lugar da solda. Alguns dos pares trançados se divorciaram antes de mim, e o então Dr. Emmett Brown decidiu que seria ótimo transformar os contras de um cabo em um par azul e marrom, no outro azul e verde. Eu estava acostumado a desenroscar pares e transformar todos os fios brancos em menos e em mais - todos os fios coloridos. Bem, você vê, é mais difícil misturar polaridade. Para descobrir mais tarde essa polaridade de cabos pendurados e cortados - era apenas uma música! Especialmente quando um motor com resistência de alguns ohms é conectado na outra extremidade, e é impossível distinguir um curto-circuito de um não-curto-circuito por resistência ... Em geral, um mês depois, foi possível fazer um teste oral das resistências de todos os cabos do sistema, bem como dos circuitos cujas cores estão conectadas no interior juntos. Isso nem foi escrito nas tabelas, é levado ao subcórtex, pois eles dirigem soldados e, no meio da noite, perguntam o número de série da máquina.

Subsistema de som


WTV-020SD16P não está logado. Ele não lê nenhum cartão TF, não há sinais claros de que funcione, exemplos de resultados inteligíveis não dão. Uma alternativa foi a pistola automotriz atmega328 com a biblioteca TMRpcm. Eu não gostei da amplitude do sinal, eles tentaram reduzir o resistor na saída PWM, diminuíram-diminuíram 328 e sim, deram um latido. Mudou, conectado a um amplificador, a um amplificador, em geral - silenciosamente, eles dizem. Não está satisfeito. Até um desses chelniks expressou uma idéia mega brilhante de conectar um amplificador (um alto-falante chinês) em série e a sua saída, onde há dois fios para o alto-falante, existe um segundo amplificador e essa era uma tarefa titânica: trazer à mente brilhante uma mensagem simples que afirma "Cara, você acabou de queimar a entrada." Nas noites escuras, pesadelos me atormentam e acordo com um suor frio e pegajoso com apenas um pensamento: e se ele não acreditasse em mim? Um balde de humor, eu não ligo.

Existem 6 fontes de som no total, das quais há um woofer e som estéreo em uma das salas, para que possamos chamar arbitrariamente essas 4 zonas das quais o som é ouvido. Os três primeiros simplesmente representam vários canais 5.1 e são dublados em um computador; o último canal do woofer não foi suficiente. Há um computador, um alto-falante pequeno e um alto-falante grande, espaçados em diferentes canais 2.0 (estéreo).

Quando o computador inicia, o Firefox inicia nele - a página, na página - um loop infinito com uma solicitação AJAX para o script PHP servido pelo servidor no mesmo computador. A pedido do PHP de fora, ele escreve um número no arquivo, a pedido do AJAX da página - ele diz o número, se o número for diferente do anterior - o AJAX, mais precisamente o howler.js, emite um som. Onde depende do som, em alguns sons no canal direito há silêncio completo, eles são para um alto-falante, em outros sons há silêncio na esquerda, eles são para outro alto-falante.

O computador é antigo e esquece algo que tornou possível acordá-lo no WOL em poucas horas. Ou seja, se você desligá-lo e, mesmo pelo telefone, pelo menos em outro computador, enviar um pacote WOL pelo tempo previsível, o computador será iniciado. Um dia passa e ele não faz mais isso, portanto, dois fios tiveram que ser arrastados para o botão liga / desliga.

O resto do som permaneceu um mistério para mim; antes, ele também era reproduzido em HTML usando o howler.js, então uma nova pessoa adaptou a biblioteca do VLC player para seu aplicativo Java, agora eu não sei. Eu entendo os comentários no espírito de "um servidor com furo - uma solução de muleta, onde está o mp3 shield?", Explico imediatamente - naquela época ainda não havia visitado a idéia de comprar, além de "aqui temos 5 jogadores no WTV020, aqui estão os flash drives". Acabou sendo uma solução funcional, e não acho que seja pior que o mp3 shield.

Subsistema de comando


Agora, ele representa dois processadores centrais aos quais os sensores / executores estão conectados através de fios longos. Longo - isso significa mais de dois metros. Se o contratante - através do IRFZ48N ou de uma placa de relé, ou um relé mais poderoso (60A), se o motor ou o regulador de fase no triac + moc3021 / 3051. Se o sensor for através de um acoplador óptico, para que o terra do sensor seja desatado do terra do Arduino. O comprimento dos fios é de até 20 m, de qualquer forma, são loops de corrente ou fios trançados para cargas poderosas. Por que não participar imediatamente deles DMX / RS-485, para mim é um mistério. Mas existe o que é. Anteriormente, eles eram controlados remotamente pela rede de transceptores nRF24L01 +. O protocolo do transceptor incluía um código de dispositivo, um código de operação e até uma maldita avó, e não havia colisões, mas funcionava com o loop Ethernet. As solicitações ocorrem com frequência, porque Urfin e Goodwin desejam ver um estado no computador do operador, de preferência em tempo real, portanto, primeiro um loop sem fim é colocado na interface HTML e depois no serviço Java, pesquisando continuamente o estado dos dois controladores. . Naturalmente, naqueles 150 milissegundos em que o controlador estava envolvido na rede, ele não estava interessado em transceptores.

Existem duas maneiras de melhorar esse subsistema.
Primeiro, você pode interromper o ciclo de pesquisa e enviar o estado apenas alterando as leituras do sensor. Para fazer isso, você precisa de um transmissor que possa dar um sinal ao computador (por exemplo, um wifi serial ESP8266 que envia uma solicitação para PHP).
Em segundo lugar, é possível dividir o sistema em dispositivos separados, cada um dos quais poderá se comunicar diretamente com um computador, mas isso exigirá uma interface de rede em todos os dispositivos, de sensores a motores. Suponha que para vários dispositivos concentrados geograficamente perto de alguma porta, eles precisem de mais de 2. Em geral, faça uma placa periférica TCP / IP a partir da busca pela Odisseia no Espaço. Essa placa é a melhor solução possível.

Processo orientado


Essa teoria não me pertence, não insisto em nada. E, em meus pensamentos, não há como questionar as qualidades comerciais de Goodwin e Urfin, mas o número de decisões que eles tomaram especificamente indicou sua intenção de atrasar a entrega do projeto o máximo possível. Trata-se principalmente de implementação. O mais épico, talvez seja uma indicação direta para fazer todas as conexões com o arduino mecânico, esses são os pinos de aço de 40x2,54 em plástico. Por que isso foi feito quando a solda na placa é mais confiável, não está claro. Lembro que o par trançado foi soldado. O que é realmente difícil e pode pular para fora do conector. Se você não soldar o pino em um cotonete, caso contrário ele cairá, o ácido de solda é obrigatório. Que, então, no local da solda deve ser fechado com o psiquiatra do calor, você nunca sabe o que.

Anteriormente, tudo, bem ou quase todos os dispositivos estavam localizados junto com conectores e optoacopladores na placa cruzada. Foi a maior placa já feita por mim, seu tamanho é 305x405 mm. Infelizmente, a folha era chinesa e, portanto, a camada era de apenas 18 mícrons, e estanhar era apenas uma ocupação e tanto. Devido ao tamanho enorme, todas as alterações exigiram levantá-lo completamente, porque havia mais de 40 conectores, cada um com pelo menos três fios, e desconectá-los para removê-lo era melhor cortar a cabeça imediatamente. Soldar qualquer coisa ali era muito desconfortável, porque a placa estava acima do ferro de soldar. Além disso, apesar de toda a fiação verificada, ainda havia erros nos conectores. Menos de um mês, e esse cross-board acabou sendo abandonado, embora fosse mais conveniente conectar artistas com sensores. Esta é a segunda solução mais malsucedida, a primeira foram e permanecem LEDs verdes na fita simulando a luz da chama.

Se soubéssemos imediatamente que era mais lógico colocar toda a lógica nas imediações do roteador / computador e arrastar apenas os fios para os dispositivos finais, que não deveriam ter sido previstos para visualizar os controladores em campo, seria possível concluir o trabalho muito mais cedo. No entanto, não tínhamos experiência, e provavelmente focamos no processo - algo que se segue logicamente disso. Não compartilho dessa visão e acredito que todas as opções testadas e testadas foram uma mais ou outra, uma vez que revelaram muitas soluções malsucedidas. Se eu continuar envolvido na sala de escape da sala de descanso - nossa experiência será útil para alguém que ler este artigo.

Por um lado, não tenho o direito de falar sobre esse tópico: o trono de nosso inimigo está sendo quebrado sem mim. Mas fiquei especificamente incomodado com algumas de suas decisões, que são contrárias ao bom senso e minimizam os custos. Se você me contratou para tomar algumas decisões - não discuta e duvide. Se eu disser que o sinal do alto-falante de um amplificador não pode ser alimentado na entrada de outro, então eu tenho razão. Se digo que a área de leitura da RFId não é suficiente, tive tempo de verificar, não estou dizendo nada do teto.

O homem em que meu trabalho foi despejado


No oitavo mês, outro personagem se juntou ao nosso projeto, a quem chamaremos de Lenhador. Ele tinha à sua disposição alguns sensores industriais, e alguns dos dispositivos sofreram mudanças tanto no design quanto na lógica. Naquele momento, já estava começando a me ser prestado minuciosamente, e sua intervenção, em geral, era exigida por mim. Algo claramente funcionando não funcionou, os mesmos 6 perímetros infravermelhos, desempenhando a função de um sensor de presença. Pelo menos conversas poderiam ser feitas com ele, ao contrário de Urfin e Goodwin, pois ele distinguia a persiana da resistência. Os mesmos dois às vezes me pediam para arrancar todos os dentes, um após o outro, sem anestesia.O Lenhador propôs imediatamente várias correções que poderiam afetar a confiabilidade, mas poucas delas deram resultados. No entanto, mais recentemente, foi ele quem levantou a questão de usar o código IRRemote em objetos. Ou seja, essa coisa estava completamente depurada, e ainda algo lhes aconteceu lá. Oorfene subiu para desmontar um deles e arranjou um curto-circuito; tive que trocar o transistor. Embora este seja apenas o momento em que você não deve subir novamente.

O desenvolvimento exclusivo do Lenhador é um sensor de ângulo, necessário para, digamos, um volante com pedais. Para determinar onde ele estava sendo girado, o codificador KY040 com o controlador estava inicialmente lá, a versão alfa ainda tinha disparos de Schmitt e um contador do circuito PighiXXX, que suprime a vibração e converte, não está claro qual fase mudou para sinais de passo / direção. Mas não foi possível obter um trabalho responsável dele, então ele começou a cometer erros, depois se desintegrou completamente, e decidiu-se substituí-lo por um disco com um furo e dois interruptores de foto, consistindo no antigo fotodiodo soviético FD265 com um comparador e LEDs brancos. Quando o disco foi girado, o orifício apareceu sob os LEDs, foi obtido zero nos comparadores, a ordem em que os zeros vieram dos dois comparadores possibilitou estimar a direção e a posição aproximada. Não é apenas um codificador, mas não requer interrupções,o que significa que pode ser conectado através de fios longos. Longo significa mais de dois metros. Vamos lá, sejamos honestos: os acopladores ópticos, um diodo anti-paralelo e cerâmica de microfarad 0,1 são facilmente instalados no KY040 e você obtém um codificador normal que pode ser conectado por pelo menos cem metros. Além disso, eles foram espalhados em um saco a granel. Mas o precipitado permaneceu, eu não queria mais me comunicar, e o código já foi reescrito e funcionou com mais precisão.

As falhas que surgiram posteriormente foram provavelmente relacionadas a um mau funcionamento na linha, com algum tipo de sinal fantasma que foi induzido, mas no final funcionou. Sua única desvantagem era que ele trabalhava devagar e podia perder algo em alta velocidade (lembro que o ciclo de pesquisa ainda estava lá, no controlador central, que ao mesmo tempo também atendia solicitações HTTP no painel de controle). O ciclo de polling, com alguns outros sensores, foi realocado para pro mini, que transmitiu informações ao controlador principal via Serial0. Quão emocionante foi adivinhar por que não funcionou no Serial1! No entanto, isso não é sobre isso. O sensor de ângulo tinha alguns defeitos mecânicos, e o Lenhador o substituiu por um complexo de algo que determina o movimento em geral (motor? Codificador? Mas qual é a diferença?). E dois sensores Hall,descobrir exatamente onde o movimento está acontecendo. Então, uma nova versão do código, que já determinava o número de revoluções, nasceu.

Além de refazer alguns sensores, ele também lida com a adaptação de hardware restante do projeto. Não atribuo a ele nenhum mérito especial, mas o ouro para o creep irá para aquele cujo golpe é o último. O projeto será concluído por essa pessoa, mas receberei os louros dos bastardos, que marcaram muito as pessoas que precisam da minha ajuda. Por um lado, meu ato é nojento, e admito. Por outro lado, certas condições me foram fornecidas - quando essas condições deixaram de me agradar, minha pessoa divina deixou de estar nessas condições. Só isso.Mas nojento, não nojento - para mim de alguma forma indiferente. Ao lenhador, expresso minha gratidão - ele pegou o que eu não tinha mais forças para fazer.

Tratamento de erros


O primeiro e principal passo para o gerenciamento transparente e sem erros é o conselho da Space Odyssey. Isso é necessário , pois permite resolver vários problemas de uma só vez:

  1. Se o contratado não tiver consumidores poderosos, todo o dispositivo (a própria placa e, digamos, alguns metros de fita conectados à placa) poderá ser alimentado por PoE.
  2. Você não terá colisões de tráfego. Você não terá solicitações repetidas sistematicamente, o que significa que você tem dez vezes menos chances de desligar uma rede, perder uma resposta ou qualquer outra coisa. Todo o controle pode ser feito completamente assíncrono - era necessário algo do executor - eles enviavam uma solicitação - foi concluída. Tudo, repita a solicitação não é mais necessária.
  3. Você terá acesso a informações sobre o artista em geral. Sensores? Sim, até uma dúzia, nós conectamos o registrador multiplexador / turno e vemos cada um , em quê e quanto. O motor? Você não pode apenas ativá-lo, mas também garantir que ele realmente esteja ligado com um sensor de corrente.

Um exemplo típico de "como não fazer" - fazemos uma imitação de chama no oitavo mega, barato, elementar - o que há para oferecer? random () e somente. Não importa como.
Garanto-lhe, pensando de tal maneira, que você se encontrará exatamente na mesma situação. Então você precisa mudar a cor da chama, depois apagar / iluminar suavemente, depois a linha com buzinas, e não há fios de controle, a partir da palavra. E você não desligará o rádio porque o SPI está ocupado. Ou algo mais. E o que você quiser - tão legal, mas à luz uma decisão.

Portanto, o mais importante é fornecer acesso direto dos artistas ao computador e vice-versa. Talvez através do Modbus. Talvez DMX. Mas quanto mais próxima a interface, menos hemorróidas estarão no futuro. O mais nativo é o TCP / IP. Eu aconselho você a não abusar do ESP8266, mesmo que você realmente queira. Há uma oportunidade de colocar um cabo - use um cabo.

Em seguida, de volta às regras. Trabalhamos através dos sensores de e para, para que o estado atual seja avaliado rapidamente, para que tudo funcione de forma clara e inequívoca. Se o sensor for discreto (zero ou um), o nível no meio não deverá aparecer nele. Soldamos as torções ou não, distribuindo tudo em escudos / placas. Não economizamos em fios. Não confundimos polaridade. Temos certeza: se você esquecer algo, ligue-o incorretamente, apenas um tolo pode quebrá-lo - sim, isso mesmo, esse tolo pode ser encontrado. Ligue, esqueça, quebre. Portanto, proteção, proteção e até toneladas de proteção.

Mesmo a si mesmo deve ser considerado um tolo. Eu costumava me sentir confortável com o conector ISP do arduino habitual, mas um dia chegou o dia em que a porta MOSI / D12 morreu no meu programador. O programador, é claro, eu tenho um diferente, mas o conector é diferente - linha única. E tem sete fios, não seis. Primeiro, mais, depois vazio, depois menos e todo o resto. Afirmar o contrário era geralmente impossível. Você diz - e onde estão os resistores de 100 a 300 ohms para cada um desses fios? E funcionaria com o padrão, e de cabeça para baixo nada queimaria. É isso mesmo, e agora eu também tenho resistores. Mas eu nunca vou fazer um conector simétrico.

Outro ponto são os sensores atuais. Eles são baratos, é um poderoso resistor de baixa resistência, um resistor de corte e metade de um LM393. Mas será visto que a porta já abriu, mas o motor que a puxa ainda está ligado e seus enrolamentos não gostam. Eu recomendo colocá-los em tudo o que pode ser ligado remotamente. Não é necessário para LEDs / fita, mas se houver realmente muitos LEDs, é desejável. Um monte de fita carrega a fonte de energia e os motores.

Se você não precisar criar um cronômetro adicional a partir do watchdog, nós o usamos para a finalidade a que se destina. Para que qualquer dispositivo pendente após um período máximo de 4 segundos não esteja mais danificado. By the way, nada , absolutamente nenhumaas informações que determinam o modo de operação da busca (inacessibilidade de portas abertas, travas fechadas / abertas, etc., imunidade de sensores) não devem ser armazenadas na RAM. Devemos proceder da suposição de que absolutamente tudo pode travar, a qualquer momento. Isso não deve distorcer / violar a lógica das tarefas e decisões, atribuir responsabilidade pelo estado do sistema é possível apenas em um dispositivo - o computador do operador, para que ele sempre tenha uma imagem completa do estado diante de seus olhos.

Se você estiver

construindo uma pistola autopropulsada, esta é a principal coisa: cada caixa deve ter um capacitor de cerâmica de 0,1 μF. Cada registro de turno, cada comparador. Além disso,no microcontrolador. Além disso, esse capacitor, mais um eletrólito uF, de modo que 100 deve ser soldado a nRF24L01 +, ESP8266, ENC28J60. Diretamente nos pinos da placa ou nos fios nas imediações da placa. A terra na área livre do tabuleiro não é supérflua. O toner é barato, mas é mais rápido. Além disso, hipoteticamente, algo protege no quadro. Quartzo é necessário em qualquer lugar. Sem quartzo, você pode fazer o arduino no atmega8, desde que não conte intervalos com mais precisão do que centenas de microssegundos. Atmega8 é mais barato que Attiny85 / 2313.

Se você optar entre as baterias LiIon e NiMH, é mais fácil carregar lítio: as placas no TP4056 podem ser tomadas e revestidas, como costumava dizer Banana, mas ainda não existem controladores especiais para o níquel.

Se houver artistas no sistema que não suportam a ativação a longo prazo (travas, solenóides, aquecedores, possivelmente alguns motores potentes, motores com tração final que podem acidentalmente quebrar / quebrar alguma coisa), eles devem ser protegidos adicionalmente contra a troca a longo prazo. Por exemplo, se você ativar o atuador da trava do carro por um longo tempo, o enrolamento do motor gerará calor, o motor aquecerá e derreterá a caixa de velocidades, pois é plástica. Todos sabemos que basta um segundo para ele abrir / fechar. Acabamos de fazer um segundo modelador de pulso, tudo o que precisamos é 555 e um monte de cintas. Ou uma corrente RC com um gatilho CMOS.

O carregador é, como regra geral, mau. Escreva através do ISP ou, pelo menos, altere o padrão para optiboot.

O Arduino é subitamente capaz de ser um dispositivo MIDI. Se você precisar de som em um computador, seria melhor que ele apareça em um player ou instrumento VST, e não em um navegador sob Javascript. Isso ocorre se o som local não for possível / não for confortável. VST arados e anfitriões agora para o inferno, incluindo livre.

Aspecto psicológico


Os contratantes mais inteligentes do mundo são prostitutas. Você pode e deve dar um exemplo deles: eles dizem clara e claramente ao cliente o que ele pode fazer e o que evitará de qualquer forma. Meu erro não foi participar do projeto em uma posição específica, mas em várias - isso levou a responsabilidades desnecessárias e um gasto de tempo abaixo do ideal. Por exemplo, duas semanas foram dedicadas a uma coisa, que em essência era apenas um botão / interruptor / par de contatos. Embora você possa simplesmente abrir a boca e dizer: "Como desejar, faça, preciso que um fio seja conectado ao outro quando exposto a essa coisa". E sou responsável pelo programa e por qual desses fios será aterrado e qual entrada digital.

Quatro semanas foram dedicadas às configurações na cor do brilho da fita e, em seguida, o resultado está longe de ser o ideal. E isso é impossível de controlar. Você pode simplesmente fazer um rádio / fio e enviar a cor completamente para o computador, bem, ou pelo menos alguns fatores. Ou brutalmente, para fornecer uma área na EEPROM, que pode ser controlada por um desvio externo com uma tela 1602 e um botão, porque não seria difícil torná-lo perdido.

Três semanas eles pegaram um batente na mecânica das portas, embora tenha sido a minha franja que estalou, alguns rolos se separaram deles. Bem, é, nada de especial. Chamamos essa reivindicação de lamentação comum.

E te te e te pe. Essas pessoas tentaram mover uma carga de 100 libras com um motor de 40 watts. Quarenta watts, Carl. Essas pessoas me perguntaram sistematicamente por que não fazer isso, absolutamente não se aprofundando nas sutilezas dessa opção. Sim, algumas de suas decisões foram sensatas. Mas alguns me fizeram ferozmente queimar e me perguntar - por que latir depois que um cachorro foi comprado?

Em geral, nesse aspecto, apenas dois princípios podem ser distinguidos:

  1. Conheça sua insistência e insista nisso. Você acha que o ar pode ser bombeado por um compressor? Não suba com a bomba do seu aquário.
  2. Rotule as regras. Só com um elástico, apenas em uma pose clássica, você sabe, espero. Desculpe pela vulgaridade, mas não há outras metáforas para entender.

Acho que forneci informações suficientes. Pense, lembre-se, compartilhe experiência. A minha não foi a melhor, mas é valiosa, e o resto será mais fácil, mais experiência passamos nos comentários. Então vá em frente.

FYI: o artigo é desprovido de ilustrações, porque não vejo o objetivo de desenhar dois conectores ISP, um é padrão, o outro é meu e a assinatura correta / incorreta. Todas as soluções descritas acima são facilmente do Google, no entanto, se necessário, escreva nos comentários. As opções de edição estão disponíveis e todas as ilustrações de interesse podem ser adicionadas.

Source: https://habr.com/ru/post/pt406235/


All Articles