Taula de continguts:
Vídeo: Mini-seguidor de llum ATTiny-RAT, ATTINY: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Hola gent, ha passat un temps des que vaig publicar el meu darrer instructable. Bé, ara hi ha moltes coses al cap, però he aconseguit documentar els meus "primers passos" amb la sèrie de xips ATTiny en aquest breu instructable per a vosaltres.
He demanat algunes mostres ATTINY85 només perquè volia provar-les:-) (a tothom li encanta provar coses, oi?). Després d'això vaig començar a dibuixar algunes idees a la meva llibreta. Per ser sincer, el primer que vaig fer va ser parpellejar un LED que sempre és un bon començament per comprovar si la vostra configuració / cadena d'eines funciona. També he provat un registre de temperatura i humitat amb DHT22 i SoftwareSerial. Va ser complicat perquè les biblioteques DHT són principalment per a rellotges de 16 MHz (si teniu previst fer alguna cosa així, comproveu com preescalar el rellotge intern). Però he decidit mostrar-vos alguna cosa que, molt bé, és més divertit. BTW: he penjat un dels meus dibuixos, no és un Rembrandt, però us mostrarà com he aconseguit aquesta (realment) estúpida idea en un tros de paper: -P.
Només he utilitzat coses que tenia per mantenir aquest projecte el més barat possible (per a mi). El resultat d'aquesta petita aventura és un petit "robot lightfollower" per uns 10-15 $ (3 $ per a mi:-P)
Per tant, si esteu interessats en ATTINY, llegiu més.
BTW: perdó pel meu mal anglès (no sóc nadiu)
Pas 1: Introducció a ATTiny, Eines i materials
Què necessitareu per començar:
- un xip ATTiny85
- un Arduino UNO o similar
- Tauler de connexió amb algun pont de filferro o un programador ATTINY o feu un programador-blindatge per a Arduino (consulteu les imatges adjuntes, hi ha un esquema a avdweb.nl). També he fet aquest i n’estic molt content, l’única modificació que he fet és que he afegit un sòcol per a la sèrie ATTinyx4 (consulteu la imatge i els diagrames de pinout).
- l'IDE Arduino (obteniu-lo aquí)
- els fitxers de maquinari de l'ArduinoIDE (descarregueu-los i instal·leu-los)
Enllaç d'informació al playgrounddirect Enllaç als fitxers github que he utilitzat
- carregueu l'Arduino com a esbós ISP a l'ONU (aquest serà el vostre programador)
- seguiu aquesta instrucció (https://highlowtech.org/) o aquesta instrucció (per ardutronix) i proveu l'esbós "parpellejar" (modifiqueu el número de PIN. Utilitzeu la imatge ATTINY com a referència! necessitareu un LED ATTINY preflashed i una resistència de ~ 220 Ohm per a això)
Feu una petita configuració de taulers per comprovar-ho tot. Si ho heu fet tot bé, el LED parpellejarà i ja esteu a punt.
EINES
- Soldador: una mica de soldadura, un petit cablejat, un dremel o una altra eina giratòria (només per tallar el PCB);
MATERIALS
- prototipatge de PCB (~ 4cmx6cm ho farà) - 2x LDR- 5x 10k Resistor (2x per als LDRs i 2x per als transistors BE, 1x LED) - 1x 330Ohm Resistor (1x NEOPIXELS) - 2x LDR- 1x LED (color del vostre elecció, en lloc de la roda rodant) - 3x NEOPIXEL WS2812- 2x transistor (BD137 o similar) - 2x díode (1N4001 o similar) - 2x micromotor (per exemple, des d'un micro-quadricòpter Hubsan) - 1x ATTINY85 + opcional (recomanat) 8PIN IC Socket - 1x 1s LIPO (he utilitzat un 140Ah d'un helicòpter RC antic): alguns capçals de pin / endolls - tub retràctil (carcassa LDR)
Procedim construint el maquinari …
Pas 2: maquinari
Si feu una ullada als esquemes que he adjuntat, la configuració del maquinari és bastant senzilla. Per tant, si podeu llegir esquemes i utilitzar un soldador, això és la meitat del truc. Mireu també les fotos, he afegit algunes notes per a vosaltres.
No ofereixo un pla per tallar el PCB, teniu la llibertat de fer el vostre propi disseny (sigueu creatius i mostreu-nos els vostres Tiny Bots). La vostra col·locació de tots els components electrònics també depèn de vosaltres. Alguns consells del meu costat:
Intenteu alinear els motors amb precisió (vigileu l’angle!), Només fem servir l’eix del motor en lloc de les rodes. (això consumirà menys energia) Recomano col·locar els motors sota la bateria (pes) i utilitzar els LDR a la part davantera (inclinats a 45 °) emparellats amb el LED encès (estic intentant utilitzar aquesta combinació per evitar obstacel, encara més calen proves).
A més, recomano fer una mica de jumper encès / apagat perquè la bateria no es perdi tan fàcilment.
Si hi ha alguna cosa poc clara o si teniu cap pregunta, pregunteu-m'ho. No farà que molts senadors facin una tesi d'aquest petit projecte.
Pas 3: programari
El primer de tots descarregueu i instal·leu ADAFRUIT Neopixel Library
Aquí teniu el meu codi amb algunes descripcions importants (també he afegit el fitxer d'esbós). No he comentat cada pas perquè crec que no és necessari.
Pengeu l’esbós al vostre ATTiny85 i divertiu-vos amb la vostra nova joguina
Idees per a la funció de "personalitat" + potser els exemples de codi són molt benvinguts:-)
Si hi ha alguna pregunta, no dubteu a fer-ho.
Espero que us hagi agradat el meu breu instructiu i el petit viatge al món dels ATTINYs.
/ * ATTINY85-Rata robot de seguiment de llum alimentat per ATTINY85 simple. Versió 2.0, per Auer Markus * /
#incloure
#incloure
// motors
#define LMOTOR 0 #define RMOTOR 1 // LEDs #define PIXELPIN 2 #define NUMPIXEL 3 // LDRs #define LLDR A2 #define RLDR A3
// otherint emo = 0; calibre flotant; emostat booleà; longmillis llargs; // defineix NeopixelsAdafruit_NeoPixel PIXEL = Adafruit_NeoPixel (NUMPIXEL, PIXELPIN, NEO_GRB + NEO_KHZ800);
configuració nul·la ()
{// rellotge de luxe si no, trobareu alguns problemes de temps (el lib de neopixel s'escriu per a 16 MHz) #if definit (_AVR_ATtiny85_) si (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif
// PINMODE pinMode (LMOTOR, OUTPUT); pinMode (RMOTOR, OUTPUT); pinMode (LLDR, INPUT); pinMode (LLDR, INPUT); // inicialitzar els píxels PIXEL.begin (); PIXEL.show (); retard (500); // startsequence for (int i = 0; i
bucle buit ()
{if (lightfollow () == 1) {left (); } else if (lightfollow () == 2) {right (); } else if (lightfollow () == 0) {forward (); } emoció(); }
int lightfollow () {
int treshold = 14; int result = 0; flotador a l'esquerra = 0; flota a la dreta = 0; int samples = 1; // llegiu LDR per a (int j = 0; j <samples; j ++) {
left = left + analogRead (LLDR); right = right + (analogRead (RLDR) * calib);
}
// calcula el resultat (de quina direcció prové la llum?)
if ((left / samples)> ((right / samples) + treshold)) {result = 2;}
else if ((left / samples) <((right / samples) -treshold)) {result = 1;}
else {result = 0;}
resultat de retorn; } void forward () {// Endavant analogWrite (LMOTOR, 230); analogWrite (RMOTOR, 230); PIXEL.setPixelColor (0, PIXEL. Color (0, 0, 255)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }
buit a l'esquerra () {
// ESQUERRA 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 () {
// DRET analogWrite (LMOTOR, 255); analogWrite (RMOTOR, 150); PIXEL.setPixelColor (0, PIXEL. Color (0, 100, 0)); PIXEL.setPixelColor (2, PIXEL. Color (0, 0, 255)); PIXEL.show (); }
// això és per a experiments posteriors, intentant donar-li una mica de personalitat:-) Estic provant què podria fer, però encara no hi ha bones idees.
void emotion () {int emotimer = 2500; int durata = aleatori (250, 750); if (millis () - oldmillis> emotimer) {oldmillis = millis (); emo = aleatori (1, 4); } if (millis () - oldmillis> durada) {emostate =! emostate; } if (emostate == true) {switch (emo) {case 1: PIXEL.setPixelColor (1, PIXEL. Color ((255), (255), (255))); PIXEL.show (); trencar; cas 2: PIXEL.setPixelColor (1, PIXEL. Color ((255), (0), (0))); PIXEL.show (); trencar; cas 3: PIXEL.setPixelColor (1, PIXEL. Color ((0), (255), (0))); PIXEL.show (); trencar; per defecte: PIXEL.setPixelColor (1, PIXEL. Color (random (0, 255), random (0, 255), random (0, 255))); PIXEL.show (); trencar; }} else {PIXEL.setPixelColor (1, PIXEL. Color (25, 0, 0)); PIXEL.show (); }}
Recomanat:
Llum sensible a la llum: 6 passos
Llum sensible a la llum: es tracta d’un projecte en què construirem una làmpada sensible a la llum. La làmpada s’encén sempre que es produeixi una disminució de la llum circumdant i s’apagui quan la llum del vostre entorn sigui suficient per a que els nostres ulls vegin les coses al voltant
Llum de Lego súper brillant A partir de 14 $ Llum d'escriptori Radio Shack: 8 passos (amb imatges)
Llum de Lego súper brillant A partir de 14 € Llum d’escriptori Radio Shack: amb una mica d’ajuda del vostre gat, converteix fàcilment una làmpada d’escriptori de Radio Shack a una potent llum Lego amb molts usos. A més, podeu alimentar-lo per CA o USB. Comprava peces per afegir il·luminació a un model Lego quan ho vaig trobar per accident
Llum d'intensitat de llum Arduino: 3 passos
Llum d'intensitat de llum Arduino: aquest circuit es pot utilitzar com a llum real, projecte escolar i un repte divertit. Aquest circuit és fàcil d'utilitzar i fàcil de fer, però si no heu utilitzat tinker cad abans és possible que vulgueu provar-ho primer
Llum d'intensitat de llum Arduino: 6 passos
Llum Intensity Light Arduino: us donem la benvinguda al meu tutorial sobre com construir i codificar un llum Intensity Light amb un Arduino. Necessitareu aquests components per construir-lo. * LDR * Microcontrolador Arduino * Bombeta * Relé * Una font d’energia * Taula de pa * Resistència d’1 k-ohm Esperem que
Mini llum de nit de llum de nit / llum: 5 passos
Llum / làmpada nocturna de nit de mini LED: primer, hauria de dir que es va inspirar en la làmpada LED de peu Mini de Sunbanks. En lloc d’utilitzar un biro per mantenir el led allunyat de l’escriptori, he utilitzat un clar perspex per projectar la llum de la base. Aquest petit projecte és un prototip